内容纲要

1.载入游戏资源,搭建游戏场景
猫里奥插图
2.实现玩家移动、跳跃
– 移动

 if(this.dir==0)
{
                   if(this.speedX>0)
                   {
                       this.speedX-=this.acce*dt;
                       if(this.speedX<=0)
                       {
                           this.speedX=0;
                       }
                   }
                   else if(this.speedX<0)
                   {
                       this.speedX+=this.acce*dt;
                       if(this.speedX>=0)
                       {
                           this.speedX=0;
                       }
                   }
               }
               else
               {
                    this.speedX+=(this.dir>0?1:-1)*this.acce*dt;
                    if(Math.abs(this.speedX)>this.maxSpeedX)
                    {
                        this.speedX=this.speedX>0?this.maxSpeedX:-this.maxSpeedX;
                    }
                    this.node.scaleX=this.dir;
}
               this.node.x+=this.speedX*dt;
  • 跳跃
if(this.gameOver==false)
{
                        if(this.up)
                        {
                            this.rb.linearVelocity==cc.v2(0,0);
                            this.getComponent(cc.AudioSource).play();
                            //this.rb.linearVelocity=cc.v2(0,700);
                             this.rb.applyLinearImpulse(cc.v2(0,403),this.rb.getWorldCenter());
                            var anim = this.getComponent(cc.Animation);
                            anim.play('jump');
                            this.up=false;
                        }
}

3.实现顶砖块生成道具或者敌人

 onBeginContact: function (contact, selfCollider, otherCollider)
    {
        if(otherCollider.node.name=='head')
        {
            //0:软砖 1:浮力砖 2:金币砖 3:空气砖(有金币) 4:硬砖 5:怪物砖 6:空气砖(毒蘑菇) 7:星星砖 8:下落砖
            if(this.type==0)
            {
                var ql1=cc.instantiate(this.qiuleft1);
                this.node.parent.addChild(ql1);
                ql1.x=this.node.x-5;
                ql1.y=this.node.y+5;

                var qr1=cc.instantiate(this.qiuright1);
                this.node.parent.addChild(qr1);
                qr1.x=this.node.x+5;
                qr1.y=this.node.y+5;

                var ql2=cc.instantiate(this.qiuleft2);
                this.node.parent.addChild(ql2);
                ql2.x=this.node.x-5;
                ql2.y=this.node.y-5;

                var qr2=cc.instantiate(this.qiuright2);
                this.node.parent.addChild(qr2);
                qr2.x=this.node.x+5;
                qr2.y=this.node.y-5;

                this.node.destroy();
            }
            else if(this.type==1)
            {
                //this.node.y+=50;
                this.rb.linearVelocity=cc.v2(0,300);
                this.scheduleOnce(function() {
                    // 这里的 this 指向 component
                    this.rb.linearVelocity=cc.v2(0,0);
                },0.2);
                //console.log('666');
            }
            else if(this.type==2)
            {
                var yz=cc.instantiate(this.yingzhuan);
                this.node.parent.addChild(yz);
                yz.position=this.node.position;

                var jb=cc.instantiate(this.jinbi);
                this.node.parent.addChild(jb);
                jb.x=this.node.x;
                jb.y=this.node.y+25;

                this.node.destroy();
            }
            else if(this.type==3)
            {
               var yz=cc.instantiate(this.yingzhuan);
               this.node.parent.addChild(yz);
               yz.position=this.node.position;

               var jb=cc.instantiate(this.jinbi);
               this.node.parent.addChild(jb);
               jb.x=this.node.x;
               jb.y=this.node.y+25;

               this.node.destroy();
            }
            else if(this.type==4)
            {
                this.getComponent(cc.AudioSource).play();
               //发出音效
            }
            else if(this.type==5)
            {
                cc.instantiate(this.aumogu);

                var yz=cc.instantiate(this.yingzhuan);
                this.node.parent.addChild(yz);
                yz.position=this.node.position;

                var bqg=cc.instantiate(this.baiqiuguai);
                this.node.parent.addChild(bqg);
                bqg.x=this.node.x;
                bqg.y=this.node.y+25;

                this.node.destroy();
            }
            else if(this.type==6)
            {
                var yz=cc.instantiate(this.yingzhuan);
                this.node.parent.addChild(yz);
                yz.position=this.node.position;

               this.schedule(function() {
                    // 这里的 this 指向 component
                    this.spawndumogu();
                }, 0.5);
                //this.getComponent(cc.RigidBody).active=false;
                this.node.scaleX=0.5;
                this.node.scaleY=0.5;
            }
            else if(this.type==7)
            {
                var yz=cc.instantiate(this.yingzhuan);
                this.node.parent.addChild(yz);
                yz.position=this.node.position;

                var xx=cc.instantiate(this.xingxing);
                this.node.parent.addChild(xx);
                xx.x=this.node.x;
                xx.y=this.node.y+25;

                this.node.destroy();
            }
            else if(this.type==8)
            {

                if(this.au==false)
                {
                    var aud= cc.instantiate(this.audie);
                    this.node.parent.addChild(aud);
                    this.au=true;
                }
                //this.node.group=2;
                otherCollider.node.parent.getComponent('Player').gameOver=true;
                otherCollider.node.parent.getComponent(cc.Animation).play('die');
                this.scheduleOnce(function() {
                 // 这里的 this 指向 component
                    cc.director.loadScene("Main");
                },2);

            }
        }

4.实现玩家攻击敌人

如果玩家踩到白球怪敌人,则敌人死亡。如果玩家踩到乌龟敌人,则乌龟会缩成壳,乌龟缩成壳时,玩家可以踢走乌龟壳。如果踢走的乌龟壳撞到白球怪敌人,可以使白球怪敌人死亡。

5.布置陷阱

游戏中布置了多个陷阱

6.游戏结束与过关

如果玩家碰到怪物或者中了陷阱,则玩家死亡,重头开始。如果玩家一路过关斩将,进入城堡,则玩家过关。

1 对 “猫里奥”的想法;

  1. Pingback: viagra

发表评论