Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.event.*;
- import java.util.Random;
- import javax.swing.*;
- import javax.swing.event.*;
- public class Spiel extends JFrame {
- // Anfang Attribute
- public static Room[][] rooms;
- public static Player player = new Player();
- int MapX = 600;
- int MapY = 400;
- int currentX;
- int currentY;
- int currentDungeonSize = 0;
- Random random = new Random();
- JButton moveUp = new JButton();
- JButton moveRight = new JButton();
- JButton moveLeft = new JButton();
- JButton moveDown = new JButton();
- String lastRoomText;
- private JList invnetoryList = new JList();
- private DefaultListModel invnetoryListModel = new DefaultListModel();
- private JScrollPane invnetoryListScrollPane = new JScrollPane(invnetoryList);
- private JLabel inventoryLabel = new JLabel();
- private JLabel playerNameLabel = new JLabel();
- private JLabel levelLabel = new JLabel();
- private JLabel healthLabel = new JLabel();
- private JLabel damageLabel = new JLabel();
- // Ende Attribute
- public Spiel() {
- super();
- setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- int frameWidth = 760;
- int frameHeight = 584;
- setSize(frameWidth, frameHeight);
- Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
- int x = (d.width - getSize().width) / 2;
- int y = (d.height - getSize().height) / 2;
- setLocation(x, y);
- setTitle("Spiel");
- setResizable(true);
- Container cp = getContentPane();
- cp.setLayout(null);
- setVisible(true);
- JButton moveUp = new JButton();
- JButton moveRight = new JButton();
- JButton moveLeft = new JButton();
- JButton moveDown = new JButton();
- moveUp.setBounds(456, 440, 43, 33);
- moveUp.setText("Up");
- moveUp.setMargin(new Insets(2, 2, 2, 2));
- moveUp.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- moveUp_ActionPerformed(evt);
- }
- });
- moveUp.setFont(new Font("Dialog", Font.BOLD, 12));
- cp.add(moveUp);
- moveRight.setBounds(496, 472, 43, 33);
- moveRight.setText("Right");
- moveRight.setMargin(new Insets(2, 2, 2, 2));
- moveRight.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- moveRight_ActionPerformed(evt);
- }
- });
- moveRight.setFont(new Font("Dialog", Font.BOLD, 12));
- cp.add(moveRight);
- moveLeft.setBounds(416, 472, 43, 33);
- moveLeft.setText("Left");
- moveLeft.setMargin(new Insets(2, 2, 2, 2));
- moveLeft.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- moveLeft_ActionPerformed(evt);
- }
- });
- moveLeft.setFont(new Font("Dialog", Font.BOLD, 12));
- cp.add(moveLeft);
- moveDown.setBounds(456, 504, 43, 33);
- moveDown.setText("Down");
- moveDown.setMargin(new Insets(2, 2, 2, 2));
- moveDown.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- moveDown_ActionPerformed(evt);
- }
- });
- moveDown.setFont(new Font("Dialog", Font.BOLD, 12));
- cp.add(moveDown);
- invnetoryList.setModel(invnetoryListModel);
- invnetoryListScrollPane.setBounds(16, 32, 150, 276);
- cp.add(invnetoryListScrollPane);
- inventoryLabel.setBounds(16, 8, 110, 20);
- inventoryLabel.setText("Inventar");
- cp.add(inventoryLabel);
- playerNameLabel.setBounds(168, 8, 110, 23);
- playerNameLabel.setText(player.pName);
- playerNameLabel.setFont(new Font("Dialog", Font.BOLD, 16));
- cp.add(playerNameLabel);
- levelLabel.setBounds(168, 40, 110, 20);
- levelLabel.setText("Level: " + player.pLevel);
- cp.add(levelLabel);
- healthLabel.setBounds(168, 64, 110, 20);
- healthLabel.setText("HP: " + player.currentHealth + " / " + player.pHealth);
- cp.add(healthLabel);
- damageLabel.setBounds(168, 88, 110, 20);
- damageLabel.setText("Schaden: " + player.pPhysDamage);
- cp.add(damageLabel);
- generate(5,1);
- }
- public static void main(String[] args) {
- new Spiel();
- }
- void generate(int DungeonSize, int DungeonLevel) {
- rooms = new Room[DungeonSize][DungeonSize];
- currentDungeonSize = DungeonSize;
- for (int x = 0;x < DungeonSize ;x++) {
- for (int y = 0;y < DungeonSize ;y++ ) {
- Room r = new Room(x,y);
- JLabel label = new JLabel();
- r.x = x;
- r.y = y;
- label.setText("X");
- label.setBounds(MapX + x * 20,MapY + y * 20,10,10);
- r.label = label;
- getContentPane().add(label);
- rooms[x][y] = r;
- }
- }
- int Start = random.nextInt(DungeonSize);
- Room startRoom = rooms[Start][0];
- if (startRoom != null) {
- player.playerX = Start;
- player.playerY = 0;
- currentX = Start;
- currentY = 0;
- int possibleRoom = 0;
- startRoom.setOpen();
- startRoom.label.setText("S");
- lastRoomText = rooms[player.playerX][player.playerY].label.getText();
- rooms[player.playerX][player.playerY].label.setText("P");
- for (int z = 0;z < DungeonSize * DungeonSize - 1 ; z++ ) {
- if (currentX + 1 < 5 && rooms[currentX + 1][currentY].isOpen == false) {
- rooms[currentX + 1][currentY].setOpenable(rooms[currentX][currentY]);
- }
- if (currentX -1 > -1 && rooms[currentX - 1][currentY].isOpen == false) {
- rooms[currentX - 1][currentY].setOpenable(rooms[currentX][currentY]);
- }
- if (currentY + 1 < 5 && rooms[currentX][currentY + 1].isOpen == false) {
- rooms[currentX][currentY + 1].setOpenable(rooms[currentX][currentY]);
- }
- if (currentY - 1 > -1 && rooms[currentX][currentY - 1].isOpen == false) {
- rooms[currentX][currentY - 1].setOpenable(rooms[currentX][currentY]);
- }
- for (int x = 0; x < DungeonSize; x++) {
- for (int y = 0; y < DungeonSize; y++ ) {
- if (rooms[x][y].isOpenable ) {
- possibleRoom++;
- }
- }
- }
- openRoom(possibleRoom, DungeonSize, rooms);
- if (z == (DungeonSize * DungeonSize) - 2) {
- rooms[currentX][currentY].setExit();
- }
- possibleRoom = 0;
- }
- }
- }
- void openRoom(int possibleRoom, int DungeonSize, Room[][] rooms) {
- Room[] openableRooms = new Room[possibleRoom];
- for (int roomCounter = 0; roomCounter < possibleRoom;) {
- for (int x = 0; x < DungeonSize; x++) {
- for (int y = 0; y < DungeonSize; y++ ) {
- if (rooms[x][y].isOpenable) {
- openableRooms[roomCounter] = rooms[x][y];
- roomCounter++;
- }
- }
- }
- }
- // random Raum aussuchen (zu öffnen)
- Room chooseRoom = openableRooms[random.nextInt(possibleRoom)];
- chooseRoom.setOpen();
- // anzeigen des Weges
- JLabel wayLabel = new JLabel("x");
- wayLabel.setBounds(chooseRoom.wayCordX,chooseRoom.wayCordY,10,10);
- chooseRoom.way = wayLabel;
- getContentPane().add(wayLabel);
- update();
- //System.out.println();
- //System.out.println(chooseRoom.x + " " + chooseRoom.wayCordX + " | " + chooseRoom.opendFrom.x);
- //System.out.println(chooseRoom.y + " " + chooseRoom.wayCordY + " | " + chooseRoom.opendFrom.y);
- currentX = chooseRoom.x;
- currentY = chooseRoom.y;
- }
- public void moveUp_ActionPerformed(ActionEvent evt) {
- if (player.playerY - 1 >= 0) {
- 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] ) {
- rooms[player.playerX][player.playerY].label.setText(lastRoomText);
- player.playerY--;
- lastRoomText = rooms[player.playerX][player.playerY].label.getText();
- rooms[player.playerX][player.playerY].label.setText("P");
- isExit();
- isFight();
- }
- }
- }
- public void moveRight_ActionPerformed(ActionEvent evt) {
- if (player.playerX + 1 <= 4) {
- 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]) {
- rooms[player.playerX][player.playerY].label.setText(lastRoomText);
- player.playerX++;
- lastRoomText = rooms[player.playerX][player.playerY].label.getText();
- rooms[player.playerX][player.playerY].label.setText("P");
- isExit();
- isFight();
- }
- }
- }
- public void moveLeft_ActionPerformed(ActionEvent evt) {
- if (player.playerX - 1 >= 0) {
- 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] ) {
- rooms[player.playerX][player.playerY].label.setText(lastRoomText);
- player.playerX--;
- lastRoomText = rooms[player.playerX][player.playerY].label.getText();
- rooms[player.playerX][player.playerY].label.setText("P");
- isExit();
- isFight();
- }
- }
- }
- public void moveDown_ActionPerformed(ActionEvent evt) {
- if (player.playerY + 1 <= 4) {
- 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] ) {
- rooms[player.playerX][player.playerY].label.setText(lastRoomText);
- player.playerY++;
- lastRoomText = rooms[player.playerX][player.playerY].label.getText();
- rooms[player.playerX][player.playerY].label.setText("P");
- isExit();
- isFight();
- }
- }
- }
- public static void isFight(){
- final Room fightRoom = rooms[player.playerX][player.playerY];
- if (fightRoom.event == 1) {
- Fight fightScreen = new Fight(player,fightRoom.enemy);
- System.out.println(fightRoom.enemy.ID);
- fightScreen.setVisible(true);
- }
- }
- public void isExit(){
- if (rooms[player.playerX][player.playerY].isExit) {
- for (int x = 0; x < currentDungeonSize; x++ ) {
- for (int y = 0; y < currentDungeonSize ; y++ ) {
- rooms[x][y].label.setBounds(1000 + x,1000 + y * 20,10,10);
- if (rooms[x][y].way != null) {
- rooms[x][y].way.setBounds(1000 + x,1000 + y * 20,10,10);
- }
- }
- }
- generate(5,1);
- }
- }
- public void update(){
- setSize(getWidth() + 1, getHeight() + 1);
- setSize(getWidth() - 1, getHeight() - 1);
- }
- // Ende Methoden
- }
- __________________________________________________________________________________________
- public void setOpen(){
- this.isOpen = true;
- this.isOpenable = false;
- this.label.setText("O");
- this.createWay();
- event = random.nextInt(10);
- switch (event) {
- case 1:
- this.label.setText("F");
- enemy = new Enemy(1);
- break;
- case 2:
- break;
- default:
- System.out.println("nichts");
- break;
- }
- }
- public void setOpenable(Room prevRoom){
- this.isOpenable = true;
- this.label.setText("C");
- this.opendFrom = prevRoom;
- }
- public void setExit(){
- this.isExit = true;
- this.label.setText("E");
- }
- public void createWay(){
- if (opendFrom != null) {
- if (this.label.getX() < opendFrom.label.getX()) {
- wayCordX = (opendFrom.label.getX() - this.label.getX()) / 2 + this.label.getX();
- wayCordY = this.label.getY();
- }
- if (this.label.getX() > opendFrom.label.getX()) {
- wayCordX = (this.label.getX() - opendFrom.label.getX()) / 2 + opendFrom.label.getX();
- wayCordY = this.label.getY();
- }
- if (this.label.getY() < opendFrom.label.getY()) {
- wayCordY = (opendFrom.label.getY() - this.label.getY()) / 2 + this.label.getY();
- wayCordX = this.label.getX();
- }
- if (this.label.getY() > opendFrom.label.getY()) {
- wayCordY = (this.label.getY() - opendFrom.label.getY()) / 2 + opendFrom.label.getY();
- wayCordX = this.label.getX();
- }
- }
- }
- public void reset(){
- isOpen = false;
- isOpenable = false;
- isExit = false;
- label.setText("X");
- }
- }
- ____________________________________________________________________________________
- import java.awt.*;
- import java.awt.event.*;
- import java.util.Random;
- import javax.swing.*;
- import javax.swing.event.*;
- public class Enemy {
- Random random = new Random();
- int eLevel;
- int eHealth;
- int currentEnemyHealth;
- int ePhysDamage;
- String eName = "Enemy";
- int ID = random.nextInt(10000);
- public Enemy(int level){
- this.eLevel = level;
- this.eHealth = random.nextInt((int)((15*1.35)*eLevel)-(int)((10*1.35)*eLevel)+1)+(int)((10*1.35)*eLevel);
- this.currentEnemyHealth = eHealth;
- this.ePhysDamage = random.nextInt((int)((3*1.30)*eLevel)-(int)((1*1.30)*eLevel)+1)+(int)((1*1.30)*eLevel);
- }
- }
- _________________________________________________________________________________________________________
- import java.awt.*;
- import java.awt.event.*;
- import java.util.Random;
- import javax.swing.*;
- import javax.swing.event.*;
- public class Equipment {
- Random random = new Random();
- int Damage = 0;
- public Equipment(int equipTypeID, int itemLevel, int rarityID){
- String [] equipType = new String [2];
- String [] rarity = new String [5];
- equipType[0] = "Waffe";
- equipType[1] = "Ruestung";
- rarity[0] = "Common";
- rarity[1] = "Uncommon";
- rarity[2] = "Rare";
- rarity[3] = "Epic";
- rarity[4] = "Legendary";
- if (equipTypeID == 0) {
- Damage = random.nextInt((int)((4*1.3)*itemLevel) - (int)((2*1.3)*itemLevel)+1)+(int)((2*1.3)*itemLevel);
- System.out.println("Damage: " + Damage);
- }
- }
- }
- _________________________________________________________________________________________________
- import java.awt.*;
- import java.awt.event.*;
- import java.util.Random;
- import javax.swing.*;
- import javax.swing.event.*;
- public class Player{
- public Room currentlyIn;
- public int playerX;
- public int playerY;
- public static String pName = "Spieler";
- public int pLevel;
- public int pHealth = 15;
- public int pStrength = 2;
- public int currentHealth = pHealth;
- public Equipment currentWeapon = new Equipment(0,1,0);
- public int pPhysDamage = pStrength + currentWeapon.Damage;
- public Player(){
- }
- }
- _________________________________________________________________________________________
- import java.awt.*;
- import java.awt.event.*;
- import java.util.Random;
- import javax.swing.*;
- import javax.swing.event.*;
- public class Fight extends JFrame {
- // Anfang Attribute
- public JLabel pNameLabel = new JLabel();
- public JLabel eNameLabel = new JLabel();
- public JLabel pHealthLabel = new JLabel();
- public JLabel eHealthLabel = new JLabel();
- public JButton attackButton = new JButton();
- public Player fPlayer;
- public Enemy fEnemy;
- // Ende Attribute
- public Fight(Player player, Enemy enemy) {
- super();
- setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- int frameWidth = 590;
- int frameHeight = 505;
- setSize(frameWidth, frameHeight);
- Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
- int x = (d.width - getSize().width) / 2;
- int y = (d.height - getSize().height) / 2;
- setLocation(x, y);
- setTitle("Fight");
- setResizable(false);
- Container cp = getContentPane();
- cp.setLayout(null);
- pNameLabel.setBounds(8, 8, 110, 20);
- pNameLabel.setText(player.pName);
- cp.add(pNameLabel);
- eNameLabel.setBounds(296, 8, 110, 20);
- eNameLabel.setText(enemy.eName);
- cp.add(eNameLabel);
- setVisible(true);
- fPlayer = player;
- fEnemy = enemy;
- pHealthLabel.setText(fPlayer.currentHealth + " / " + fPlayer.pHealth );
- cp.add(pHealthLabel);
- pHealthLabel.setBounds(8, 40, 110, 20);
- eHealthLabel.setBounds(296, 40, 110, 20);
- eHealthLabel.setText(fEnemy.currentEnemyHealth + " / " + fEnemy.eHealth );
- cp.add(eHealthLabel);
- attackButton.setBounds(8, 408, 139, 49);
- attackButton.setText("attackButton");
- attackButton.setMargin(new Insets(2, 2, 2, 2));
- attackButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- attackButton_ActionPerformed(evt);
- }
- });
- cp.add(attackButton);
- }
- // Anfang Komponenten
- // Ende Komponenten
- // Anfang Methoden
- public void update(){
- eHealthLabel.setText(fEnemy.currentEnemyHealth + " / " + fEnemy.eHealth );
- pHealthLabel.setText(fPlayer.currentHealth + " / " + fPlayer.pHealth );
- }
- public void attackButton_ActionPerformed(ActionEvent evt) {
- fEnemy.currentEnemyHealth = fEnemy.currentEnemyHealth - fPlayer.pPhysDamage;
- update();
- enemyTurn();
- if (fEnemy.currentEnemyHealth <= 0) {
- fPlayer.currentHealth = fPlayer.pHealth;
- dispose();
- }
- }
- public void enemyTurn() {
- fPlayer.currentHealth = fPlayer.currentHealth - fEnemy.ePhysDamage;
- update();
- if (fPlayer.pHealth <= 0) {
- fPlayer.currentHealth = fPlayer.pHealth;
- dispose();
- }
- }
- // Ende Methoden
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement