Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 29.09.2019
Сообщений: 9
1

Игра от первого лица на Си, используя SDL2

25.04.2020, 23:31. Просмотров 1312. Ответов 4

Всем привет, решил сделать игрушку от 1го лица на Си с помощью SDL2. В ней надо блуждать по лабиринту, при нажатии на экран, собирать разные предметы, все дела, но я тут же затупил. Как прогружать сцену? Управление осуществляется по стрелкам на экране. Как сделать так, чтобы для каждого момента в игре прогружалась определенная сцена. Допусти, нажал влево появилась стена, нажал вперед-проход, но чтобы шло уже по готовой карте или как то так.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2020, 23:31
Ответы с готовыми решениями:

Камера от первого лица
В который раз, вечер добрый, очередная проблема, хотя не решились еще предыдущие) Необходимо...

Управление от первого лица
Здравствуйте, мне необходим код для того что бы заставить объект( с прикрепленной камерой к лицу)...

Метание копья от первого лица
подскажите, если кто знает. как в unity3d сымитировать полет копья/стрелы от первого лица, чтоб...

Создать шутер от первого лица или змейку
Создать шутер от первого лица или змейку. помогите

4
0 / 0 / 0
Регистрация: 02.05.2020
Сообщений: 16
02.05.2020, 18:42 2
Тоже задавался данным вопросом.
Я делал так: в цикле игры я делал не которую логическую переменную, которая отвечает за номер "сцены/меню". Далее с помощью оператора if - else или switch по логике программы выбираешь определенную сцену. В каждой из ветвей указываешь нужные объекты с функцией рендера и/или обработчика событий.
Пример
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
while( !quit )
{
        //Handle events on queue
        while( SDL_PollEvent( &e ) != 0 )
        {
            //User requests quit
            if( e.type == SDL_QUIT )
            {
                quit = true;
            }
        }
 
        //Clear screen
        SDL_RenderClear( gRenderer );
 
        //Render texture to screen
        if (logic)
                {
                    CLS_Button_handleEvent(&my_button, &e);
                    CLS_Button_render(&my_button, NULL, 0, NULL, SDL_FLIP_NONE);
                }
                else
                {
                    CLS_Button_handleEvent(&my_button_1, &e);
                    CLS_Button_render(&my_button_1, NULL, 0, NULL, SDL_FLIP_NONE);
                }
        //Update screen
        SDL_RenderPresent( gRenderer );
 
        SDL_Delay(MS_FOR_DISPLAY);//ms sleep of performance
}
0
0 / 0 / 0
Регистрация: 29.09.2019
Сообщений: 9
28.05.2020, 15:16  [ТС] 3
То есть для каждой сцены надо сделать определенную логическую переменную, да?
0
0 / 0 / 0
Регистрация: 02.05.2020
Сообщений: 16
28.05.2020, 15:56 4
switch переменная of
{...}
можно использовать одну переменную для выбора сцены.
или, да, для каждый отдельной сцены логическую переменную.
0
0 / 0 / 0
Регистрация: 29.09.2019
Сообщений: 9
28.05.2020, 16:00  [ТС] 5
Хорошо, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2020, 16:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Управление камерой от первого лица под Андроид
как сделать управления как у шутерах на андроид где только не искал не где не на шол помогите...

Сделать передвижение персонажа с видом от первого лица в graph3d
Сделать передвижение персонажа с видом от первого лица в graph3d. Добавлено через 2 минуты Ну...

Мобильная низкополигональная "GTA" от первого лица
Приглашаю разработчиков низко-среднего уровня на создание этой игры, т.к. для меня одного слишком...

Фильм "Без лица" становится реальностью - впервые выполнена операция по полной трансплантации лица пациента.
Фильм "Без лица" становится реальностью - впервые выполнена операция по полной трансплантации лица...

Найти приближенное значение интеграла дифференциального уравнения первого порядка 1)Используя метод Эйлера 2)используя функцию odesolve
здраствуйте. методом Эйлера решение сделал, а вот с помощью odesolve не получается... Уравнение:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.