flash游戏中控制角色惯性移动
pluginspage=http://www.macromedia.com/go/getflashplayer src=/upimg/media/6/1_070607071643.swf width=400 height=300 type=application/x-shockwave-flash wmode="transparent" document.document.form1.="hight">
首先做好角色的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();
       }
  }
这样一个惯性移动的角色就被创建了,用上、下、左、右键来控制试试吧
                    
                
                
            
        
浙公网安备 33010602011771号