Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Veldig mange spill er basert på et rutenett som "spillverden". Opplagte eksempler er brikke-/brettspill som sjakk, othello, tripp-trapp-tresko, fire-på-rad og 15-puzzle (hva heter det på norsk?), men også mange spill hvor en figur beveger seg rundt i en 2D-verden er av denne typen, f.eks. Sokoban og Boulderdash. Til og med Snake og Tetris kan lages som et rutenettspill, selv om hver enkelt fallende brikke dekker flere ruter.

...

For hver type ruteverdi, så må en velge ikon/bilde, og dette kan ofte gjøres enkelt ved strategisk navngiving av bilde-filene. Hvis en f.eks. bruker tall eller tekst, så kan en bare navngi bildet ette verdien, f.eks. 1.png eller player.png. En kan også lage en oversettelsestabell som gir koblingen litt løsere, f.eks. ved å bruke java.util.Map og legge inn koblingen med put-metoden, f.eks. map.put("player", "player32x32.png"). Siden alle bildefiler gjerne ligger i samme mappe og har samme filendelse, så er det greit å lage en egen metode som legger dette til det logiske navnet, f.eks.

Code Block
String getImageFilename(String imageName)

...

 {
   return FOLDER_NAME + "/" + imageName + IMAGE_EXT;

...


}

Oppdateringsmetoder for logiske handlinger i spillet

For hver lovlige handling i spillet, så lager en gjerne en metoder/funksjoner for å oppdatere rutenettet tilsvarende. En metode for å flytte en brikke må f.eks. først blanke ut ruta som brikken flyttes fra, f.eks. sette den til null og deretter sette ruta som brikken flyttes til. Dersom det er spilleren som flyttes, så må også koordinatene til spilleren endres. Her er et eksempel på en slik metode:

Code Block
void movePlayer(int dx, int dy)

...

 {
   setCell(playerX, playerY, null); // blanker ruta hvor spilleren

...

 sto
   playerX = playerX + dx; // juster x-koordinatet
   playerY = playerY + dy; // juster y-koordinatet
   setCell(playerX, playerY, PLAYER_VALUE); // endrer (verdien i) den nye ruta

...


}

For hver handling, så kan det også være praktisk å ha en egen metode som sjekker om handlingen er lov, så en kan sjekke det før handlingsmetoden kalles.

...