Dienstag, 22. Mai 2012


Artikel

Dezember 2006 | Artikel

Spieleentwicklung Fortsetzung, Teil 3

Teil 1   Teil 2   Teil 3   

Workshop – Spieleprogrammierung (Sokoban)
Die auf Flash basierte Umsetzung des Spieleklassikers Sokoban ist ein interessantes und nützliches Beispiel zum Themenschwerpunkt Spieleprogrammierung. Die Programmierung stützt sich hierbei auf ActionScript 2.0.

Schritt 1:
Sie benötigen als Erstes einen Flashfilm, diesen sollten Sie unter dem Namen Sokoban.fla speichern.

Schritt 2:
Im ersten Schlüsselbild der Hauptzeitleiste platzieren Sie in der Aktionen-Ebene folgende ActionScript-Codezeilen:

  1. var Game: GameEngine = new GameEngine(20);
  2. Game.LoadLevelData("levels.xml");

Schritt 3:
Als Nächstes wenden wir uns der benutzerdefinierten GameEngine-Klasse zu und stellen Ihnen den Aufbau der Klasse vor.

  1. // GameEngine (Klasse)
  2. class GameEngine
  3. {
  4. // Private Variablen
  5. // ...
  6. // Public Variablen
  7. // ...
  8. // Constructor Funktion
  9. public function GameEngine($tilesize: Number)
  10. {
  11. // ...
  12. }
  13. // Daten-Methode
  14. public function LoadLevelData($filename: String): Void
  15. {
  16. // ...
  17. }
  18. // Level-Methode
  19. public function LoadLevel($dim: TPoint, $pos: TPoint, $s: String, $dir: String, $Offset: TPoint): Void
  20. {
  21. // ...
  22. }
  23. // NewLevel-Methode
  24. private function NewLevel(): Void
  25. {
  26. // ...
  27. }
  28. // RestartLevel-Methode
  29. private function RestartLevel(): Void
  30. {
  31. // ...
  32. }
  33. // FinishLevel-Methode
  34. private function FinishLevel(): Void
  35. {
  36. // ...
  37. }
  38. // Tastatur-Steuerung
  39. public function KeyDown($key: Number): Void
  40. {
  41. // ...
  42. }
  43. // LoadTile-Methode
  44. private function loadTile($x, $y, $tile: Number, $overld: Boolean): Void
  45. {
  46. // ...
  47. }
  48. // CopyArray-Methode
  49. private function copyArray($array): Array
  50. {
  51. // ...
  52. }
  53. // Move-Methode
  54. private function Move($direction): Void
  55. {
  56. // ...
  57. }
  58. // Draw-Methode
  59. public function Draw(): Void
  60. {
  61. // ...
  62. }
  63. // Boden
  64. private function Floor($point): Boolean
  65. {
  66. // ...
  67. }
  68. // Wand
  69. private function Wall($point): Boolean
  70. {
  71. // ...
  72. }
  73. // Box
  74. private function Box($point): Boolean
  75. {
  76. // ...
  77. }
  78. // Lösung
  79. private function Solution($point): Boolean
  80. {
  81. // ...
  82. }
  83. // Exit
  84. private function ExitToEditor(): Void
  85. {
  86. // ...
  87. }
  88. // Destructor
  89. public function Destructor(): Void
  90. {
  91. // ...
  92. }
  93. }

Schritt 4:
Um das Spiel zum Leben zu erwecken, fehlt Ihnen nur noch die levels.xm- Datei, welche sämtliche für das Spiel zur Verfügung stehenden Levels und deren Aufbau enthält. Der Aufbau der Levels innerhalb der XML-Datei stellt sich wie folgt dar:

  1. <xmlfeed>
  2. <item>
  3. <title>Easy start</title>
  4. <player x="4" y="4" direction="down" />
  5. <level maxsteps="100" width="8" height="8">..111.....131.....1211111114243113242111111141.....131.....111..</level>
  6. </item>
  7. </xmlfeed>

Schritt 5:
Abschließend können Sie das Spiel testen und um weitere Levels oder Optionen erweitern. Bitte beachten Sie, dass die Erweiterung der Spiellevel innerhalb der levels.xml-Datei vorgenommen werden muss!

Teil 1   Teil 2   Teil 3   

Kommentare