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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Sep 2002
Адрес: Раша\Москоу
Сообщений: 98
Отправить сообщение для Генч с помощью ICQ
По умолчанию Физика "отскока" от препятсвия

Вот призадумался, смогём ли реализовать отскок от припятсвия неизвесной формы?.. .

хм..

Скажем есть мяч(_root.ball)
есть препятсвие (_root.smth)

чур я начну

onClipEvent (enterFrame) {

_x+=xSpeed;
_y+=ySpeed;

if(_root.ball.hitTest(_x,_y,1)
{
...


кто продолжит ?
__________________
Генч.

Старый 28.09.2002, 00:07
Генч вне форума Посмотреть профиль Отправить личное сообщение для Генч Найти все сообщения от Генч
  № 2  
Генч

Регистрация: Sep 2002
Адрес: Раша\Москоу
Сообщений: 98
Отправить сообщение для Генч с помощью ICQ
...чудиться мне что это не есть реально =\
__________________
Генч.

Старый 28.09.2002, 00:24
Генч вне форума Посмотреть профиль Отправить личное сообщение для Генч Найти все сообщения от Генч
  № 3  
Генч

Регистрация: Sep 2002
Адрес: Раша\Москоу
Сообщений: 98
Отправить сообщение для Генч с помощью ICQ
...хм. ради експеремента пихнул

xSpeed*=-1;
ySpeed*=-1;
}


- работает можно сказать. глючновато
__________________
Генч.

Старый 28.09.2002, 01:26
Генч вне форума Посмотреть профиль Отправить личное сообщение для Генч Найти все сообщения от Генч
  № 4  
Генч

Регистрация: Sep 2002
Адрес: Раша\Москоу
Сообщений: 98
Отправить сообщение для Генч с помощью ICQ
эхохо... сам шучу и сам смеюсь

маленький апгрэйт

if(_root.bort.hitTest(_x,_y,1))
{
if(_root.bort.hitTest(_x+_width*2,_y,1)||_root.bort.hitTest(_x-_width*2,_y,1)){
xSpeed*=-1;_x=x0;
}
if(_root.bort.hitTest(_x,_y+_height*2,1)||_root.bort.hitTest(_x,_y-_height*2,1)){
ySpeed*=-1;_y=y0;
}
__________________
Генч.

Старый 28.09.2002, 20:16
TTS вне форума Посмотреть профиль Отправить личное сообщение для TTS Найти все сообщения от TTS
  № 5  
TTS
 
Аватар для TTS

Регистрация: Jan 2002
Сообщений: 1,323
Я бы на твоём месте создал бы клип размером с точку, прохиттестил бы препятствие и оно перестало бы быть "перпятствием неизвестной формы".
Хотя на самом деле я бы придумал более оптимальный алгоритм прощупывания

Старый 28.09.2002, 22:06
Генч вне форума Посмотреть профиль Отправить личное сообщение для Генч Найти все сообщения от Генч
  № 6  
Генч

Регистрация: Sep 2002
Адрес: Раша\Москоу
Сообщений: 98
Отправить сообщение для Генч с помощью ICQ
я придумал более оригигинальный способ, но не получилось довисти до ума...
что то было типа


for(i=0;i<=360;i+=20){
ii=i*(Math.PI/180);
if(_root.ball.hitTest(_x+Math.sin(ii)*maxspeed){
_x+=Speed*Math.sin(ii);
}
_root.ball.hitTest(_y+Math.cos(ii)*maxspeed){_y+=Speed*Math.cos(ii);
}
}
этот код 99.99% не работает. это так чтоб идею передать.
мож каво наведет на мысли?
__________________
Генч.

Старый 30.09.2002, 02:23
TTS вне форума Посмотреть профиль Отправить личное сообщение для TTS Найти все сообщения от TTS
  № 7  
TTS
 
Аватар для TTS

Регистрация: Jan 2002
Сообщений: 1,323
Я тут поэкспериментировал... Всё не так просто. Реальный хит будет только тогда, когда
(bort.hitTest(x,y,1) && ball.hitTest(x,y,1))==true
причем именно x,y, а не _x,_y. Так что if(ball.hitTest(bort)) надо прощупывать каким местом ball какое место bortа зацепил (если зацепил, конечно).
__________________
ВКЛЮЧИ МОЗГИ!!!
Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin

Старый 30.09.2002, 10:32
Wolodia вне форума Посмотреть профиль Отправить личное сообщение для Wolodia Найти все сообщения от Wolodia
  № 8  
Wolodia

Регистрация: Mar 2002
Адрес: и не проживаЄт
Сообщений: 58
Tip в Flash MX Tutorials|Maze

Возможность FlashMX



onClipEvent (enterFrame) {
if (_root.started && _root._currentframe==1) {
with (_root.square) {
//
// keyboard controls
if (Key.isDown(Key.DOWN)) {
_y += 1;
}
if (Key.isDown(Key.UP)) {
_y -= 1;
}
if (Key.isDown(Key.LEFT)) {
_x -= 1;
}
if (Key.isDown(Key.RIGHT)) {
_x += 1;
}
//
// detect if edges of the player square are colliding with the maze walls
if (walls.hitTest(getBounds(_root).xMax, _y, true)) {
_x -= 1;
}
if (walls.hitTest(getBounds(_root).xMin, _y, true)) {
_x += 1;
}
if (walls.hitTest(_x, getBounds(_root).yMax, true)) {
_y -= 1;
}
if (walls.hitTest(_x, getBounds(_root).yMin, true)) {
_y += 1;
}
//
// detect if maze is finished
if (_root.goal.hitTest(_x, getBounds(_root).yMax, true)) {
_root.gotoandstop(3);
}
}
}
}

Старый 30.09.2002, 12:48
TTS вне форума Посмотреть профиль Отправить личное сообщение для TTS Найти все сообщения от TTS
  № 9  
TTS
 
Аватар для TTS

Регистрация: Jan 2002
Сообщений: 1,323
Ха!.. getBounds... Шарик у нас, ШАРИК. И препятствие НЕИЗВЕСТНОЙ формы.
__________________
ВКЛЮЧИ МОЗГИ!!!
Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin

Старый 30.09.2002, 19:33
Генч вне форума Посмотреть профиль Отправить личное сообщение для Генч Найти все сообщения от Генч
  № 10  
Генч

Регистрация: Sep 2002
Адрес: Раша\Москоу
Сообщений: 98
Отправить сообщение для Генч с помощью ICQ
2tss:
хм.. чёта я уже не соображаю ничо %\\
вощм мысль упиралась в то что - используеца максСпид,
по этму сразу везде вокруд хиттест оказаца не может, а может скажем только сверху, тода от 190 скажем до 350 градусов - будит Хит, оттуда и вычислица. т.е. это и получаеца - каким местом зацепил
__________________
Генч.

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

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

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


 


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


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