阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

每天学习多一点flash(36) as2.0 游戏设计笔记

Posted on 2012-02-15 21:28  阳光VIP  阅读(258)  评论(0编辑  收藏  举报

//定义个水果
var num:Number=20;
var number:Number=0;
_root.applemark=0;//标记苹果分数
_root.orangemark=0;//标记橙分数

function creatorange(){
name="orange"+num;
attachMovie("orange",name,num);
_root[name]._x=Math.random()*700;
_root[name]._rotation=Math.random()*4;

num++;
}///产生大量的橙

function creatapple(){
name="apple"+number;
attachMovie("apple",name,number);
_root[name]._x=Math.random()*700;
_root[name]._rotation=Math.random()*4;
number++;
}

a=setInterval(creatorange,3000);
b=setInterval(creatapple,2000);


//背景音乐///
var b_music:Sound=new Sound();
b_music.attachSound("blackgroudmusic");
b_music.start(0,10000000);

/////////////////////设置鱼儿动作//////////////
var t:Number=1;
fish.onEnterFrame=function(){
 if(fish._y<411)
 {t=-1;}
 if(fish._y>611)
 {t=1;}
 
if(fish.hitTest(player))
{player._x-=25;}
 
 
}
var tt:Number=1;
fish2.onEnterFrame=function(){
 if(fish2._y<468)
 {tt=-1;}
 if(fish2._y>611)
 {tt=1;}
 
}
var ttt:Number=1;
fish3.onEnterFrame=function(){
 if(fish3._y<400)
 {ttt=-1;}
 if(fish3._y>611)
 {ttt=1;}
 
}
 
 
 

///////////////墨鱼//////////////
var yu_speed:Number=1;
moyu.onEnterFrame=function(){
 
 if(moyu._x>652)
 {
  
   yu_speed=-1;
 }
 
 if(moyu._x<542)
 {
  
   yu_speed=1;
 }
 
}  

部分的代码。其中包括怎样产生大量物体的语句,例如

function creatapple(){
name="apple"+number;
attachMovie("apple",name,number);
_root[name]._x=Math.random()*700;
_root[name]._rotation=Math.random()*4;
number++;
}


b=setInterval(creatapple,2000);//利用时间间隔来产生这一个大量物体的过程。

在使用这些语句的时候在库里面选择连接,勾选第一帧输出,赋予一个id 号:

其次 就是赋予物体动作:以及发生碰撞的时候 会发生什么的状况,如分数增加,血瓶减少,声音产生,物体撤销,状态改变等等状况。


onClipEvent (enterFrame) {
 this._y+=4;
 
 if(this.hitTest(_root.player))
 {
  
  _root.applemark+=1;
  var p:Sound=new Sound();
  p.attachSound("aa");
  p.start(0,1);
  removeMovieClip(_parent);}
}

之后就需要对主角赋予一些操作的动作。

onClipEvent (load)
{
    function move(x, y)
    {
        setProperty("", _x, _x + Math.cos(_rotation * 3.141593E+000 / 180) * x);
        setProperty("", _y, _y + Math.sin(_rotation * 3.141593E+000 / 180) * x);
        if (!_root.map.hitTest(_x, _y + y, true))
        {
            setProperty("", _y, _y + y);
        }
    }
  
}
onClipEvent (enterFrame)
{
    if (Key.isDown(Key.UP) && !jump)
    {
       
        jump = true;
        vy = -13;
    }
    if (jump)
    {
        move(0, -5);
        move(0, vy++);
        if (vy ==18)
        {
            jump = false;
        } // end if
    } // end if
    if (1)
    {
        move(0, 5);
    
    } // end else if
    if (Key.isDown(Key.RIGHT))
    {
       
            move(5, 0);
        } // end if
     
 
    if (Key.isDown(Key.LEFT))
    {
    
            move(-5, 0);
        } // end if
   
   
}
算法 可以参考马里奥的flash 游戏来产生,这些都是很好练习,但如果把这些放到一个类去 应该会很好很好。

之后再设置 设置陷阱 加强啊游戏的好玩度。。 最后先做美工啦

源文件:

http://dl2.csdn.net/down4/20080210/10180244169.rar 

希望可以帮助大家对大家有点启发,写得不好,望能见谅!菜鸟 ————+夏天的树人上