2013-09-24 29 views
5

Hepinize yeni bir sorum var, Lua'da enumartions yapabiliyor musunuz diye merak ediyorum, bunun doğru adı olup olmadığından emin değilim, bunu açıklayabileceğim en iyi yol size PAWN kullanarak bir örnek (eğer C tipi bir dil biliyorsanız, mantıklı olacaktır).Numaraları?

#define MAX_SPIDERS 1000 

new spawnedSpiders; 

enum _spiderData { 
    spiderX, 
    spiderY, 
    bool:spiderDead 
} 

new SpiderData[MAX_SPIDERS][_spiderData]; 

stock SpawnSpider(x, y) 
{ 
    spawnedSpiders++; 
    new thisId = spawnedSpiders; 
    SpiderData[thisId][spiderX] = x; 
    SpiderData[thisId][spiderY] = y; 
    SpiderData[thisId][spiderDead] = false; 
    return thisId; 
} 

kadar yani ancak ben Lua bunu nasıl bilmiyorum, piyon nasıl görüneceğini budur ... Bu defa ne var olmasıdır.

local spawnedSpiders = {x, y, dead} 
local spawnCount = 0 

function spider.spawn(tilex, tiley) 
    spawnCount = spawnCount + 1 
    local thisId = spawnCount 
    spawnedSpiders[thisId].x = tilex 
    spawnedSpiders[thisId].y = tiley 
    spawnedSpiders[thisId].dead = false 
    return thisId 
end 

Ama açıkçası bir hata veriyor, bunu yapmanın herhangi bir yolunu biliyor musunuz? Teşekkürler!

+0

. "PAW örneğini LUA'ya nasıl tercüme edebilirim?" – Akhneyzar

cevap

4

şey ?

local spawnedSpiders = {} 
local spawnCount = 0 

function spawn_spider(tilex, tiley) 
    spawnCount = spawnCount + 1 
    spawnedSpiders[spawnCount] = { 
     x = tilex, 
     y = tiley, 
     dead = false, 
    } 
    return spawnCount 
end 

DÜZENLEME: Yu Hao benden daha hızlıydı :) başlığında verilen sorunu çözmüyor Bu konuşma "Nasıl LUA numaralandırma yapmalı?"

+0

Aha sorun değil! Zaten aradığım şey bu: 3 – Bicentric

+1

'spawnCount '' # spawnedSpiders' ile değiştirilebiliyor – hjpotter92

+0

@ hjpotter92 Basitlik için evet, Yu Hao'nun cevabı gibi. Örümceklerin * lot * olması durumunda, uzunluk operatörü '' '' '(log n)' olduğu için biraz daha az verimli olacaktır. Ama bunu yapmamanın asıl nedeni, Bicentric'in koduna yakın kalmak istemem (başka bir kavramı tanıtmaktan kaçınmak). – catwell

4

Ben piyon bilmem, ama bu ne demek istediğini düşünüyorum:

local spawnedSpiders = {} 

function spawn(tilex, tiley) 
    local spiderData = {x = tilex, y = tiley, dead = false} 
    spawnedSpiders[#spawnedSpiders + 1] = spiderData 
    return #spawnedSpiders 
end 

it a testi yapın:

spawn("first", "hello") 
spawn("second", "world") 

print(spawnedSpiders[1].x, spawnedSpiders[1].y) 

Çıktı: first hello böyle

+0

Teşekkürler! Tam olarak aradığım şey bu,^_^Takdir ediyorum, teşekkürler dostum! – Bicentric