Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > Programm/Spiel läuft unterschiedlich schnell
Antwort
 
Themen-Optionen
Alt 03.07.2005, 22:01   Nach oben    #1
VipViper2000
Gast
 
Beiträge: n/a
Standard Programm/Spiel läuft unterschiedlich schnell

Hi Leuts!

Wie ich in meinem anderen Post schon beschrieben habe, habe ich einen Pong Klon programmiert - funktioniert so weit sehr gut. Auf meinem Desktop läuft alles so wie es soll.

Wenn ich das gleiche Spiel aber auf meinem Laptop (1.6Ghz Centrino, Radeon 9700 Pro ) ausführe ruckelt sich der Ball vielleicht was zurecht. Da läuft er mal schnell, mal langsam aber auf keinen Fall gleichmäßig. Auch bringt eine Veränderung der Geschwindigkeit vom Ball ( die über die Thread.sleep Zeit steuere ) keine Veränderung. Jetzt hab ich schon das Update 4 des JDK installiert, bringt aber nix.

Habt ihr ne Ahnung, woran das liegen kann?

Gruß,
VipViper2000
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.07.2005, 23:04   Nach oben    #2
Soulfly
Gast
 
Beiträge: n/a
Standard

Höchstwahrscheinlich liegt das an deinem Centrino.
Der Skaliert je nach Anforderung seine taktrate hoch und runter.

Ich habe ebenfalls ein centrino 1.7 Ghz, kann dieses Problem aber selber nicht feststellen. Schau mal unter diesem Link

http://www.pbus-167.com/chc.htm#anchor_donations

Dies ist ein Programm zu steuerung der Taktrate und der Voltage, genauso wie der Prozi skalieren soll.
unter www.m30x.de.vu gibt es Anleitungen und auch ein Thread in den Games-Teil dazu. Die forumsuche ist dein Freund.
Viel Spaß.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2005, 00:02   Nach oben    #3
VipViper2000
Gast
 
Beiträge: n/a
Standard

Mhmm, als ich hab diesen Centrino Hardware Controle Monitor laufen. Da kann ich alles einstellen - von Max.Performance ohne Takten bis dynamic switching. Aber es hilft einfach nix... Selbst wenn er genau auf 1,6 Ghz läuft...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2005, 03:06   Nach oben    #4
Soulfly
Gast
 
Beiträge: n/a
Standard

Hast du schon mal einfach ein test-prog erstellt, in dem sich ein Ball einfach hin und her bewegt? Ist es da genauso?
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2005, 10:34   Nach oben    #5
VipViper2000
Gast
 
Beiträge: n/a
Standard

Nee, das hab ich noch nicht gemacht. Kann ich aber heute Nachmittag mal machen. Und bei dir läuft es flüssig? Also normal halt? Ich mein, ist ja nicht wirklich ein Grafisch aufwendiges Spiel
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2005, 21:32   Nach oben    #6
Soulfly
Gast
 
Beiträge: n/a
Standard

Richtig, bei mir funkt das ganz normal!
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 00:18   Nach oben    #7
VipViper2000
Gast
 
Beiträge: n/a
Standard

Kannst du mal deine CPU Auslastung posten? Weil ich hab das mit dem Splash Screen jetzt auch hinbekommen ( dank dir ), hab noch einen GameController hinzugefügt, weil ich Probleme hatte, ein Spiel neu zu beginnen. So, jetzt eigentlich alles so wie ich es will, nur das es halt ruckelt.

Mir ist aufgefallen, dass ich selbst beim Splash am Anfang schon eine CPU Auslastung von 100% habe. Ist das bei dir auch so?? Das kann doch nicht sein. Bis zu diesem Zeit existiert im Prinzip nur der GameController und der Splash. Hier mal der Quelltext vom Controller ( Splash ist der gleiche, wie der den du das letzte mal gepostet hast

Code:
/*
 * Created on 04.07.2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Zenobios
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class GameController {
	
	private boolean newGame;
	private boolean isGame;
	private boolean isSplash;
	private Spielfeld spiel;
	
	GameController(){
		isGame = false;
		isSplash = false;
		newGame = false;
		spiel = null;
		showSplash();
	}
		
	public void showSplash(){
		isSplash = true;
		Splash splash = new Splash(this);
		while(isSplash){}
		newGame();
	}

	public void endSplash(){
		isSplash = false;
	}
	
	public boolean isSplash(){
		return isSplash();		
	}
	
	public void newGame(){
		isGame = true;
		Spielfeld spiel = new Spielfeld(this);
		while(isGame){}
		if(newGame) newGame();		
	}
	
	public void endGame(boolean newGame){
		if(newGame){
			this.newGame = newGame;
			isGame = false;
		}
		else{
			System.out.println("Kein neues Spiel gewünscht...");
			System.exit(0);
		}
	}
}
Im Spiel selbst hab ich auch 100% CPU Auslastung. Irgendwas läuft da schief...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 00:50   Nach oben    #8
Soulfly
Gast
 
Beiträge: n/a
Standard

Hab dir ein kleines bißchen was falsches da reingeschrieben.
Versuche die Thread.sleep() aufrufe in die run() reinzupacken.
Dann kannste in der paint() umswitchen mit ner boolean oder so.

Code:
        public void paint(Graphics g)
	{
		if(wahr){
			g.drawImage(splash, 0, 0, this);
			wahr = false;
		}else{
			g.drawImage(splash2, 0, 0, this); 
			wahr = true;
		}
	}

	// neu
	public void run()
	{
		while (!endSplash)
		{
			try{
			Thread.sleep(500);
			}catch(InterruptedException e){}
			repaint();
		}
	}
et Voila reduzierte CPU-Auslastung.

So solltest du das immer machen.
Thread.sleep() bei animationen immer in run()

Viel Spaß weiterhin.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 12:15   Nach oben    #9
VipViper2000
Gast
 
Beiträge: n/a
Standard

Okay, werde ich testen. Aber das erklärt noch nicht so richtig, warum ich auch inGame son eine hohe CPU Auslastung habe, oder
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 13:28   Nach oben    #10
Soulfly
Gast
 
Beiträge: n/a
Standard

Ingame ist das genau das gleiche.
du hast da nur eine while_schleife (nach dem alten Code), die andauernd repaint() aufruft. Pack das genauso in einen eigenen Thread und diese while-Schleife packst du da rein.

Falls du nicht genau verstehst. Gibt mir den Code und ich bastel dasda rein, ist eh nur ein kleiner eingriff.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 13:45   Nach oben    #11
VipViper2000
Gast
 
Beiträge: n/a
Standard

Naja, verstehen tu ichs schon. Also der Kern ist halt das man mit Threads arbeitet. Das hab ich halt noch nicht gemacht..
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 14:59   Nach oben    #12
VipViper2000
Gast
 
Beiträge: n/a
Standard

Mhmm, also ich hab das jetzt im Splash so geändert, wie du meintest, heisst also den sleep in die run() gepackt. Funzt auch alles ( immer noch ) wunderbar, aber CPU Last ist immer noch bei 100% ( bin jetzt an meinem Desktop )...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 20:44   Nach oben    #13
Soulfly
Gast
 
Beiträge: n/a
Standard

Hmm, kann nicht sein: 100% prozent während des splashscreens?
Zeigt mal den Code vom Splashscreen.

Und Threading ist das halbe und ganze des Gamecodings. Müsstest dir wirklich mal angucken.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 21:10   Nach oben    #14
VipViper2000
Gast
 
Beiträge: n/a
Standard

Also ich hab den Code jetzt angepasst - es lag nicht am Splash selber sondern am GameController. Wie du in dieser Klasse sehen kannst, lasse ich eine Endlosschleife laufen, die ständig kontrolliert, ob der Splash noch läuft. Hab das jetzt geändert und voila - CPU Auslastung weg.

Ja, das mit den Threads muss ich mir nochmal genauer angucken. Ich hab jetzt das Problem, dass wenn der Splash durch ist ( ich also Enter gedrückt habe ) das Spiel zwar anscheinend läuft, aber nicht gezeichnet wird. Ich habe nochmal die aktuellen Dateien in ein Zip gepackt. Ich denke, das lässt sich lösen, wenn ich das Spielfeld in einen eigenen Thread packe, oder was meinst du?
Angehängte Dateien
Dateityp: zip PongGame.zip (5,8 KB, 3x aufgerufen)
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 21:25   Nach oben    #15
Soulfly
Gast
 
Beiträge: n/a
Standard

fertig angepasst und mit Threading
Angehängte Dateien
Dateityp: zip pongnew.zip (5,8 KB, 2x aufgerufen)
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 21:48   Nach oben    #16
VipViper2000
Gast
 
Beiträge: n/a
Standard

Danke für deine Arbeit. Aber nun werden die Punkte am Ende nicht mehr angezeigt. Aber das kriege ich schon hin. Nur die CPU Last ist bei meinem 2800er immer noch recht hoch - ca. 40%. Müsste doch eigentlich bei so einem Spiel viel weniger sein, oder? Wie kann ich das denn noch verbessern?
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 21:53   Nach oben    #17
Soulfly
Gast
 
Beiträge: n/a
Standard

Sagen wir einfach Computer ist komisch.
Bei liegt die max bei 6%.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 22:57   Nach oben    #18
VipViper2000
Gast
 
Beiträge: n/a
Standard

echt jetzt? Auch während dem spielen? Und wird bei dir das Spieldfeld richtig angezeigt? Weil wenn ich deine Dateien ausführe, dann ist das Spielfeld weiss statt schwarz, was natürlich dementsprechend bescheiden aussieht.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.07.2005, 02:52   Nach oben    #19
Soulfly
Gast
 
Beiträge: n/a
Standard

Ich hatte vergessen das zurückzustellen.
Ich hab nämlich deine Images nicht, da musste ich auf weißen Hintergrund und schwarze Rechtecke zurückgreifen. Das hat aber nicht mit der Auslastung zu tun.

Und echt, bei mir ist es nicht.
Ansonsten teste ich das nochmal mit den Images, dann können wir auf nummer sicher gehen. Musst sie dann nur beifügen.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Feste breite in Gecko und IE unterschiedlich pago HTML, XML und CSS 14 10.09.2006 13:33
wie schnell spammer gebannt sein können :) robo47 Plauderecke 10 05.07.2006 19:52
Unterschiedlich Darstellung Link DasMööp HTML, XML und CSS 3 02.03.2006 16:15
Apache2 antwortet nicht schnell genug Jan Tools, Server, Betriebssysteme 16 20.02.2006 10:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:07 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44