Guest User

TronGame

a guest
Apr 3rd, 2013
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.24 KB | None | 0 0
  1. //import list;
  2. import java.util.ArrayList;
  3. import java.awt.Color;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import java.awt.image.BufferedImage;
  7. import javax.imageio.ImageIO;
  8. import java.io.IOException;
  9. import java.io.File;
  10. import java.awt.event.*;
  11. import java.awt.Toolkit;
  12.  
  13. /*
  14. * Class by YorMeij && Tresy4game && Roselio
  15. * Get your fucking hands off our code!
  16. */
  17.  
  18. public class Game implements Runnable, KeyListener, MouseListener
  19. {
  20. private ArrayList<Image> images;
  21. private ArrayList<Player> players;
  22. private ArrayList<Enemy> enemys;
  23. private ArrayList<Line> lines;
  24.  
  25. private JFrame frame;
  26. private JPanel content;
  27.  
  28. private boolean running;
  29. private boolean crash;
  30. private Thread thread;
  31.  
  32. private int turnable;
  33.  
  34. private int grid;
  35.  
  36. public Game(){ //The constructor of the game, this launches the game
  37. images = new ArrayList<Image>(); //making the ArrayLists
  38. players = new ArrayList<Player>();
  39. enemys = new ArrayList<Enemy>();
  40. lines = new ArrayList<Line>();
  41.  
  42. makeFrame(); //Make the frame
  43. addImage(0,0,/*xBSize*/800,/*yBSize*/600,"achtergrond.jpg"); //load the Background
  44.  
  45. content.repaint(); //make it happen on the screen,
  46. }
  47.  
  48. public void makeStartScreen(){
  49.  
  50. }
  51.  
  52. public void makeLevel1(){
  53. this.grid = 20;
  54. this.running = true; //make the movement posible/start game
  55. this.crash = false; //start game cause there is no crash
  56. this.turnable = 0;
  57.  
  58. addPlayer(200,100,2*grid,grid,0,0,"BikeBlueRight.png", 0); //load Player 1, the bike's lenght:width has to be 2:1 cause otherwise th movement is fucked up
  59. addPlayer(200,200,2*grid,grid,0,0,"BikeYellowRight.png", 1); //load Player 2, the bike's lenght:width has to be 2:1 cause otherwise th movement is fucked up
  60.  
  61. Player Player1 = this.players.get(0);//get player 1
  62. Player Player2 = this.players.get(1);//get player 2
  63.  
  64. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE); //make player 1's line
  65. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make player 2's line
  66.  
  67. content.repaint(); //make it happen on the screen,
  68.  
  69. thread = new Thread(this); //Start the thread
  70. thread.start();
  71. }
  72.  
  73. public void run(){ // Main game methode
  74. Image Background = this.images.get(0);//get background because we can
  75. Player Player1 = this.players.get(0);//get player 1
  76. Player Player2 = this.players.get(1);//get player 2
  77.  
  78. Player1.setHorSp(1);//give start speed to player 1
  79. Player2.setHorSp(1);//give start speed to player 2
  80. while(this.running == true && this.crash == false){ // main game loop, loops when game is started and there is no crash
  81. // Player 1
  82. if(this.turnable == 0 && Player1.getDir() > 0){
  83. Player1.setPrevLine(Player1.getCurrentLine());//safe previous line for testing
  84. if(Player1.getDir() == 1){ //check which key and horizontal speed so it can't move in opposite direction
  85. if(Player1.getHorSp() == -1){
  86. Player1.setLineX(Player1.getX()+grid/2); //set end of line
  87. Player1.setLineY(Player1.getY()+grid/2);
  88. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  89. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  90. Player1.setX(Player1.getX());
  91. Player1.setY(Player1.getY()-Player1.getWidth()+Player1.getHeight());
  92. }
  93. if(Player1.getHorSp() == 1){
  94. Player1.setLineX(Player1.getX()+Player1.getWidth()-grid/2); //set end of line
  95. Player1.setLineY(Player1.getY()+grid/2);
  96. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  97. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  98. Player1.setX(Player1.getX()-Player1.getHeight()+Player1.getWidth());
  99. Player1.setY(Player1.getY()+Player1.getHeight()-Player1.getWidth());
  100. }
  101. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  102. Player1.setImage("BikeBlueUp.png"); //change image in the right direction
  103. Player1.setWidth(grid); //correct images size
  104. Player1.setHeight(2*grid);
  105. Player1.setLineX(Player1.getX()+grid/2);//set point line is atteched to bibe
  106. Player1.setLineY(Player1.getY()+grid/2);
  107. Player1.setHorSp(0); //give speed in the right direction
  108. Player1.setVerSp(-1);
  109. }
  110. if(Player1.getDir() == 2){ //check which key and if is in grid
  111. if(Player1.getVerSp() == -1){
  112. Player1.setLineX(Player1.getX()+grid/2); //set end of line
  113. Player1.setLineY(Player1.getY()+grid/2);
  114. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  115. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  116. Player1.setX(Player1.getX());
  117. Player1.setY(Player1.getY());
  118. }
  119. if(Player1.getVerSp() == 1){
  120. Player1.setLineX(Player1.getX()+grid/2); //set end of line
  121. Player1.setLineY(Player1.getY()+Player1.getHeight()-grid/2);
  122. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  123. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  124. Player1.setX(Player1.getX());
  125. Player1.setY(Player1.getY()+Player1.getHeight()-Player1.getWidth());
  126. }
  127. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  128. Player1.setImage("BikeBlueRight.png"); //change image in the right direction
  129. Player1.setWidth(2*grid); //correct images size
  130. Player1.setHeight(grid);
  131. Player1.setLineX(Player1.getX()+Player1.getWidth()-grid/2);//set point line is atteched to bibe
  132. Player1.setLineY(Player1.getY()+grid/2);
  133. Player1.setHorSp(1); //give speed in the right direction
  134. Player1.setVerSp(0);
  135. }
  136. if(Player1.getDir() == 3){ //check which key and horizontal speed so it can't move in opposite direction
  137. if(Player1.getHorSp() == -1){
  138. Player1.setLineX(Player1.getX()+grid/2); //set end of line
  139. Player1.setLineY(Player1.getY()+grid/2);
  140. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  141. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  142. Player1.setX(Player1.getX());
  143. Player1.setY(Player1.getY());
  144. }
  145. if(Player1.getHorSp() == 1){
  146. Player1.setLineX(Player1.getX()+Player1.getWidth()-grid/2); //set end of line
  147. Player1.setLineY(Player1.getY()+grid/2);
  148. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  149. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  150. Player1.setX(Player1.getX()-Player1.getHeight()+Player1.getWidth());
  151. Player1.setY(Player1.getY());
  152. }
  153. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  154. Player1.setImage("BikeBlueDown.png"); //change image in the right direction
  155. Player1.setWidth(grid); //correct images size
  156. Player1.setHeight(2*grid);
  157. Player1.setLineX(Player1.getX()+grid/2);//set point line is atteched to bibe
  158. Player1.setLineY(Player1.getY()+Player1.getHeight()-grid/2);
  159. Player1.setHorSp(0); //give speed in the right direction
  160. Player1.setVerSp(1);
  161. }
  162. if(Player1.getDir() == 4){ //check which key and horizontal speed so it can't move in opposite direction
  163. if(Player1.getVerSp() == -1){
  164. Player1.setLineX(Player1.getX()+grid/2); //set end of line
  165. Player1.setLineY(Player1.getY()+grid/2);
  166. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  167. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  168. Player1.setX(Player1.getX()-Player1.getHeight()+Player1.getWidth());
  169. Player1.setY(Player1.getY());
  170. }
  171. if(Player1.getVerSp() == 1){
  172. Player1.setLineX(Player1.getX()+grid/2); //set end of line
  173. Player1.setLineY(Player1.getY()+Player1.getHeight()-grid/2);
  174. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);//make next line
  175. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  176. Player1.setX(Player1.getX()-Player1.getHeight()+Player1.getWidth());
  177. Player1.setY(Player1.getY()+Player1.getHeight()-Player1.getWidth());
  178. }
  179. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  180. Player1.setImage("BikeBlueLeft.png"); //change image in the right direction
  181. Player1.setWidth(2*grid); //correct images size
  182. Player1.setHeight(grid);
  183. Player1.setLineX(Player1.getX()+grid/2);//set point line is atteched to bibe
  184. Player1.setLineY(Player1.getY()+grid/2);
  185. Player1.setHorSp(-1); //give speed in the right direction
  186. Player1.setVerSp(0);
  187. }
  188. }
  189.  
  190. // Changing the X and Y
  191. // Also known as moving...
  192. Player1.setX(Player1.getX() + Player1.getHorSp());
  193. Player1.setLineX(Player1.getLineX() + Player1.getHorSp());
  194. Player1.setY(Player1.getY() + Player1.getVerSp());
  195. Player1.setLineY(Player1.getLineY() + Player1.getVerSp());
  196.  
  197. //room wrapping
  198. if(Player1.getX() < -1*Player1.getWidth()){
  199. Player1.setX(800);
  200. Player1.setLineX(Player1.getX()+grid/2);
  201. Player1.setLineY(Player1.getY()+grid/2);
  202. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);
  203. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  204. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  205. }
  206. if(Player1.getX() > 800){
  207. Player1.setX(-1*Player1.getWidth());
  208. Player1.setLineX(Player1.getX()+Player1.getWidth()-grid/2);
  209. Player1.setLineY(Player1.getY()+grid/2);
  210. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);
  211. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  212. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  213. }
  214. if(Player1.getY() < -1*Player1.getHeight()){
  215. Player1.setY(600);
  216. Player1.setLineX(Player1.getX()+grid/2);
  217. Player1.setLineY(Player1.getY()+grid/2);
  218. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);
  219. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  220. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  221. }
  222. if(Player1.getY() > 600){
  223. Player1.setY(-1*Player1.getHeight());
  224. Player1.setLineX(Player1.getX()+grid/2);
  225. Player1.setLineY(Player1.getY()+Player1.getHeight()-grid/2);
  226. addLine(Player1.getLineX(),Player1.getLineY(),Player1.getLineX(),Player1.getLineY(),Color.BLUE);
  227. Player1.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  228. Player1.setLineNr(Player1.getLineNr()+1); //tell player that it had turned
  229. }
  230.  
  231. //draw line behind player
  232. Line CurrentLineP1 = this.lines.get(Player1.getCurrentLine());
  233. CurrentLineP1.setX2(Player1.getLineX());
  234. CurrentLineP1.setY2(Player1.getLineY());
  235.  
  236.  
  237. // Player 2
  238. if(this.turnable == 0 && Player2.getDir() > 0){
  239. Player2.setPrevLine(Player2.getCurrentLine());//safe previous line for testing
  240. if(Player2.getDir() == 1){ //check which key and horizontal speed so it can't move in opposite direction
  241. if(Player2.getHorSp() == -1){
  242. Player2.setLineX(Player2.getX()+grid/2); //set end of line
  243. Player2.setLineY(Player2.getY()+grid/2);
  244. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  245. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  246. Player2.setX(Player2.getX());
  247. Player2.setY(Player2.getY()-Player2.getWidth()+Player2.getHeight());
  248. }
  249. if(Player2.getHorSp() == 1){
  250. Player2.setLineX(Player2.getX()+Player2.getWidth()-grid/2); //set end of line
  251. Player2.setLineY(Player2.getY()+grid/2);
  252. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  253. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  254. Player2.setX(Player2.getX()-Player2.getHeight()+Player2.getWidth());
  255. Player2.setY(Player2.getY()+Player2.getHeight()-Player2.getWidth());
  256. }
  257. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  258. Player2.setImage("BikeYellowUp.png"); //change image in the right direction
  259. Player2.setWidth(grid); //correct images size
  260. Player2.setHeight(2*grid);
  261. Player2.setLineX(Player2.getX()+grid/2);//set point line is atteched to bibe
  262. Player2.setLineY(Player2.getY()+grid/2);
  263. Player2.setHorSp(0); //give speed in the right direction
  264. Player2.setVerSp(-1);
  265. }
  266. if(Player2.getDir() == 2){ //check which key and if is in grid
  267. if(Player2.getVerSp() == -1){
  268. Player2.setLineX(Player2.getX()+grid/2); //set end of line
  269. Player2.setLineY(Player2.getY()+grid/2);
  270. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  271. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  272. Player2.setX(Player2.getX());
  273. Player2.setY(Player2.getY());
  274. }
  275. if(Player2.getVerSp() == 1){
  276. Player2.setLineX(Player2.getX()+grid/2); //set end of line
  277. Player2.setLineY(Player2.getY()+Player2.getHeight()-grid/2);
  278. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  279. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  280. Player2.setX(Player2.getX());
  281. Player2.setY(Player2.getY()+Player2.getHeight()-Player2.getWidth());
  282. }
  283. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  284. Player2.setImage("BikeYellowRight.png"); //change image in the right direction
  285. Player2.setWidth(2*grid); //correct images size
  286. Player2.setHeight(grid);
  287. Player2.setLineX(Player2.getX()+Player2.getWidth()-grid/2);//set point line is atteched to bibe
  288. Player2.setLineY(Player2.getY()+grid/2);
  289. Player2.setHorSp(1); //give speed in the right direction
  290. Player2.setVerSp(0);
  291. }
  292. if(Player2.getDir() == 3){ //check which key and horizontal speed so it can't move in opposite direction
  293. if(Player2.getHorSp() == -1){
  294. Player2.setLineX(Player2.getX()+grid/2); //set end of line
  295. Player2.setLineY(Player2.getY()+grid/2);
  296. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  297. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  298. Player2.setX(Player2.getX());
  299. Player2.setY(Player2.getY());
  300. }
  301. if(Player2.getHorSp() == 1){
  302. Player2.setLineX(Player2.getX()+Player2.getWidth()-grid/2); //set end of line
  303. Player2.setLineY(Player2.getY()+grid/2);
  304. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  305. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  306. Player2.setX(Player2.getX()-Player2.getHeight()+Player2.getWidth());
  307. Player2.setY(Player2.getY());
  308. }
  309. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  310. Player2.setImage("BikeYellowDown.png"); //change image in the right direction
  311. Player2.setWidth(grid); //correct images size
  312. Player2.setHeight(2*grid);
  313. Player2.setLineX(Player2.getX()+grid/2);//set point line is atteched to bibe
  314. Player2.setLineY(Player2.getY()+Player2.getHeight()-grid/2);
  315. Player2.setHorSp(0); //give speed in the right direction
  316. Player2.setVerSp(1);
  317. }
  318. if(Player2.getDir() == 4){ //check which key and horizontal speed so it can't move in opposite direction
  319. if(Player2.getVerSp() == -1){
  320. Player2.setLineX(Player2.getX()+grid/2); //set end of line
  321. Player2.setLineY(Player2.getY()+grid/2);
  322. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  323. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  324. Player2.setX(Player2.getX()-Player2.getHeight()+Player2.getWidth());
  325. Player2.setY(Player2.getY());
  326. }
  327. if(Player2.getVerSp() == 1){
  328. Player2.setLineX(Player2.getX()+grid/2); //set end of line
  329. Player2.setLineY(Player2.getY()+Player2.getHeight()-grid/2);
  330. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);//make next line
  331. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());//use next line
  332. Player2.setX(Player2.getX()-Player2.getHeight()+Player2.getWidth());
  333. Player2.setY(Player2.getY()+Player2.getHeight()-Player2.getWidth());
  334. }
  335. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  336. Player2.setImage("BikeYellowLeft.png"); //change image in the right direction
  337. Player2.setWidth(2*grid); //correct images size
  338. Player2.setHeight(grid);
  339. Player2.setLineX(Player2.getX()+grid/2);//set point line is atteched to bibe
  340. Player2.setLineY(Player2.getY()+grid/2);
  341. Player2.setHorSp(-1); //give speed in the right direction
  342. Player2.setVerSp(0);
  343. }
  344. }
  345.  
  346. // Changing the X and Y
  347. // Also known as moving...
  348. Player2.setX(Player2.getX() + Player2.getHorSp());
  349. Player2.setLineX(Player2.getLineX() + Player2.getHorSp());
  350. Player2.setY(Player2.getY() + Player2.getVerSp());
  351. Player2.setLineY(Player2.getLineY() + Player2.getVerSp());
  352.  
  353. //room wrapping
  354. if(Player2.getX() < -1*Player2.getWidth()){
  355. Player2.setX(800);
  356. Player2.setLineX(Player2.getX()+grid/2);
  357. Player2.setLineY(Player2.getY()+grid/2);
  358. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);
  359. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  360. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  361. }
  362. if(Player2.getX() > 800){
  363. Player2.setX(-1*Player2.getWidth());
  364. Player2.setLineX(Player2.getX()+Player2.getWidth()-grid/2);
  365. Player2.setLineY(Player2.getY()+grid/2);
  366. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);
  367. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  368. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  369. }
  370. if(Player2.getY() < -1*Player2.getHeight()){
  371. Player2.setY(600);
  372. Player2.setLineX(Player2.getX()+grid/2);
  373. Player2.setLineY(Player2.getY()+grid/2);
  374. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);
  375. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  376. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  377. }
  378. if(Player2.getY() > 600){
  379. Player2.setY(-1*Player2.getHeight());
  380. Player2.setLineX(Player2.getX()+grid/2);
  381. Player2.setLineY(Player2.getY()+Player2.getHeight()-grid/2);
  382. addLine(Player2.getLineX(),Player2.getLineY(),Player2.getLineX(),Player2.getLineY(),Color.YELLOW);
  383. Player2.setCurrentLine(Player1.getLineNr()+Player2.getLineNr());
  384. Player2.setLineNr(Player2.getLineNr()+1); //tell player that it had turned
  385. }
  386.  
  387. //draw line behind player
  388. Line CurrentLineP2 = this.lines.get(Player2.getCurrentLine());
  389. CurrentLineP2.setX2(Player2.getLineX());
  390. CurrentLineP2.setY2(Player2.getLineY());
  391.  
  392. // implents grid
  393. this.turnable++;
  394. this.turnable = this.turnable % 20;
  395.  
  396. content.repaint(); //make it happen on the screen,
  397.  
  398. // launch the collision methode
  399. Collision();
  400.  
  401. try{thread.sleep(5);} catch(InterruptedException e) {} //implements small delay !KEEP IT SMALL DAMNIT!
  402. }
  403.  
  404. if(this.crash == true){
  405. //lines.clear();
  406. }
  407. }
  408.  
  409. public void Collision(){
  410. Player Player1 = this.players.get(0);//get player 1
  411. Player Player2 = this.players.get(1);//get player 2
  412.  
  413. // Check that players don't collapse
  414. // If so, it's a tie.
  415. if(Player1.getX() >= Player2.getX() && Player1.getX() <= Player2.getX() + Player2.getWidth() && Player1.getY() >= Player2.getY() && Player1.getY() <= Player2.getY() + Player2.getHeight()){
  416. System.out.println("Players collapse");
  417. Player1.setHorSp(0);//stop players cause the game is over
  418. Player1.setVerSp(0);
  419. Player2.setHorSp(0);
  420. Player2.setVerSp(0);
  421. System.out.println("It's a tie");
  422. addImage(0,0,800,600,"Tie.png");//load tie screen
  423. this.crash=true;
  424. }
  425. if(Player1.getX() >= Player2.getX() && Player1.getX() <= Player2.getX() + Player2.getWidth() && Player1.getY()+Player1.getHeight() >= Player2.getY() && Player1.getY()+Player1.getHeight() <= Player2.getY() + Player2.getHeight()){
  426. System.out.println("Players collapse");
  427. Player1.setHorSp(0);
  428. Player1.setVerSp(0);
  429. Player2.setHorSp(0);
  430. Player2.setVerSp(0);
  431. System.out.println("It's a tie");
  432. addImage(0,0,800,600,"Tie.png");//load tie screen
  433. this.crash=true;
  434. }
  435. if(Player2.getX() >= Player1.getX() && Player2.getX() <= Player1.getX() + Player1.getWidth() && Player2.getY() >= Player1.getY() && Player2.getY() <= Player1.getY() + Player1.getHeight()){
  436. System.out.println("Players collapse");
  437. Player1.setHorSp(0);
  438. Player1.setVerSp(0);
  439. Player2.setHorSp(0);
  440. Player2.setVerSp(0);
  441. System.out.println("It's a tie");
  442. addImage(0,0,800,600,"Tie.png");//load tie screen
  443. this.crash=true;
  444. }
  445. if(Player2.getX() >= Player1.getX() && Player2.getX() <= Player1.getX() + Player1.getWidth() && Player2.getY()+Player2.getHeight() >= Player1.getY() && Player2.getY()+Player2.getHeight() <= Player1.getY() + Player1.getHeight()){
  446. System.out.println("Players collapse");
  447. Player1.setHorSp(0);
  448. Player1.setVerSp(0);
  449. Player2.setHorSp(0);
  450. Player2.setVerSp(0);
  451. System.out.println("It's a tie");
  452. addImage(0,0,800,600,"Tie.png");//load tie screen
  453. this.crash=true;
  454. }
  455.  
  456. for(int i=0; i<lines.size(); i++){
  457. Line l = this.lines.get(i); //
  458.  
  459. // player 1
  460. if(i != Player1.getCurrentLine()){ // these two if's save a lot of speed
  461. if(i != Player1.getPrevLine()){
  462. // player 1
  463. // check upper left corner
  464. if(l.getX1() <= Player1.getX() && l.getX2() >= Player1.getX() && l.getY1() <= Player1.getY() && l.getY2() >= Player1.getY()){
  465. System.out.println("Player crashes with line");
  466. System.out.println("Player 2 wins");
  467. // addImage(0,0,800,600,"Tie.png");//load tie screen
  468. this.crash=true;
  469. }
  470. // check bottom right
  471. if(l.getX1() <= Player1.getX() + Player1.getWidth() && l.getX2() >= Player1.getX() + Player1.getWidth() && l.getY1() <= Player1.getY() + Player1.getHeight() && l.getY2() >= Player1.getY() + Player1.getHeight()){
  472. System.out.println("Player crashes with line");
  473. System.out.println("Player 2 wins");
  474. // addImage(0,0,800,600,"Tie.png");//load tie screen
  475. this.crash=true;
  476. }
  477. // check center
  478. if(l.getX1() <= Player1.getX() + (0.5*Player1.getWidth()) && l.getX2() >= Player1.getX() + (0.5*Player1.getWidth()) && l.getY1() <= Player1.getY() + (0.5*Player1.getHeight()) && l.getY2() >= Player1.getY() + (0.5*Player1.getHeight())){
  479. System.out.println("Player crashes with line");
  480. System.out.println("Player 2 wins");
  481. // addImage(0,0,800,600,"Tie.png");//load tie screen
  482. this.crash=true;
  483. }
  484. }
  485. }
  486.  
  487. // player 2
  488. if(i != Player2.getCurrentLine()){ // these two if's save a lot of speed
  489. if(i != Player2.getPrevLine()){
  490. // player 2
  491. // check upper left corner
  492. if(l.getX1() <= Player2.getX() && l.getX2() >= Player2.getX() && l.getY1() <= Player2.getY() && l.getY2() >= Player2.getY()){
  493. System.out.println("Player crashes with line");
  494. System.out.println("Player 1 wins");
  495. // addImage(0,0,800,600,"Tie.png");//load tie screen
  496. this.crash=true;
  497. }
  498. // check bottom right
  499. if(l.getX1() <= Player2.getX() + Player2.getWidth() && l.getX2() >= Player2.getX() + Player2.getWidth() && l.getY1() <= Player2.getY() + Player2.getHeight() && l.getY2() >= Player2.getY() + Player2.getHeight()){
  500. System.out.println("Player crashes with line");
  501. System.out.println("Player 1 wins");
  502. // addImage(0,0,800,600,"Tie.png");//load tie screen
  503. this.crash=true;
  504. }
  505. // check center
  506. if(l.getX1() <= Player2.getX() + (0.5*Player2.getWidth()) && l.getX2() >= Player2.getX() + (0.5*Player2.getWidth()) && l.getY1() <= Player2.getY() + (0.5*Player2.getHeight()) && l.getY2() >= Player2.getY() + (0.5*Player2.getHeight())){
  507. System.out.println("Player crashes with line");
  508. System.out.println("Player 1 wins");
  509. // addImage(0,0,800,600,"Tie.png");/ m/load tie screen
  510. this.crash=true;
  511. }
  512. }
  513. }
  514. }
  515. }
  516.  
  517. public void makeFrame(){ // Create JFrame with Render
  518. this.content = new Render(images, players, enemys, lines); //Calling the class Render
  519.  
  520. this.frame = new JFrame("TRON DEMO"); // Make the frame, with the name 'TRON DEMO'
  521. Toolkit tk = Toolkit.getDefaultToolkit();
  522. int xSize = ((int) tk.getScreenSize().getWidth());
  523. int ySize = ((int) tk.getScreenSize().getHeight());
  524. frame.setSize(/*xSize*/800,/*ySize*/600); //make the frame fullscreen with the toolkit
  525. this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  526. this.frame.setVisible(true); //make the frame visible
  527. this.frame.setResizable(false); // Make sure that the screen can't be resized
  528. this.frame.addMouseListener(this); //add the mouselistener
  529. this.frame.add(this.content); //make sure there is something to see on the screen
  530. this.frame.addKeyListener(this); //add the keylistener
  531.  
  532. content.repaint(); //make it happen on the screen,
  533. }
  534.  
  535. private void addImage(int x,int y,int w,int h,String naam){ // main methode for adding images
  536. BufferedImage image = null;
  537.  
  538. try{image = ImageIO.read(new File(naam));} catch(IOException e){}
  539. this.images.add(new Image(x,y,w,h, image));
  540. }
  541.  
  542. private void addPlayer(int x,int y,int w,int h,int hs, int vs, String naam, int cl){ // main methode for adding Players (image)
  543. BufferedImage image = null;
  544.  
  545. try{image = ImageIO.read(new File(naam));} catch(IOException e){}
  546. this.players.add(new Player(x,y,w,h,hs,vs, image, cl));
  547. }
  548.  
  549. private void addEnemy(int x,int y,int w,int h,String naam){ // main methode for adding Enemy's (image)
  550. BufferedImage image = null;
  551.  
  552. try{image = ImageIO.read(new File(naam));} catch(IOException e){}
  553. this.enemys.add(new Enemy(x,y,w,h, image));
  554. }
  555.  
  556. public void addLine(int x1, int y1, int x2, int y2, Color lineColor){
  557. this.lines.add(new Line(x1, y1, x2, y2, lineColor));
  558. }
  559.  
  560. public void setCrash(boolean x){
  561. this.crash = x;
  562. }
  563.  
  564. public int getGrid(){
  565. return this.grid;
  566. }
  567.  
  568. //methodes needed for keyboard and mouse-events
  569. public void keyPressed(KeyEvent key){ // Events which should happend when a key is pressed
  570. if(this.running == true){
  571. Player Player1 = this.players.get(0);//get player 1
  572. Player Player2 = this.players.get(1);//get player 2
  573.  
  574. //Player 1
  575. if(key.getKeyCode() == KeyEvent.VK_UP && Player1.getDir() == 0 && Player1.getVerSp() == 0){
  576. Player1.setDir(1);
  577. }
  578. if(key.getKeyCode() == KeyEvent.VK_RIGHT && Player1.getDir() == 0 && Player1.getHorSp() == 0){
  579. Player1.setDir(2);
  580. }
  581. if(key.getKeyCode() == KeyEvent.VK_DOWN && Player1.getDir() == 0 && Player1.getVerSp() == 0){
  582. Player1.setDir(3);
  583. }
  584. if(key.getKeyCode() == KeyEvent.VK_LEFT && Player1.getDir() == 0 && Player1.getHorSp() == 0){
  585. Player1.setDir(4);
  586. }
  587.  
  588. //Player 2
  589. if(key.getKeyCode() == KeyEvent.VK_W && Player2.getDir() == 0 && Player2.getVerSp() == 0){
  590. Player2.setDir(1);
  591. }
  592. if(key.getKeyCode() == KeyEvent.VK_D && Player2.getDir() == 0 && Player2.getHorSp() == 0){
  593. Player2.setDir(2);
  594. }
  595. if(key.getKeyCode() == KeyEvent.VK_S && Player2.getDir() == 0 && Player2.getVerSp() == 0){
  596. Player2.setDir(3);
  597. }
  598. if(key.getKeyCode() == KeyEvent.VK_A && Player2.getDir() == 0 && Player2.getHorSp() == 0){
  599. Player2.setDir(4);
  600. }
  601. }
  602. }
  603.  
  604. public void keyReleased(KeyEvent key){
  605. if(key.getKeyCode() == 32 && this.running == false){
  606. makeLevel1();
  607. }
  608.  
  609. if(this.running == true){
  610. Player Player1 = this.players.get(0);//get player 1
  611. Player Player2 = this.players.get(1);//get player 2
  612.  
  613. //Player 1
  614. if(key.getKeyCode() == KeyEvent.VK_UP){
  615. Player1.setDir(0);
  616. }
  617. if(key.getKeyCode() == KeyEvent.VK_RIGHT){
  618. Player1.setDir(0);
  619. }
  620. if(key.getKeyCode() == KeyEvent.VK_DOWN){
  621. Player1.setDir(0);
  622. }
  623. if(key.getKeyCode() == KeyEvent.VK_LEFT){
  624. Player1.setDir(0);
  625. }
  626.  
  627. //Player 2
  628. if(key.getKeyCode() == KeyEvent.VK_W){
  629. Player2.setDir(0);
  630. }
  631. if(key.getKeyCode() == KeyEvent.VK_D){
  632. Player2.setDir(0);
  633. }
  634. if(key.getKeyCode() == KeyEvent.VK_S){
  635. Player2.setDir(0);
  636. }
  637. if(key.getKeyCode() == KeyEvent.VK_A){
  638. Player2.setDir(0);
  639. }
  640. }
  641. }
  642.  
  643. /* draw grid
  644. * BUG: memory overload
  645. * there is a new version of this grid. But the code was beautiful so therefore is this still in the code.
  646. * public void makeGrid(){
  647. for(int gw = 0; gw < 800; gw = gw+20){
  648. for(int gh = 0; gh < 600; gh = gh+20){
  649. addWall(gw,gh,20,20,"BikeBlueTest.jpg",false);
  650. }
  651. }
  652. }
  653.  
  654. private void addWall(int x,int y,int w,int h,String naam, boolean dangerous){
  655. BufferedImage image = null;
  656.  
  657. try{image = ImageIO.read(new File(naam));} catch(IOException e){}
  658. this.images.add(new Image(x,y,w,h, image));
  659. }*/
  660.  
  661.  
  662. //unused keyboard and mouse methodes
  663. public void keyTyped(KeyEvent key){
  664. //System.out.println("toets:" + key.getKeyChar());
  665. }
  666.  
  667. public void mouseExited(MouseEvent event) {
  668. //System.out.println("mouseExited");
  669. }
  670.  
  671. public void mouseEntered(MouseEvent event) {
  672. //System.out.println("mouseEntered");
  673. }
  674.  
  675. public void mouseReleased(MouseEvent event) {
  676. //System.out.println("mouseReleased");
  677. }
  678.  
  679. public void mousePressed(MouseEvent event) {
  680. //System.out.println("mousePressed");
  681. }
  682.  
  683. public void mouseClicked(MouseEvent event) {
  684. //System.out.println("mouseClicked");
  685. }
  686.  
  687. }
  688.  
  689. import java.util.ArrayList;
  690. import java.awt.*;
  691. import java.awt.geom.Ellipse2D;
  692. import javax.swing.*;
  693. import javax.imageio.ImageIO;
  694. import java.io.IOException;
  695. import java.io.File;
  696. import java.awt.image.BufferedImage;
  697.  
  698. public class Render extends JPanel{
  699. private ArrayList<Image> images;
  700. private ArrayList<Player> players;
  701. private ArrayList<Enemy> enemys;
  702. private ArrayList<Line> lines;
  703.  
  704. public Render(ArrayList<Image> images, ArrayList<Player> players, ArrayList<Enemy> enemys, ArrayList<Line> lines)
  705. {
  706. super();
  707. this.images = images;
  708. this.players = players;
  709. this.enemys = enemys;
  710. this.lines = lines;
  711. }
  712.  
  713. public void paintComponent(Graphics g){ // paint all the things
  714. super.paintComponent(g);
  715. Graphics2D randomName = (Graphics2D) g;
  716.  
  717. for (Image i : images){
  718. randomName.drawImage(i.getImage(), i.getX(), i.getY(), i.getWidth(), i.getHeight(), null);
  719. }
  720.  
  721. for (Line i : lines){
  722. randomName.setColor(i.getLineColor());
  723. randomName.setStroke(new BasicStroke(1));
  724. randomName.drawLine(i.getX1(), i.getY1(), i.getX2(), i.getY2());
  725. }
  726.  
  727. for (Player i : players){
  728. randomName.drawImage(i.getImage(), i.getX(), i.getY(), i.getWidth(), i.getHeight(), null);
  729. }
  730.  
  731. for (Enemy i : enemys){
  732. randomName.drawImage(i.getImage(), i.getX(), i.getY(), i.getWidth(), i.getHeight(), null);
  733. }
  734. }
  735. }
  736.  
  737. import javax.swing.*;
  738. import java.awt.*;
  739. import java.awt.image.BufferedImage;
  740.  
  741. //needed for setting image
  742. import java.io.File;
  743. import javax.imageio.ImageIO;
  744. import java.io.IOException;
  745.  
  746. public class Image //Image = Background
  747. {
  748. private BufferedImage image;
  749. private int x;
  750. private int y;
  751. private int width;
  752. private int height;
  753.  
  754. public Image(int x, int y, int w, int h, BufferedImage img) //constructor of the backgrounds
  755. {
  756. this.x = x;
  757. this.y = y;
  758. this.width = w;
  759. this.height = h;
  760. this.image = img;
  761. }
  762.  
  763. //in case the Background needs to be moved, not used at the moment
  764.  
  765. public void setX(int newX)
  766. {
  767. this.x = newX;
  768. }
  769.  
  770. public int getX()
  771. {
  772. return this.x;
  773. }
  774.  
  775. public void setY(int newY)
  776. {
  777. this.y = newY;
  778. }
  779.  
  780. public int getY()
  781. {
  782. return this.y;
  783. }
  784.  
  785. public void setWidth(int newWidth){
  786. this.width = newWidth;
  787. }
  788.  
  789. public int getWidth(){
  790. return this.width;
  791. }
  792.  
  793. public void setHeight(int newHeight){
  794. this.height = newHeight;
  795. }
  796.  
  797. public int getHeight(){
  798. return this.height;
  799. }
  800.  
  801. public void setImage(String naam){
  802. BufferedImage newImage = null;
  803.  
  804. try{newImage = ImageIO.read(new File(naam));} catch(IOException e){}
  805. this.image = newImage;
  806. }
  807.  
  808. public BufferedImage getImage(){
  809. return this.image;
  810. }
  811. }
  812.  
  813. import javax.swing.*;
  814. import java.awt.*;
  815. import java.awt.image.BufferedImage;
  816.  
  817. //needed for setting image
  818. import java.io.File;
  819. import javax.imageio.ImageIO;
  820. import java.io.IOException;
  821.  
  822. public class Player // the player, the one you control
  823. {
  824. private BufferedImage image;
  825. private int x;
  826. private int y;
  827. private int width;
  828. private int height;
  829. private int horSp;
  830. private int verSp;
  831. private int currentLine;
  832. private int lineNr;
  833. private int prevline;
  834. private int direction;
  835. private int lineX;
  836. private int lineY;
  837.  
  838. public Player(int x, int y, int w, int h, int horSp, int verSp, BufferedImage img, int currentLine) //constructor for the player
  839. {
  840. this.x = x;
  841. this.y = y;
  842. this.width = w;
  843. this.height = h;
  844. this.horSp = horSp;
  845. this.verSp = verSp;
  846. this.image = img;
  847. this.currentLine = currentLine;
  848. this.lineNr = 1;
  849. this.direction = 0;
  850. this.lineX = x + width - width/4;
  851. this.lineY = y + width/4;
  852. }
  853.  
  854. //methodes
  855. public void setX(int newX)
  856. {
  857. this.x = newX;
  858. }
  859.  
  860. public int getX()
  861. {
  862. return this.x;
  863. }
  864.  
  865. public void setY(int newY)
  866. {
  867. this.y = newY;
  868. }
  869.  
  870. public int getY()
  871. {
  872. return this.y;
  873. }
  874.  
  875. public void setWidth(int newWidth){
  876. this.width = newWidth;
  877. }
  878.  
  879. public int getWidth(){
  880. return this.width;
  881. }
  882.  
  883. public void setHeight(int newHeight){
  884. this.height = newHeight;
  885. }
  886.  
  887. public int getHeight(){
  888. return this.height;
  889. }
  890.  
  891. public void setHorSp(int newHorSp)
  892. {
  893. this.horSp = newHorSp;
  894. }
  895.  
  896. public int getHorSp()
  897. {
  898. return this.horSp;
  899. }
  900.  
  901. public void setVerSp(int newVerSp)
  902. {
  903. this.verSp = newVerSp;
  904. }
  905.  
  906. public int getVerSp()
  907. {
  908. return this.verSp;
  909. }
  910.  
  911. public void setImage(String naam){
  912. BufferedImage newImage = null;
  913.  
  914. try{newImage = ImageIO.read(new File(naam));} catch(IOException e){}
  915. this.image = newImage;
  916. }
  917.  
  918. public BufferedImage getImage(){
  919. return this.image;
  920. }
  921.  
  922. public int getCurrentLine(){
  923. return this.currentLine;
  924. }
  925.  
  926. public void setCurrentLine(int newCurrentLine){
  927. this.currentLine = newCurrentLine;
  928. }
  929.  
  930. public void setLineNr(int newLineNr)
  931. {
  932. this.lineNr = newLineNr;
  933. }
  934.  
  935. public int getLineNr()
  936. {
  937. return this.lineNr;
  938. }
  939.  
  940. public void setPrevLine(int i){
  941. this.prevline = i;
  942. }
  943.  
  944. public int getPrevLine(){
  945. return this.prevline;
  946. }
  947.  
  948. public void setDir(int dir){
  949. this.direction = dir;
  950. }
  951.  
  952. public int getDir(){
  953. return this.direction;
  954. }
  955.  
  956. public void setLineX(int newLineX){
  957. this.lineX = newLineX;
  958. }
  959.  
  960. public int getLineX(){
  961. return this.lineX;
  962. }
  963.  
  964. public void setLineY(int newLineY){
  965. this.lineY = newLineY;
  966. }
  967.  
  968. public int getLineY(){
  969. return this.lineY;
  970. }
  971. }
  972.  
  973. import javax.swing.*;
  974. import java.awt.*;
  975. import java.awt.image.BufferedImage;
  976.  
  977. //needed for setting image
  978. import java.io.File;
  979. import javax.imageio.ImageIO;
  980. import java.io.IOException;
  981.  
  982. public class Enemy //the enemy,
  983. {
  984. private BufferedImage image;
  985. private int x;
  986. private int y;
  987. private int width;
  988. private int height;
  989.  
  990. public Enemy(int x, int y, int w, int h, BufferedImage img) //the constructor of the enemy
  991. {
  992. this.x = x;
  993. this.y = y;
  994. this.width = w;
  995. this.height = h;
  996. this.image = img;
  997. }
  998.  
  999. //moving the enemy
  1000.  
  1001. public void setX(int newX)
  1002. {
  1003. this.x = newX;
  1004. }
  1005.  
  1006. public int getX()
  1007. {
  1008. return this.x;
  1009. }
  1010.  
  1011. public void setY(int newY)
  1012. {
  1013. this.y = newY;
  1014. }
  1015.  
  1016. public int getY()
  1017. {
  1018. return this.y;
  1019. }
  1020.  
  1021. public void setWidth(int newWidth){
  1022. this.width = newWidth;
  1023. }
  1024.  
  1025. public int getWidth(){
  1026. return this.width;
  1027. }
  1028.  
  1029. public void setHeight(int newHeight){
  1030. this.height = newHeight;
  1031. }
  1032.  
  1033. public int getHeight(){
  1034. return this.height;
  1035. }
  1036.  
  1037. public void setImage(String naam){
  1038. BufferedImage newImage = null;
  1039.  
  1040. try{newImage = ImageIO.read(new File(naam));} catch(IOException e){}
  1041. this.image = newImage;
  1042. }
  1043.  
  1044. public BufferedImage getImage(){
  1045. return this.image;
  1046. }
  1047. }
  1048.  
  1049. import java.awt.Color;
  1050.  
  1051. public class Line{
  1052. private int x1;
  1053. private int y1;
  1054. private int x2;
  1055. private int y2;
  1056. private Color lineColor;
  1057.  
  1058. public Line(int x1, int y1, int x2, int y2, Color lineColor){
  1059. this.x1 = x1;
  1060. this.y1 = y1;
  1061. this.x2 = x2;
  1062. this.y2 = y2;
  1063. this.lineColor = lineColor;
  1064. }
  1065.  
  1066. public int getX1(){
  1067. return this.x1;
  1068. }
  1069.  
  1070. public void setX1(int newX1){
  1071. this.x1 = newX1;
  1072. }
  1073.  
  1074. public int getX2(){
  1075. return this.x2;
  1076. }
  1077.  
  1078. public void setX2(int newX2){
  1079. this.x2 = newX2;
  1080. }
  1081.  
  1082. public int getY1(){
  1083. return this.y1;
  1084. }
  1085.  
  1086. public void setY1(int newY1){
  1087. this.y1 = newY1;
  1088. }
  1089.  
  1090. public int getY2(){
  1091. return this.y2;
  1092. }
  1093.  
  1094. public void setY2(int newY2){
  1095. this.y2 = newY2;
  1096. }
  1097.  
  1098. public Color getLineColor(){
  1099. return this.lineColor;
  1100. }
  1101.  
  1102. public void setLineColor(Color newLineColor){
  1103. this.lineColor = newLineColor;
  1104. }
  1105. }
  1106.  
  1107. // goodluck
Advertisement
Add Comment
Please, Sign In to add comment