Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.69 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.util.Random;
  4. import javax.swing.*;
  5. import javax.swing.event.*;
  6.  
  7.  
  8.  
  9. public class Spiel extends JFrame {
  10. // Anfang Attribute
  11. public static Room[][] rooms;
  12. public static Player player = new Player();
  13. int MapX = 600;
  14. int MapY = 400;
  15. int currentX;
  16. int currentY;
  17. int currentDungeonSize = 0;
  18. Random random = new Random();
  19.  
  20. JButton moveUp = new JButton();
  21. JButton moveRight = new JButton();
  22. JButton moveLeft = new JButton();
  23. JButton moveDown = new JButton();
  24.  
  25. String lastRoomText;
  26. private JList invnetoryList = new JList();
  27. private DefaultListModel invnetoryListModel = new DefaultListModel();
  28. private JScrollPane invnetoryListScrollPane = new JScrollPane(invnetoryList);
  29. private JLabel inventoryLabel = new JLabel();
  30. private JLabel playerNameLabel = new JLabel();
  31. private JLabel levelLabel = new JLabel();
  32. private JLabel healthLabel = new JLabel();
  33. private JLabel damageLabel = new JLabel();
  34. // Ende Attribute
  35.  
  36. public Spiel() {
  37.  
  38. super();
  39. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  40. int frameWidth = 760;
  41. int frameHeight = 584;
  42. setSize(frameWidth, frameHeight);
  43. Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  44. int x = (d.width - getSize().width) / 2;
  45. int y = (d.height - getSize().height) / 2;
  46. setLocation(x, y);
  47. setTitle("Spiel");
  48. setResizable(true);
  49. Container cp = getContentPane();
  50. cp.setLayout(null);
  51. setVisible(true);
  52.  
  53. JButton moveUp = new JButton();
  54. JButton moveRight = new JButton();
  55. JButton moveLeft = new JButton();
  56. JButton moveDown = new JButton();
  57. moveUp.setBounds(456, 440, 43, 33);
  58. moveUp.setText("Up");
  59. moveUp.setMargin(new Insets(2, 2, 2, 2));
  60. moveUp.addActionListener(new ActionListener() {
  61. public void actionPerformed(ActionEvent evt) {
  62. moveUp_ActionPerformed(evt);
  63. }
  64. });
  65. moveUp.setFont(new Font("Dialog", Font.BOLD, 12));
  66. cp.add(moveUp);
  67. moveRight.setBounds(496, 472, 43, 33);
  68. moveRight.setText("Right");
  69. moveRight.setMargin(new Insets(2, 2, 2, 2));
  70. moveRight.addActionListener(new ActionListener() {
  71. public void actionPerformed(ActionEvent evt) {
  72. moveRight_ActionPerformed(evt);
  73. }
  74. });
  75. moveRight.setFont(new Font("Dialog", Font.BOLD, 12));
  76. cp.add(moveRight);
  77. moveLeft.setBounds(416, 472, 43, 33);
  78. moveLeft.setText("Left");
  79. moveLeft.setMargin(new Insets(2, 2, 2, 2));
  80. moveLeft.addActionListener(new ActionListener() {
  81. public void actionPerformed(ActionEvent evt) {
  82. moveLeft_ActionPerformed(evt);
  83. }
  84. });
  85. moveLeft.setFont(new Font("Dialog", Font.BOLD, 12));
  86. cp.add(moveLeft);
  87. moveDown.setBounds(456, 504, 43, 33);
  88. moveDown.setText("Down");
  89. moveDown.setMargin(new Insets(2, 2, 2, 2));
  90. moveDown.addActionListener(new ActionListener() {
  91. public void actionPerformed(ActionEvent evt) {
  92. moveDown_ActionPerformed(evt);
  93. }
  94. });
  95. moveDown.setFont(new Font("Dialog", Font.BOLD, 12));
  96. cp.add(moveDown);
  97.  
  98. invnetoryList.setModel(invnetoryListModel);
  99. invnetoryListScrollPane.setBounds(16, 32, 150, 276);
  100. cp.add(invnetoryListScrollPane);
  101. inventoryLabel.setBounds(16, 8, 110, 20);
  102. inventoryLabel.setText("Inventar");
  103. cp.add(inventoryLabel);
  104. playerNameLabel.setBounds(168, 8, 110, 23);
  105. playerNameLabel.setText(player.pName);
  106. playerNameLabel.setFont(new Font("Dialog", Font.BOLD, 16));
  107. cp.add(playerNameLabel);
  108. levelLabel.setBounds(168, 40, 110, 20);
  109. levelLabel.setText("Level: " + player.pLevel);
  110. cp.add(levelLabel);
  111. healthLabel.setBounds(168, 64, 110, 20);
  112. healthLabel.setText("HP: " + player.currentHealth + " / " + player.pHealth);
  113. cp.add(healthLabel);
  114. damageLabel.setBounds(168, 88, 110, 20);
  115. damageLabel.setText("Schaden: " + player.pPhysDamage);
  116. cp.add(damageLabel);
  117.  
  118. generate(5,1);
  119. }
  120.  
  121.  
  122.  
  123.  
  124.  
  125. public static void main(String[] args) {
  126. new Spiel();
  127.  
  128. }
  129.  
  130. void generate(int DungeonSize, int DungeonLevel) {
  131. rooms = new Room[DungeonSize][DungeonSize];
  132. currentDungeonSize = DungeonSize;
  133.  
  134. for (int x = 0;x < DungeonSize ;x++) {
  135. for (int y = 0;y < DungeonSize ;y++ ) {
  136. Room r = new Room(x,y);
  137. JLabel label = new JLabel();
  138.  
  139. r.x = x;
  140. r.y = y;
  141. label.setText("X");
  142. label.setBounds(MapX + x * 20,MapY + y * 20,10,10);
  143. r.label = label;
  144.  
  145. getContentPane().add(label);
  146. rooms[x][y] = r;
  147. }
  148. }
  149.  
  150. int Start = random.nextInt(DungeonSize);
  151. Room startRoom = rooms[Start][0];
  152.  
  153. if (startRoom != null) {
  154. player.playerX = Start;
  155. player.playerY = 0;
  156.  
  157. currentX = Start;
  158. currentY = 0;
  159.  
  160. int possibleRoom = 0;
  161.  
  162. startRoom.setOpen();
  163. startRoom.label.setText("S");
  164. lastRoomText = rooms[player.playerX][player.playerY].label.getText();
  165. rooms[player.playerX][player.playerY].label.setText("P");
  166.  
  167. for (int z = 0;z < DungeonSize * DungeonSize - 1 ; z++ ) {
  168. if (currentX + 1 < 5 && rooms[currentX + 1][currentY].isOpen == false) {
  169. rooms[currentX + 1][currentY].setOpenable(rooms[currentX][currentY]);
  170. }
  171. if (currentX -1 > -1 && rooms[currentX - 1][currentY].isOpen == false) {
  172. rooms[currentX - 1][currentY].setOpenable(rooms[currentX][currentY]);
  173. }
  174. if (currentY + 1 < 5 && rooms[currentX][currentY + 1].isOpen == false) {
  175. rooms[currentX][currentY + 1].setOpenable(rooms[currentX][currentY]);
  176. }
  177. if (currentY - 1 > -1 && rooms[currentX][currentY - 1].isOpen == false) {
  178. rooms[currentX][currentY - 1].setOpenable(rooms[currentX][currentY]);
  179. }
  180.  
  181. for (int x = 0; x < DungeonSize; x++) {
  182. for (int y = 0; y < DungeonSize; y++ ) {
  183. if (rooms[x][y].isOpenable ) {
  184. possibleRoom++;
  185. }
  186. }
  187. }
  188. openRoom(possibleRoom, DungeonSize, rooms);
  189. if (z == (DungeonSize * DungeonSize) - 2) {
  190. rooms[currentX][currentY].setExit();
  191. }
  192. possibleRoom = 0;
  193. }
  194. }
  195.  
  196. }
  197.  
  198. void openRoom(int possibleRoom, int DungeonSize, Room[][] rooms) {
  199. Room[] openableRooms = new Room[possibleRoom];
  200.  
  201. for (int roomCounter = 0; roomCounter < possibleRoom;) {
  202. for (int x = 0; x < DungeonSize; x++) {
  203. for (int y = 0; y < DungeonSize; y++ ) {
  204. if (rooms[x][y].isOpenable) {
  205. openableRooms[roomCounter] = rooms[x][y];
  206. roomCounter++;
  207. }
  208. }
  209. }
  210. }
  211. // random Raum aussuchen (zu öffnen)
  212. Room chooseRoom = openableRooms[random.nextInt(possibleRoom)];
  213. chooseRoom.setOpen();
  214.  
  215. // anzeigen des Weges
  216. JLabel wayLabel = new JLabel("x");
  217. wayLabel.setBounds(chooseRoom.wayCordX,chooseRoom.wayCordY,10,10);
  218. chooseRoom.way = wayLabel;
  219.  
  220. getContentPane().add(wayLabel);
  221.  
  222. update();
  223.  
  224. //System.out.println();
  225. //System.out.println(chooseRoom.x + " " + chooseRoom.wayCordX + " | " + chooseRoom.opendFrom.x);
  226. //System.out.println(chooseRoom.y + " " + chooseRoom.wayCordY + " | " + chooseRoom.opendFrom.y);
  227.  
  228. currentX = chooseRoom.x;
  229. currentY = chooseRoom.y;
  230. }
  231.  
  232. public void moveUp_ActionPerformed(ActionEvent evt) {
  233. if (player.playerY - 1 >= 0) {
  234. if (rooms[player.playerX][player.playerY - 1].opendFrom == rooms[player.playerX][player.playerY] || rooms[player.playerX][player.playerY].opendFrom == rooms[player.playerX][player.playerY - 1] ) {
  235. rooms[player.playerX][player.playerY].label.setText(lastRoomText);
  236. player.playerY--;
  237. lastRoomText = rooms[player.playerX][player.playerY].label.getText();
  238. rooms[player.playerX][player.playerY].label.setText("P");
  239. isExit();
  240. isFight();
  241. }
  242. }
  243. }
  244.  
  245. public void moveRight_ActionPerformed(ActionEvent evt) {
  246. if (player.playerX + 1 <= 4) {
  247. if (rooms[player.playerX + 1][player.playerY].opendFrom == rooms[player.playerX][player.playerY] || rooms[player.playerX][player.playerY].opendFrom == rooms[player.playerX + 1][player.playerY]) {
  248. rooms[player.playerX][player.playerY].label.setText(lastRoomText);
  249. player.playerX++;
  250. lastRoomText = rooms[player.playerX][player.playerY].label.getText();
  251. rooms[player.playerX][player.playerY].label.setText("P");
  252. isExit();
  253. isFight();
  254. }
  255. }
  256. }
  257.  
  258. public void moveLeft_ActionPerformed(ActionEvent evt) {
  259. if (player.playerX - 1 >= 0) {
  260. if (rooms[player.playerX - 1][player.playerY].opendFrom == rooms[player.playerX][player.playerY] || rooms[player.playerX][player.playerY].opendFrom == rooms[player.playerX - 1][player.playerY] ) {
  261. rooms[player.playerX][player.playerY].label.setText(lastRoomText);
  262. player.playerX--;
  263. lastRoomText = rooms[player.playerX][player.playerY].label.getText();
  264. rooms[player.playerX][player.playerY].label.setText("P");
  265. isExit();
  266. isFight();
  267. }
  268. }
  269. }
  270.  
  271. public void moveDown_ActionPerformed(ActionEvent evt) {
  272. if (player.playerY + 1 <= 4) {
  273. if (rooms[player.playerX][player.playerY + 1].opendFrom == rooms[player.playerX][player.playerY] || rooms[player.playerX][player.playerY].opendFrom == rooms[player.playerX][player.playerY + 1] ) {
  274. rooms[player.playerX][player.playerY].label.setText(lastRoomText);
  275. player.playerY++;
  276. lastRoomText = rooms[player.playerX][player.playerY].label.getText();
  277. rooms[player.playerX][player.playerY].label.setText("P");
  278. isExit();
  279. isFight();
  280. }
  281. }
  282. }
  283.  
  284. public static void isFight(){
  285. final Room fightRoom = rooms[player.playerX][player.playerY];
  286. if (fightRoom.event == 1) {
  287. Fight fightScreen = new Fight(player,fightRoom.enemy);
  288. System.out.println(fightRoom.enemy.ID);
  289. fightScreen.setVisible(true);
  290. }
  291. }
  292.  
  293. public void isExit(){
  294. if (rooms[player.playerX][player.playerY].isExit) {
  295. for (int x = 0; x < currentDungeonSize; x++ ) {
  296. for (int y = 0; y < currentDungeonSize ; y++ ) {
  297. rooms[x][y].label.setBounds(1000 + x,1000 + y * 20,10,10);
  298. if (rooms[x][y].way != null) {
  299. rooms[x][y].way.setBounds(1000 + x,1000 + y * 20,10,10);
  300. }
  301. }
  302. }
  303. generate(5,1);
  304. }
  305. }
  306.  
  307. public void update(){
  308. setSize(getWidth() + 1, getHeight() + 1);
  309. setSize(getWidth() - 1, getHeight() - 1);
  310. }
  311. // Ende Methoden
  312. }
  313.  
  314.  
  315.  
  316. __________________________________________________________________________________________
  317.  
  318.  
  319.  
  320.  
  321.  
  322. public void setOpen(){
  323. this.isOpen = true;
  324. this.isOpenable = false;
  325. this.label.setText("O");
  326.  
  327. this.createWay();
  328. event = random.nextInt(10);
  329. switch (event) {
  330. case 1:
  331. this.label.setText("F");
  332. enemy = new Enemy(1);
  333. break;
  334. case 2:
  335.  
  336.  
  337. break;
  338. default:
  339. System.out.println("nichts");
  340. break;
  341. }
  342. }
  343.  
  344. public void setOpenable(Room prevRoom){
  345.  
  346. this.isOpenable = true;
  347. this.label.setText("C");
  348. this.opendFrom = prevRoom;
  349. }
  350.  
  351. public void setExit(){
  352. this.isExit = true;
  353. this.label.setText("E");
  354. }
  355.  
  356. public void createWay(){
  357. if (opendFrom != null) {
  358. if (this.label.getX() < opendFrom.label.getX()) {
  359. wayCordX = (opendFrom.label.getX() - this.label.getX()) / 2 + this.label.getX();
  360. wayCordY = this.label.getY();
  361. }
  362.  
  363. if (this.label.getX() > opendFrom.label.getX()) {
  364. wayCordX = (this.label.getX() - opendFrom.label.getX()) / 2 + opendFrom.label.getX();
  365. wayCordY = this.label.getY();
  366. }
  367.  
  368. if (this.label.getY() < opendFrom.label.getY()) {
  369. wayCordY = (opendFrom.label.getY() - this.label.getY()) / 2 + this.label.getY();
  370. wayCordX = this.label.getX();
  371. }
  372.  
  373. if (this.label.getY() > opendFrom.label.getY()) {
  374. wayCordY = (this.label.getY() - opendFrom.label.getY()) / 2 + opendFrom.label.getY();
  375. wayCordX = this.label.getX();
  376. }
  377. }
  378. }
  379.  
  380. public void reset(){
  381. isOpen = false;
  382. isOpenable = false;
  383. isExit = false;
  384. label.setText("X");
  385. }
  386. }
  387.  
  388.  
  389.  
  390. ____________________________________________________________________________________
  391.  
  392.  
  393.  
  394.  
  395. import java.awt.*;
  396. import java.awt.event.*;
  397. import java.util.Random;
  398. import javax.swing.*;
  399. import javax.swing.event.*;
  400.  
  401. public class Enemy {
  402. Random random = new Random();
  403. int eLevel;
  404. int eHealth;
  405. int currentEnemyHealth;
  406. int ePhysDamage;
  407. String eName = "Enemy";
  408. int ID = random.nextInt(10000);
  409.  
  410. public Enemy(int level){
  411. this.eLevel = level;
  412. this.eHealth = random.nextInt((int)((15*1.35)*eLevel)-(int)((10*1.35)*eLevel)+1)+(int)((10*1.35)*eLevel);
  413. this.currentEnemyHealth = eHealth;
  414. this.ePhysDamage = random.nextInt((int)((3*1.30)*eLevel)-(int)((1*1.30)*eLevel)+1)+(int)((1*1.30)*eLevel);
  415. }
  416. }
  417.  
  418.  
  419.  
  420. _________________________________________________________________________________________________________
  421.  
  422.  
  423.  
  424. import java.awt.*;
  425. import java.awt.event.*;
  426. import java.util.Random;
  427. import javax.swing.*;
  428. import javax.swing.event.*;
  429.  
  430.  
  431. public class Equipment {
  432. Random random = new Random();
  433. int Damage = 0;
  434.  
  435. public Equipment(int equipTypeID, int itemLevel, int rarityID){
  436. String [] equipType = new String [2];
  437. String [] rarity = new String [5];
  438.  
  439. equipType[0] = "Waffe";
  440. equipType[1] = "Ruestung";
  441.  
  442. rarity[0] = "Common";
  443. rarity[1] = "Uncommon";
  444. rarity[2] = "Rare";
  445. rarity[3] = "Epic";
  446. rarity[4] = "Legendary";
  447.  
  448. if (equipTypeID == 0) {
  449. Damage = random.nextInt((int)((4*1.3)*itemLevel) - (int)((2*1.3)*itemLevel)+1)+(int)((2*1.3)*itemLevel);
  450. System.out.println("Damage: " + Damage);
  451.  
  452. }
  453. }
  454. }
  455.  
  456.  
  457.  
  458. _________________________________________________________________________________________________
  459.  
  460.  
  461.  
  462. import java.awt.*;
  463. import java.awt.event.*;
  464. import java.util.Random;
  465. import javax.swing.*;
  466. import javax.swing.event.*;
  467.  
  468.  
  469. public class Player{
  470. public Room currentlyIn;
  471. public int playerX;
  472. public int playerY;
  473.  
  474. public static String pName = "Spieler";
  475.  
  476. public int pLevel;
  477. public int pHealth = 15;
  478. public int pStrength = 2;
  479. public int currentHealth = pHealth;
  480.  
  481. public Equipment currentWeapon = new Equipment(0,1,0);
  482. public int pPhysDamage = pStrength + currentWeapon.Damage;
  483.  
  484.  
  485. public Player(){
  486.  
  487. }
  488. }
  489.  
  490.  
  491.  
  492.  
  493. _________________________________________________________________________________________
  494.  
  495.  
  496.  
  497.  
  498.  
  499. import java.awt.*;
  500. import java.awt.event.*;
  501. import java.util.Random;
  502. import javax.swing.*;
  503. import javax.swing.event.*;
  504.  
  505.  
  506.  
  507. public class Fight extends JFrame {
  508.  
  509. // Anfang Attribute
  510. public JLabel pNameLabel = new JLabel();
  511. public JLabel eNameLabel = new JLabel();
  512. public JLabel pHealthLabel = new JLabel();
  513. public JLabel eHealthLabel = new JLabel();
  514. public JButton attackButton = new JButton();
  515.  
  516. public Player fPlayer;
  517. public Enemy fEnemy;
  518. // Ende Attribute
  519.  
  520.  
  521. public Fight(Player player, Enemy enemy) {
  522.  
  523. super();
  524. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  525. int frameWidth = 590;
  526. int frameHeight = 505;
  527. setSize(frameWidth, frameHeight);
  528. Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  529. int x = (d.width - getSize().width) / 2;
  530. int y = (d.height - getSize().height) / 2;
  531. setLocation(x, y);
  532. setTitle("Fight");
  533. setResizable(false);
  534. Container cp = getContentPane();
  535. cp.setLayout(null);
  536.  
  537.  
  538. pNameLabel.setBounds(8, 8, 110, 20);
  539. pNameLabel.setText(player.pName);
  540. cp.add(pNameLabel);
  541.  
  542. eNameLabel.setBounds(296, 8, 110, 20);
  543. eNameLabel.setText(enemy.eName);
  544. cp.add(eNameLabel);
  545.  
  546. setVisible(true);
  547.  
  548. fPlayer = player;
  549. fEnemy = enemy;
  550.  
  551. pHealthLabel.setText(fPlayer.currentHealth + " / " + fPlayer.pHealth );
  552. cp.add(pHealthLabel);
  553. pHealthLabel.setBounds(8, 40, 110, 20);
  554. eHealthLabel.setBounds(296, 40, 110, 20);
  555. eHealthLabel.setText(fEnemy.currentEnemyHealth + " / " + fEnemy.eHealth );
  556. cp.add(eHealthLabel);
  557.  
  558.  
  559. attackButton.setBounds(8, 408, 139, 49);
  560. attackButton.setText("attackButton");
  561. attackButton.setMargin(new Insets(2, 2, 2, 2));
  562. attackButton.addActionListener(new ActionListener() {
  563. public void actionPerformed(ActionEvent evt) {
  564. attackButton_ActionPerformed(evt);
  565. }
  566. });
  567. cp.add(attackButton);
  568. }
  569. // Anfang Komponenten
  570. // Ende Komponenten
  571. // Anfang Methoden
  572.  
  573.  
  574.  
  575.  
  576.  
  577. public void update(){
  578. eHealthLabel.setText(fEnemy.currentEnemyHealth + " / " + fEnemy.eHealth );
  579. pHealthLabel.setText(fPlayer.currentHealth + " / " + fPlayer.pHealth );
  580. }
  581.  
  582.  
  583. public void attackButton_ActionPerformed(ActionEvent evt) {
  584. fEnemy.currentEnemyHealth = fEnemy.currentEnemyHealth - fPlayer.pPhysDamage;
  585. update();
  586.  
  587. enemyTurn();
  588. if (fEnemy.currentEnemyHealth <= 0) {
  589. fPlayer.currentHealth = fPlayer.pHealth;
  590. dispose();
  591. }
  592. }
  593.  
  594.  
  595. public void enemyTurn() {
  596. fPlayer.currentHealth = fPlayer.currentHealth - fEnemy.ePhysDamage;
  597. update();
  598. if (fPlayer.pHealth <= 0) {
  599. fPlayer.currentHealth = fPlayer.pHealth;
  600. dispose();
  601. }
  602. }
  603. // Ende Methoden
  604.  
  605. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement