侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Phaser.js开发-愤怒的小鸟(下)

2024-05-07 星期二 / 0 评论 / 0 点赞 / 54 阅读 / 3173 字

通过上篇文章的学习,我们已经能通过键盘来控制小鸟,包括小鸟碰撞是否超出窗口,以及管道循环,还有分数面板的检测,接下来我们继续往下进行。 update: function() { //如果

通过上篇文章的学习,我们已经能通过键盘来控制小鸟,包括小鸟碰撞是否超出窗口,以及管道循环,还有分数面板的检测,接下来我们继续往下进行。

update: function() {        //如果小鸟超出窗口,重置游戏        if (this.bird.inWorld == false)            this.restart_game();         // 碰撞与接触感应物理引擎,小鸟跟管道 ,重置游戏        this.game.physics.overlap(this.bird, this.pipes, this.restart_game, null, this);          },

这里面的overlap是指,仅仅检测是否碰撞,并且分别给定了三个对象。

在这个游戏里面我们是用键盘事件控制小鸟,所以我们要检测每次按空格时,调用的函数,从而获得小鸟的碰撞感应,

jump: function() {        // 检测小鸟碰撞 获取下降高度 告诉你撞管子了        this.bird.body.velocity.y = -350;    },

就想描述一样,当小鸟撞击的时候,高度直接为-350,往下来,如果撞击了=game over,这个是必然事件。哈哈,所以我们往下来看看

 // 游戏从新开始,    restart_game: function() {        //移除对象        this.game.time.events.remove(this.timer);       //从新开始游戏        this.game.state.start('main');    },

这里面的移除对象,移除的是上面的时钟对象(循环制造管道),就是不让他继续游戏了!

之后从新开始游戏,

从现在开始我们将给管道进行添加,PS(刚刚一直在循环管道,但是管道的具体位置并没有提到)

// 添加管道的循环    add_one_pipe: function(x, y) {        // 获取第一组管道        var pipe = this.pipes.getFirstDead();        // 设置管道的X Y位置        pipe.reset(x, y);         // 添加管道的X轴速度精灵        pipe.body.velocity.x = -200;                        // 设置其余管道的不可见        pipe.outOfBoundsKill = true;    },

上面的代码实说,我第一组管道的制作方法,以及管道速度,兄弟管道(其余的管道)不可以看到

// 添加随机上下管道    add_row_of_pipes: function() {        var hole = Math.floor(Math.random()*5)+1;        //        for (var i = 0; i < 8; i++)            if (i != hole && i != hole +1)                 this.add_one_pipe(400, i*60+10);               this.score += 1;		//分数更新统计        this.label_score.content = this.score;  		//分数结果,结束    },};//添加游戏画布,游戏开始game.state.add('main', game_state.main);  game.state.start('main'); 

这是本文章最后的结尾,然而这仅仅只是Phaser.js的一小部分,想更多的了解 可以让我们一起沟通,学习进步

最后提供给大家这个游戏下载的地址 : http://git.oschina.net/8946a/bird_-jumping 

广告 广告

评论区