![]() |
|
||||||||||
|
|||||||
| Результаты опроса: Создаете ли вы игры на Flash | |||
| Да. Уже Научился |
|
30 | 78.95% |
| Нет. |
|
8 | 21.05% |
| Голосовавшие: 38. Вы ещё не голосовали в этом опросе | |||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1.3 20.07.10]
Регистрация: Jul 2010
Сообщений: 24
|
//*****Переменные***** var speed:Number = 0; var maxSpeed:Number = 5 var gradus:Number = 0; var G:Number = 3; var radian:Number = (gradus * Math.PI)/180; var speedX:Number = speed * Math.cos(radian); var speedY:Number = speed * Math.sin(radian); var a:Number = 0.4;//Ускорение var friction:Number = 0.97; //*****Переменные***** //***Координаты*** MyCar_mc.x = 100; MyCar_mc.y = 100; //****Маркеры***** var up:Boolean; var down:Boolean; var left:Boolean; var right:Boolean; //****Маркеры***** addEventListener (Event.ENTER_FRAME, moveMyCar_mc); function moveMyCar_mc (e:Event):void { if (up) { speed+=a&&speed<maxSpeed; } if (down) { speed-=a; //speed = -1; } if (left) { gradus = gradus - G;//MyCar_mc.x -= speed;//MyCar_mc.x = MyCar_mc.x - speed;//speedX -= a; } if (right) { gradus = gradus + G;//MyCar_mc.x += speed;//MyCar_mc.x = MyCar_mc.x + speed;//speedX -= a; } MyCar_mc.rotation = gradus; speedX = speedX * friction; speedY = speedY * friction; MyCar_mc.x = MyCar_mc.x + speedX; MyCar_mc.y = MyCar_mc.y + speedY; //****Условия******* } //***********************Клавиша нажата****************** stage.addEventListener (KeyboardEvent.KEY_DOWN, key_down); function key_down (e:KeyboardEvent):void { //****Условия******* if (e.keyCode == 38) { up = true; } if (e.keyCode == 40) { down = true; } if (e.keyCode == 37) { left = true; } if (e.keyCode == 39) { right = true; } //****Условия******* } //***********************Клавиша отпущена**************** //***********************Клавиша нажата****************** stage.addEventListener (KeyboardEvent.KEY_UP, key_up); function key_up (e:KeyboardEvent):void { //****Условия******* if (e.keyCode == 38) { up = false; } if (e.keyCode == 40) { down = false; } if (e.keyCode == 37) { left = false; } if (e.keyCode == 39) { right = false; } //****Условия******* } //***********************Клавиша отпущена**************** //*****Переменные***** var speed:Number = 0; var gradus:Number = 0; var G:Number = 3; var radian:Number = (gradus * Math.PI)/180; var speedX:Number = speed * Math.cos(radian); var speedY:Number = speed * Math.sin(radian); var a:Number = 0.4;//Ускорение var friction:Number = 0.97; //*****Переменные***** //***Координаты*** MyCar_mc.x = 100; MyCar_mc.y = 100; //****Маркеры***** var up:Boolean; var down:Boolean; var left:Boolean; var right:Boolean; //****Маркеры***** addEventListener (Event.ENTER_FRAME, moveMyCar_mc); function moveMyCar_mc (e:Event):void { if (up) { speedY = speedY - a;//MyCar_mc.y -= speed;//MyCar_mc.y = MyCar_mc.y - speed; //speedY -= a; } if (down) { speedY = speedY + a;//MyCar_mc.y += speed;//MyCar_mc.y = MyCar_mc.y + speed;//speedY += a; } if (left) { gradus = gradus - G;//MyCar_mc.x -= speed;//MyCar_mc.x = MyCar_mc.x - speed;//speedX -= a; } if (right) { gradus = gradus + G;//MyCar_mc.x += speed;//MyCar_mc.x = MyCar_mc.x + speed;//speedX -= a; } MyCar_mc.rotation = gradus; speedX = speedX * friction; speedY = speedY * friction; MyCar_mc.x = MyCar_mc.x + speedX; MyCar_mc.y = MyCar_mc.y + speedY; //****Условия******* } //***********************Клавиша нажата****************** stage.addEventListener (KeyboardEvent.KEY_DOWN, key_down); function key_down (e:KeyboardEvent):void { //****Условия******* if (e.keyCode == 38) { up = true; } if (e.keyCode == 40) { down = true; } if (e.keyCode == 37) { left = true; } if (e.keyCode == 39) { right = true; } //****Условия******* } //***********************Клавиша отпущена**************** //***********************Клавиша нажата****************** stage.addEventListener (KeyboardEvent.KEY_UP, key_up); function key_up (e:KeyboardEvent):void { //****Условия******* if (e.keyCode == 38) { up = false; } if (e.keyCode == 40) { down = false; } if (e.keyCode == 37) { left = false; } if (e.keyCode == 39) { right = false; } //****Условия******* } //***********************Клавиша отпущена****************
__________________
Ну что с этим делать Последний раз редактировалось iNils; 27.07.2010 в 12:22. |
|
|||||
|
Регистрация: Dec 2008
Адрес: Новосибирск
Сообщений: 30
|
Может поможет в освоении такая информация. Есть неплохой блог http://xitri.com/. Там есть множество примеров эффектов анимации и использование в анимации actionscript. Там же пример игры-парковки с исходниками и с описанием формул расчета, правда на as2. Думаю поможет в освоении игровой физики
|
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
dkrstudio, на сколько мне видится, у тебя две проблемы. Это то что ты не знаешь что надо писать, и не знаешь как надо писать.
Давай по порядку. Если пишешь программу то тебе надо в голове понимать ее алгоритм, если ты этого не понимаешь то очень сложно помоч, по этому сначала надо разобраться. Понимаешь ли ты как должна рассчитываться физика? (По каким законом машина движеться) Поступал ли ты в тех ВУЗ? Просто при поступлении в тех ВУЗ, половина задач именно на динамику. Еще вопрос, сам ли ты писал тот код который ты сюда вставляешь? Понимаешь ли ты этот код? |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Да вопрос понять невозможно. Соответственно и ответить. Ну а если на человеческом проблемы с языком (ладно там грамматика, хотя я бы стрелял), то что говорить о as3?
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 110
|
Цитата:
Если вы не понимаете что написано у вас в коде, ничего не будет ездить как надо, разве что случайно) Что по вашему значит "разложить скорость", проекция вектора на направление? x = v*cos(a), y = v*sin(a), где v - скорость, a - ее угол с осью х. |
|
|||||
|
[+1.3 20.07.10]
Регистрация: Jul 2010
Сообщений: 24
|
Почему не видно мой аватар. *ну что тут я могу поделать*.
Вобщем код который изначально не мой. я его просто сразу разобрал и быстро понял почему так. потом пошло поехало. Теперь я снова в нем разобрался. Спасибо всем. и не пугайте так новичков. тема движения и физики весьма сложная. Думаю пора хаканчивать этот топик. тему форума. Если кто в дальнейшем будет читать этот топик или как правильно я не знаю. Смортите на синтаксис и на названия переменных. и не пугайтесь! если в продолжение По названию темы будет вопрос про соприкосновения с другими обьетками на сцене то в as3 есть пару методов все на условиях if else. вобщем это основы. Учитесь создовать классы но прежде тестируйте все функции *если можно отнести движение к ним* отдельно и соединяйте готовые СВОИ сто раз разобранные и понятные коды Всем спасибо.
__________________
Ну что с этим делать |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:32. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| hittestobject , объекты на сцене |
|
|