Story

Не многие из нас играя в очередную игру получают озарение что могут стать разработчиками игр. В моём случае (с 2005 года), мне повезло получить ЭТО, но я не воспользовался как следует ИМ и результат очевиден))) Я сижу с неизвестным проектом Литрболл (htttp://www.litrball.tk/ ). К сожалению проект trash, впрочем как и я)) Но начнём историю с начала...

...2005 год....

Поступление в БГУИР. Эйфория... я в БГУИРе, но я не уловил фишку, что меня будут ломать полностью... отчётность... куратор... закипевший кофе у преподавателя PASCAL во время экзамена... я последний... FOREVER ALONE... "я ставлю 4 из 10".... "нет... всё же 3/10"... Потеряные 2 года... В эти года я пытался заюзать один двиг под Delphi. Слава богу ничего не получилось)))

Но ничего, я поступил в БНТУ... даже на ту же специальность 40 01 01... программное обеспечение информационных технологий! Заочка... вакуум... я не сумел найти сообщество для своей прокачки скилов... скилов нет! и так из года в год....

Теперь наступает 5-ый курс.... Мне нужно проходить практику по специальности. Но даже в стилы я не попадаю... остался последний шанс в EPAM... писать модули для ERP систем?... чёртос два!!! я хочу писать игры!!!

SDL... с++... если добавить чуточку OpenGL, то это уже 3D... а пока я в мире 2D и мне предлагают выслать резюме в очередную компанию по автоматизации производств, но я не отвечу, я маленький гамадевер.

Submitted by nickRUS on

Комментарии

По моему в геймдеве и нужно начинать с малого. Хотя сам я начал (если считать последние старания и забыть про ковыряния движков в2005, 2007 ) с социальной игры. Она сейчас крутится Вконтаке и Всети. 
Сейчас делаю небольшую портальную флэшку  с намерением портировать её на мобаилы. Ну и еще по мелочам в паре проектов. 

Устроился на работу флэш девелопером и шаг за шагом иду к своей цели. как то так... 

----удалить----(запостил повторно по ошиьке)

Это моим друзьям для мотивации!

Код:

"SDL.h"
"SDL_image.h"
"SDL_ttf.h"

"stdio.h"
"stdlib.h"
using namespace std;    //Используем стандартное пространство имён
/**************************************************/
/* Обьявляем поверхности, так называемые сурфейсы */
/**************************************************/
SDL_Surface *screen,
            *blit,
            *image,
            *button_image;
//Объявляем указатель на шрифт
//TTF_Font *font;

int xpos=0,
    ypos=0;

/******************************************************************************/
/**            Прототипы функций                                                ***/
/******************************************************************************/
void Button(int ix,int iy,char *text);
void DrawImage(SDL_Surface *img, int x, int y);
void DrawImage(SDL_Surface *img, int x, int y, int w, int h, int sx, int sy);
void DrawingText(SDL_Surface *img2, char *text, int size, int x, int y,    int fR, int fG, int fB,    int bR, int bG, int bB);

void Button(int ix,int iy,char *text)
{

}
void SpriteLoad()
{
    //Дальше грузим фон
    blit = IMG_Load("fon.jpg");//инициализируем сурфейс фонового изображения
    /* Инициализируем сурфейс игрока */
    image = IMG_Load("battle.png");
    button_image = IMG_Load("Button.png");
}

void DrawImage(SDL_Surface *img, int x, int y)
{
    SDL_Rect dst;
    dst.x = x;
    dst.y = y;
    SDL_BlitSurface(img, NULL, screen, &dst);
}

void DrawBG()
{
    DrawImage(blit, 0, 0);
}
void DrawImage(SDL_Surface *img, int x, int y, int w, int h, int sx, int sy)
{
    /* Обьявляем структуру */
    SDL_Rect dst;
    dst.x = x;
    dst.y = y;

    SDL_Rect src;
    src.x = sx;
    src.y = sy;
    src.w = w;
    src.h = h;

    SDL_BlitSurface(img, &src, screen, &dst);
}

void DrawScene()
{
    DrawImage(blit, xpos-12, ypos-12, 55, 170, xpos-12, ypos-12);
    DrawImage(image, xpos, ypos);
    DrawingText(screen,"Hello dude! Please, give me drink vodka! Ok, lets go!",25,0,500,0,255,0,0,0,0);
}

void DrawingText(SDL_Surface *img2,
                char *text,
                int size,
                int x, int y,
                int fR, int fG, int fB,
                int bR, int bG, int bB)
{
    TTF_Font* font = TTF_OpenFont("FreeMono.ttf", size);
    SDL_Color foregroundColor = { fR, fG, fB };
    SDL_Color backgroundColor = { bR, bG, bB };
    SDL_Surface *textsurface = TTF_RenderText_Shaded(font,text,foregroundColor,backgroundColor);
    SDL_Rect textLocation = { x, y, 0, 0 };
    SDL_BlitSurface(textsurface,NULL,img2,&textLocation);
    SDL_FreeSurface(textsurface);
    TTF_CloseFont(font);
}
int main(int argc,char* argv[])
{    
    //Проверка и инициализация видео-модуля
    if (SDL_Init(SDL_INIT_VIDEO))
    {
        printf("Fuck! %s\n", SDL_GetError());
        return 1;
    }
    atexit(SDL_Quit); //Очистка на выходе

    //Подключаем библиотеку для работы с различными форматами изображений
    int flags = IMG_INIT_JPG|IMG_INIT_PNG;
    int initIMG = IMG_Init(flags);

    //Подключаем библиотеку шрифтов
    if(TTF_Init()==-1)
    {
        printf("TTF_Init: %s\n", TTF_GetError());
        return 1;
    }
    
    //инициализация и проверка сурфейса дисплея
    screen = SDL_SetVideoMode(800, 600, 0, 0); //Устанавливаем разрешение и разрядность цветов
    if (screen == NULL)
    {
        printf("FUCK! %s\n", SDL_GetError());
        return 1;
    }
/*    Меняем название приложения */
    SDL_WM_SetCaption("LITRBALL TEST BUILD", NULL);
    //Переменная для цикла цикла while
    bool done = false;
    SpriteLoad();
    DrawBG();

    while (!done)
    {
        
        SDL_Flip(screen);//асинхронно выполняет переключение видео-буферов
        SDL_UpdateRect(screen, 0, 0, 0, 0);//Обновление экрана

        SDL_Event event; //Обьявляем структуру событий
        Uint8 * keys;    //Структура нажатых клавиш
        while(SDL_PollEvent(&event))
        {//Просматриваем и удаляем события
            if(event.type == SDL_QUIT)
            {
                IMG_Quit();
                TTF_Quit();
                done = true;
            }
            if(event.type == SDL_KEYDOWN)
            {
        
            }
        }
                keys = SDL_GetKeyState(NULL);
                if (keys[SDL_BUTTON_LEFT])
                {
                    DrawingText(screen,"YEAH!",250,0,300,0,255,0,0,0,0);
                }
                if (keys[SDLK_UP] && (ypos > 0))
                {
                    ypos -= 1;
                }
                if (keys[SDLK_DOWN])
                {
                    if(ypos<455)
                    {
                        ypos += 1;
                    }
                }
                if (keys[SDLK_LEFT] && (xpos > 0))
                {
                    xpos -= 1;
                }
                
                if (keys[SDLK_RIGHT])
                {
                    if(xpos<765)
                    {
                        xpos += 1;
                    }
                }
                
                DrawScene();
    }
    return 0;
}

Управление спрайтом бутылки.

Удачи!

Submitted by nickRUS on
nickRUS wrote:
...Но даже в стилы я не попадаю... остался последний шанс в EPAM...

стилы vs EPAM Smile

Насколько слышал в епаме тоже чтото под мобильные платформы делают (не уверен правдо что имено игры), но опыта набраться можно )

Последняя правка: пн, 27/08/2012 - 03:03
Submitted by Victor on

Чувак, нытьём и жалобами на судьбу-злодейку ничего не именить. Работать надо, количенство перейдет в качество, качество-в количество и т.д. Диалектика, мать её.

Submitted by Rebel on

GameDev.by