Phaser3 场景Scene之间的传值 -- HTML网页游戏开发
一、首先当然得有至少有二个场景sceneA.js,sceneB.js
二、从场景A传值到场景B二种方法
1)通过事件this.events.emit('event key',{objKey:objValue});
从sceneA通过 ths.events.emit时传值到sceneB时有个需要特别注的事项就是,得把sceneB的 active设为 ture,否则因为 sceneB还未激活,是监听不到 events.on事件的!!!
2)通过场景启动this.scene.start('gameB key',{objKey:objValue});
具体详见代码:
HTML
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><meta http-equiv="X-UA-Compatible" content="ie=edge"><script src="libs/phaser/phaser.min.js"></script><script src="scripts/scenes/gameconfig.js"></script><script src="scripts/scenes/sceneA.js"></script><script src="scripts/scenes/sceneB.js"></script><title>iFIERO Games Tutorial</title><style>body {margin: 0;}canvas {display: block;margin: 0;position: relative;top: 0%;left: 0%;}</style>
</head><body><div id="game"></div>©Copyrigths By www.iFIERO.com
</body>
<script src="libs/jquery/jquery.min.js"></script>
</html>
sceneA.js
'use strict';
var SceneA = new Phaser.Class({Extends: Phaser.Scene,// 在整个工程中只会执行一次initialize: function BootScene() {Phaser.Scene.call(this, {key: 'sceneA',active: false // listening resize event;});},// 每次调用场景SceneA会执行一次;init: function () {},preload:function(){},create:function(){// 1. 从SCENEA emit gameCountDown事件,传送 {countDown:10} 对象到场景B sceneBthis.events.emit('gameCountDown',{countDown:10}); //* 事件KEY=>gameCountDown// 2.start方法传送this.scene.start('sceneB',{countDown:10}) //* 场景KEY=> sceneB},
});
sceneB.js
'use strict';
var SceneB = new Phaser.Class({Extends: Phaser.Scene,initialize: function BootScene() {Phaser.Scene.call(this, {key: 'sceneB',active: true // listening resize event;});},init: function (data) {//方法1. 引入sceneA 在初始化的时候就可以获得场景Scene传递的值;this.sceneA = this.scene.get('sceneA'); // sceneA's keyconsole.log("get data from sceneA:",data.countDown);},preload:function(){},create:function(){// 方法2.监听scene的事件 gameCountDownthis.sceneA.events.on('gameCountDown',function(data){console.log(data.countDown); });},
});
gameconfig.js
var game;
//* setDepth for every object;
var gameConfig = {depth:{player:1,}
}
// once the window loads...
window.onload = function () {// 接收 websocket;// config of the game;var config = {type: Phaser.AUTO,parent: 'game',width: 640, // don't window.innerWidth height: 512,physics: {default: 'arcade',arcade: {gravity: {y: 0},debug: false,}},//*** scenes used by the game// scene: [BootScene,PlayGameScene,UIScene]}game = new Phaser.Game(config);game.scene.add('sceneA', SceneA); //*** key,class */game.scene.add('sceneB', SceneB);window.focus();resize();window.addEventListener('resize', resize, false);
}function resize() {var canvas = document.querySelector('canvas');var windowWidth = window.innerWidth;var windowHeight = window.innerHeight;var windowRatio = windowWidth / windowHeight;var gameRatio = game.config.width / game.config.height;if (windowRatio < gameRatio) {canvas.style.width = windowWidth + 'px';canvas.style.height = (windowWidth / gameRatio) + 'px';} else {canvas.style.width = (windowHeight * gameRatio) + 'px';canvas.style.height = windowHeight + 'px';}}
结语: 用Phaserjs3 JavaScript框架 来开发HTML网页游戏,虽不复杂,但有道是『纸上得来终觉浅,绝知此事要躬行』,代码还是得亲自多码才行噢!
更多游戏教学:http://www.iFIERO.com -- 为游戏开发深感自豪
Phaser3 场景Scene之间的传值 -- HTML网页游戏开发相关推荐
- 走在网页游戏开发的路上(十)
页游资源管理 现在页游的规模越来越来大,游戏内容丰富,资源管理变得很重要.现在一款SNS页游的所有资源可达50M,MMO页游更高达几百M,不可能把资源放到一个文件里面.也不可能一次性加载完所有资源.按 ...
- 走在网页游戏开发的路上——页游资源管理
本文原创版权归 博客园 吴秦 所有,如有转载,请按如下方式详细标明原创作者及原文出处,以示尊重! 作者:吴秦 出处:http://www.cnblogs.com/skynet/ 本文基于署名 2.5 ...
- 走在网页游戏开发的路上(六)
Flash动画原理 --动画是将静止的画面变为动态的艺术.实现由静止到动态,主要是靠人眼的视觉残留效应.利用人的这种视觉生理特性可制作出具有高度想象力和表现力的动画影片. 0. 前言 像所有的动画显 ...
- Silverlight MMORPG网页游戏开发课程(Game Lesson):目录
[感谢 银光中国 提供本课程所有源码资源分流] 一次全新的开始,一次全新的构建与诠释.渴望在时空长廊中寻觅传说中光的起源,我决定用这部课程编写一首血脉喷张之进行曲.一年前,我一个人在战斗,前行,引导我 ...
- 大家快来玩转盘抽奖游戏(走在网页游戏开发的路上(七))
本文转自吴秦博客园博客,原文链接:http://www.cnblogs.com/skynet/archive/2011/06/15/2081106.html,如需转载请自行联系原作者 0. 前言 每逢 ...
- 走在网页游戏开发的路上
本文原创版权归 博客园 吴秦 所有,如有转载,请按如下方式详细标明原创作者及原文出处,以示尊重! 作者:吴秦 出处:http://www.cnblogs.com/skynet/ 本文基于署名 2.5 ...
- Silverlight MMORPG网页游戏开发课程[一期] 第九课:HUD与背景音乐
引言 征服玩家的不仅仅是创意,无比动人的视觉体验譬如精美的界面UI同样能让人倾慕,辅以优柔的旋律仿若一缕思绪让您身临其境而流连.深刻的第一印象无限大的冲击着玩家那份内敛的狂热,优秀的游戏作品价值将在欢 ...
- 我的网页游戏开发计划[7.03更新]
谨以此博记录我的游戏开发路程,进度将不定期在此文中更新. 想要开发一个网页游戏,下面是我的计划: 1.客户端计划用flash语言,所以需要先学习AS3和Flex. 目前AS3已经大致学完,对Flex也 ...
- 走在网页游戏开发的路上(八)
游戏中定时器的设计 0. 前言 在游戏开发中计时器/定时器是必须的,而且会在多处用到,如吃药补血每秒回10点且持续1分钟.玩家从一点到达另一点的过程需要多少时间.下面是定时器在七雄争霸中的几个应用场 ...
- 网页游戏开发入门教程
Posted by Gamelook on 2009.09.06 一.简单的程序框架.webgame程序构成: 三大部分. 第一是数据流程.第二是程序.第三是美术. 其中,数据流程包括了功能.也只有在 ...
最新文章
- VC6工程升级VS2013遇到的问题
- 中国联通华东云数据中心—电气培训
- python类库32[多进程同步Lock+Semaphore+Event]
- C语言基础语法总结(一)
- IDEA加载mysql 报:java.sql.SQLException: Unknown system variable ‘query_cache_size‘
- Qtum量子链AUR开发工具包即日上线
- leetcode46. 全排列(回溯)
- OpenEIM 从天上飘落下来
- 动态加载执行 JS 文件、对话框 confirm 方法
- pandas如何保存在excel里面_别找了,这是 Pandas 最详细教程了
- 根据error_log发现图片木马,被上传到图片文件夹
- arcgis api 3.X 实现加载百度矢量地图和百度影像地图
- 华为鸿蒙智能家居套件价格,华为全屋智能家居方案价格
- python stack unstack_Python之数据重塑
- wamp5 链接mysql_wamp5php环境中mysql使用和命令
- 如何修复网页被劫持、页面劫持的解决方法、详细
- 未连接到互联网 代理服务器出现问题,或者地址有误。
- 上网行为管理设备网桥部署方式
- Elastic Search 深入搜索
- uploadify上传图片
热门文章
- python 等号 什么编码_Python运算符与编码
- python变量使用的三个步骤_Python 动态生成多个变量
- unique函数_包含虚函数的类应该有虚析构函数或保护析构函数?
- Android远程过程通讯,Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(3)...
- c语言二级笔试试卷,二级C语言笔试试卷
- 在PHP中怎么判断字符串中没有,在php中搜索字符串中没有的字符
- 编译OpenJDK8:specified bound depends on the length of the source argument
- 谈因辐射拆基站,理在哪里?
- LINUX SHELL 中if的使用
- STL的vector