Тема: Java эксперты |
ae_corps_000
Капитан 1го ранга
Сообщений: 15549
|
|
---------------------- |
Чёрные как ночь наши души,
Красная как кровь цена, которую мы платим,
Золото награда, которую мы ожидаем.
Сочувствие и трусость одно и тоже.
Совесть только повод, чтобы не делать то, что должно быть сделано.
youtu.be/8dVtBAWbZ14 |
|
|
10 Августа 2012 22:31 |
|
|
susanna
Штурман
Сообщений: 993
|
|
---------------------- |
порядка в мире было бы больше, если бы каждый бы занимался своим делом |
|
|
10 Августа 2012 22:32 |
|
|
susanna
Штурман
Сообщений: 993
|
|
---------------------- |
порядка в мире было бы больше, если бы каждый бы занимался своим делом |
|
|
10 Августа 2012 22:34 |
|
|
Uranus
Капитан 1го ранга
Сообщений: 44365
|
|
susanna
Штурман
Сообщений: 993
|
|
Uranus
Капитан 1го ранга
Сообщений: 44365
|
|
susanna
Штурман
Сообщений: 993
|
|
KyxapKa
Капитан 1го ранга
Сообщений: 30437
|
|
susanna
Штурман
Сообщений: 993
|
|
susanna
Штурман
Сообщений: 993
|
|
KyxapKa
Капитан 1го ранга
Сообщений: 30437
|
|
susanna
Штурман
Сообщений: 993
|
|
susanna
Штурман
Сообщений: 993
|
package Controller;
import Model.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import View.GameWindow;
import java.awt.Point;
import java.io.IOException;
import java.util.Observable;
/**
*
* @author lenovo
*/
public class Game extends Observable implements KeyListener {
Karte karte;
GameWindow window;
Player player;
Monster monster;
Items item;
Monster[] monsters;
//view
/**
*
*/
public Game() throws IOException {
super();
this.init();
}
private void init() throws IOException {
//JFrame frame = new JFrame();
DungeonFactory dungeonFactory = new DungeonFactory(30, 40);
Monster[] meinArray = new Monster[10];
MonsterFactory monsterFactory = new MonsterFactory();
meinArray = monsterFactory.createMonsters();
this.karte = new Karte(dungeonFactory.generate());
// Items [] myArray =new Items[20];
// ItemsFactory itemsFactory = new ItemsFactory(20);
this.item = new Items("I", new Point(12, 29));
this.player = new Player();
this.monster =new Monster('M') ;
// Monster [] meinArray = new Monster [10];
// MonsterFactory monsterFactory = new MonsterFactory(10);
window = new GameWindow(karte.getDungeonMap(), player, monster, item);
window.addKeyListener(this);
window.requestFocus();
// myArray = itemsFactory.createItems();
// meinArray = monsterFactory.createMonsters();
}
//controler
/**
*
* @param args
*/
public static void main(String[] args) throws IOException {
Game myGame = new Game();
Thread clockthread = new Thread(new TikTak(myGame));
myGame.addObserver(myGame.window);
clockthread.start();
}
/**
*
* @param monster
*/
public void bewegung(Monster monster) {
int richtung = (int) (Math.random() * 4) + 1;
//System.out.println(richtung);
switch (richtung) {
case 1:
//links
if (karte.dungeonMap[monster.getX() - 1][monster.getY()] == '*') {
} else {
monster.setX(monster.getX() - 1);
}
break;
case 2:
//rechts
if (karte.dungeonMap[monster.getX() + 1][monster.getY()] == '*') {
} else {
monster.setX(monster.getX() + 1);
}
break;
case 3:
//hoch
if (karte.dungeonMap[monster.getX()][monster.getY() - 1] == '*') {
} else {
monster.setY(monster.getY() - 1);
}
break;
case 4:
//runter
if (karte.dungeonMap[monster.getX()][monster.getY() + 1] == '*') {
} else {
monster.setY(monster.getY() + 1);
}
break;
}
}
//controller
/**
*
* @param ke
*/
@Override
public void keyTyped(KeyEvent ke) {
//System.out.println("keyTyped");
if (ke.getKeyChar() == 'q' || ke.getKeyChar() == 'Q') {
// arrrghhhh
System.exit(0);
}
}
//controller
/**
*
* @param ke
*/
@Override
public void keyPressed(KeyEvent ke) {
//System.out.println("keyPressed");
switch (ke.getKeyCode()) {
case KeyEvent.VK_LEFT:
System.out.println("LINKS!");
// if (karte.dungeonMap[this.player.getY()][this.player.getX()-1] == 'I'){
// samle ();
//
// }
if (karte.dungeonMap[this.player.getY()][this.player.getX() - 1] == '*') {
this.player.setX(this.player.getX() + 1);
} else {
this.player.setX(this.player.getX() - 1);
}
break;
case KeyEvent.VK_RIGHT:
System.out.println("RECHTS");
if (karte.dungeonMap[this.player.getY()][this.player.getX() + 1] == '*') {
this.player.setX(this.player.getX() - 1);
} else {
this.player.setX(this.player.getX() + 1);
}
break;
case KeyEvent.VK_UP:
System.out.println("HOCH");
if (karte.dungeonMap[this.player.getY() - 1][this.player.getX()] == '*') {
this.player.setY(this.player.getY() + 1);
} else {
this.player.setY(this.player.getY() - 1);
}
break;
case KeyEvent.VK_DOWN:
System.out.println("RUNTER");
if (karte.dungeonMap[this.player.getY() + 1][this.player.getX()] == '*') {
this.player.setY(this.player.getY() - 1);
} else {
this.player.setY(this.player.getY() + 1);
}
break;
}
this.window.render();
}
//controller
/**
*
* @param ke
*/
@Override
public void keyReleased(KeyEvent ke) {
//System.out.println("keyReleased");
}
// private void herp(int a){
// a++;
// }
public void takt() {
//
// int[] intliste = new int[10];
// for (int i = 0; i< intliste.length;i++)
// herp(intliste[i]);
//
//
// bewegung(this.monster);
bewegung(this.monster);
// samle(this.player);
setChanged();
notifyObservers();
}
// void samle (){
// karte.dungeonMap [this.item.position.x][this.item.position.y] = ' ';
// }
// public void samle(Player player){
// if (karte.dungeonMap[this.player.getY()][this.player.getX() + 1] == 'I'){
// karte.dungeonMap [this.item.position.x][this.item.position.y] = '0';
//
//}
}
package Controller;
import java.util.Random;
/**
*
* @author lenovo
*/
public class DungeonFactory {
private char[][] dungeonMap;
private Random rnd;
private int x, y;
final int minSize = 8, rand = 3;
/**
*
* @param x
* @param y
*/
public DungeonFactory(int x, int y) {
this.x = x;
this.y = y;
dungeonMap = new char[x][y];
this.rnd = new Random();
}
/**
*
* @return
*/
public char[][] generate() {
for (int i = 0; i < this.x; i++) {
for (int j = 0; j < this.y; j++) {
// generate bounds
if (i == 0 || i == this.x - 1 || j == 0 || j == this.y - 1) {
this.dungeonMap[i][j] = '*';
} else {
this.dungeonMap[i][j] = ' ';
}
// if (this.dungeonMap[i][j] != '*') {
//
// if (Math.random() < 0.06) {
// dungeonMap[i][j] = dungeonMap [I.item.position.x][Items.item.position.y];
//
// }
// }
}
}
teile(6, 0, x - 1, 0, y - 1);
return this.dungeonMap;
}
//erste Raum
private void teile(int durchgaenge, int x1, int x2, int y1, int y2) {
if (durchgaenge == 0) {
return;
}
// vertikale Teilung
if (durchgaenge % 2 == 0) {
if (y2 - y1 < minSize) {
teile(durchgaenge - 1, x1, x2, y1, y2);
} else {
int j = rnd.nextInt(y2 - y1 - 2 * rand) + rand;
j = j + y1;
for (int i = x1; i < x2; i++) {
this.dungeonMap[i][j] = '*';
this.dungeonMap[x1 + 2][j] = ' ';
}
teile(durchgaenge - 1, x1, x2, y1, j);
teile(durchgaenge - 1, x1, x2, j, y2);
}
} else {
if (x2 - x1 < minSize) {
teile(durchgaenge - 1, x1, x2, y1, y2);
} else {
int j = rnd.nextInt(x2 - x1 - 2 * rand) + rand;//horisontale Teilung
j = j + x1;
for (int i = y1; i < y2; i++) {
this.dungeonMap[j][i] = '*';
this.dungeonMap[j][y1 + 2] = ' ';
}
teile(durchgaenge - 1, x1, j, y1, y2);
teile(durchgaenge - 1, j, x2, y1, y2);
}
}
}
/**
*
* @param x
* @return
*/
public int zufwert(int x) {
int i;
i = this.rnd.nextInt(x);
return i;
}
}
package Model;
/**
*
* @author lenovo
*/
public class Monster {
int x;
int y;
/**
*
*/
public char type;
/**
*
* @param type
*/
public Monster(char type ){
this.x = 3;
this.y = 4;
this.type = type;
}
/**
*
* @return
*/
public int getX() {
return x;
}
/**
*
* @param x
*/
public void setX(int x) {
this.x = x;
}
/**
*
* @return
*/
public int getY() {
return y;
}
/**
*
* @param y
*/
public void setY(int y) {
this.y = y;
}
}
[code]package View;
import Model.Items;
import Model.Monster;
import Model.Player;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextPane;
/**
*
* @author lenovo
*/
public class GameWindow extends JFrame implements Observer {
private JTextPane pane;
private char[][] map;
private Player player;
private Monster monster;
private Items item;
private void init() throws IOException {
JLabel label;
//view
this.setTitle("ELF GEGEN ZWERGEN");
// this.setSize(600, 600);
Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
// this.setLocation((d.width-breite-500)/2,(d.height-hoehe-500)/2);
this.setVisible(true);
for ( int extra=0; extra
|
---------------------- |
порядка в мире было бы больше, если бы каждый бы занимался своим делом |
|
|
10 Августа 2012 23:14 |
|
|
susanna
Штурман
Сообщений: 993
|
package View;
import Model.Items;
import Model.Monster;
import Model.Player;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextPane;
/**
*
* @author lenovo
*/
public class GameWindow extends JFrame implements Observer {
private JTextPane pane;
private char[][] map;
private Player player;
private Monster monster;
private Items item;
private void init() throws IOException {
JLabel label;
//view
this.setTitle("ELF GEGEN ZWERGEN");
// this.setSize(600, 600);
Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
// this.setLocation((d.width-breite-500)/2,(d.height-hoehe-500)/2);
this.setVisible(true);
for ( int extra=0; extra
Сообщение было изменено 10 августа 2012 в 23:18
|
---------------------- |
порядка в мире было бы больше, если бы каждый бы занимался своим делом |
|
|
10 Августа 2012 23:17 |
|
|
susanna
Штурман
Сообщений: 993
|
|
MAXXXIM
Капитан 1го ранга
Сообщений: 11568
|
|
HA3AP
Бывший океанец
Сообщений: 9819128
|
|
Amethyst
Шкипер
Сообщений: 70
|
|
xmm
Капитан 1го ранга
Сообщений: 14605
|
|
Amethyst
Шкипер
Сообщений: 70
|
xmm пишет: т.е. у тебя картинки и jar находятся в одной папке?
картинки должны лежать в jar-e.
jar file разархивируй и закинь их в src/Tiles.
а можно ли сделать так, что картинки будут лежать в определённой папке (скажем с названием Map_Tiles) в той же папке что и джар файл и тянуть (сканировать) метод будет именно оттуда? Просто само содержимое папки будет изменяться.
Хотя по идеи можно сделать импорт файлов в джар файл как ты описал, или? Можно так? Создать JFileChooser при помощи которого можно будет в сам джар импортировать графику?
|
---------------------- |
лучшая ONLINE Игра |
|
|
15 Октября 2012 19:13 |
|
|