首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Phaser.JS中的物理错误

Phaser.JS中的物理错误
EN

Stack Overflow用户
提问于 2020-07-29 08:15:46
回答 1查看 32关注 0票数 0

在我的Phaser.JS文件中,物理对撞机对于地面来说太早了(碰撞距离加载的精灵大约100个像素)。这是我的代码:

代码语言:javascript
运行
复制
var gameState = {};
var gx = 0;
function preload() {
    this.load.image('grass', 'grass.png');
    this.load.image('sky', 'sky.jpg');
    this.load.image('mario', 'mario.jpg');
}
function create() {
    var sky = this.add.image(window.innerWidth / 2, window.innerHeight / 2, 'sky');
     gameState.mario = this.physics.add.sprite(100,100, 'mario');
    sky.setScale(3.3);
    gameState.mario.setScale(.3);
    const platforms = this.physics.add.staticGroup();
    platforms.create(0,600, 'grass');
    gameState.mario.setCollideWorldBounds(true);
    this.physics.add.collider(gameState.mario, platforms);
}
function update() {
    
}
var config = {
    width: 400,
    height: 600,
    backgroundColor: 0x00FF00,
    scene: {
        preload, 
        create,
        update
    },
    physics: {
        default: 'arcade',
        arcade: {
            gravity: {y: 100},
            debug: false
        }
    }
};
var game = new Phaser.Game(config);

我不知道如何解决碰撞问题。我是一个初学者,所以我对Phaser了解不多。提前感谢您的回复或评论。

EN

回答 1

Stack Overflow用户

发布于 2020-07-29 19:30:59

默认情况下,相位器将碰撞的hitbox大小调整为纹理的大小。如果您将行从debug: false更改为debug: true,它将在这些点击框周围绘制线条。它可能是地面或角色有一个比图像“外观”更大的hitbox。对于初学者来说,与手动更改hitbox的大小相比,将图像裁剪得更接近预期碰撞的边要容易得多。对于调试线大于预期的纹理,您需要裁剪这些纹理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63144546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档