Pong AS3

feb 19, 2010   //   by Paul   //   Flash, Gaming  //  No Comments

Pong gemaakt dmv. actionscript 3. De gemaakte code is onderaan de pagina te vinden.

AS3 code:

Paul Meelen Pong
  1. package
  2. {
  3. import flash.display.*;
  4. import flash.net.*;
  5. import flash.events.*;
  6. import flash.text.*;
  7. import flash.ui.Keyboard;
  8. /**
  9. * …
  10. * @author Paul Meelen
  11. */
  12. public class Main extends MovieClip
  13. {
  14. private var up:Boolean = false;
  15. private var down:Boolean = false;
  16. private var speelveld:Sprite;
  17. private var myMiddenlijn:MovieClip;
  18. private var myBal:MovieClip;
  19. private var xsnelheid = 10;
  20. private var ysnelheid = 10;
  21. private var myPlayer:MovieClip;
  22. private var myComputer:MovieClip;
  23. private var speler_score:TextField;
  24. private var computer_score:TextField;
  25. private var sscore:Number = 0; //score nummer van de speler
  26. private var cscore:Number = 0; //score nummer van de computer
  27. public function Main():void
  28. {
  29. if (stage) init();
  30. else addEventListener(Event.ADDED_TO_STAGE, init);
  31. pong();
  32. trace(“Dit is de GTO32 toets van Paul Meelen”);
  33. //Events voor het bewegen van de speler en objecten
  34. stage.addEventListener(Event.ENTER_FRAME, updateGame);
  35. stage.addEventListener(KeyboardEvent.KEY_DOWN, eventKeyDown);
  36. stage.addEventListener(KeyboardEvent.KEY_UP, eventKeyUp);
  37. }
  38. private function pong()
  39. {
  40. //speelveld tekenen
  41. speelveld = new Sprite();
  42. speelveld.graphics.lineStyle(2,0x00FFFF,1);
  43. speelveld.graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
  44. this.addChild(speelveld);
  45. //Middenlijn
  46. myMiddenlijn = new Middenlijn();
  47. myMiddenlijn.x = stage.stageWidth / 2; //plaats de lijn in het midden van de stage
  48. myMiddenlijn.y = stage.stageHeight / 2;
  49. stage.addChild(myMiddenlijn); //Voeg middenlijn toe aan veld
  50. //De bal
  51. myBal = new Bal();
  52. myBal.x = stage.stageWidth / 2;
  53. myBal.y = stage.stageHeight / 2;
  54. stage.addChild(myBal); //Voeg de bal toe
  55. //Score van de speler
  56. speler_score = new TextField();
  57. speler_score.x = stage.stageWidth / 4;
  58. speler_score.y = 10;
  59. speler_score.textColor = 0x00FFFF;
  60. speler_score.text = “0″;
  61. this.addChild(speler_score);
  62. //Score van de computer
  63. computer_score = new TextField();
  64. computer_score.x = stage.stageWidth / 4 * 3;
  65. computer_score.y = 10;
  66. computer_score.textColor = 0x00FFFF;
  67. computer_score.text = “0″;
  68. this.addChild(computer_score);
  69. //blok van de speler
  70. myPlayer = new Player();
  71. myPlayer.x = 20;
  72. myPlayer.y = stage.stageHeight / 2;
  73. stage.addChild(myPlayer); //Voeg speler toe aan veld
  74. //blok van de computer
  75. myComputer = new Computer();
  76. myComputer.x = 780;
  77. //myComputer.y = stage.stageHeight / 2;
  78. myComputer.y = 20;
  79. stage.addChild(myComputer); //Voeg computer toe aan veld
  80. }
  81. //Update van de game
  82. private function updateGame(e:Event)
  83. {
  84. myBal.x += xsnelheid;
  85. myBal.y += ysnelheid / 1;
  86. if(up)
  87. {
  88. myPlayer.y -= 10;
  89. trace(“Omhoog”);
  90. }
  91. if(down)
  92. {
  93. myPlayer.y += 10;
  94. trace(“Omlaag”);
  95. }
  96. //bal op badjes
  97. if (myBal.hitTestObject(myPlayer)) {
  98. xsnelheid *= -1; // Bal snelheid omdraaien en naar rechts gaan
  99. }
  100. if (myBal.hitTestObject(myComputer)) {
  101. xsnelheid *= -1; // Bal snelheid omdraaien en naar links gaan
  102. }
  103. //bal uit veld
  104. if(myBal.x < 0) {
  105. cscore+=1;
  106. computer_score.text=String(cscore);
  107. reset_pong();
  108. trace(‘Links eruit’);
  109. }else if(myBal.x > this.stage.stageWidth) {
  110. sscore+=1;
  111. speler_score.text=String(sscore);
  112. reset_pong();
  113. trace(‘Rechts eruit’);
  114. }
  115. //bal tegen randen speelveld
  116. if(myBal.y < 0) {
  117. ysnelheid *= -1;
  118. trace(‘rand boven hit’);
  119. }else if(myBal.y > this.stage.stageHeight) {
  120. ysnelheid *= -1;
  121. trace(‘rand onder hit’);
  122. }
  123. //bewegen van de computer
  124. myComputer.y = myBal.y /1.3;
  125. }
  126. private function eventKeyDown(e:KeyboardEvent)
  127. {
  128. // Als de toets is ingedrukt wordt de waarde true
  129. switch(e.keyCode)
  130. {
  131. case Keyboard.UP:
  132. up = true;
  133. break;
  134. case Keyboard.DOWN:
  135. down = true;
  136. break;
  137. }
  138. }
  139. private function eventKeyUp(e:KeyboardEvent)
  140. {
  141. //Wanneer de toets wordt losgelaten is de waarde weer false
  142. switch(e.keyCode)
  143. {
  144. case Keyboard.UP:
  145. up = false;
  146. break;
  147. case Keyboard.DOWN:
  148. down = false;
  149. break;
  150. }
  151. }
  152. // game reset nadat de bal uit het veld is
  153. private function reset_pong(){
  154. myComputer.x = 780;
  155. myComputer.y = stage.stageHeight / 2;
  156. myBal.x = stage.stageWidth / 2;
  157. myBal.y = stage.stageHeight / 2;
  158. myPlayer.x = 20;
  159. myPlayer.y = stage.stageHeight / 2;
  160. myBal.x += xsnelheid *= -1;
  161. }
  162. }
  163. }
Paul Meelen Pong

Leave a comment