Phaserjs3 对象池随机产生炸弹并销毁 -- Html网页游戏开发
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网页游戏开发的更多相关文章
- Phaser3 对象池随机产生炸弹并销毁
效果图 对象池 Object Pool scene.js /// <reference path="../../libs/phaser/phaser.min.js"/> ...
- Swift - 在界面上生成81个随机红,灰色圆点(SpriteKit游戏开发)
下面是生成一个“围住神经猫”游戏的初始场景: 1,界面下方会生成9*9共81个圆点,同时圆点内部添加文本标签显示索引 2,默认圆点为灰色,每行随机取两个点变为红色 3,奇数行和偶数行有一定的错位,错位 ...
- 面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
上一篇这里描写叙述了一个关于差异数据在开发过程中的一个长处,这里来演示另外一个特点:单机开发之无缝切换到C/S模式 一般C/S模式都面临一个问题: 就是开发过程中的调试难题,由于涉及到client和服 ...
- cocos对象池的使用
enemy.js cc.Class({ extends: cc.Component, properties: { enemySpeed: 0, //设置加速度 }, //初始化当前节点的y坐标 ini ...
- 对象池3(方法功能)PoolManager(控制)PoolTimeObject(时间管理)text01(调用)Destorys(销毁)
1.对象池PoolManager namespace kernal { public class PoolManager : MonoBehaviour { //“缓冲池”集合 public stat ...
- JedisCluster中应用的Apache Commons Pool对象池技术
对象池技术在服务器开发上应用广泛.在各种对象池的实现中,尤其以数据库的连接池最为明显,可以说是每个服务器必须实现的部分. apache common pool 官方文档可以参考:https://c ...
- Java小对象的解决之道——对象池(Object Pool)的设计与应用
一.概述 面向对象编程是软件开发中的一项利器,现已经成为大多数编程人员的编程思路.很多高级计算机语言也对这种编程模式提供了很好的支持,例如C++.Object Pascal.Java等.曾经有大量的软 ...
- 通用对象池ObjectPool的一种简易设计和实现方案
对象池,最简单直接的作用当然是通过池来减少创建和销毁对象次数,实现对象的缓存和复用.我们熟知的线程池.数据库连接池.TCP连接池等等都是非常典型的对象池. 一个基本的简易对象池的主要功能实现我认为应该 ...
- common-pool2对象池(连接池)的介绍及使用
我们在服务器开发的过程中,往往会有一些对象,它的创建和初始化需要的时间比较长,比如数据库连接,网络IO,大数据对象等.在大量使用这些对象时,如果不采用一些技术优化,就会造成一些不可忽略的性能影响.一种 ...
随机推荐
- C#编程 线程,任务和同步(2) 开启线程
创建线程的几种方法: 1 异步委托 创建线程的一种简单方式是定义一个委托,并异步调用它. 委托是方法的类型安全的引用.Delegate类 还支持异步地调用方法.在后台,Delegate类会创建一个执行 ...
- @lazy注解
默认情况下,Spring会在应用程序上下文的启动时创建所有单例bean 主要针对单实例 Bean ,容器启动时不创建对象,仅当第一次使用Bean的时候才创建 @Lazy @Bean public Pe ...
- 【STM32】NVIC中断优先级管理
(1)NVIC中断优先级分组 1>,CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且 具有256级的可编程中断设置. 2>,STM32F4并没有使用CM4的内核 ...
- Xtrabackup innobackupex
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工. Xtrabackup中主要包含两个工具 ...
- List是有序的Set是无序的吗? List和Set对比
import java.util.*; /* * List和Set对比 * */ public class ListVSSet { public static void main(String[] a ...
- servlet_cdi自动注入
@WebServlet("/cdiservlet")//url映射,即@WebServlet告诉容器,如果请求的URL是"/cdiservlet",则由NewS ...
- Vue的快速入门
1 环境准备 1 下载安装Node 地址https://nodejs.org/en/download/ 完成后通过cmd打开控制台输入node -v 可以看到版本信息 2 通过该node自带的npm ...
- 给Repater增加等号
//不改变数据结构的情况下,增加行号.对Application服务器压力增大,减少DB服务器压力. protected void repShow_ItemDataBound(object sen ...
- 分布式的几件小事(五)dubbo的spi思想是什么
1.什么是SPI机制 SPI 全称为 Service Provider Interface,是一种服务发现机制. SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实 ...
- Linux上ssh免秘钥互登
两台机器分别为:master:192.168.1.10sever1:192.168.1.20 1.检查机器名和连通性 a.查看/etc/hostname [root@master master]# m ...