游戏中控制角色惯性移动
惯性移动也是一些游戏中常用的移动手法此篇简单说一下惯性移动的制作方法
[FLASH=400,350]http://www.mhhf.net/teach/moves/moves.swf[/FLASH]
原文件下载首先做好角色的MC,然后在MC上编写如下脚本:
// 侦听键盘,如果没有按键则变量kpress的值为"没有按键"onClipEvent (load) {
myListener = new Object();
myListener.onKeyUp = function() {kpress = "没有按键"};
Key.addListener(myListener);}
// 设置初始值onClipEvent (load) {
// 移动x初速度var speed = 0;
// 移动y初速度
var yspeed = 0;
// 是否按键var kpress = "没有按键";
// 最大速度var maxs = 20+"公里/H";
// 碰壁函数function hitt() {
// 右边界if (_x>520) {speed = 0;x = 520;}
// 左边界if (_x<30) {speed = 0;_x = 30;}
// 下边界if (_y>370) {yspeed = 0;_y = 370;}
// 上边界if (_y<30) {yspeed = 0;_y = 30;}
}
}
// 设置最大速度
onClipEvent (enterFrame) {
if (speed>maxs) speed = maxs
;//水平速度大于最大速度的时候,水平速度等于最大速度
if (speed<-maxs) speed = -maxs
;//水平速度小于最大速度的负值时,水平速度等于最大速度的负值
if (yspeed>maxs) yspeed = maxs
;//垂直速度大于最大速度的时候,垂直速度等于最大速度
if (yspeed<-maxs) yspeed = -maxs;}
//垂直速度小于最大速度的负值时,垂直速度等于最大速度的负值// 设置移动onClipEvent (enterFrame) {_x += speed;_y += yspeed;
// 无按键时候的移动状态
if (kpress=="没有按键") {
if (speed>0) speed--;
if (speed<0) speed++;
if (yspeed>0) yspeed--;
if (yspeed<0) yspeed++;
hitt();
//调用碰壁函数}
// 水平
if (kpress=="水平移动") {
if (yspeed>0) yspeed--;
if (yspeed<0) yspeed++;}
// 垂直
if (kpress=="垂直移动") {
if (speed<0) speed++;
if (speed>0) speed--;}
// 设置按键if (Key.isDown(Key.LEFT)) {
kpress = "水平移动";
speed--;
hitt();
}
if (Key.isDown(Key.RIGHT)) {
kpress = "水平移动";
speed++;
hitt();
}
if (Key.isDown(Key.UP)) {
kpress = "垂直移动";
yspeed--;
hitt();
}
if (Key.isDown(Key.DOWN)) {
kpress = "垂直移动";
yspeed++;
hitt();
}
}
这样一个惯性移动的角色就被创建了,用上、下、左、右键来控制试试吧