美文网首页
phaser-游戏问题

phaser-游戏问题

作者: skoll | 来源:发表于2022-12-05 15:08 被阅读0次

计算场景内活动物体的数量

1 .星星收集完毕之后,也就是数量为0的时候。要发射一个子弹并且给出下一波星星,但是现在用matterJs发现没有返回场景内物体的方法。而且没有组的概念,没法方便的管理同一组类型的物体,虽然可以遍历场景内的全部物体来看出是否以已经收集完毕,但是如果场景内物体多的话,这种方法肯定不行,所以需要引入一个startCount的变量来标记
2 .某些物体不能完全反弹,弹一会就停下了。感觉是重力的问题,和重力没关系,就是没有完全反弹.最后会停住,奇怪.主要最后全都卡在角落里面了
3 .需要一个平衡的世界,没有任何东西,按照一个初始的速度进去,按理说应该是永远不会停下来的
4 .板子动的时候,玩家没有跟着板子动,静摩擦力设置不成功。

1 .感觉不是摩擦力的问题,而是板子动的方式不太对,现在板子是动画在动,其实应该是力推动他动
2 .身体是静止的,所以必须手动更新速度以使摩擦发挥作用
3 .板子想要移动,必须不是isStatic,还要忽略掉重力。但是这样的板子,别的东西上去,回立马把他压下来。还要求一个物体的受力变化,当他受到的力大于某个值,才会下降。板子才会断掉。或者需要先屏蔽,某个程度的力,对他不影响
4 .所以最后的解决是要把两个结合起来.首先摩擦力的触发是需要受力,所以要给平板一个力。其次平板在这里是一个static元素,添加力是不会变化的,真的板子发生运动是通过控制他的x位置来操作的。
5 .总结:摩擦力效果,需要力给,具体板子运动,需要你移动板子,其次享受摩擦力作用的元素,摩擦力要给他加到最大
this.count+=0.014

            const px=400+100*Math.sin(this.count)
            let f=px-this.platForm.x
            this.platForm.setVelocityX(f)
            this.platForm.x=px

5 .停掉之前的动画

扩展1

1 .人物加血条
2 .加命:1
3 .跳台会移动
4 .跳台随机会消失,这个比较简单:左右移动.
5 .星星加变大变小的动画
6 .子弹加粒子跟随动画,拖尾效果
7 .注意,这些例子很多的灵感都是看着另一个物理引擎里面的演示demo想到的.
8 .横版闯关

下一步

1 .大范围的UI怎么写
2 .

横版动画

1 .无限视觉。视差滚动怎么做
2 .

import Phaser from 'phaser';

class MyGame extends Phaser.Scene
{
    constructor ()
    {
        super();
        this.count=-1
        this.platForm=null
        this.cursors=null
        this.box=null
    }

    preload ()
    {
        this.load.image('platform', 'http://10.226.101.164:8081/sprites/platform.png');
        this.load.image('box', 'http://10.226.101.164:8081/sprites/box.png');
    }
      
    create ()
    {
        this.platForm=this.matter.add.image(400,350,'platform',null,{
            isStatic:true,
            restitution:0.4
        })

       this.box=this.matter.add.image(400,200,'box',null,{
            friction:1,
            frictionStatic:Infinity,
            slop:0.5
        })

        this.cursors=this.input.keyboard.createCursorKeys()
        console.log(this.platForm)
    }
    update(){
            this.count+=0.014

            const px=400+100*Math.sin(this.count)
            let f=px-this.platForm.x
            this.platForm.setVelocityX(f)
            this.platForm.x=px

            // 添加物体受力
            if(this.cursors.up.isDown){
                this.box.setVelocityY(-1.5)
            }

    }
}

var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    backgroundColor: '#1b1464',
    parent: 'phaser-example',
    physics: {
        default: 'matter',
        matter: {
           
        }
    },
    scene: MyGame
};

const game = new Phaser.Game(config);

相关文章

  • phaser-游戏问题

    计算场景内活动物体的数量 1 .星星收集完毕之后,也就是数量为0的时候。要发射一个子弹并且给出下一波星星,但是现在...

  • 游戏问题

    昨天因为游戏问题与儿子爆发一次冲突,事后冷静思考了一下,还是不能堵只能疏。 小孩喜欢打游戏,路人皆知,也是困扰很多...

  • 游戏问题

    晚上,看到侄子在简书上给十三写的一篇文章,感触良多。十三,一个十一岁的小学生,整日里沉迷于手机游戏,对其他与学...

  • 游戏技术支持

    如游戏遇到问题,请联系游戏里的客服解决问题,感谢配合

  • 游戏力学习

    今天听了游戏力第二课,用游戏力解决问题的核心思路就是两步。 A,将问题带到游戏区 B,用游戏解决问题 然后如何将问...

  • 拼图游戏和它的AI算法

    写了个拼图游戏,探讨一下相关的AI算法。拼图游戏的复原问题也叫做N数码问题。 拼图游戏 N数码问题 广度优先搜索 ...

  • 405 网游成瘾需要积极寻求治疗

    (一) “我没有任何问题,你们才有问题!” “放心,只要我愿意,我随时都能停止游戏!” 很多游戏成瘾者或游戏重度玩...

  • 区块链游戏是一个万亿级市场,真正成熟还需7年| 专访陈昊芝(下)

    今天我们面临的问题,不是什么游戏适合用区块链改造的问题,而是什么游戏在目前阶段场景比较合适的问题。理论上所有的游戏...

  • 把它当成奖励,而不要当成消遣!

    游戏没有错,有错的是你这个人! 游戏没有问题,有问题的是你这个人! 如果你把游戏当成一份奖...

  • 小学孩子最近迷上了游戏,怎么让孩子远离游戏?

    小学孩子最近迷上了游戏,怎么让孩子远离游戏? 要解决问题,应该了解问题的根源——孩子为什么会迷上游戏? 很简单,这...

网友评论

      本文标题:phaser-游戏问题

      本文链接:https://www.haomeiwen.com/subject/eswpfdtx.html