2017-06-22 114 views
0

我有一个我在桌面游戏中使用的Lua脚本,基本上你有一个代表生物的“标记”。当它死亡时,它将图像(我已经在.xml脚本中指出)覆盖了像血迹或墓碑等图像。Lua随机图像

如何制作它,以便随机化哪些图像被覆盖?

The Script is here.

下面的线(178-184)的主要部分,告诉它“把图像X在令牌”。我想这5个不同的图像之间的发言权,随机..

if not widgetDeathIndicator then 
    widgetDeathIndicator = tokenCT.addBitmapWidget("token_dead"); 
    widgetDeathIndicator.setBitmap("token_dead"); 
    widgetDeathIndicator.setName("deathindicator"); 
    widgetDeathIndicator.setTooltipText(sName .. " has fallen, as if dead."); 
    widgetDeathIndicator.setSize(nWidth-20, nHeight-20); 
end 

token_dead是当前使用的图像的名称,这在.XML引导到巴纽

回答

2

是的,你可以使用math.random为此。

local images = { 
    'token_dead', 
    'another_image_name', 
    'yet_another_image_name', 
} 

local image = images[math.random(#images)] 

math.random(n)将返回一个伪随机整数1到n之间,所以如果你在#images通过(该images表的长度),你会得到一个有效的伪随机表索引images

为了获得更好的随机性,您应该在调用math.random之前设置math.randomseed。 (如果您没有设置它,然后会的Math.random每次返回的“随机”数相同的序列。)

+0

我想这 https://pastebin.com/E0cA2WwG 我不可能得到代码格式来处理评论。即时得到一个错误 “bitmapwidget:逻辑图标(图像)不存在” –

+0

我有一个规定的图像名称和链接到每个图像” https://pastebin.com/9ZQcBEbQ –

+1

你需要一个XML文件在'tokenCT.addBitmapWidget'和'setBitmap'中都使用变量'image',而不是字符串''image''。 –