NPC zufällig laufen lassen, aber wie?

Status
Nicht offen für weitere Antworten.
P

Polli85

Gast
Hi an alle,

hab mein RPG-Projekt ein bischen ausgebaut, durch die Hilfe des
Tutorials von Quaxli ---> Tutorial
habe ich nun kein Problem mehr mit dem Player Sprite.
Aber ich weiß nicht wie ich es hinbekommen soll mit der Sprite Klasse
einen RPG NPC zu machen, der zufällig auf der Map rumläuft.
Außerdem wie ich das in die GamePanel klasse einbauen kann
das es irgendwie flüssig aussieht und nicht so abgehackt :( ?!?

Meine Sprite Klasse sieht der von Quaxlis Beispiel sehr ähnlich,
blos auf die Bedürfnisse eines RPG-Sprites angepasst

Code:
public abstract class Sprite extends Rectangle2D.Double implements Movable, Drawable{
	
	public final int spriteNr = 256; 
	long delay;
	long animation = 0;
	GamePanel parent;
	BufferedImage[] pics;
	private final int sWidth = 32;
	private final int sHeight= 32;
	public int currentPic = 0;
	public int playerMap = 0;
	protected double dx;
	protected double dy;
	public boolean mapChangeUp = false;
	public boolean mapChangeDown = false;
	public boolean mapChangeLeft = false;
	public boolean mapChangeRight = false;
	public boolean walking = false;
	
	
	public int dir = 0;
	


	public Sprite(BufferedImage[] img, double x, double y, long delay, GamePanel pan){
		
		pics = img;
		this.x = x;
		this.y = y;
		this.width = sWidth;
		this.height = sHeight;
		this.delay = delay;
		parent = pan;
		
	}
	
	
	public void doLogic(long delta) {
		
		animation += (delta/1000000);
		if(animation > delay){
			animation = 0;
			doAnimation();
		}
		
	}

	private void doAnimation() {
		if(walking){
			currentPic++;
			//UP
			if(dir == 0){
				if(currentPic >=3){
					currentPic = 0;
				}
			}
//			DOWN
			else if(dir == 1){
				if(currentPic >=6){
					currentPic = 3;
				}
			}
//			LEFT
			else if(dir == 2){
				if(currentPic >=9){
					currentPic = 6;
				}
			}
//			RIGHT
			else if(dir == 3){
				if(currentPic >=12){
					currentPic = 9;
				}
			}
			
			
//			else if(currentPic >= pics.length){
//				currentPic= 0;
//			}
			
		}
	}
	
	public boolean checkCollsion(Rectangle2D.Double block) {
		   
	    if(block.intersects(this)){
	      return true;
	    }
	   
	    return false;
	  }
	
	public void move(long delta) {
		
		if(dx != 0){
			x += dx * (delta/1e9);
		}
		if(dy != 0){
			y += dy * (delta/1e9);
		}
			
	}
	
	public	void isMapchange(){
		if(x > 612){
			mapChangeUp = false;
			mapChangeDown = false;
			mapChangeLeft = false;
			mapChangeRight = true;
		}else if( x < -4){
			mapChangeUp = false;
			mapChangeDown = false;
			mapChangeLeft = true;
			mapChangeRight = false;	
		}else if(y > 420){
			mapChangeUp = false;
			mapChangeDown = true;
			mapChangeLeft = false;
			mapChangeRight = false;
		}else if(y < -36){
			mapChangeUp = true;
			mapChangeDown = false;
			mapChangeLeft = false;
			mapChangeRight = false;
		}else{
			mapChangeUp = false;
			mapChangeDown = false;
			mapChangeLeft = false;
			mapChangeRight = false;
		}
		
	}
	
	public void drawObjects(Graphics g) {
		g.drawImage(pics[currentPic],(int)x,(int)y,null);
		
	}
	
	public double getDx() {
		return dx;
	}


	public void setDx(double dx) {
		this.dx = dx;
	}


	public double getDy() {
		return dy;
	}


	public void setDy(double dy) {
		this.dy = dy;
	}


	public synchronized int getCurrentPic() {
		return currentPic;
	}


	public synchronized void setCurrentPic(int currentPic) {
		this.currentPic = currentPic;
	}
	
}

Hoffe jemand kann helfen

Gruß Polli
 

Evil-Devil

Top Contributor
Ich würd für die NPCs Wegpunkte vorgeben in denen oder auf denen sie sich bewegen dürfen und den Rest dann per Zufall bestimmen.
 

manuche

Bekanntes Mitglied
Jo würde ich auch machen... mit Math.random() generierst du dir z.b. eine zahl für entfernung und eine richtung und überprüfst dann ob sie bestimmte punkte überschreiten... wenn ja halt ne abbruch bedingung!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8
D Fraktionsterretorien zufällig generieren Spiele- und Multimedia-Programmierung 5
S Button soll verschiedene panel zufällig durchschalten Spiele- und Multimedia-Programmierung 14
E Zwei Threads miteinander laufen lassen Spiele- und Multimedia-Programmierung 6
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
F Hintergrund zum Laufen bringen Spiele- und Multimedia-Programmierung 11
X JOGL - wie zum laufen bringen? Spiele- und Multimedia-Programmierung 2
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
P Bekomme Java 3D Applets nicht zum Laufen Spiele- und Multimedia-Programmierung 4
G Java 3d Programme laufen nicht unter Windows Vista Spiele- und Multimedia-Programmierung 15
T Problem mit laufen vom Player Spiele- und Multimedia-Programmierung 3
G Simples Programm sollte laufen? Spiele- und Multimedia-Programmierung 8
B Gegner schiessen lassen Spiele- und Multimedia-Programmierung 6
I Wie kann ich die Kreise nach jeweils 1s spawnen lassen? Processing Spiele- und Multimedia-Programmierung 1
R Memory - Nicht alle Button lassen sich aktivieren? Spiele- und Multimedia-Programmierung 1
D JFrames in For Schleife öffnen lassen Spiele- und Multimedia-Programmierung 2
J CMD Output aktualisieren lassen statt neu erstellen? Spiele- und Multimedia-Programmierung 1
H Recheckte nacheinandergenerieren lassen (Applet) Spiele- und Multimedia-Programmierung 2
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
S Spiel installeren lassen und organisieren Spiele- und Multimedia-Programmierung 3
B Zufalls Insel generieren lassen Spiele- und Multimedia-Programmierung 11
J Bestimmte Pixel transparent erscheinen lassen Spiele- und Multimedia-Programmierung 5
Fl4sh1 Datum und Uhrzeit von einem Ereignis ausgeben lassen Spiele- und Multimedia-Programmierung 3
F Screenshot Programm nach Exception weiterlaufen lassen? Spiele- und Multimedia-Programmierung 9
M MJPEG Stream aufnehmen (Speichern und von VirtualDub weiterverarbeiten lassen). Spiele- und Multimedia-Programmierung 2
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
F LWJGL Smoother animieren lassen (wie bei JOGL = Animator) Spiele- und Multimedia-Programmierung 3
aze Java3D:Farbige Flächen verschwinden lassen(Transparenz- oder Colorinterpolator?)) Spiele- und Multimedia-Programmierung 5
J ping pong ball abprallen lassen Spiele- und Multimedia-Programmierung 12
StrikeTom Auto in bestimmte Richtung fahren lassen Spiele- und Multimedia-Programmierung 37
A Halbkreise zeichnen lassen? Spiele- und Multimedia-Programmierung 2
F Schleife warten lassen Spiele- und Multimedia-Programmierung 8
Developer_X 3D Point rotieren lassen Spiele- und Multimedia-Programmierung 17
P Ball mit schwerkraft hüpfen lassen Spiele- und Multimedia-Programmierung 9
K Kanten anzeigen lassen in einem Shape3D-Objekt Spiele- und Multimedia-Programmierung 4
A ein Auto seinen Weg folgen lassen Spiele- und Multimedia-Programmierung 3
W Computer herunterfahren lassen Spiele- und Multimedia-Programmierung 11
B Buttontexte langsam nacheinander erscheinen lassen Spiele- und Multimedia-Programmierung 3
D Dreieck um den Mittelpunkt rotieren lassen Spiele- und Multimedia-Programmierung 9
V Objekt per Tastendruck anzeigen/verschwinden lassen? Spiele- und Multimedia-Programmierung 4
A Objekte nacheinander zeitgesteuert rotieren lassen Spiele- und Multimedia-Programmierung 4
R Figur springen lassen Spiele- und Multimedia-Programmierung 10

Ähnliche Java Themen

Neue Themen


Oben