# Figur springen lassen



## raven (2. Aug 2004)

alse ich arbeite an ein 2d Spiel nun möchte ich meine Figur springen lassen.

Mir fällt blos keine Idee ein du gut ist.

Die Figur soll eigentlich erstmal nur gerade nach oben springen und wieder runter fallen.

Habt ihr eine gute Idee.
Währe euch sehr Dankbar


----------



## Illuvatar (4. Aug 2004)

Irgendwo wirst du die Figur ja zeichnen... was hindert dich, sie ein paar Pixel höher zu zeichnen?


----------



## pogo (4. Aug 2004)

kannst ja eine variable einfügen, die du ändern kannst


----------



## Reality (4. Aug 2004)

Hier gibt´s tolle Tutorials.
So hab ich auch mein erstes Ping Pong Spiel programmiert.

http://www.javacooperation.gmxhome.de/TutorialStartDeu.html

Liebe Grüße
Reality


----------



## pogo (4. Aug 2004)

sieht sehr gut aus das Tutorial werd ich gleich mal ausprobieren


----------



## raven (5. Aug 2004)

Ich habs ja schonmal mit ner for-schleife probiert. Und da gabs zwei fehler

1. Fehler die Figur ist verschwunden als ich springen wollte und ist erst wieder aufgetaucht als sie oben war.

2.Fehler Sie kam nicht mehr runter und ich konnte in der Luft weiter rennen.

Meine For - Schleife sah ungefähr so aus:


```
while(Richtung) // ist eine Variable in welcher richtung die Figur gerade kuckt
{
	case:8 if(Richtung==8)			// 8 ist die Taste mit der man springen soll
		{
			for(x=500; x>=600; x++)	// 500 ist der Boden wo die Figur draufsteht 					
			{
				x--;
			}			// 600 wie hoch sie springen kann
		}

}
```

_Edit by Illuvatar: Codetags eingefügt_


----------



## Illuvatar (5. Aug 2004)

X_Master hat gesagt.:
			
		

> for(x=500; x>=600; x++)	// 500 ist der Boden wo die Figur draufsteht
> {
> x--;
> }			// 600 wie hoch sie springen kann



Wetten wir, dass die Schleife recht lang dauert? :bae: 
x ist 500.
jeden Durchgang machst du: x++; x--.
wann soll x 600 sein?


----------



## raven (5. Aug 2004)

oh das war nen schreibfehler 

Boden=500

Sprunghöhe=600


----------



## Illuvatar (5. Aug 2004)

Jetzt verstehe ich nix mehr.
Poste mal ein bisschen mehr Code, und zwar bitte diesmal gleich in Codetags.

Und außerdem:
_--> moved by Illuvatar: Spieleprogrammierung_


----------



## raven (6. Aug 2004)

aus der Start classe  poste ich nur das mit dem Tasten drücken das andere ist nur das übliche



```
// auschnitt aus der ersten klasse

public void keyTyped(KeyEvent e)
	{

	}
	public void keyPressed(KeyEvent e)
	{
		System.out.println("Taste gedrückt");
		char c = e.getKeyChar();
		System.out.println(c);
		if(c=='6')		//  Rennt nach rechts
		{
			m1.Richtung=6;
			System.out.println("rechts");
		}
	/*	if(c=='8')
		{
			m1.Richtung=8;			// SOLL SPRINGEN
			System.out.println("oben");
		}
	*/
		if(c=='4')
		{
			m1.Richtung=4;			rennt nach links
			System.out.println("links");
		}
	/*	if(c=='5')
		{
			//m1.Richtung=5;
			System.out.println("unten");
		}
	*/
	}
	public void keyReleased(KeyEvent e)
	{
		if(m1.Richtung!=5)
		{
			m1.Richtung=0;
		}
	}
	public void paint(Graphics g)
	{
		m1.paint(g);
		g.setColor(Color.yellow);
		g.fillRect(0,660,1000,40);
	}












	// spielfigur classe

public class mann
{
	welt w1 = new welt();

	int fensterX=1000;
        int fensterY=700;
	int xPlatte=100;
	int yPlatte=500;
	int Sprunghoehe=600;
	int x=100;
	int y=500;
	boolean anzeige=true;
	int banzeige=1;
	int Richtung=0;						//6=rechts,4=links,8=oben,5=unten,0=stopp


	public void paint(Graphics g)
	{
		w1.paint(g);
		if(x>=fensterX)
		{
			x=995;
		}
		if(x<=0)
		{
			x=5;
		}

		g.setColor(Color.black);
		switch(Richtung)
		{
			case 4:	if(Richtung==4 && xPlatte<x)
				{
					if(banzeige==1){Links1(g);}
					if(banzeige==2){Links2(g);}
					if(banzeige==3){Links3(g);}
					if(banzeige==4){Links4(g);}
					banzeige++;
					if(banzeige==5)
					{
						banzeige=1;
					}
					x=x-8;
				}
				else
				{
					Richtung=5;
					x--;
				}
				break;
			case 6:	if(Richtung==6 && xPlatte+200>x)
				{
					if(banzeige==1){Rechts1(g);}
					if(banzeige==2){Rechts2(g);}
					if(banzeige==3){Rechts3(g);}
					if(banzeige==4){Rechts4(g);}
					banzeige++;
					if(banzeige==5)
					{
						banzeige=1;
					}
					x=x+8;
				}
				else
				{
					Richtung=5;
					x--;
				}
				break;
		/*	case 8:	if(Richtung==8)
				{
					if(y<Sprunghoehe)
					{
						y++;
					}
					else
					{
						y--;
						y--;
					}
				}
				break;
		*/
			case 0:	if(banzeige==1){Stopp1(g);}
					if(banzeige>1)
					{
						banzeige=1;
					}
		}
	}
	public void Rechts1(Graphics g)
	{
		// Mensch 1
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x+3,y-28,x+4,y-28);			//Nase
		g.drawLine(x,y-14,x+4,y-1);				//Bein1
		g.drawLine(x+4,y-1,x+6,y-1);			//Fuß1
		g.drawLine(x,y-14,x-5,y-5);				//Bein2
		g.drawLine(x-5,y-5,x-8,y-6);			//Bein2
		g.drawLine(x-8,y-6,x-9,y-4);			//Fuß2
		g.drawLine(x,y-23,x+3,y-20);			//Arm1
		g.drawLine(x+3,y-20,x+6,y-18);			//Arm1
		g.drawLine(x,y-21,x-3,y-20);			//Arm2
		g.drawLine(x-3,y-20,x-6,y-16);
	}
	public void Rechts2(Graphics g)
	{
		// Mensch 2
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x+3,y-28,x+4,y-28);			//Nase
		g.drawLine(x,y-14,x+2,y-5);				//Bein1
		g.drawLine(x+2,y-5,x,y-2);				//Bein1
		g.drawLine(x,y-2,x+1,y);				//Fuß1
		g.drawLine(x,y-14,x+4,y-8);				//Bein2
		g.drawLine(x+4,y-8,x-3,y-4);			//Bein2
		g.drawLine(x-3,y-4,x-3,y-2);			//Fuß2
		g.drawLine(x,y-23,x+3,y-20);			//Arm1
		g.drawLine(x+3,y-20,x+7,y-23);			//Arm1
		g.drawLine(x,y-21,x-3,y-20);			//Arm2
		g.drawLine(x-3,y-20,x-8,y-18);			//Arm2
	}
	public void Rechts3(Graphics g)
	{
		// Mensch 3
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x+3,y-28,x+4,y-28);			//Nase
		g.drawLine(x,y-14,x+4,y-5);				//Bein1
		g.drawLine(x+4,y-5,x+1,y-2);			//Bein1
		g.drawLine(x+1,y-2,x+2,y);				//Fuß1
		g.drawLine(x,y-14,x-5,y-5);				//Bein2
		g.drawLine(x-5,y-5,x-8,y-4);			//Bein2
		g.drawLine(x-8,y-4,x-8,y-2);			//Fuß2
		g.drawLine(x,y-23,x+3,y-20);			//Arm1
		g.drawLine(x+3,y-20,x+7,y-23);			//Arm1
		g.drawLine(x,y-21,x-3,y-20);			//Arm2
		g.drawLine(x-3,y-20,x-8,y-18);			//Arm2
	}
	public void Rechts4(Graphics g)
	{
		// Mensch 4
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x+3,y-28,x+4,y-28);			//Nase
		g.drawLine(x,y-14,x+4,y-1);				//Bein1
		g.drawLine(x+4,y-1,x+6,y-1);			//Fuß1
		g.drawLine(x,y-14,x-4,y-1);				//Bein2
		g.drawLine(x-4,y-1,x-2,y-1);			//Fuß2
		g.drawLine(x,y-23,x+3,y-20);			//Arm1
		g.drawLine(x+3,y-20,x+7,y-23);			//Arm1
		g.drawLine(x,y-21,x-3,y-20);			//Arm2
		g.drawLine(x-3,y-20,x-8,y-18);			//Arm2
	}
	public void Links1(Graphics g)
	{
		// Mensch 1
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x-3,y-28,x-4,y-28);			//Nase
		g.drawLine(x,y-14,x-4,y-1);				//Bein1
		g.drawLine(x-4,y-1,x-6,y-1);			//Fuß1
		g.drawLine(x,y-14,x+5,y-5);				//Bein2
		g.drawLine(x+5,y-5,x+8,y-6);			//Bein2
		g.drawLine(x+8,y-6,x+9,y-4);			//Fuß2
		g.drawLine(x,y-23,x-3,y-20);			//Arm1
		g.drawLine(x-3,y-20,x-6,y-18);			//Arm1
		g.drawLine(x,y-21,x+3,y-20);			//Arm2
		g.drawLine(x+3,y-20,x+6,y-16);			//Arm2
	}
	public void Links2(Graphics g)
	{
		// Mensch 2
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x-3,y-28,x-4,y-28);			//Nase
		g.drawLine(x,y-14,x-2,y-5);				//Bein1
		g.drawLine(x-2,y-5,x,y-2);				//Bein1
		g.drawLine(x,y-2,x-1,y);				//Fuß1
		g.drawLine(x,y-14,x-4,y-8);				//Bein2
		g.drawLine(x-4,y-8,x+3,y-4);			//Bein2
		g.drawLine(x+3,y-4,x+3,y-2);			//Fuß2
		g.drawLine(x,y-23,x-3,y-20);			//Arm1
		g.drawLine(x-3,y-20,x-7,y-23);			//Arm1
		g.drawLine(x,y-21,x+3,y-20);			//Arm2
		g.drawLine(x+3,y-20,x+8,y-18);			//Arm2
	}
	public void Links3(Graphics g)
	{
		// Mensch 3
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x-3,y-28,x-4,y-28);			//Nase
		g.drawLine(x,y-14,x-4,y-5);				//Bein1
		g.drawLine(x-4,y-5,x-1,y-2);			//Bein1
		g.drawLine(x-1,y-2,x-2,y);				//Fuß1
		g.drawLine(x,y-14,x+5,y-5);				//Bein2
		g.drawLine(x+5,y-5,x+8,y-4);			//Bein2
		g.drawLine(x+8,y-4,x+8,y-2);			//Fuß2
		g.drawLine(x,y-23,x-3,y-20);			//Arm1
		g.drawLine(x-3,y-20,x-7,y-23);			//Arm1
		g.drawLine(x,y-21,x+3,y-20);			//Arm2
		g.drawLine(x+3,y-20,x+8,y-18);			//Arm2
	}
	public void Links4(Graphics g)
	{
		// Mensch 4
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x-3,y-28,x-4,y-28);			//Nase
		g.drawLine(x,y-14,x-4,y-1);				//Bein1
		g.drawLine(x-4,y-1,x-6,y-1);			//Fuß1
		g.drawLine(x,y-14,x+4,y-1);				//Bein2
		g.drawLine(x+4,y-1,x+2,y-1);			//Fuß2
		g.drawLine(x,y-23,x-3,y-20);			//Arm1
		g.drawLine(x-3,y-20,x-7,y-23);			//Arm1
		g.drawLine(x,y-21,x+3,y-20);			//Arm2
		g.drawLine(x+3,y-20,x+8,y-18);			//Arm2
	}
	public void Stopp1(Graphics g)
	{
		//Stopp1
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x,y-28,x,y-28);				//Nase
		g.drawLine(x,y-14,x-4,y-1);				//Bein1
		g.drawLine(x-4,y-1,x-6,y-1);			//Fuß1
		g.drawLine(x,y-14,x+4,y-1);				//Bein2
		g.drawLine(x+4,y-1,x+6,y-1);			//Fuß2
		g.drawLine(x,y-21,x-7,y-19);			//Arm1
		g.drawLine(x,y-21,x+7,y-19);			//Arm2
	}
	public void Runter1(Graphics g)
	{
		//Runter1
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x,y-28,x,y-28);				//Nase
		g.drawLine(x,y-14,x-4,y-1);				//Bein1
		g.drawLine(x-4,y-1,x-6,y-1);			//Fuß1
		g.drawLine(x,y-14,x+4,y-1);				//Bein2
		g.drawLine(x+4,y-1,x+6,y-1);			//Fuß2
		g.drawLine(x,y-21,x-7,y-19);			//Arm1
		g.drawLine(x,y-21,x+7,y-19);			//Arm2
	}
	public void Runter2(Graphics g)
	{
		//Runter2
		g.drawLine(x,y-14,x,y-25);				//Körper
		g.drawOval(x-3,y-31,6,6);				//Kopf
		g.drawLine(x,y-28,x,y-28);				//Nase
		g.drawLine(x,y-14,x-4,y-1);				//Bein1
		g.drawLine(x-4,y-1,x-6,y-1);			//Fuß1
		g.drawLine(x,y-14,x+4,y-1);				//Bein2
		g.drawLine(x+4,y-1,x+6,y-1);			//Fuß2
		g.drawLine(x,y-21,x-7,y-23);			//Arm1
		g.drawLine(x,y-21,x+7,y-23);			//Arm2
	}
}












//classe von der Spielwelt

import java.awt.*;
import java.awt.event.*;
import java.applet.*;// Import befehle
import java.net.*;

public class welt
{
	int xPlatte=100;
	int yPlatte=500;

	public void paint(Graphics g)
	{
		g.setColor(Color.yellow);
		g.fillRect(xPlatte,yPlatte,200,10);
	}
}
```


----------



## CyberKane (28. Sep 2004)

Ersteinmal sollte das ganze übersichtlicher werden. Anstatt 11 mehr oder weniger identschide Methoden für Zustände des Menschens zu schreiben würde eine einzige, parametisierte ausreichen.

Die wird dann eben Situationsabhängig aufgerufen.


----------

