До сих пор все наши программы выполнялись последовательно, в том порядке в котором написан код, при этом в конце выполнения программы изображение появлялось на экране и при нажатии на любую кнопку программа завершалась. Но мы не хотим, чтобы программа рисования завершалась при нажатии на кнопки со стрелками, программа должна показывать изображение на экране и снова проверять, нажаты ли кнопки. Для показа изображения на экране необходимо вызвать функцию ShowFrame(); А для того, чтобы программа продолжила выполняться с нужного нам места, само это место нужно пометить меткой, то есть дать название, а потом написать инструкцию перехода к метке - goto. Вся программа может выглядеть вот так:
Было бы интересно почитать про более адекватные библиотеки и движки, а не arctic engine. Я вообще в первый раз слышу об этом. Это вообще кто-то использует? Ни видосов, ни статей по теме не нашел. Зачем какая-то ноунейм либа без комьюнити, если есть большие проекты с поддержкой и сообществом, которое всегда поможет
Посмотрим на простые задачи. Как загрузить и вывести картинку на экран в arctic engine и в SDL2?
arctic engine:
Sprite hero;
hero.Load("hero.tga");
...
hero.Draw(x, y);
SDL2:
std::string imagePath = getResourcePath("Lesson1") + "hero.bmp";
SDL_Surface *bmp = SDL_LoadBMP(imagePath.c_str());
if (bmp == nullptr) {
SDL_DestroyRenderer(ren);
SDL_DestroyWindow(win);
std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl;
SDL_Quit();
return 1;
}
SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, bmp);
SDL_FreeSurface(bmp);
if (tex == nullptr) {
SDL_DestroyRenderer(ren);
SDL_DestroyWindow(win);
std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl;
SDL_Quit();
return 1;
}
...
int w, h;
SDL_QueryTexture(tex, NULL, NULL, &w, &h);
SDL_Rect dst(x, y, w, h);
SDL_RenderCopy(ren, tex, NULL, &dst);
Ну то есть arctic engine позволяет делать игру, а SDL2 позволяет изучать SDL2
Arctic engine отличается тем, что с ним простые вещи делать действительно просто, и при этом принципиально не может возникнуть ситуации когда что-то сделать совершенно невозможно. Лучше всего arctic engine подходит для создания простых 2д игр и знакомства с программированием. Если твоя цель в том, чтобы сделать игру без программирования и в процессе в основном заниматься редактированием 3д моделек, настройкой готовых скриптов, расстановкой ящиков по уровням в редакторе, то arctic engine тебе плохо подходит, гораздо лучше взять Unity или Unreal Engine. Но если ты хочешь делать по дюжине разных игр в месяц в основном занимаясь именно программированием и прокачивая навык написания кода решающего поставленные задачи, то arctic engine - отличный выбор..
Можно сравнить arctic engine с парой популярных аналогов. Начнем с простоты первых шагов: arctic engine автоматически создает проекты для Visual Studio, XCode и makefile для linux (x86 или Raspberry Pi), а в SDL2 только настройка проекта в Visual Studio займет пол часа, причем уже в этом месте многим нужна помощь и поддержка сообщества.
Несколько игр на arctic engine можно посмотреть по ссылке
https://gamedev.ru/community/arctic/forum/?id=259174
Комментарий недоступен
Как это не надо? Можно понять как работает if и goto и делать игры, а можно возиться с обычными циклами, а до игр так и не добраться. Можно долго рассказывать о том что goto почему-то плохо, а можно написать их пару сотен и все понять самостоятельно. В первом случае человек научится послушанию, во втором сделает игру и поймёт самостоятельно преимущества и недостатки goto.
IsKeyDown(5)Почему используются магические числа?