java游戏开发入门(十) -粒子特效

java游戏开发入门十 - 粒子特效

前言

  粒子效果,额,可能不算基础,可以先会了,后面精通…

编码

创建一个粒子发射器,并将粒子发射器添加到实体对象

/**
     * 创建玩家实体
     * @return 玩家实体
     */
    @Spawns("Player")
    public Entity newPlayer(SpawnData data){
        //引入Player图片资源
        var texture = texture("player.gif");
        var emitter = new ParticleEmitter();
        emitter.setMaxEmissions(Integer.MAX_VALUE);
        // 粒子数
        emitter.setNumParticles(50);
        emitter.setEmissionRate(0.6);
        // 粒子大小(最小值,最大值),创建的大小将是最小值(包括)和最大值(不包括)之间的随机值。
        emitter.setSize(1, 5);
        // 定义粒子大小如何随时间变化。
        emitter.setScaleFunction(i -> FXGLMath.randomPoint2D().multiply(0.2));
        // 定义粒子的过期时间
        emitter.setExpireFunction(i -> Duration.seconds(random(0.25, 2.5)));
        // 例子偏移方向
        emitter.setAccelerationFunction(() -> new Point2D(1,1));
        // 例子初始速度
        emitter.setVelocityFunction(i -> FXGLMath.randomPoint2D().multiply(random(1, 10)));
        // 例子初始位置(实体的相对坐标,0,0即实体的 x,y位置/ 30,50即实体的 x+30,y+50位置)
        emitter.setSpawnPointFunction(i-> new Point2D(30,60));
//        emitter.setColor(Color.BLUE);
        emitter.setStartColor(Color.BLUE);
        emitter.setEndColor(Color.RED);
        return FXGL.entityBuilder(data)
                // 声明设备类型
                .type(EntityType.PLAYER)
                // 将实体标记为可碰撞,并根据UI大小自动生成碰撞体积
                .collidable()
                // 添加粒子效果
                .with(new ParticleComponent(emitter))
                .viewWithBBox(texture)
                .build();
    }

效果图

粒子效果

完整代码

全部代码以后就不贴了,去github上看就好了

完整项目

https://github.com/lhDream/lhDreamGameDemo/tree/master/HelloWorld

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dan淡淡的心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值