Просмотр полной версии : Движение персонажа
Люди, помогите пожалуйста!
Делаю небольшую игру. В центре рабочего поля находится персонаж. При щелчке мышкой в любую точку поля персонаж оказывается там. Как сделать чтобы было видно, что он именно перемещается туда, причём с постоянной скоростью. :confused:
http://xitri.com/2008/09/29/simple-engine-flash-game-top-view-part2.html
плюс еще обход препятствий.
Наверно, умная вещь.
Но это слишком сложно... для такого пользователя, как я
Хорошо. Вам нужно просто двигать персонажа в сторону мышки, когда щелкнули? Сейчас подумаю.
var posX;
var posY;
var step = 3
this.onMouseDown = function() {
posX = this._xmouse;
posY = this._ymouse;
};
this.onEnterFrame = function () {
var dx = posX-player._x;
var dy = posY-player._y;
var angle = Math.atan2(dy, dx);
var dist = Math.sqrt(dx*dx+dy*dy);
if (dist>step) {
tgtX = player._x+step*Math.cos(angle);
tgtY = player._y+step*Math.sin(angle);
var timeDx = tgtX-player._x;
var timeDy = tgtY-player._y;
direction = Math.atan2(timeDy, timeDx);
var dAngle = dAngleDegree(direction*180/Math.PI, player._rotation);
player._rotation += dAngle*.2;
player._x = tgtX;
player._y = tgtY;
}
};
function dAngleRadian(a1, a2) {
var da = a1-a2;
if (da>Math.PI) {
da = -Math.PI*2+da;
} else if (da<-Math.PI) {
da = Math.PI*2+da;
}
return da;
}
function dAngleDegree(a1, a2) {
var da = a1-a2;
if (da>180) {
da = -360+da;
} else if (da<-180) {
da = 360+da;
}
return da;
}
function degree(a) {
return a/Math.PI*180;
}
function radian(a) {
return a/180*Math.PI;
}
— это в кадр вставляйте. На сцене должен быть клип с instance name "player".
Или вам нужно еще проще?
Да нет, проще не надо, всё-таки я не такой глупый!
Только хочу узнать 2 вещи:
Какие коды отвечают за вращение и за замедление?
Добавлено через 30 секунд
Про вращение узнал сам
Добавлено через 1 минуту
А заодно и про замедление!
И в кого я такой умный?
Большое спасибо!
Добавлено через 45 часов 32 минуты
Добрый день!
Хочу спросить про ещё одну вещь в этой же теме:
Персонаж двигается в сторону мыши, всё нормально.
Но ещё нужно, чтобы в момент, когда он двигается, проигрывалась анимация движения, т. е. клип с персонажем переходил к другому кадру, например. А когда он закончит движение, анимация должна возвращаться в нач. состояние...
Как это сделать?
boris1029
21.01.2010, 19:43
добавь в код условие, при котором будет player.gotoAndPlay(...);
Смотрите здесь (http://xitri.com/2009/12/31/uafpug2009-platform-engine-source.html), как организовать персонажа. На третьем кадре презентации все хорошо показано.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.