Я делаю игру Maze прямо сейчас, и я изо всех сил пытался написать код для обнаружения столкновений. Предполагается, что Ball (Number 4) перемещается только на sandimage (который назначен на номер 1), но не должен перемещаться по белому изображению (номер 2 в массиве). Это массив Я использую для карты:Maze Game Collision Detection
int [] map1 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
И это код для кнопок, которые назначены на номера в массиве:
for(int nCount= 0; nCount < 208; nCount++) //for loop which goes from 0 to 208
{
JGridButton[nCount] = new JButton(""); //inserts a button for every count in the for loop
JPanelnorth.add(JGridButton[nCount]); //this line of code adds the buttons to the named panel
JGridButton[nCount].setBorderPainted(false);
if(map1[nCount]==1) // the image on the button will be set to sandimage, if the number in the array = 1
{
JGridButton[nCount].setIcon(sandimage);
}
if(map1[nCount]==2) // the image on the button will be set to whiteimage, if the number in the array = 2
{
JGridButton[nCount].setIcon(whiteimage);
}
if(map1[nCount]== 4) // the image on the button will be set to goldenball, if the number in the array = 4
{
JGridButton[nCount].setIcon(goldenball);
}
if(map1[nCount]== 3) // the image on the button will be set to sandstone, if the number in the array = 3
{
JGridButton[nCount].setIcon(sandstone);
}
}
Извините, мне кажется, что код фактического движения отсутствует. Я вижу карту и то, что кажется красками. как вы собираетесь заставить мяч двигаться по лабиринту? Клавиатура? нажмите на одну из ваших кнопок? – user666412
Это код, который я использую для перемещения мяча через лабиринт: public void actionPerformed (событие ActionEvent) { \t Object source = event.getSource(); if (source == Jbuttonup) \t { \t \t JButtoncompass.setIcon (iconCompassnorth); \t JTextField3.setText ("N"); \t JGridButton [nPosition -16] .setIcon (goldenball); \t JGridButton [nPosition] .setIcon (sandimage); \t nPosition = nPosition -16; \t \t} \t код для пустых, левых и правых аналогичен этому –
1) Вместо '208' используйте' map.length'. 2) Вместо нескольких операторов 'if' используйте один оператор' switch'. 3) Вам будет проще использовать «карту» между массивом чисел и массивом кнопок. 4) Вы можете использовать «Карта» между цифрами и изображениями. – user1803551