Guest User

Bong Pong

a guest
May 9th, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.57 KB | None | 0 0
  1. import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
  2. import java.awt.*;
  3.  
  4. public class PongWorld extends World
  5. {
  6. Ball b;
  7. Paddle p1,p2;
  8. int hits1,hits2;
  9. boolean started=true;
  10. ScoreBoard1 sb1;
  11. ScoreBoard2 sb2;
  12. GameOver go;
  13. public PongWorld()
  14. {
  15. // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
  16. super(600, 400, 1);
  17. GreenfootImage bg=new GreenfootImage(600,600);
  18. bg.setColor(Color.green);
  19. bg.drawRect(0,0,600,600);
  20. bg.fill();
  21. bg.setColor(Color.white);
  22. bg.fillRect(300,0,2,600);
  23. setBackground(bg);
  24. b=new Ball(-2,2);
  25. addObject(b,300,300);
  26. p1=new Paddle(1);
  27. addObject(p1,10,100);
  28. p2=new Paddle(2);
  29. addObject(p2,590,100);
  30. sb1=new ScoreBoard1();
  31. addObject(sb1,100,50);
  32. sb2=new ScoreBoard2();
  33. addObject(sb2,500,50);
  34. }
  35. public void act()
  36. {
  37. // if (Greenfoot.isKeyDown("enter"))
  38. // {
  39. // started=true;
  40. // addObject(b,getWidth()/2,getHeight()/2);
  41. // }
  42. // if (started==false)
  43. // return;
  44. if (p1.checkForHit()==true)
  45. b.reverseX();
  46. if (p2.checkForHit()==true)
  47. b.reverseX();
  48. if (b.missedOnRight==true)
  49. {
  50. hits1++;
  51. //System.out.println("Hits1="+hits1);
  52. b.setLocation(getWidth()/2,getHeight()/2);
  53. b.reverseX();
  54. sb1.drawScore(hits1);
  55. }
  56.  
  57. if (b.missedOnLeft==true)
  58. {
  59. hits2++;
  60. System.out.println("Hits2="+hits2);
  61. b.setLocation(getWidth()/2,getHeight()/2);
  62. b.reverseX();
  63. sb2.drawScore(hits2);
  64. }
  65. if (hits1==10)
  66. {
  67. removeObject(b);
  68. go=new GameOver();
  69. addObject(go,300,200);
  70. Greenfoot.stop();
  71. }
  72. if (hits2==10)
  73. {
  74. removeObject(b);
  75. go=new GameOver();
  76. addObject(go,300,200);
  77. Greenfoot.stop();
  78. }
  79. }
  80. }
  81.  
  82.  
  83. Ball
  84.  
  85.  
  86. import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
  87.  
  88.  
  89. public class Ball extends Actor
  90. {
  91. int X,Y,xSpeed,ySpeed,Width,Height;
  92. GreenfootImage pic;
  93. public boolean missedOnLeft=false;
  94. public boolean missedOnRight=false;
  95. public Ball(int xs,int ys)
  96. {
  97. xSpeed=xs;
  98. ySpeed=ys;
  99. pic=getImage();
  100. Width=pic.getWidth()/4;
  101. Height=pic.getHeight()/4;
  102. pic.scale(Width,Height);
  103. }
  104. public void act()
  105. {
  106. X=getX()+xSpeed;
  107. Y=getY()+ySpeed;
  108. World w=getWorld();
  109. missedOnLeft=false;
  110. missedOnRight=false;
  111. if (X<=Width/2)
  112. {
  113. missedOnLeft=true;
  114. return;
  115. }
  116. if (Y>=w.getHeight()-Height/2)
  117. ySpeed=-ySpeed;
  118. if (X>=w.getWidth()-Width/2)
  119. {
  120. missedOnRight=true;
  121. return;
  122. }
  123. if (Y<=Height/2)
  124. ySpeed=-ySpeed;
  125. setLocation(X,Y);
  126. }
  127. public void reverseX()
  128. {
  129. xSpeed=-xSpeed;
  130. }
  131. }
  132.  
  133. Game Over
  134.  
  135. import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
  136.  
  137. /**
  138. * Write a description of class GameOver here.
  139. *
  140. * @author (your name)
  141. * @version (a version number or a date)
  142. */
  143. public class GameOver extends Actor
  144. {
  145. GreenfootImage pic;
  146. public GameOver()
  147. {
  148. pic=getImage();
  149.  
  150. }
  151.  
  152. }
  153.  
  154. ScoreBoard1
  155.  
  156.  
  157. import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
  158. import java.awt.*;
  159.  
  160. public class ScoreBoard1 extends Actor
  161. {
  162. GreenfootImage pic;
  163. public ScoreBoard1()
  164. {
  165. drawScore(0);
  166. }
  167. public void drawScore(int hits)
  168. {
  169. pic=new GreenfootImage (150,50);
  170. pic.setColor(Color.white);
  171. pic.setTransparency(150);
  172. pic.fill();
  173. pic.setFont(new Font("Serif",Font.BOLD,25));
  174. pic.setColor(Color.red);
  175. pic.drawString("Misses1="+hits,0,20);
  176. setImage(pic);
  177. }
  178. }
  179.  
  180. ScoreBoard 2
  181.  
  182.  
  183. import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
  184. import java.awt.*;
  185.  
  186. public class ScoreBoard2 extends Actor
  187. {
  188. GreenfootImage pic;
  189. public ScoreBoard2()
  190. {
  191. drawScore(0);
  192. }
  193. public void drawScore(int hits)
  194. {
  195. pic=new GreenfootImage (150,50);
  196. pic.setColor(Color.white);
  197. pic.setTransparency(150);
  198. pic.fill();
  199. pic.setFont(new Font("Serif",Font.BOLD,25));
  200. pic.setColor(Color.red);
  201. pic.drawString("Misses2="+hits,0,20);
  202. setImage(pic);
  203. }
  204. }
  205.  
  206. Paddle
  207.  
  208. import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
  209.  
  210. import java.awt.*;
  211. public class Paddle extends Actor
  212. {
  213. int X,Y,Width,Height;
  214. int side;
  215. GreenfootImage pic;
  216. final int left=1,right=2;
  217. public Paddle(int s)
  218. {
  219. side=s;
  220. pic=new GreenfootImage(20,80);
  221. Width=20;
  222. Height=80;
  223. if (side==left)
  224. {
  225. pic.setColor(Color.black);
  226. pic.fillRect(0,0,Width,Height);
  227. setImage(pic);
  228. }
  229. if (side==right)
  230. {
  231. pic.setColor(Color.black);
  232. pic.fillRect(0,0,Width,Height);
  233. setImage(pic);
  234. }
  235. }
  236. public boolean checkForHit()
  237. {
  238. Ball b=(Ball)getOneIntersectingObject(Ball.class);
  239. if (b !=null)
  240. return true;
  241. return false;
  242. }
  243. public void act()
  244. {
  245. World w=getWorld();
  246. X=getX();
  247. Y=getY();
  248. if (side==left)
  249. {
  250. if (Greenfoot.isKeyDown("up"))
  251. {
  252. if(Y>=Height/2)
  253. Y=Y-5;
  254.  
  255. setLocation(X,Y);
  256. }
  257. if (Greenfoot.isKeyDown("down"))
  258. {
  259. if (Y<=w.getHeight()-Height/2)
  260. Y=Y+5;
  261. setLocation(X,Y);
  262.  
  263.  
  264. }
  265.  
  266. }
  267. if (side==right)
  268. {
  269. if (Greenfoot.isKeyDown("W"))
  270. {
  271. if(Y>=Height/2)
  272. Y=Y-5;
  273.  
  274. setLocation(X,Y);
  275. }
  276. if (Greenfoot.isKeyDown("S"))
  277. {
  278. if (Y<=w.getHeight()-Height/2)
  279. Y=Y+5;
  280. setLocation(X,Y);
  281.  
  282.  
  283. }
  284.  
  285. }
  286. }
  287. }
Advertisement
Add Comment
Please, Sign In to add comment