scene.js

/// <reference path="../../libs/phaser/phaser.min.js"/>

'use strict';
var BootScene = new Phaser.Class({
Extends: Phaser.Scene, initialize: function BootScene() { Phaser.Scene.call(this, {
key: 'Boot',
active: true // listening resize event;
}); },
init: function () {
console.log('init bootscene');
this.particles = {};
}, preload: function () {
this.load.image('sky', 'assets/space.jpg');
this.load.spritesheet('explode','assets/explode.png',{frameWidth:128,frameHeight:128})
}, create: function () {
// this.sound.play('hitbomb');
this.background = this.add.sprite(0, 0, 'sky').setOrigin(0, 0);
this.createExplode(); },
update:function(){
// console.log('bootscene update');
}, createExplode:function(){
//* single image;
// this.add.sprite(200,200,'explode',10);
this.anims.create({
key: 'explodeAnimation',
frames: this.anims.generateFrameNumbers('explode', { start: 0, end: 16, first: 0 }),
frameRate: 25,
repeat: 0
});
//* pool group
this.exploadGroup = this.add.group(); this.time.addEvent({
delay: 2500, //
repeat: -1,
callbackScope: this,
callback: this.spawnRandomExplode
});
},
spawnRandomExplode:function(){
let x = Phaser.Math.Between(10, this.sys.game.config.width);
let y = Phaser.Math.Between(10,this.sys.game.config.height);
// this.add.sprite(x,y,'explode').setScale(0.7).play('explodeAnimation');
let singleExplode = this.exploadGroup.get(x,y,'explode'); //* get to pool instead of create
singleExplode.setScale(0.7).play('explodeAnimation'); //* play animation;
singleExplode.setActive(true);
singleExplode.setVisible(true); // explosion lifespan
this.explosionTimeEvent = this.time.addEvent({
delay: 600, // delay 5s 删除 this.bomb;
repeat: 0,
callbackScope: this,
callback:function(){
this.exploadGroup.killAndHide(singleExplode);
//* this.explosionTimeEvent.remove(false);
}
}); }, });

效果预览地址:http://www.iFIERO.com/uploads...

更多游戏教学:http://www.iFIERO.com -- 为游戏开发深感自豪

Phaserjs3 对象池随机产生炸弹并销毁 -- Html网页游戏开发的更多相关文章

  1. Phaser3 对象池随机产生炸弹并销毁

    效果图 对象池 Object Pool scene.js /// <reference path="../../libs/phaser/phaser.min.js"/> ...

  2. Swift - 在界面上生成81个随机红,灰色圆点(SpriteKit游戏开发)

    下面是生成一个“围住神经猫”游戏的初始场景: 1,界面下方会生成9*9共81个圆点,同时圆点内部添加文本标签显示索引 2,默认圆点为灰色,每行随机取两个点变为红色 3,奇数行和偶数行有一定的错位,错位 ...

  3. 面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式

    上一篇这里描写叙述了一个关于差异数据在开发过程中的一个长处,这里来演示另外一个特点:单机开发之无缝切换到C/S模式 一般C/S模式都面临一个问题: 就是开发过程中的调试难题,由于涉及到client和服 ...

  4. cocos对象池的使用

    enemy.js cc.Class({ extends: cc.Component, properties: { enemySpeed: 0, //设置加速度 }, //初始化当前节点的y坐标 ini ...

  5. 对象池3(方法功能)PoolManager(控制)PoolTimeObject(时间管理)text01(调用)Destorys(销毁)

    1.对象池PoolManager namespace kernal { public class PoolManager : MonoBehaviour { //“缓冲池”集合 public stat ...

  6. JedisCluster中应用的Apache Commons Pool对象池技术

    对象池技术在服务器开发上应用广泛.在各种对象池的实现中,尤其以数据库的连接池最为明显,可以说是每个服务器必须实现的部分.   apache common pool 官方文档可以参考:https://c ...

  7. Java小对象的解决之道——对象池(Object Pool)的设计与应用

    一.概述 面向对象编程是软件开发中的一项利器,现已经成为大多数编程人员的编程思路.很多高级计算机语言也对这种编程模式提供了很好的支持,例如C++.Object Pascal.Java等.曾经有大量的软 ...

  8. 通用对象池ObjectPool的一种简易设计和实现方案

    对象池,最简单直接的作用当然是通过池来减少创建和销毁对象次数,实现对象的缓存和复用.我们熟知的线程池.数据库连接池.TCP连接池等等都是非常典型的对象池. 一个基本的简易对象池的主要功能实现我认为应该 ...

  9. common-pool2对象池(连接池)的介绍及使用

    我们在服务器开发的过程中,往往会有一些对象,它的创建和初始化需要的时间比较长,比如数据库连接,网络IO,大数据对象等.在大量使用这些对象时,如果不采用一些技术优化,就会造成一些不可忽略的性能影响.一种 ...

随机推荐

  1. 在vue中后台返回的文本包含标签时候解析为html代码

    1.数据格式: str=‘<p>11111</p>' 解析方式一: <p v-html="str">{{str}}</p> 解析方式 ...

  2. Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum)

    Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum) 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. ...

  3. xgboost的使用

    1.首先导入包 import xgboost as xgb 2.使用以下的函数实现交叉验证训练xgboost. bst_cvl = xgb.cv(xgb_params, dtrain, num_boo ...

  4. webgoat8百度云下载链接

    网络不好的很难下载,网上也没什么好用的下载链接,我就上传了百度网盘,有需要的兄弟自己下. 链接:https://pan.baidu.com/s/1plTxkZUhSZm9vA5GGzYmMQ 提取码: ...

  5. 【Linux开发】linux设备驱动归纳总结(三):4.ioctl的实现

    linux设备驱动归纳总结(三):4.ioctl的实现 一.ioctl的简介: 虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是 ...

  6. hbase的hue部署和使用

    1.组件版本信息 zookeeper hadoop hbase     hue           zookeeper-3.4.12 hadoop-3.0.3 hbase-2.1.5 4.4.0 2. ...

  7. 学习shell的第一天

    1.命令历史 作用:查之前使用的命令  关于命令历史的文件  每个用户家目录下面的 .bash_history  在关机的时候,会自动写入一次 (history -a  将内存中的命令历史写入文件)  ...

  8. MySql在win10上的安装(压缩版)

    一.下载: 二.下载zip版,免安装版的. 三.解压缩后,注意:文件夹名称不能包含[空格] C:\MySQL 四.增加环境变量 五.手动在安装目录  C:\MySQL 下新建一个my.ini写入以下内 ...

  9. ABC050D/ARC066D Xor Sum

    题目链接 题目大意 可表为 $(a \xor b, a + b)$ 的二元组有多少个? $a, b$ 满足下列约束条件: ① $a, b$ 是非负整数: ② $a + b \le N$,$N$ 是给定 ...

  10. CentOS 7 配置 kcptun 实现网站加速

    目的:shadowsocks+kcptun 实现vpn加速(shadowsocks,kcptun在同一台VPS上) 一.shadowsocks安装(参考  https://www.cnblogs.co ...