标签: phaser-framework

如何在我的打字稿生成的js中调用函数

所以我想在按下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)

html javascript typescript phaser-framework

1
推荐指数
1
解决办法
2562
查看次数

使用 JSON 和 Tiled 在 Phaser 中创建碰撞层

我正在尝试使用 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)

game-physics 2d-games tiled phaser-framework

1
推荐指数
2
解决办法
3878
查看次数

在 Phaser 中动画尺寸不等的 spritesheet

我有精灵表: 在此处输入图片说明

正如您在此处看到的,不同的框架具有不同的尺寸。而且我不知道如何从不同大小的帧制作动画。请帮帮我。

javascript animation sprite-sheet phaser-framework

1
推荐指数
1
解决办法
1619
查看次数

Phaser:如何使用从 0 到 3 的简单计时器

我正在使用以下代码(这是一个简化的代码片段,以便使其更具可读性)

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 的新手,所以到目前为止我还没有成功。

任何帮助将不胜感激,预先感谢您!

javascript timer game-development phaser-framework

1
推荐指数
1
解决办法
4929
查看次数

元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型 - 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)

不确定我明白为什么会发生这种情况以及如何解决它。

javascript typescript phaser-framework

1
推荐指数
1
解决办法
1521
查看次数

简单如PhoneGap但更快的apk文件(更好的性能)?

我用phaser http://phaser.io/制作了一个非常简单的游戏,最多5个动画精灵和3个声音.我的游戏在我的计算机上完美运行但是当我使用PhoneGap 3.3.0时,它在我的Galaxy S3上的延迟(性能不佳).

我喜欢PhoneGap,因为你可以轻松上传带有html5游戏的zip并下载apk(无需额外的工作).就像用户不需要在手机上安装任何其他东西来玩我的游戏一样.

提供比PhoneGap更好的性能但仍然同样容易的东西,并且用户不需要额外安装任何东西?不想学习真正的android编程.虽然我打算使用移相器,但它应该只使用标准的html5(没有你需要学习的额外框架).

也应该可以在将来上传Google文件上的apk文件.

html5 android cordova phaser-framework

0
推荐指数
1
解决办法
1796
查看次数

直接从GitHub调用phaser.min.js是一个坏主意吗?

作为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用户有没有这样做的原因?

browser-cache phaser-framework

0
推荐指数
1
解决办法
469
查看次数

如何使用phaser让html5游戏在移动设备浏览器上运行?

我刚刚找到了一个名为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)

html javascript mobile-safari phaser-framework

0
推荐指数
1
解决办法
3831
查看次数

Phaser JS-如何使声音静音?

我正在尝试使Phaser JS项目上的所有声音静音,但是使用下面的方法无效。

game.sound.mute
Run Code Online (Sandbox Code Playgroud)

将Phaser.js项目中的所有声音静音的最佳方法是什么?

html5 phaser-framework

0
推荐指数
1
解决办法
1903
查看次数

如何从Phaser3中的其他场景获取数据?

我已经看到了与我类似的其他问题的答案,通过 scene.start() 传递数据并使用 init 函数获取它。但我问的是不同的东西。

假设我在场景 A 上,它开始场景 B 并暂停。然后我对场景 B 进行一些计算,当我恢复它时,我想将该结果传递给场景 A。

有没有办法做到这一点?

javascript phaser-framework

0
推荐指数
1
解决办法
200
查看次数

Phaser 3:从全局“游戏”对象启动一个场景(停止所有其他正在运行的场景)

正如标题所说。从“游戏”对象启动场景时,有没有办法停止所有正在运行的场景?

目前,当我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)

javascript phaser-framework

0
推荐指数
1
解决办法
3259
查看次数

Phaser.js 实现 Minecraft 照明

所以,我正在考虑制作《我的世界》/泰拉瑞亚方块照明

在此输入图像描述

(就像有些瓷砖是深色的)

到目前为止,我看到的高级想法是“将天空块设置为最大光照级别,并为每个块减少x,通过平均光照级别获得光照级别”

所以我的问题主要是,我如何在移相器中实现这个?我需要给每个图块赋予值并计算它吗?

javascript phaser-framework

0
推荐指数
1
解决办法
149
查看次数

TypeError:undefined不是函数(Phaser JS)

大家好,我只是想在一个类中执行一个方法而且它不起作用.我得到了"未捕获的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)

javascript phaser-framework

-1
推荐指数
1
解决办法
1400
查看次数