我想寫一個生活的互動遊戲,我可以在遊戲領域手動插入滑翔機。 我想要它的工作原理是我有一個滑翔機按鈕,當我按下它後,我可以將光標移動到我想要在網格上設置滑翔機的位置,並且在點擊網格滑翔機在生活遊戲中進行整合之後。 我正在使用處理,我將這個草圖用作啓動代碼。 http://www.openprocessing.org/sketch/95216Java中的生命互動遊戲
這是代碼來創建對小鼠按新細胞(一個在時間)
// Create new cells manually on pause
if (pause && !gliderSelected && mousePressed) {
// Map and avoid out of bound errors
int xCellOver = int(map(mouseX, 0, width, 0, width/cellSize));
xCellOver = constrain(xCellOver, 0, width/cellSize-1);
int yCellOver = int(map(mouseY, 0, height, 0, height/cellSize));
yCellOver = constrain(yCellOver, 0, height/cellSize-1);
// Check against cells in buffer
if (cellsBuffer[xCellOver][yCellOver]==1) { // Cell is alive
cells[xCellOver][yCellOver]=0; // Kill
fill(dead); // Fill with kill color
}
else { // Cell is dead
cells[xCellOver][yCellOver]=1; // Make alive
fill(alive); // Fill alive color
}
}
else if (pause && !mousePressed) { // And then save to buffer once mouse goes up
// Save cells to buffer (so we operate with one array keeping the other intact)
for (int x=0; x<width/cellSize; x++) {
for (int y=0; y<height/cellSize; y++) {
cellsBuffer[x][y] = cells[x][y];
}
}
}
滑翔機形狀是:
OXO
OOX
XXX
其中O是死細胞,X是活細胞。
//create gliders on press
if (pause && gliderSelected && mousePressed) {
// Map and avoid out of bound errors
int xCellOver = int(map(mouseX, 0, width, 0, width/cellSize));
xCellOver = constrain(xCellOver, 0, width/cellSize-1);
int yCellOver = int(map(mouseY, 0, height, 0, height/cellSize));
yCellOver = constrain(yCellOver, 0, height/cellSize-1);
//here i thought of maybe creating an array of cells that map the glider and then running a loop to change the grid cell status according to the glider array
}
我不知道如何製作一個數組來存儲滑翔單元的位置。每個單元格都是一個10像素的正方形,所以我知道如何映射它,如果我想構建它,但不知道如何將它粘貼到陣列中,然後將其集成到網格中。
創建一個將單元存儲爲2D座標(x,y)的數組。 x,y是要繪製的滑翔機實例左上角的位置。我建議這樣做,而不是將滑翔機的中間部分設計爲10,10中間沒有一個好的中心([5,5],[5,6],[6,6]和[6,5]是四個centrepoints)。 – Gorbles