Qual è il modo migliore per costruire una griglia utilizzando Moai
Moai ha un oggetto per la creazione di griglie: MOAIGrid. Usando il gergo del framework, crei una griglia e assegnagli un mazzo. Quindi lo si attacca a un sostegno e aggiungi il sostegno a un livello. (Questo strato ha bisogno anche di una finestra che è attaccato a una finestra.)
Come posso riempire ogni piastrella individualmente con un colore
Un Moai deck è un'immagine o una raccolta di immagini. Se vuoi che le tue tessere siano di colori diversi, devi creare un mazzo con le immagini del quadrato in quei colori.
Esempio
Questo codice crea una griglia 4x4 in una finestra:
-- 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)
Dopo di che, se si desidera cambiare il colore di una cella specifica, utilizzare il metodo setTile
di scegliere quale elemento nel mazzo che utilizza la cella.
-- Change the color of cell 1,1 to the second item in the deck
grid:setTile(1, 1, 2)
Nella v1.4p0 (non sono sicuro di quale versione sia stata modificata) la riga 'grid: initGrid (4, 4, 64)' sarebbe 'grid: initRectGrid (4, 4, 64, 64)' – devnate