You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haxeflixel中屏幕中心的X、Y坐标如何获取?

手动将FlxSprite定位到屏幕中心的方法

核心思路是基于屏幕尺寸和精灵自身尺寸手动计算坐标,后续调整位置时直接修改计算逻辑或在结果上偏移即可,完全可控:

  • 先获取全局屏幕尺寸:用FlxG.width和FlxG.height可以直接拿到当前游戏窗口的宽高。
  • 精灵默认锚点是左上角,要让精灵整体居中,需要把左上角位置调整到「屏幕中心偏移半个精灵宽高」的位置,计算公式如下:
    • 水平居中x坐标:(FlxG.width - sprite.width) / 2
    • 垂直居中y坐标:(FlxG.height - sprite.height) / 2

代码示例

// 初始化你的精灵
var playerSprite:FlxSprite = new FlxSprite(0, 0, "assets/player.png");
add(playerSprite);

// 手动计算并设置中心位置
playerSprite.x = (FlxG.width - playerSprite.width) / 2;
playerSprite.y = (FlxG.height - playerSprite.height) / 2;

后续调整的灵活性

如果之后需要让精灵偏离中心,直接在计算后的坐标上做加减即可:

// 比如让精灵在中心基础上向右偏移30像素,向下偏移20像素
playerSprite.x = (FlxG.width - playerSprite.width) / 2 + 30;
playerSprite.y = (FlxG.height - playerSprite.height) / 2 + 20;

如果你的精灵修改过锚点(比如设置sprite.anchor.set(0.5, 0.5)把锚点改成中心),计算逻辑会更简单,直接把x/y设为屏幕中心即可:

playerSprite.anchor.set(0.5, 0.5);
playerSprite.x = FlxG.width / 2;
playerSprite.y = FlxG.height / 2;

内容的提问来源于stack exchange,提问作者miguel xd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:48:19