Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.10.2010, 18:38
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 1  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
По умолчанию Управление с клавиатуры

Хотел спросить как делается так, что-б клавиши не мешали друг другу? Вот первый раз решил игру сделать а тут проблема такая. У меня Spsce - прыжок; Left, Right - идти налево и напрво, так вот когда объект передвигается - жму Space он прыгает и останавливается хотя кнопку движения не отпускаю... Как сделать так, что-б кнопки не перебивали друг друга?

Старый 28.10.2010, 18:50
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 2  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Сменить клавиатуру.
И почитать форум

Старый 28.10.2010, 20:10
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 3  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Нет не то, при чём тут клавиатура? Это я что-то не правильно делаю...
вот код:

Код AS3:
private function onKeyDown(e:KeyboardEvent):void {
 
			switch(e.keyCode){
				case Keyboard.LEFT :
                ball.vx = -2;
                break;
				case Keyboard.RIGHT :
                ball.vx = 2;
                break;
				case Keyboard.SPACE :    
                ball.vy += -8;
                break;
			}
		}
при таком коде: нажимаеш клавишу "вправо" и удерживаеш - обьект перемещается вправо, потом нажимаеш "спэйс"(не отпуская "вправо") обьект прыгает и больше не перемещается вправо, хотя клавиша "вправо" ещё нажата, что-б опять начать перемещаться вправо - нужно отпустить клавишу "вправо" и нажать её снова - движение возобновится. Но мне нужно, что-б "спэйс" не мешал клавише "вправо", не останавливал движение...

Старый 28.10.2010, 20:31
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Тысячу раз обсуждалось.
Заведите список всех нажатых клавиш и исходя из него меняйте скорость
__________________
...вселенская грусть

Старый 28.10.2010, 21:07
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 5  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
http://www.flasher.ru/forum/showthre...highlight=wasd
Похоже, оно. Нужно данную тему где-то закрепить, что ли. А то слишком много таких вопросов стало.
__________________
тут я

Старый 29.10.2010, 02:37
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 6  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
я с клавиатурой впервые работаю вот и вопросы возникают, вот ещё один:
как сделать так что-б при зажатии спэйс происходил 1 прыжок? У меня при зажатой спэйс происходят многократные прыжки, нужно, что-б 1 раз прыгнул...

Старый 29.10.2010, 02:45
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 7  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Заведите флаг для прыжка. При отпускании пробела он сбрасывается, при нажатии смотрите, установлен-ли он - если нет, то прыгаете и устанавливаете.

Старый 29.10.2010, 18:42
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 8  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Спасибо, разобрался, не знал, что кнопки так себя ведут - приходится использовать Boolean. Кстати ответы Bgg, КорДум, gloomyBrain только вводили в заблуждение. Я хотел узнать вот это:
Код AS3:
 
var left:Boolean = false;
var right:Boolean = false;
var jump:Boolean = false;
 
private function onKeyDown(e:KeyboardEvent):void {
 
			if (e.keyCode == 37) {
				left = true;
			}
 
			if (e.keyCode == 39) {
				right = true;
			}
 
			if (e.keyCode == 32) {
				jump = true;
			}
		}
 
		private function onKeyUp(e:KeyboardEvent):void {
 
			if (e.keyCode == 37) {
				left = false;
			}
 
			if (e.keyCode == 39) {
				right = false;
			}
 
			if (e.keyCode == 32) {
				chekJump = false;
				jump = false;
			}
		}
 
		private function onBallMove():void {
			if (left) {
				ball.vx = -4;
			}
 
			if (right) {
				ball.vx = 4;
			}
 
			if (jump) {
				ball.vy = -8;
			}
		}
При таком коде ни одна кнопка не мешает другой - то, что я и хотел узнать.

Старый 29.10.2010, 19:16
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 9  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Кстати ответы Bgg, КорДум, gloomyBrain только вводили в заблуждение.
Мы вам хотели показать, как будет правильно. Но, вы решили сделать по-своему, ок.
__________________
тут я

Старый 29.10.2010, 19:19
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
При таком коде ни одна кнопка не мешает другой
Все зависит от клавиатуры, а не от кода. Часть нажатых клавиш замыкают цепь, которую используют другие клавиши, поэтому есть реакция только на первые нажатия.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.