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

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

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

Регистрация: Mar 2009
Сообщений: 122
Question упрвление movie clip клавиатурой и касание объектов

в программировании я не особо силен однако придумал игру.
для осуществления знаю все кроме двух вещей.

в игре надо будет на лыжах спускаться с склона.
для передвижения вправо влево я использовал такой код:
Код:
onClipEvent (keyDown) { 
if (Key.isDown( key.LEFT)) { 
_x-=5; 
} 
} 
onClipEvent (keyDown) { 
if (Key.isDown( key.RIGHT)) { 
_x+=5; 
}
}
он работает, однако сильно дергаеться а тагже в начале движения подвисает.

и второе, это припятствие. необходимо обнаружение касаний.
вообщем в игре земля под лыжником будет идти анимацией motion tween'ом. припятствия с землей ехать должны.
когда лыжник тронет припятствие он должен переходить в определенный кадр где будет анимация вризания.
код использавал такой:
Код:
if (lishnik.hitTest(board1)) {
        gotoAndPlay("crash")
    }
 
 
if (lishnik.hitTest(board2)) {
        gotoAndPlay("crash")
    }
lishnik это муви клип лыжника а board1/board2 это припятствия.
проблема в том что hitTest работает нармально только с квадратами. т.к. он границы у всех обьектов он рассматривает как квадраты.
а если использовать тот код передвижения что я использовал то hitTest вообще не работает.
может другие коды использовать? необходимо чтобы хитТест работал с кодом передвижения.
высылаю исходник. очень прошу помоч. буду очень благодарен.
Вложения
Тип файла: zip test lishi.zip (21.7 Кб, 60 просмотров)


Последний раз редактировалось alex001; 29.03.2009 в 16:42.
Старый 29.03.2009, 13:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
alex001, отредактируйте свой пост и оформите код тегами [as][/as].

Старый 29.03.2009, 16:57
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 3  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Цитата:
Сообщение от alex001 Посмотреть сообщение
он работает, однако сильно дергаеться а тагже в начале движения подвисает.
Это результат работы автоповтора клавиш. Вам нужно сделать флаги нажатия нужных клавиш, которые будут устанавливаться по событию нажатия и сбрасываться по событию отпускания.

Старый 29.03.2009, 17:21
alex001 вне форума Посмотреть профиль Отправить личное сообщение для alex001 Найти все сообщения от alex001
  № 4  
Ответить с цитированием
alex001

Регистрация: Mar 2009
Сообщений: 122
я неособо силен в экшнскрипт
можеш поподробнее расписать?

Старый 29.03.2009, 18:41
ГЛАВАК вне форума Посмотреть профиль Отправить личное сообщение для ГЛАВАК Найти все сообщения от ГЛАВАК
  № 5  
Ответить с цитированием
ГЛАВАК
[+4 17.02.09]
[+6 29.03.09]

Регистрация: Dec 2008
Сообщений: 28
Код AS1/AS2:
onClipEvent (keyDown) { 
if (Key.isDown( key.LEFT)) { 
_x-=5; 
} 
} 
onClipEvent (keyDown) { 
if (Key.isDown( key.RIGHT)) { 
_x+=5; 
}
}
а мож лучше
Код AS1/AS2:
on (keyPress "<Right>") {
	_x += 5;
}
on (keyPress "<Left>") {
	_x -= 5;
}
так вроде нормально
P.S. а насчёт HitTest мне тоже интересно
__________________
Ты крутой=)
Но я круче

Старый 29.03.2009, 18:47
alex001 вне форума Посмотреть профиль Отправить личное сообщение для alex001 Найти все сообщения от alex001
  № 6  
Ответить с цитированием
alex001

Регистрация: Mar 2009
Сообщений: 122
спасибо большое,ГЛАВАК!
хоть в начале и тормозит однако все плавно!
но проблема все таже...
код смотрит касание только в загрузке игры а потом если зайдеш на это движением клавишами он не видит касания...

Старый 30.03.2009, 09:24
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 7  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
проблема в том что hitTest работает нармально только с квадратами. т.к. он границы у всех обьектов он рассматривает как квадраты.
Для нестандартных объектов можно использовать нестандартные решенияgetPixel.

Рисуешь объекты столкновения, какой хочешь формы, подложка этих объектов должна быть одного цвета желательно черного. И собственно с помощью getPixel определяешь цвет подложки, если цвет пикселя черный, значит препятствие.

И ещё необходимо будет перевести зону проходимости в пиксельный вид, примерно так
Код:
var myBitmapData = new BitmapData(mypath._width, mypath._height, false, 0x000000);
myBitmapData.draw(mypath);
Цитата:
код смотрит касание только в загрузке игры а потом если зайдеш на это движением клавишами он не видит касания...
Код:
onEnterFrame

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

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

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


 


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


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