Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 13:29   #1
Кипящий чайник
Форумчанин
 
Регистрация: 17.12.2009
Сообщений: 101
По умолчанию (SDL) Система ввода в игре

Не получается создать удобное управление:

Вкратце, что мне нужно:
Например, вы жмёте кнопку "влево", и персонаж идёт влево. Затем, не отпуская кнопки "влево", вы жмёте "вверх", и персонаж идёт по диагонали. Когда вы отпускаете "влево" или "вверх", то персонаж идёт вверх или влево соответственно.

А на самом деле:
Жму кнопку влево - он идёт влево. Не отпуская "влево", жму "вверх", и персонаж идёт вверх, а не по диагонали. Стоит мне отпустить одну из кнопок, как движение в любом направлении прекращается, и, чтобы снова начать идти, надо снова нажать кнопку. Играть будет очень неудобно.
Вы можете сами это проверить в приклеплённом архиве с демкой.

Я использую такой алгоритм:

Код:
void Character::Read_Keyboard(){
	switch(event.key.keysym.sym){
	case SDLK_ESCAPE: exit(0);											    break;
	case SDLK_UP:     Move(d_up,   RUNNING_SPEED); Animate(STANDING_LEFT);  break;
	case SDLK_DOWN:   Move(d_down, RUNNING_SPEED); Animate(STANDING_LEFT);	break;
	case SDLK_LEFT:   Move(d_left, RUNNING_SPEED); Animate(STANDING_LEFT);	break;
	case SDLK_RIGHT:  Move(d_right,RUNNING_SPEED); Animate(STANDING_LEFT);	break;
	}
}
Но, конечно, надо что-то изменить. Не подскажите ли более эффективную схему? Если необходимо, я покажу другие куски кода.
Вложения
Тип файла: rar Demo.rar (733.8 Кб, 8 просмотров)
Кипящий чайник вне форума Ответить с цитированием
Старый 10.04.2011, 16:18   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

по-моему, тут что-то по теме: http://gpwiki.org/index.php/SDL:Tuto...Keyboard_Input
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 10.04.2011, 18:28   #3
Кипящий чайник
Форумчанин
 
Регистрация: 17.12.2009
Сообщений: 101
По умолчанию

Посмотрим... За помощь большое спасибо!
Кипящий чайник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SDL в xcode Banner Помощь студентам 0 02.04.2011 18:45
C# + SDL.net Dimone-kun Помощь студентам 0 25.10.2010 10:11
Win32Api и SDL revaldo666 Win Api 2 05.07.2010 17:49
SDL, текст Plobzik Общие вопросы C/C++ 9 23.04.2010 23:11
система ввода вывода StudentPolitech Общие вопросы C/C++ 3 02.04.2009 22:22