首先做好角色的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();
}
}
这样一个惯性移动的角色就被创建了,用上、下、左、右键来控制试试吧
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |