我可以在 Corona SDK 中从形状更改为图形吗? (应用程序换肤)

Can I change from shapes to graphics in Corona SDK? (app reskinning)

我是应用程序换肤(和一般编码)的新手,但我 运行 遇到了与我购买的几个源代码相同的问题。这些应用程序使用形状作为 "characters",但我想用图形替换它们。换句话说,我不想简单地选择填充颜色,而是想使用自己的图像。

我联系了其中一个应用程序的开发人员之一,他告诉我这样做需要重写大部分代码。我一直试图用 Google 自己解决这个问题,但我被卡住了。如果有人能指出正确的方向,或者甚至建议一个显示过程的教程,我愿意投入重写它的工作。

local Settings = display.newImage("images/Settings.png");
Settings.x = FrameXPos2;
Settings.y = _H / 2;
Settings:scale(_H / 1300, _H / 1280);

Ball_Player = display.newCircle( PlayerX, PlayerY, (25 * ((GameScreen.width * (_H / 1300))) / 600)) --(9 +((7 - PlayerSpeed) * 5 ))
Ball_Player:setFillColor(1, 1, 1, 1);
Ball_Player.alpha = 0;

Ball_Player1 = display.newCircle( PlayerX, PlayerY, (25 * ((GameScreen.width    * (_H / 1300))) / 700)) --(9 +((7 - PlayerSpeed) * 5 ))
Ball_Player1:setFillColor(1, 1, 1, 1);
Ball_Player1.alpha = 0;

Ball_Player2 = display.newCircle( Player2X, Player2Y, (25 *     ((GameScreen.width * (_H / 1300))) / 700)) --(9 +((7 - PlayerSpeed) * 5 ))
Ball_Player2:setFillColor(1, 1, 1, 1);
Ball_Player2.alpha = 0;

Ball_Enemy1 = display.newCircle( PlayerX, PlayerY, (35 * ((GameScreen.width * (_H / 1300))) / 600));
Ball_Enemy1:setFillColor(0.8, 0.2, 0.2);
Ball_Enemy1.alpha = 0;

您可以使用图片填充形状,例如:

local paint = {
type = "image",
filename = "texture1.png"
}

local rect = display.newCircle( PlayerX, PlayerY, (25 * ((GameScreen.width * (_H / 1300))) / 600)) --(9 +((7 - PlayerSpeed) * 5 ) )
rect.fill = paint

可能这是重塑游戏的最佳方式。

display.newImage()display.newCircle() 都是形状,但您需要检查所有需要做的更改。如果您使用物理学,则更改可能会更加困难。