Corona SDK中的Sprite位置

我不理解Corona SDK中的一些对象位置概念。

我创建了精灵表:

local spriteSheet = sprite.newSpriteSheet("button.png", 138, 64);
local spriteSet = sprite.newSpriteSet(spriteSheet, 1, 2);
local sp = sprite.newSprite( spriteSet );

但它的位置很奇怪,即使我将x和y位置设置为零,精灵也超出了屏幕范围。

config.lua文件如下:

application =
{
    content =
    {
        width = 320,
        height = 480,
        scale = "letterbox"
    },
}

我认为问题在于“referencePoint”。

请告诉我如何更改默认屏幕的setReferencePoint(不是图像或组...),只是默认屏幕...

原文链接 https://stackoverflow.com/questions/6801094

点赞
stackoverflow用户686008
stackoverflow用户686008

技术上说,你可以通过创建一个显示组并将所有东西附加到该组上来使用不同的坐标系来绘制你的图形,但是实际上,这似乎是你在问错问题。你应该思考为什么你的精灵位置不正确,而不是试图改变屏幕的参考点。

请创建一个新的问题,重点关注这个问题并进一步解释它,因为你在这里所说的只是位置“奇怪”。这是什么意思?

2011-07-25 17:40:53
stackoverflow用户1337804
stackoverflow用户1337804

你可以像下面这样修改你的代码,并且只需检查一下,它就能够工作:

local spriteSheet = sprite.newSpriteSheetFromData("button.png",require("button").getSpriteSheetData())
local spriteSet = sprite.newSpriteSet(spriteSheet,1,9);
sprite.add(spriteset,"button",1,9,1000,0);
// button 是 lua 文件,使用 button.lua
local sp = sprite.newSprite(spriteSet);
sp:prepare("button");
sp.x = display.screenOriginX + 138;
sp.y = display.screenOriginY + 64;
2013-04-10 12:08:39