Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
HeyLeute.
In c# hatte ich eine klasse, in der eine Münze erstellt wurde und durch die Luft geflogen ist...
Diese habe ich GENAU so in Java gemacht.
Allerdings bewegt sich die Münze völlig falsch und man sieht sie irgendwie garnicht...
hier wie ich sie erstelle :
Random random = new Random();
Coin coin = new Coin(random.nextInt(80-(-80)+1)+-80, random.nextInt(150-(50)+1)+50);
coins.add(coin);
das erste soll ein random-wert zwischen -80 und 80 sein, und das zweite zwischen 150 und 50.
man sieht die münze in der einen Sekunde noch ganz oben irgendwo, und dann is sie weg.
Normal, also in c#, sollte die münze einen bogen nach oben machen, und dann auf dem boden immer apprallen und irgendwann leigen bleiben ...
Foreachschleifen gibt es in Java so nicht, da sie für C# erfunden wurden. Wie sowas in Java realisierbar ist, kann man in jedem Buch nachlesen.
Nicht jeder Code ist 1:1 gleich...
Ja, aber fast 1 zu 1 ! Ich hab nur die minimalen änderungen vorgenommen, bei den schleifen und so.
aus foreach (Block block in blocks) wird for (Block block : blocks)
Und da ist ja kein Unterschied...
Sieht man denn am Code (siehe erster Beitrag, pastebin-link ) irgendwas falsches ?
Foreachschleifen gibt es in Java so nicht, da sie für C# erfunden wurden. Wie sowas in Java realisierbar ist, kann man in jedem Buch nachlesen.
Nicht jeder Code ist 1:1 gleich...
Du wirst es nicht glauben, aber es gibt tatsächlich Zeiten da hilft erst denken, dann nachlesen und zum Schluss den Stuss nicht schreiben den man auf der Zunge hat. Dann steht man auch nicht so blamiert da. Foreach loop - Wikipedia, the free encyclopedia
Oke, Danke ;D Aber ob die foreach schleifen jetzt extra für java erfunden wurden oder nicht, ist mir eigentlich garnicht mal so wirklich das wichtigste an der Sache
Also wenn es euch hilft kann ich auch das ganze projekt hochladen oder so
Und von mir aus auch das c# Projekt...
Also so sollte aus aussehen mit den Coins : c# + XNA : CoinBox Hero Alpha 1.2 [Nachmache] - YouTube
Aber in meinem Java Projekt sieht man sie nur ganz kurz, dann sind sie sofort weg, und dann wieder da und die bewegen sich völlig falsch und alles
Nein. Das ist halt Konvention. Einer der Vorteile bei Java (meiner Meinung nach) ist der, dass ich auf einen Blick sehe, ob ein Aufruf eine Klassenmethode oder Instanzmethode ist. Welche Bezeichner in meinem Code eindeutig! Klassen sind und welche lediglich Variablen darstellen.
Sowas macht Code um Längen lesbarer. Ich hasse dieses Rätselraten in fremden Code.
Zu deinem Problem: Zeig doch mal den Code der das ganze benutzt.
Ja, das führt irgendwie zu nichts. Debuggen wirst du früher oder später ohnehin selbst müssen. Am besten mit einem Debugger (deswegen heißen die Dinger so ) oder mit sowas wie
und in Java genau das gleiche nur ohne das mal...
Und wenn die elapsed GameTime unter 0 ist, dann whäre es ja kleiner, und alles whäre richtig
Weiß jemand wie ich dass so in Java mache ?
Okee... Viele Dank, aber es gibt da noch so ein kleines Problem.
Wenn ich viele coins auf einmal erstelle kommt ein Fehler ....
Hier mal ein Video : http://www.youtube.com/watch?v=bNXyHoHth-E
Liegt es vielleicht daran ? Kann man den Fehler schon so erkennen, oder
soll ich noch Code posten ?
Das Video ist privat. Beschreibe den Fehler oder poste Code, das hier ist nicht das "Was könnte irgendjemand bei irgendwas falsch gemacht haben"-Quizforum.
Da will man einem einmal was leichter machen, in dem man gleich ein ganzes Video ( Grulala - YouTube ) schickt, wo man den Fehler sieht und schon meckert wieder jeder
Also wenn ich sehr viele Coins auf einmal erzeuge, dann stoppt das Programm, und in der Console steht :
Exception in thread "Thread-2" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at Figur.Update(Figur.java:117)
at ImageExample.run(ImageExample.java:65)
at java.lang.Thread.run(Unknown Source)
Wenn irh Code wollt, einfach sagen von welcher Klassse ihr wollt ^^
Nun, auf die Idee einen Fehler per Youtube-Video zu beschreiben, wo es ein Stacktrace und ein paar Zeilen code schon tun würden (und viel zielgerichteters Helfen erlauben würden) ist schon abwegig :bahnhof: Wenn du statt des Videos EINE Datei mit dem zusammenkopierten Quellcode gepostet oder auch (wenns sein muss) irgendwo hochgeladen hättest, hättest du am 19.08.2012 um ca. 10:22 schon ein funktionierendes Programm gehabt
Dort wird eine Liste verändert, während darüber iteriert wird (evtl. von zwei verschiedenen Threads, wenn es beim Einfügen passiert). Poste den Code, wo etwas in diese Liste eingefügt wird, und wo sie verwendet wird.
Und für die Zukunft: In der Konsole auf den link (!)
at Figur.Update(Figur.java:117)
zu klicken würde dich schon zu der Stelle führen, wo was falsch läuft...
if(e.getKeyCode()== KeyEvent.VK_SPACE){
if (!space) space = true;
Random random = new Random();
int random1 = random.nextInt(80-(-80)+1)+-80;
int random2 = random.nextInt(150-(50)+1)+50;
Coin coin = new Coin(random.nextInt(161)-80, random.nextInt(101)+50, stone);
coins.add(coin);
}
Da werden die erstellt ^^
Java:
public void Update()
{
for (Coin coin : coins)
{
coin.Update();
}
[...]
}
geuptdatet ^^
Java:
public void Draw(Graphics g, ImageExample ie)
{
for (Coin coin : coins)
{
coin.Draw(g, ie);
}
}
Falls das Zeichnen etwas dauert, kann man vorher auch eine (tiefe) Kopie der Objekte anfertigen. Dann kann im Hintergrund sich ruhig schon weiter was dran ändern, das stört beim Zeichnen dann nicht.