标签: phaser-framework

如何将 Phaser.Game 移动到浏览器的中心?

在此输入图像描述

我是 JS/phaser 的新手,只需创建一个Phaser.Gamewith

var game = new Phaser.Game(600, 490);
Run Code Online (Sandbox Code Playgroud)

游戏是在左上角创建的,但我想将其放置在浏览器的中央。

我检查了API,没有发现任何相关内容:

new Game(width, height, renderer, parent, state, transparent, antialias, physicsConfig)
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我该怎么做吗?

javascript phaser-framework

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

如何使用 Jasmine 测试 Phaser 3 项目?

我目前正在phaser.js框架中开发一个小游戏,由于项目范围相当大,我真的很想进行单元测试。然而,当尝试在 Jasmine 中为 Phaser 设置单元测试时,我遇到了有关依赖项的错误。

我对 Jasmine 或任何其他测试框架没有经验,所以我可能忽略了对经验丰富的开发人员来说显而易见的事情。

我的 .spec 文件如下所示:

describe("motorMain", function() {
    var Phaser = require('../phaser');
    var MotorMain = require("../motorMain"); 

    var motorMain;
    var phaser;

    beforeEach(function() {
        phaser = new Phaser();
        motorMain = new motorMain();
      });

    it("should increase the score if a object is clicked", function(){
        var scoreBeforeClicking = motorMain.score;
        var gameobject;
        motorMain.clickhandler("",gameobject);
        expect(scoreBeforeClicking+1).toEqual(score);
    })
});
Run Code Online (Sandbox Code Playgroud)

但由于 Phaser 依赖于在浏览器中运行,当我运行它时,它抱怨无法访问Phaser 中的window和 等元素。document

我收到如下错误:

ReferenceError:文档未定义

有人有测试 Phaser 游戏的经验吗?我在网上似乎找不到任何有关它的信息。甚至可以测试移相游戏吗?

至于其他测试框架,我也研究过 nightwatch,但它的 Phaser 支持已经过时,而且它主要是 e2e 而不是单元测试,所以它不是我想要的。我还在网上看到有人开发了Phaser 2.4.7的shimming版本,但是现在已经过时了,Phaser 3已经发生了很大的变化。

jasmine phaser-framework

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

如何在 Phaser 3 上重新加载游戏?

点击按钮后如何重新启动游戏?我尝试了以下代码:

this.scene.stop();
this.scene.start();
Run Code Online (Sandbox Code Playgroud)

场景重新加载,但预加载功能不再起作用。

phaser-framework

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

如何停止 Phaser 游戏并将其从页面中删除?

我有一个网页,我希望能够连续运行三个 JavaScript 游戏。我开始一个

//jQuery to start a game
$(document).ready(() => {
  //When the logo image is clicked
  $("#logo").click(() => {
    //Get the archery game
    $.getScript('archery.js', () => {
      //Start it
      startArchGame();
      //Remove the image from the HTML doc
      $("#logo").remove();
    });
  })
})
Run Code Online (Sandbox Code Playgroud)

然后,在内部archery.js,一旦满足条件,就会执行以下代码

$.getScript('skateboarding.js', () => {
  startSkateGame();
});
game.destroy();
Run Code Online (Sandbox Code Playgroud)

game.destroy();会阻止游戏在 Phaser 3 中运行,但下一个游戏只是在第一个游戏下方加载,因此您看不到它。我怎样才能解决这个问题?是否可以完全删除我得到的第一个脚本?

javascript jquery phaser-framework

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

尝试在 Phaser 中获得鼠标滚轮缩放效果

使用鼠标滚轮放大和缩小似乎有效。不过我想在混合中放置鼠标位置。

如果用户放大,相机会(最好是缓慢地,但也可以立即工作)随着放大或缩小而向鼠标位置移动。换句话说,在缩放时,相机应以当前鼠标 x,y 坐标为中心或至少转向它。

相机 x,y 不等于画布 x,y 吗?它似乎朝相反的方向平移。我已经在我的 [Typescript]方法中尝试了pan()和:centerOn()create()

this.input.on("wheel",  (pointer, gameObjects, deltaX, deltaY, deltaZ) => {

  if (deltaY > 0) {
    this.camera.zoom -= .1;
  }

  if (deltaY < 0) {
    this.camera.zoom += .1;
  }

  this.camera.pan(pointer.x, point.y, 2000, "Power2");

  //this.camera.centerOn(pointer.x, pointer.y);

});
Run Code Online (Sandbox Code Playgroud)

这是一个不太可能的方案,但我想模仿游戏《遥远的世界》中的缩放行为。

phaser-framework

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

如何在 Phaser 中添加重复图像?

在我的 Phaser 游戏中,我想使用类似细胞的背景纹理,当你移动时它也会移动。

我的想法是将每个单元格添加到 for 循环中,如下所示:

  let width=100, height=100;
  for(let y=0;y<width;y++){
    ;
    for(let x=0; x<height;x++){
    
      this.physics.add.image(width/2+64*x, height/2+64*y, "snow_field").setScale(4,4);
      
    }
  }
Run Code Online (Sandbox Code Playgroud)

问题:游戏变得非常(非常)慢

那么有没有更好/推荐的方法来添加重复图像/背景?

html javascript phaser-framework

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

如何在phaserjs中使用混合

我已经搜索了整个文件,实际上我已经下载并手动搜索了.我找到的只是过滤方法,它允许你使用你必须编写的webgl shadders.

我想要的是一种混合,就像你在photoshop中看到的光混合层等.

在互联网上,我在pixijs中找到了一些例子,并在半年前谈到支持它.所以请一直关注phaserjs并了解filter/blendMode的人请告诉我.

javascript phaser-framework

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

如何正确更改sprite上的z-index?

我有谷歌它,我知道添加z-index的正确方法是按创建顺序,但我有不同的情况.

我正在创建纸牌游戏,我想在点击时移动卡片,之后该卡片应该在顶部,这是不可能的,所以我已经按照以下方式解决了.

在卡片上点击的功能我正在销毁那张卡片并创建相同的新卡片,因为它是最后创建的.

还有另一种解决这种情况的方法吗?

谢谢

phaser-framework

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

如何在Phaser 3中删除图像?

假设我只是添加了一个简单的小图像:

var image = scene.add.image(200,200,'simple-little-image.png');
Run Code Online (Sandbox Code Playgroud)

然后,我想破坏它。不仅隐藏它,还删除所有数据和所有内容。

我检查了文档,图像类没有任何种类killdestroy功能。但是,它具有ignoreDestory布尔值。这使我认为scene必须删除它?但是我找不到在scene类docs中删除图像的方法。

通过scene控制台中的类,我找不到要删除图像的子类的任何功能。

那么,如何删除图像及其所有数据?

javascript phaser-framework

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

相位器3中的图片和图片之间有什么区别?

在Phaser 3文档中,我可以看到Sprite和之间的最大区别Image是您不能为设置动画或向其添加物理物体Image,但是在Image属性中可以看到animationManager。我对此有些困惑。谁能澄清一下?

phaser-framework

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

标签 统计

phaser-framework ×10

javascript ×5

html ×1

jasmine ×1

jquery ×1