所以我想在按下html定义的按钮时调用一个函数.问题是我无法访问/找到它,控制台记录错误"引用错误:函数未定义".
我的output.js(合并和编译的typescript)的精简版布局如下所示:
window.onload = function () {
var game = new SpaceGen.Game();
};
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
var SpaceGen;
(function (SpaceGen) {
var Game = (function (_super) {
__extends(Game, _super);
function Game() {
_super.call(this, 512, 640, Phaser.AUTO, 'content');
this.state.add('state_World', SpaceGen.World, false);
this.state.start('state_World');
}
return Game;
})(Phaser.Game);
SpaceGen.Game = Game;
})(SpaceGen …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Tiled 创建一个平台游戏来创建我的地图。我制作了地图并将其导出为 .json 对象。我可以让地图出现在我的游戏中,但是我的精灵掉进了我的地板。
我已经学习了几个小时的教程,似乎在阳光下尝试了一切,但没有运气。我什至在 Tiled 中创建了一个新的“碰撞”层。这是我所有的相关代码:
JSON:
{ "height":20,
"layers":[
{
"data":[491, 492, 493, 494, 495, 496, 497, 498, 499, 491, 492, 493, 494, 495, 496, 497, 498, 499, 491, 492, 493, 494, 495, 496, 497, 526, 527, 528, 529, 530, 531, 532, 533, 534, 526, 527, 528, 529, 530, 531, 532, 533, 534, 526, 527, 528, 529, 530, 531, 532, 561, 562, 563, 564, 565, 566, 567, 568, 569, 561, 562, 563, 564, 565, 566, 567, 568, …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码(这是一个简化的代码片段,以便使其更具可读性):
var player;
var box_tnt;
function create (){
this.physics.add.collider(player, box_tnt, hitTnt, null, this);
}
//the function hitTnt stop the game because the player died
function hitTnt (player, boxes){
this.physics.pause();
player.setTint(0xff0000);
player.anims.play('default');
gameOver = true;
textGameOver.setText('GAME OVER');
}
Run Code Online (Sandbox Code Playgroud)
当玩家击中炸弹时:玩家死亡;游戏结束
当玩家击中炸弹时:炸弹等待3秒然后爆炸!如果玩家距离太近,他就会死亡。但即使在阅读了论坛上的很多示例之后,我仍然很难使用计时器。我是 Phaser 的新手,所以到目前为止我还没有成功。
任何帮助将不胜感激,预先感谢您!
我知道有人问过这个问题,但仍然无法找到适合我的情况的解决方案。
我有一个文件,在其中定义了某些值,然后我要循环遍历它们。我在这部分代码中收到错误
preloadImages(){
this.load.setPath("./assets/images");
for (const key in STATIC.IMAGES) {
if (STATIC.IMAGES.hasOwnProperty(key)) {
this.load.image(STATIC.IMAGES[key], STATIC.IMAGES[key]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
投诉来自 STATIC.IMAGES[key] 调用。STATIC 来自一个文件
export const STATIC = {
SCENES: {
LOAD: "LOAD",
MENU: "MENU"
},
IMAGES: {
MENU_BG :"bg.png",
MENU_TITLE: "title.png",
MENU_PLAY: "play.png",
MENU_SETTINGS: "settings.png",
MENU_CREDITS: "credits.png",
MENU_SPEAKER: "speaker.png",
MENU_SPEAKER_MUTE: "speaker_mute.png"
},
SPRITES: {
LOOP: {
name: "loop.png",
size: 64
}
},
AUDIOS: {
BG_MUSIC: "airtone.mp3",
POP: "pop.mp3",
WOOSH: "woosh.mp3"
}};
Run Code Online (Sandbox Code Playgroud)
不确定我明白为什么会发生这种情况以及如何解决它。
我用phaser http://phaser.io/制作了一个非常简单的游戏,最多5个动画精灵和3个声音.我的游戏在我的计算机上完美运行但是当我使用PhoneGap 3.3.0时,它在我的Galaxy S3上的延迟(性能不佳).
我喜欢PhoneGap,因为你可以轻松上传带有html5游戏的zip并下载apk(无需额外的工作).就像用户不需要在手机上安装任何其他东西来玩我的游戏一样.
提供比PhoneGap更好的性能但仍然同样容易的东西,并且用户不需要额外安装任何东西?不想学习真正的android编程.虽然我打算使用移相器,但它应该只使用标准的html5(没有你需要学习的额外框架).
也应该可以在将来上传Google文件上的apk文件.
作为jQuery用户,我使用链接来自Google的远程库
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
这非常聪明,因为如果读者访问了另一个同样的网站,它已经被加载到浏览器缓存中.
当我发现Phaser时,我希望看到网络上的人也这样做
<script src="https://raw.githubusercontent.com/photonstorm/phaser/master/build/phaser.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
或任何图书馆主持人,但显然没有人这样做.
Phaser用户有没有这样做的原因?
我刚刚找到了一个名为phaser的html5游戏框架,它说这个框架仅支持PC浏览器和移动设备浏览器,前提是它们支持Html5。所以我写了一个示例作为教程,它在我的带有 Chrome 的电脑上运行良好,但是当我在 iPhone 上使用 Chrome 浏览器启动它时。它只是给出一个空白页,什么都没有。
这是代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Phaser - Making your first game, part 1</title>
<script type="text/javascript" src="js/phaser.min.js"></script>
<style type="text/css">
body {
margin: 0;
}
</style>
</head>
<body>
<script type="text/javascript">
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });
var score = 0;
var scoreText;
function preload() {
game.load.image('sky', 'assets/sky.png');
game.load.image('ground', 'assets/platform.png');
game.load.image('star', 'assets/star.png');
game.load.spritesheet('dude','assets/dude.png', 32,48);
game.add.sprite(0,0,'star');
}
var platforms;
function create() …Run Code Online (Sandbox Code Playgroud) 我正在尝试使Phaser JS项目上的所有声音静音,但是使用下面的方法无效。
game.sound.mute
Run Code Online (Sandbox Code Playgroud)
将Phaser.js项目中的所有声音静音的最佳方法是什么?
我已经看到了与我类似的其他问题的答案,通过 scene.start() 传递数据并使用 init 函数获取它。但我问的是不同的东西。
假设我在场景 A 上,它开始场景 B 并暂停。然后我对场景 B 进行一些计算,当我恢复它时,我想将该结果传递给场景 A。
有没有办法做到这一点?
正如标题所说。从“游戏”对象启动场景时,有没有办法停止所有正在运行的场景?
目前,当我game.scene.start(...)从场景对象外部调用时,什么也没有发生。我当前的解决方案是保留一个指向最新启动的场景的全局变量(在我的所有场景中,我使用create()类似的方法重置函数中的全局变量currentScene = this;),所以当我想启动一个新场景时,我调用currentScene.scene.start(...). 但显然这不可靠,因为我可能忘记currentScene在所有场景中重置我的全局变量(),等等......
编辑:
为了澄清我想要实现的目标:我正在制作一个带有几个场景和一些游戏对象的小型多人游戏。我有一个“套接字”模块,用于处理客户端和服务器之间的所有流量(我使用的是 socket.io)。我想做一些类似的事情:
this.socket.on('game_end', (data) => {
// Server decides when the game stops and sends an event to all clients.
// Here I need to stop the currently running scene (i.e. SceneInGame)
// and show the "game finished / results" scene.
this.game.scene.start('SceneGameEnd');
// ^ That doesn't work. SceneInGame keeps playing and SceneGameEnd doesn't start
});
Run Code Online (Sandbox Code Playgroud) 所以,我正在考虑制作《我的世界》/泰拉瑞亚方块照明
(就像有些瓷砖是深色的)
到目前为止,我看到的高级想法是“将天空块设置为最大光照级别,并为每个块减少x,通过平均光照级别获得光照级别”
所以我的问题主要是,我如何在移相器中实现这个?我需要给每个图块赋予值并计算它吗?
大家好,我只是想在一个类中执行一个方法而且它不起作用.我得到了"未捕获的TypeError:undefined不是函数"错误.
我正在调用其他函数,它运行良好,所以我不明白.我试图更改名称而没有.
我认为Phaser存在问题我正在使用但我不知道......
Bomb.prototype.collisionBlocs = function() {
if (!this.hasBounced) {
this.bounce();
this.hasBounced = true;
}
}
Bomb.prototype.bounce = function() {
if (this.direction == 'UP') {
this.direction = 'DOWN';
}
else if (this.direction == 'RIGHT') {
this.direction = 'LEFT';
}
else if (this.direction == 'DOWN') {
this.direction = 'UP';
}
else if (this.direction == 'LEFT') {
this.direction = 'RIGHT';
}
}
Run Code Online (Sandbox Code Playgroud) phaser-framework ×13
javascript ×9
html ×2
html5 ×2
typescript ×2
2d-games ×1
android ×1
animation ×1
cordova ×1
game-physics ×1
sprite-sheet ×1
tiled ×1
timer ×1