我有这个代码只显示我在游戏中需要的图片。
DeckOfPlayingCards = display.newImageRect("Graphics/ImproveMenu/Wealth/Luxury/Buy/DeckOfPlayingCards.png", 96*6, 96)
DeckOfPlayingCards.x = centerX
DeckOfPlayingCards.y = -90
DeckOfPlayingCards.name = "DeckOfPlayingCards"
现在,由于我计划将很多这些图片放在我的游戏菜单中,因此我不想复制粘贴该代码。我想做一个能为我做的简单功能。这是我尝试过的,但失败了,不知道为什么。
function DisplayObject(object, x, y, name)
object = display.newImageRect("Graphics/ImproveMenu/Wealth/Luxury/Buy/" ..name..".png", 96*6, 96)
object.x = x
object.y = y
object.name = name
scrollView:insert(object)
end
DisplayObject(DeckOfPlayingCards, centerX, -90, "DeckOfPlayingCards")
此功能可以成功显示图片,但每当我尝试用它做一些事情(将其设为按钮)时,它表示值为零。完成这个功能后,我试着像这样打印名称:
function DisplayObject(object, x, y, name)
object = display.newImageRect("Graphics/ImproveMenu/Wealth/Luxury/Buy/" ..name..".png", 96*6, 96)
object.x = x
object.y = y
object.name = name
scrollView:insert(object)
end
DisplayObject(DeckOfPlayingCards, centerX, -90, "DeckOfPlayingCards")
print(DeckOfPlayingCards.name)
崩溃并说价值为零。
现在,我怎么能完全使用函数来创建我的对象,就像我试图像第一个代码一样编写它?我希望有人可以帮助我。
答案 0 :(得分:2)
DeckOfPlayingCards
我认为您希望这可以将名称 DisplayObject
传递给nil
,但它只是传递DisplayObject
,因为它是&#39 ; s是一个未定义的变量。
一种选择是简单地在DeckOfPlayingCards
中创建对象,将其返回,然后将其分配给function DisplayObject(x, y, name)
local object = display.newImageRect(
"Graphics/ImproveMenu/Wealth/Luxury/Buy/" ..name..".png",
96*6, 96)
object.x = x
object.y = y
object.name = name
scrollView:insert(object)
return object
end
DeckOfPlayingCards = DisplayObject(centerX, -90, "DeckOfPlayingCards")
print(DeckOfPlayingCards.name)
:
CREATE VIEW YourViewName AS
SELECT * FROM tablex
GO
ALTER VIEW YourViewName AS
SELECT * FROM tabley
答案 1 :(得分:0)
错误消息告诉您出了什么问题。您无法索引零值。 因此,DeckOfPlayingCards必须为零。
你在哪里初始化DeckOfPlayingCards?我知道当您将其移动到新函数DisplayObject时,第一个代码块不是当前脚本的一部分。
当您调用DisplayObject(对象,x,y,name)时,假设DeckOfPlayingCards为nil,则对象在您的函数中也是零。 由于lua只创建函数参数的本地副本,因此将局部变量对象设置为display.newImageRect的返回值...
这不会改变DeckOfPlayingCards的值!它仍然没有。
你所做的与以下相同:
function DisplayObject(x, y, name)
local object = display.newImageRect("Graphics/ImproveMenu/Wealth/Luxury/Buy/" ..name..".png", 96*6, 96)
object.x = x
object.y = y
object.name = name
scrollView:insert(object)
end
返回对象并将其存储在DeckOfPlayingCards中以解决您的问题。