Guest User

Spiel

a guest
Feb 2nd, 2017
79
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import ea.*;
  2. import java.awt.image.BufferedImage;
  3. import ea.internal.io.ImageLoader;
  4. import java.io.*;
  5. import javax.swing.*;
  6.  
  7. public class Spiel extends Game
  8. {
  9. private static int breite = 10;
  10. private static int hoehe = 14;
  11.  
  12. private int p1x = 200;
  13. private int p1y = 200;
  14.  
  15. private int p2x = 100;
  16. private int p2y = 200;
  17.  
  18. private int cx = 50;
  19. private int cy = 50;
  20.  
  21. private int RectX = 32;
  22. private int RectX2 = 32;
  23. private BildX figurObj;
  24. private BildX figurObj2;
  25. private BildX coinObj;
  26. private Figur figurDat = new Figur();
  27. private Figur figurDat2 = new Figur(); //Daten der Figur
  28. //Rechteck figurAusd deklarieren für die Ausdaueranzeige
  29. private Rechteck Rect;
  30. private Rechteck Rect2;
  31. //private BufferedImage figurBil[] = new BufferedImage[12]; //Bilder der Figur
  32.  
  33. private Coin coinDat = new Coin();
  34.  
  35. private Bild[][] karte = new Bild[breite][hoehe];
  36.  
  37. public Spiel() {
  38. super(breite * 32, hoehe *32);
  39.  
  40. try{
  41. ladeKarte();
  42. }
  43. catch(IOException e)
  44. {
  45. try{
  46. generiereKarte();
  47. }catch(IOException f){}
  48. }
  49.  
  50. figurDat.ladeFiguren(2);
  51. figurDat2.ladeFiguren(7);
  52.  
  53. coinDat.ladeCoin();
  54.  
  55.  
  56. // Rechteck initialisieren ... = new Rechteck(...)
  57. // optional: Rechteck Farbe zuweisen
  58. // Rechteck hinzufügen
  59. Rect = new Rechteck(p1x, p1y+34 , RectX , 8);
  60. Rect2 = new Rechteck (p2x, p2y +34, RectX2, 8);
  61.  
  62. figurObj = new BildX(p1x, p1y, figurDat.figurBil[0]);
  63. figurObj2 = new BildX(p2x, p2y, figurDat2.figurBil[0]);
  64. coinObj = new BildX(cx, cy, coinDat.coinBil[0]);
  65.  
  66. wurzel.add(figurObj);
  67. wurzel.add(figurObj2);
  68. wurzel.add(Rect);
  69. wurzel.add(Rect2);
  70. wurzel.add(coinObj);
  71.  
  72. while(tasteGedrueckt(Taste.ESCAPE) != true)
  73. {
  74. dreheCoin();
  75. if(tasteGedrueckt(Taste.OBEN) == true && figurObj.getY()- figurDat.getSpeed() > 0)
  76. {
  77. verschiebeFigur(0,-figurDat.getSpeed(), 11, 8);
  78. //verschiebeRect(0,-figurDat.getSpeed());
  79. } else if(tasteGedrueckt(Taste.RECHTS) == true && figurObj.getX()+figurObj.getBreite()+figurDat.getSpeed() < breite * 32)
  80. {
  81. verschiebeFigur(figurDat.getSpeed(),0, 8, 8);
  82. //verschiebeRect(figurDat.getSpeed(),0);
  83. } else if(tasteGedrueckt(Taste.UNTEN) == true && figurObj.getY()+figurObj.getHoehe()+figurDat.getSpeed() < hoehe * 32)
  84. {
  85. verschiebeFigur(0,figurDat.getSpeed(), 2, 8);
  86. //verschiebeRect(0,figurDat.getSpeed());
  87. } else if(tasteGedrueckt(Taste.LINKS) == true && figurObj.getX()-figurDat.getSpeed() > 0)
  88. {
  89. verschiebeFigur(-figurDat.getSpeed(),0,5,8);
  90. //verschiebeRect(-figurDat.getSpeed(),0);
  91. }
  92.  
  93. //Steuerung der Ausdauer implementieren
  94. //Rechtecksbreite der Ausdauer zuordnen
  95. if(tasteGedrueckt(Taste.OBEN)==true || tasteGedrueckt(Taste.UNTEN)==true || tasteGedrueckt(Taste.RECHTS)==true || tasteGedrueckt(Taste.LINKS)==true){
  96. if(tasteGedrueckt(Taste.L)==true && figurDat.getStamina() -4 > 25) {
  97. figurDat.setSpeed(8);
  98. figurDat.setStamina(-4);
  99. }
  100. else if(tasteGedrueckt(Taste.L)==true && figurDat.getStamina() -4 < 25 && figurDat.getStamina() -4 >0){
  101. figurDat.setSpeed(6);
  102. figurDat.setStamina(-4);
  103. }
  104. else if(tasteGedrueckt(Taste.L)==true && figurDat.getStamina()-4 <= 0){
  105. figurDat.setSpeed(4);
  106. }
  107. else if(tasteGedrueckt(Taste.L)==false){
  108. figurDat.setSpeed(4);
  109. if(figurDat.getStamina()<=100){
  110. figurDat.setStamina(2);
  111. }
  112. }
  113. }else{
  114. if(figurDat.getStamina()<=100){
  115. figurDat.setStamina(2);
  116. }
  117. }
  118. Rect.breiteSetzen((int)(figurDat.getStamina()*0.32));
  119.  
  120. if(figurDat.getStamina()>=50){
  121. Farbe grün = new Farbe(0, 255, 0);
  122. Rect.farbeSetzen(grün);
  123. }else if(figurDat.getStamina()>=15){
  124. Farbe gelb = new Farbe(255,255,0);
  125. Rect.farbeSetzen(gelb);
  126. }else{
  127. Farbe rot=new Farbe(255,0,0);
  128. Rect.farbeSetzen(rot);
  129. }
  130.  
  131. // 2. Spieler
  132. if(tasteGedrueckt(Taste.W) == true && figurObj2.getY()- figurDat2.getSpeed() > 0)
  133. {
  134. verschiebeFigur2(0,-figurDat2.getSpeed(), 11, 8);
  135. //verschiebeRect(0,-figurDat.getSpeed());
  136. } else if(tasteGedrueckt(Taste.D) == true && figurObj2.getX()+figurObj2.getBreite()+figurDat2.getSpeed() < breite * 32)
  137. {
  138. verschiebeFigur2(figurDat2.getSpeed(),0, 8, 8);
  139. //verschiebeRect(figurDat.getSpeed(),0);
  140. } else if(tasteGedrueckt(Taste.S) == true && figurObj2.getY()+figurObj2.getHoehe()+figurDat2.getSpeed() < hoehe * 32)
  141. {
  142. verschiebeFigur2(0,figurDat2.getSpeed(), 2, 8);
  143. //verschiebeRect(0,figurDat.getSpeed());
  144. } else if(tasteGedrueckt(Taste.A) == true && figurObj2.getX()-figurDat2.getSpeed() > 0)
  145. {
  146. verschiebeFigur2(-figurDat2.getSpeed(),0,5,8);
  147. //verschiebeRect(-figurDat.getSpeed(),0);
  148. }
  149.  
  150. //Steuerung der Ausdauer implementieren
  151. //Rechtecksbreite der Ausdauer zuordnen
  152. if(tasteGedrueckt(Taste.W)==true || tasteGedrueckt(Taste.S)==true || tasteGedrueckt(Taste.D)==true || tasteGedrueckt(Taste.A)==true){
  153. if(tasteGedrueckt(Taste.X)==true && figurDat2.getStamina() -4 > 25) {
  154. figurDat2.setSpeed(8);
  155. figurDat2.setStamina(-4);
  156. }
  157. else if(tasteGedrueckt(Taste.X)==true && figurDat2.getStamina() -4 < 25 && figurDat2.getStamina() -4 >0){
  158. figurDat2.setSpeed(6);
  159. figurDat2.setStamina(-4);
  160. }
  161. else if(tasteGedrueckt(Taste.X)==true && figurDat2.getStamina()-4 <= 0){
  162. figurDat2.setSpeed(4);
  163. }
  164. else if(tasteGedrueckt(Taste.X)==false){
  165. figurDat2.setSpeed(4);
  166. if(figurDat2.getStamina()<=100){
  167. figurDat2.setStamina(2);
  168. }
  169. }
  170. }else{
  171. if(figurDat2.getStamina()<=100){
  172. figurDat2.setStamina(2);
  173. }
  174. }
  175. Rect2.breiteSetzen((int)(figurDat2.getStamina()*0.32));
  176.  
  177. if(figurDat2.getStamina()>=50){
  178. Farbe grün = new Farbe(0, 255, 0);
  179. Rect2.farbeSetzen(grün);
  180. }else if(figurDat2.getStamina()>=15){
  181. Farbe gelb = new Farbe(255,255,0);
  182. Rect2.farbeSetzen(gelb);
  183. }else{
  184. Farbe rot=new Farbe(255,0,0);
  185. Rect2.farbeSetzen(rot);
  186. }
  187. warten(100);
  188. }
  189. }
  190.  
  191.  
  192. /*public void ladeFiguren(int typ){
  193. for(int i =0; i < figurBil.length; i++)
  194. {
  195. figurBil[i] = ImageLoader.loadExternalImage("sprite/" + typ + "/" + (i+1) + ".png");
  196. }
  197. }*/
  198.  
  199. @Override
  200. public void tasteReagieren(int code)
  201. {
  202.  
  203. }
  204.  
  205. private void verschiebeFigur(int x, int y, int a, int n)
  206. {
  207. figurObj.setBild(figurDat.figurBil[figurDat.berechneAnimation(a)]);
  208. figurObj.verschieben(x, y);
  209. Rect.verschieben(x,y);
  210. }
  211. private void verschiebeFigur2(int x, int y, int a, int n)
  212. {
  213. figurObj2.setBild(figurDat2.figurBil[figurDat2.berechneAnimation(a)]);
  214. figurObj2.verschieben(x, y);
  215. Rect2.verschieben(x,y);
  216. }
  217.  
  218. private void dreheCoin(){
  219. coinObj.setBild(coinDat.coinBil[coinDat.animiereCoin()]);
  220. }
  221. public void ladeKarte() throws IOException
  222. {
  223. FileReader fr = new FileReader("map.txt");
  224. BufferedReader br = new BufferedReader(fr);
  225.  
  226. String zeile = "";
  227.  
  228. for(int i=0; i<hoehe; i++)
  229. {
  230. zeile = br.readLine();
  231. for(int j=0; j<breite; j++)
  232. {
  233. if(zeile.charAt(j) == '0')
  234. {
  235. karte[j][i]=new Bild(32*j, 32*i, "tileset/dirt.jpg");
  236. }
  237. else
  238. {
  239. karte[j][i]=new Bild(32*j, 32*i, "tileset/gras.jpg");
  240. }
  241. wurzel.add(karte[j][i]);
  242. }
  243. }
  244.  
  245. br.close();
  246. }
  247.  
  248. private void generiereKarte() throws IOException
  249. {
  250. FileWriter fw = new FileWriter("map.txt");
  251. BufferedWriter bw = new BufferedWriter(fw);
  252. for(int i=0; i<hoehe; i++)
  253. {
  254. for(int j=0; j<breite; j++)
  255. {
  256. if((int)(Math.random()*4) == 0)
  257. {
  258. karte[j][i]=new Bild(32*j, 32*i, "tileset/dirt.jpg");
  259. bw.write("0");
  260. }
  261. else
  262. {
  263. karte[j][i]=new Bild(32*j, 32*i, "tileset/gras.jpg");
  264. bw.write("1");
  265. }
  266. wurzel.add(karte[j][i]);
  267. }
  268. bw.newLine();
  269. }
  270. bw.close();
  271. }
  272. }
RAW Paste Data