我在和Phaser做一个游戏,我试着把瓷砖组合在一起 按如下方式渲染它们:

我的代码是:

let gameScene = new Phaser.Scene('Game');

gameScene.preload = function() {
    this.load.image('background', 'assets/backgrounds/beach/game_background_1.png');
    this.load.image('tile', 'assets/images/tile.png');
    

}

gameScene.create = function() {
    let bg = this.add.sprite(0, 0, 'background').setOrigin(0, 0);
    this.tiles = this.add.group({
        key: 'tile',
        repeat: 5,
        setXY: {
            x: 150,
            y: this.sys.game.config.height - 80,
            stepX: 150,
            stepY: this.sys.game.config.height - 80,
        }
    });

    Phaser.Actions.ScaleXY(this.tiles.getChildren(), -0.5, -0.5);

}

gameScene.update = function() {

}

教程中的代码:

gameScene.preload = function(){
  // load images
  ...
  ...
  this.load.image('enemy', 'assets/dragon.png');
  ...
};

gameScene.create = function() {
    this.enemies = this.add.group({
      key: 'enemy',
      repeat: 5,
      setXY: {
        x: 90,
        y: 100,
        stepX: 80,
        stepY: 20
    }
  });

  Phaser.Actions.ScaleXY(this.enemies.getChildren(), -0.4, -0.4);

this.add.group({})在教程中运行良好,但当我在我的游戏中使用它时,我只得到1个瓷砖渲染.这是怎么回事?

推荐答案

我认为问题是stepY,这个价值似乎太大了.this.sys.game.config.height - 80会将第二个瓷砖放在显示区域之外,这就是为什么你只看到一个瓷砖的原因.(100 for more details on the config object for a phaser group)

Solution:try 为属性stepY设置一个比您应该看到的瓷砖更小的值.

Javascript相关问答推荐

TypeScript索引签名模板限制

如何根据当前打开的BottomTab Screeb动态加载React组件?

获取Uint8ClampedArray中像素数组的宽度/高度

实现JS代码更改CSS元素

如何在Angular17 APP中全局设置AXIOS

如何将多维数组插入到另一个多维数组中?

用JS从平面文件构建树形 struct 的JSON

Jest toHaveBeenNthCalledWith返回当前设置的变量值,而不是调用时的值

在表单集中保存更改时删除';禁用';

无法重定向到Next.js中的动态URL

OnClick更改Json数组JSX中的图像源

将Auth0用户对象存储在nextjs类型脚本的Reaction上下文中

Socket.IO在刷新页面时执行函数两次

如果NetSuite中为空,则限制筛选

react 路由DOM有条件地呈现元素

无法使用Redux异步函数读取未定义的useEffect钩子的属性';map';

将Windows XP转换为原始数据以在html前端中显示

Rails 7:在不使用导入映射的情况下导入Java脚本

如果未定义,如何添加全局变量

响应,Use Callback更新状态变量,该变量也存在于其依赖数组中,它如何防止无限重新呈现?