kolotun
23.01.2007, 14:26
около полутора лет не писал на ЭкшенСкрипте и вот столкнулся со следующей проблемой, достаточно глупой, но тем не менее застопорившей весь рабочий процесс
необходим объект на сцене который бы поворачивался при нажатии клавиш влево-вправо, и двигался с элементарным трением вперед.
итак код номер 1(написанный мною)
_root.roamer.cSpeed=5
_root.roamer.cFriction=0.7
_root.roamer.onEnterFrame=function(){
if(Key.isDown(Key.LEFT)){
dir-=5
} else if(Key.isDown(Key.RIGHT)){
dir+=5
} else if(Key.isDown(Key.UP)){
this.cSpeed=4
}
xIncr = Math.cos(dir*Math.PI/180)*this.cSpeed
yIncr = Math.sin(dir*Math.PI/180)*this.cSpeed
this._x-=xIncr
this._y-=xIncr
this._rotation=dir
this.cSpeed*=this.cFriction
}
)
и соответсвенно код стыренный из Нета
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
speed += 2;
}
if (Key.isDown(Key.DOWN)) {
speed += -2;
}
if (Key.isDown(Key.RIGHT)) {
dir += 15;
}
if (Key.isDown(Key.LEFT)) {
dir += -15;
}
xspeed = Math.cos(dir*Math.PI/180)*speed;
yspeed = Math.sin(dir*Math.PI/180)*speed;
_x += xspeed;
_y += yspeed;
_rotation = dir;
}
причем при общем сходстве, мой код работает некорректно,
а использовать OnClipEvent как то стрёмно,
может ктонить ответит - отчего такое происходит и как лечиццо?
необходим объект на сцене который бы поворачивался при нажатии клавиш влево-вправо, и двигался с элементарным трением вперед.
итак код номер 1(написанный мною)
_root.roamer.cSpeed=5
_root.roamer.cFriction=0.7
_root.roamer.onEnterFrame=function(){
if(Key.isDown(Key.LEFT)){
dir-=5
} else if(Key.isDown(Key.RIGHT)){
dir+=5
} else if(Key.isDown(Key.UP)){
this.cSpeed=4
}
xIncr = Math.cos(dir*Math.PI/180)*this.cSpeed
yIncr = Math.sin(dir*Math.PI/180)*this.cSpeed
this._x-=xIncr
this._y-=xIncr
this._rotation=dir
this.cSpeed*=this.cFriction
}
)
и соответсвенно код стыренный из Нета
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
speed += 2;
}
if (Key.isDown(Key.DOWN)) {
speed += -2;
}
if (Key.isDown(Key.RIGHT)) {
dir += 15;
}
if (Key.isDown(Key.LEFT)) {
dir += -15;
}
xspeed = Math.cos(dir*Math.PI/180)*speed;
yspeed = Math.sin(dir*Math.PI/180)*speed;
_x += xspeed;
_y += yspeed;
_rotation = dir;
}
причем при общем сходстве, мой код работает некорректно,
а использовать OnClipEvent как то стрёмно,
может ктонить ответит - отчего такое происходит и как лечиццо?