मैं मोई एसडीके का उपयोग कर एक गेम के लिए ग्रिड बनाने की कोशिश कर रहा हूं। ग्रिड में प्रत्येक टाइल में रंग से भरने की क्षमता होनी चाहिए।टाइल रंगों के साथ मोई ग्रिड
तो वास्तव में मैं दो प्रश्न हैं:
- क्या एक ग्रिड Moai
- मैं कैसे एक रंग
धन्यवाद
मैं मोई एसडीके का उपयोग कर एक गेम के लिए ग्रिड बनाने की कोशिश कर रहा हूं। ग्रिड में प्रत्येक टाइल में रंग से भरने की क्षमता होनी चाहिए।टाइल रंगों के साथ मोई ग्रिड
तो वास्तव में मैं दो प्रश्न हैं:
धन्यवाद
का उपयोग कर निर्माण करने के लिए सबसे अच्छा तरीका हैक्या एक ग्रिड Moai
मोई के पास ग्रिड बनाने के लिए एक वस्तु है: MOAIGrid। ढांचे के शब्दकोष का उपयोग करके, आप एक ग्रिड बनाते हैं और इसे एक डेक देते हैं। फिर आप इसे प्रोप में संलग्न करते हैं और परत को प्रोप जोड़ते हैं। (यह परत भी एक व्यूपोर्ट जो एक खिड़की को जुड़ा हुआ है की जरूरत है।)
मैं कैसे एक रंग
एक Moai deck साथ व्यक्तिगत रूप से प्रत्येक टाइल भर सकता है एक छवि या छवियों का संग्रह है। यदि आप अपने टाइल्स को अलग-अलग रंगों के लिए चाहते थे तो आप उन रंगों में वर्ग की छवियों के साथ एक डेक बनायेंगे।
इस कोड को एक खिड़की में एक 4x4 ग्रिड पैदा करेगा:
-- Open the window and create a viewport
MOAISim.openWindow("Example", 512, 512)
viewport = MOAIViewport.new()
viewport:setSize(512, 512)
viewport:setScale(512, 512)
-- Create a layer
layer = MOAILayer2D.new()
layer:setViewport(viewport)
MOAISim.pushRenderPass(layer)
-- Create a 4x4 grid of 64x64px squares
grid = MOAIGrid.new()
grid:initGrid(4, 4, 64)
grid:setRow(1, 1, 1, 1, 1)
grid:setRow(2, 1, 1, 1, 1)
grid:setRow(3, 1, 1, 1, 1)
grid:setRow(4, 1, 1, 1, 1)
-- Load the image file
deck = MOAITileDeck2D.new()
deck:setTexture("squares.png")
deck:setSize(2, 2)
-- Make a prop with that grid and image set
prop = MOAIProp2D.new()
prop:setDeck(deck)
prop:setGrid(grid)
prop:setLoc(-256, -256)
-- Add it to the layer so it will be rendered
layer:insertProp(prop)
उसके बाद, आप एक विशेष सेल का रंग बदल करना चाहते हैं, का उपयोग setTile
विधि का चयन करने के लिए जो सेल का उपयोग करता है कि डेक में आइटम।
-- Change the color of cell 1,1 to the second item in the deck
grid:setTile(1, 1, 2)
संपूर्ण सी के लिए संपादित स्तोत्र।
MOAISim.openWindow ("test", 320, 480)
viewport = MOAIViewport.new()
viewport:setSize (320, 480)
viewport:setScale (320, -480)
viewport:setOffset(-1, 1)
layer = MOAILayer2D.new()
layer:setViewport (viewport)
MOAISim.pushRenderPass (layer)
function createRect(x1,y1,x2,y2, R,G,B)
local function onDraw()
MOAIGfxDevice.setPenColor(R,G,B)
MOAIDraw.fillRect(x1,y1,x1+x2,y1+y2) --This is the rect drawing line.
end
local gfxQuad = MOAIScriptDeck.new()
gfxQuad:setRect(x1,y1,x2,y2)
gfxQuad:setDrawCallback(onDraw)
local prop = MOAIProp2D.new()
prop:setDeck(gfxQuad)
layer:insertProp (prop)
return prop
end
mapmaxx = 10
mapmaxy = 10
map={} --array to store map
for x = 1, mapmaxx do
map[x] ={}
for y = 1, mapmaxy do
map[x][y] = createRect(x*20, y*20, 10, 10, x,y,x/y)
end
end`
आप बाहर Rapanui की जाँच करनी चाहिए, Moai के लिए एक उच्च स्तर एपीआई (जहां मैं से इस कोड को दूसरे शब्दों में बयान)
एक ग्रिड का निर्माण वास्तव में सिर्फ वर्गों का एक ढेर एक ग्रिड गठन में आ रहा है। मुझे मोई की एपीआई नहीं पता; लेकिन मैं उम्मीद आप कर सकते हैं बस drawSquare (एक्स, वाई, चौड़ाई, ऊंचाई, रंग)
तो आप:
local width = 800
local height = 600
local color = { red=1, blue=1, green=1 }
for x=1 , 100 do
for y=1, 100 do
screen:drawSquare((x-1)*width,(y-1)*height,width,height,color)
end
end
शायद मैं अपने प्रश्न पर स्पष्ट नहीं था। मैं अपने कोरोना गेम को मोई में पोर्ट कर रहा हूं, इसलिए तर्क वहां है, लेकिन मुझे स्क्वायर खींचने और रंग के साथ भरने के लिए सही फ़ंक्शन नहीं मिल रहा है। मुझे यह भी नहीं पता कि मुझे प्रत्येक टाइल मैन्युअल रूप से बनाना चाहिए या यदि MOAIGrid एक विकल्प होगा। –
v1.4p0 में (सुनिश्चित नहीं है कि यह वास्तव में किस संस्करण में बदला गया था) लाइन 'ग्रिड: initGrid (4, 4, 64)' ग्रिड होगा: initRectGrid (4, 4, 64, 64) ' – devnate