Модераторы     Правила  
  Судовой журнал
  В помощь разработчику | Правила раздела
  Java эксперты

Боцманы:  CTAKAH, cthulhu

 Страница   из 77    |  Показывать   на странице
Старые сначала  Тема: Java эксперты
ae_corps_000
Капитан 1го ранга



Сообщений: 15549

susanna пишет:
Помогие кто-нибудь с программой , а то у меня такое чувство, что чем больше я в яву погружаюсь тем меньше понимаю. "явно" скоро свихнусь. Есть желающие?

У нас в городке есть ещё кто-то, кто учит Яву?
Блин, может стать тутором по Яве, когда делать нечего...
----------------------
Чёрные как ночь наши души,
Красная как кровь цена, которую мы платим,
Золото награда, которую мы ожидаем.

Сочувствие и трусость одно и тоже.
Совесть только повод, чтобы не делать то, что должно быть сделано.

youtu.be/8dVtBAWbZ14
10 Августа 2012 22:31      
susanna
Штурман



Сообщений: 993

susanna пишет:
только вот как-то я не могу обьснить что именно мне нужно .....есть монстр который двигается по произвольной траектории...вопрос как сделать чтобы их стало много??


Наверное нужно было начать с того, что уже создан данжен и этот монстер ходит уже там....
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 22:32      
susanna
Штурман



Сообщений: 993

ae_corps_000 пишет:
У нас в городке есть ещё кто-то, кто учит Яву?
Блин, может стать тутором по Яве, когда делать нечего...


Я не против=)
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 22:34      
Uranus
Капитан 1го ранга



Сообщений: 44365

susanna пишет:
только вот как-то я не могу обьснить что именно мне нужно .....есть монстр который двигается по произвольной траектории...вопрос как сделать чтобы их стало много??

сделай много инстанций одного и того же класса.
----------------------
Удача сопутствует смелым котам!


"Вы можете меня сломать, но не можете играть на мне "

В.Шекспир

Если коровы станут летать, то мне в космосе делать нечего!

Капитан Зелёный
10 Августа 2012 22:47      
susanna
Штурман



Сообщений: 993

и как я это сделаю??
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 22:48      
Uranus
Капитан 1го ранга



Сообщений: 44365

susanna пишет:
и как я это сделаю??
как в яве принято...как ты одного монстра запускаешь, так запусти и всех остальных, через конструктор.
----------------------
Удача сопутствует смелым котам!


"Вы можете меня сломать, но не можете играть на мне "

В.Шекспир

Если коровы станут летать, то мне в космосе делать нечего!

Капитан Зелёный
10 Августа 2012 22:49      
susanna
Штурман



Сообщений: 993

susanna пишет:
и как я это сделаю??


тоесть я прдставляю что это можно с помощью array сделать.....но вот задумманное не хочет работать(((
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 22:51      
KyxapKa
Капитан 1го ранга



Сообщений: 30437

susanna пишет:
Помогие кто-нибудь с программой , а то у меня такое чувство, что чем больше я в яву погружаюсь тем меньше понимаю. "явно" скоро свихнусь. Есть желающие?


a как долго и как интенсивно ты в нее уже погружаешься?
----------------------
Дурака учить, что мёртвого лечить.
10 Августа 2012 22:59      
susanna
Штурман



Сообщений: 993

часов до 5 утра(...
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 23:01      
susanna
Штурман



Сообщений: 993

KyxapKa пишет:
a как долго и как интенсивно ты в нее уже погружаешься?


насчет долго может полтора месяца. На моей совести gailer-net.de, пара книг, ну и видео с ютуб.
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 23:03      
KyxapKa
Капитан 1го ранга



Сообщений: 30437

susanna пишет:
насчет долго может полтора месяца. На моей совести gailer-net.de, пара книг, ну и видео с ютуб.


а чет сразу с каких-то монстров начала, может надо было с чего-то более легкого, с калькулятора например, нет?
----------------------
Дурака учить, что мёртвого лечить.
10 Августа 2012 23:05      
susanna
Штурман



Сообщений: 993

кулькулйатор у меня уже есть..)......просто этот монстр мне просто необходим...как он мне еще по ночам не сниться.
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 23:07      
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

не понимаю, почему он теперь весь не копируется, бцв не вставляется.
----------------------
порядка в мире было бы больше, если бы каждый бы занимался своим делом
10 Августа 2012 23:19      
MAXXXIM
Капитан 1го ранга



Сообщений: 11568

всex загрузила.
----------------------
Выиграл бой тот, кто сумел его избежать.
10 Августа 2012 23:35      
HA3AP
Бывший океанец
Сообщений: 9819128

susanna пишет:
не понимаю, почему он теперь весь не копируется, бцв не вставляется.

там попробуй выставить, потом линк сюда скопируй.
11 Августа 2012 21:40      
Amethyst
Шкипер



Сообщений: 70

Привет!
Ктонибудь может объяснить как правильно указывать путь к папкам? Скажем я хочу указать путь к File dir.
dir долже быть .isdirectory и это проверяется в дальнейшем методом scanTile(File dir).
Пока я работаю в самом Эклипсе всё замечательно получается. Картинки лежат в папке src/Tiles/ (там же где и сами классы работающие с этими файлами). Они загружаются при помощи цикла на JPanel, я их вижу и всё отлично. Но если я экспортирую runnable jar файл и запущу на другом компе графика пропадает. Хорошо, думаю, пропишу как я чтонибудь вроде scanTiles(new File("./Map_Tiles/")); , экспортирую джар файл и потом просто создам папку Map_Tiles в папке с джар файлом. Закинул туда нужные файлы. Эффекта ноль. Помогите пожалуйста.

вот если что сам scanTile. Он же вызывается в конструкторе класса
public void scanTiles(File dir){
if (dir.exists() && dir.canRead() && dir.isDirectory()){
File[] tiles = dir.listFiles();
for(File tile : tiles){
if (checkPNG_Format(tile)){
Image tileImage;
try{
tileImage = ImageIO.read(getClass().getResource(tile.getName()));
tilesPanel.tilesArray.add(tileImage);
tilesPanel.repaint();

}catch (Exception e){ } } } } }


scanTiles(new File("./Map_Tiles/")); вот так выглядит вызов метода в конструкторе
----------------------
лучшая ONLINE Игра
15 Октября 2012 00:57      
xmm
Капитан 1го ранга



Сообщений: 14605

т.е. у тебя картинки и jar находятся в одной папке?
картинки должны лежать в jar-e.
jar file разархивируй и закинь их в src/Tiles.
15 Октября 2012 06:21      
Amethyst
Шкипер



Сообщений: 70

xmm пишет:
т.е. у тебя картинки и jar находятся в одной папке?
картинки должны лежать в jar-e.
jar file разархивируй и закинь их в src/Tiles.


а можно ли сделать так, что картинки будут лежать в определённой папке (скажем с названием Map_Tiles) в той же папке что и джар файл и тянуть (сканировать) метод будет именно оттуда? Просто само содержимое папки будет изменяться.
Хотя по идеи можно сделать импорт файлов в джар файл как ты описал, или? Можно так? Создать JFileChooser при помощи которого можно будет в сам джар импортировать графику?
----------------------
лучшая ONLINE Игра
15 Октября 2012 19:13      
 Страница   из 77    |  Показывать   на странице
Перейти в
© Stanislav Neuberger 2001-2K24 · Impressum · Служба поддержки