Просмотр полной версии : Стрельба из пушки (cannon)
Здраствуйте, такой вопрос:
Как сделать стрельбу из пушки чтобы на пулю действовала сила гравитации? Вот как сдесь (http://play.yandex.ru/game.xhtml?game_id=73)
первый пример смотрите (http://ru.wikipedia.org/wiki/Олимпиадные_задачи_по_физике)
Что то мне непомогло :((
Там с двумя телами, и толком непонятно как указать вектор ускорения.... А у вас случайно нет примера такой програмы?
Psycho Tiger
12.06.2008, 13:41
Логика:
Заводим переменную ymov
В каждом кадре _y клипа += ymov
После этого в каждом кадре ymov+=1 (1 - гравитация)
При выстреле ymov=-20 (ибо координаты первернуты по отношению к декартовым) 20 - начальная сила выстрела.
ну это ведь только гравитация... а как сделать чтобы он летел куда то как в этой игре (http://play.yandex.ru/game.xhtml?game_id=73)
Psycho Tiger
12.06.2008, 20:23
Его скорость по _х не изменяется.
Прибавь к той логике сверху _x+=xmov в каждом кадре.
Как крутить голову:
Рисуем прямоугольный треугольник, один катет ymov, другой xmov. Нам нужен тангенс угла, значит
Math.atan2(ymov,xmov)*180/Math.Pi
vitlance
12.06.2008, 22:57
gravity = 3;
bullet.vector = {x:0,y:0};
onEnterFrame = function() {
bullet._x += bullet.vector.x;
bullet._y -= bullet.vector.y;
bullet.vector.x *= .96;
bullet.vector.y *= .96;
bullet.vector.y -= gravity;
bullet._rotation = Math.atan2(bullet.vector.x, bullet.vector.y)/(Math.PI/180);
}
// Сообщаем любой вектор
bullet.onRelease = function () {
bullet.vector = {x:-20,y:10};
};
Psycho Tiger
13.06.2008, 14:25
Пардон, не согласен.
bullet._rotation = Math.atan2(bullet.vector.x, bullet.vector.y)/(Math.PI/180);
Math.atan2(y,x) - значит,
Math.atan2(bullet.vector.y,bullet.vector.x);
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.