Java, flytta pacman..
Hej, jag arbetar me att försöka skapa ett pacmanliknande spel. Jag har nu banan som en matris..
static int board[][] = {
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1},
{1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1},
{1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1},
{1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1},
{1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1},
{1,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1},
{0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0},
{1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1},
{1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1},
{1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1},
{1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1},
{1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1},
{1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} };
Där nummer 1 representerar väggarna och där 0 är vägen där pacman ska röra sig. I mitten finns en 2, det är pacmanplayern..
public void paint (Graphics g)
{
for(int i=0; i < board.length; i++)
{
for(int j=0; j < board.length; j++)
{
switch (board[i][j])
{
case 0:
{
}
break;
case 1:
{
g.setColor(Color.blue);
g.fillRect(xmat,ymat,35,35);
g.setColor(Color.blue);
g.drawRect(xmat,ymat,35,35);
}
break;
case 2:
{
g.drawImage(img, xmat, ymat, null);
}
break;
}
xmat = xmat + 35;
}
ymat = ymat + 35;
xmat = 0;
}
ymat = 0;
}
Nästa steg är att få pacman att flytta sig vid knapptryckningarna, höger så ska den flytta ett steg höger i matrisen....osv. Hur och var ska jag skriva detta?
Här har jag att den sätter riktning i min playerklass.
public void playerMove(KeyEvent e) {
//sätter riktning. sätter den ska stanna.
if (e.getKeyCode() == KeyEvent.VK_UP) {
direction=1;
System.out.println("TEST UPP");
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
direction=2;
System.out.println("TEST NER");
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
direction=3;
System.out.println("TEST NER");
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
direction=4;
System.out.println("TEST VÄNSTER");
}
}
public void move(){
//läser av riktningen och ändrar på x eller yberoende påriktning.
//kollisionsdetektion här sen också.
if (direction==1){
}
else if (direction==2) {
}
else if (direction==3) {
}
else if (direction==4) {
}
}