Dayjay 796 Melden Geschrieben 8. Juni 2011 Womit soll ich fortfahren? Wollte später in richtung Spieleprogrammierung gehen. Ich würde dir folgendes empfehlen: Du könntest dir das Source SDK runterladen, dort wird soweit ich weiß auch mit C++ gecodet. Du lernst auch gleich einen Editor und andere Tools kennen. Damit solltest du recht schnell ein paar Ergebnisse erzielen können. Ich hab hier auch nen Buch als PDF rumliegen (etwas veraltet aber noch anwendbar). Falls du Interesse hast --> PM. Mehr Infos: http://developer.valvesoftware.com/wiki/Main_Page Gibt ne Menge Tuts im Internet. Andere Möglichkeit: Du fängst erstmal klein an z.B. mit Love2D. Wird mit Lua programmiert (super einfach zu lernen und später bestimmt mal nützlich). Hab damit so eine Art Moorhuhn Spiel vor einem Jahr angefangen. Mal sehen ob ichs finde. Hat sogar durch Box2D eine Physik Engine. Oder du fängst mit SFML an, wie defaultplayer schon gesagt hat.
Necrofridge 963 Melden Geschrieben 17. Juni 2011 VBA, wenig SQL, etwas ABAP HTML, CSS, JS Hat jemand mehr oder wenige kostenlose Java-Kurse, die er mir empfehlen könnte?
Bulletproof0000 0 Melden Geschrieben 17. Juni 2011 (bearbeitet) Auf Englisch ist das hier wohl so ziemlich das beste (kostenlose): http://download.oracle.com/javase/tutorial/index.html Jede Menge Tutorials mit Codebeispielen. In meiner Lernphase bin ich recht oft darüber gestolpert. Auf deutsch ist das hier auch nicht schlecht, aber da die kostenlose Version abgespeckt ist fehlen teilweise wichtige Abschnitte. http://openbook.galileocomputing.de/javainsel/ E: mal wieder late Bearbeitet 17. Juni 2011 von Bulletproof0000
Necrofridge 963 Melden Geschrieben 17. Juni 2011 Schon "Java ist auch eine Insel" angeschaut? Auf Englisch ist das hier wohl so ziemlich das beste (kostenlose): http://download.oracle.com/javase/tutorial/index.html Jede Menge Tutorials mit Codebeispielen. In meiner Lernphase bin ich recht oft darüber gestolpert. Auf deutsch ist das hier auch nicht schlecht, aber da die kostenlose Version abgespeckt ist fehlen teilweise wichtige Abschnitte. http://openbook.galileocomputing.de/javainsel/ E: mal wieder late Vielen Dank euch beiden, da werd ich mal reinschauen
Buggy McDermit 165 Melden Geschrieben 17. Juni 2011 Ich hab KP wie ich in C++ weitermachen soll =/ Also ich hab so die wichtigsten STL Elemente drauf, die grundlegende Objektorientirung (Klassen, Templates, Vererbung <- Mag ich gar nicht) und so.... Womit soll ich fortfahren? Wollte später in richtung Spieleprogrammierung gehen. Grenze den Bereich der Spieleprogrammierung ein, dann kann ich dir eventuell weiterhelfen. Um (Mehrfach-) Vererbung bei Spieleprogrammierung (ich meine damit "richtige Spiele" kein 3x3 Sodoku oder Schiffe versenken mit Java AWT/Swing oder so) wirst du hier nicht herum kommen keine Chance ! Kurzbeispiel "PlayerController/PlayerPawn/EngineActor" oder wie auch immer sich das in der jeweiligen Engine schimpft ist fast immer eine abstrakte Klasse die du dann ableiten und "vollenden" darfst etc. Falls du (den Mist) zeitnah studieren willst würde ich mir "Sortieralgorithmen" (verkettete Listen/Rekursion) anschauen, weil in einem Informatikstudium wirst du das garantiert im Fach Algorithmen machen dürfen und "Traversieren von Binärbäumen". Rekursion ist generell sehr beliebt min. "Fibonacci" und "Türme von Hanoi" u.s.w. und gewöhne dir eine vernüftige Fehlerbehandlung an ansonten gibt es an Hochschulen hohe Abzüge in der B-Note ("Exceptions" etc.)
Cyborg11 186 Melden Geschrieben 26. Juni 2011 Können bei Java auf einem InputStream ein BufferedReader und ein ObjectInputStream gleichzeitig drauf sein?
Bulletproof0000 0 Melden Geschrieben 26. Juni 2011 Wenn du jeweils einen neuen BufferedReader und ObjectInputStream erstellst und dann den InputStream als Argument übergibst, oder wie? So weit ich weiß wird dann die Datei aber von Windows gelockt, weil sie genutzt wird. Dürfte aber ja nur das Schreiben von Daten betreffen, oder?
Cyborg11 186 Melden Geschrieben 26. Juni 2011 Naja ich muss ja als Testat einen Chat über Server / Clientverbindung schreiben. Jetzt hab ich einen ClientNetworkController, der über einen PrintWriter Strings an den Server schickt, damit dieser weiß, was er tun soll. Mögliche Strings sind: Login Register List Chat Der Server liest diese Strings über einen BufferedReader. Wenn der String "List" vorhanden ist, soll der Server den UserContainer, in dem alle eingeloggten User drinnen stehen über den ObjectOutputStream zurückschicken. Der ObjectOutputStream liegt auf dem OutputStream des Sockets genauso wie der PrintWriter des Servers, da der Server ja auch Nachrichten zurückschicken soll. Jedes Mal, wenn ich die Liste erhalten möchte, hängt sich mein Client und mein Server auf. Also ich hab die Vermutung, dass der PrintWriter und der ObjectOutputStream sich in die Quere kommen :S Beim Client ist es nämlich das selbe. Dort gibt es einen BufferedReader, um die Nachrichten vom Server zu lesen und den ObjectInputStream, um den UserContainer zu erhalten
Bulletproof0000 0 Melden Geschrieben 26. Juni 2011 (bearbeitet) Und wenn du jeweils nur einen benutzt, dann funktioniert es? Ich hoff, dass ich das Konzept jetzt richtig verstanden hab. Hast du immer flush() nachm Schreiben verwendet? Und gehst du sicher, dass der richtige Reader den String empfängt? Ein String ist ja ebenfalls ein Objekt, welches vom ObjectInputStream gelesen werden kann, wenn ich mich nicht täusche. Es müsste auch gehen, den String über den ObjectOutputStream zu schicken, also dass du das ganze auf einen Stream reduzierst und dann halt prüfst, was für ein Objekt reinkommt. Bearbeitet 26. Juni 2011 von Bulletproof0000
Cyborg11 186 Melden Geschrieben 26. Juni 2011 Und wenn du jeweils nur einen benutzt, dann funktioniert es? Na das funktioniert ja, aber ich bräuchte die Kombination aus Beidem. Ich hab mal den Code aus meinem Testat getrennt und wollte das mal genauer testen. Nun ja, in diesem Testprogramm funktioniert es auch nicht. Ich poste mal schnell den SourceCode, vielleicht siehst du ja was und der Fehler liegt gar nicht an den beiden Streams, sondern an etwas anderem. Habe testweise nur versucht die Objects hin- und herzuschicken: StartClient.java: http://pastebin.com/6Sbi359v StartServer.java: new Server(5300); Server.java: http://pastebin.com/J1Wi6Q5z Client.java: http://pastebin.com/QhQxRjPJ Ich hoff, dass ich das Konzept jetzt richtig verstanden hab. Hast du immer flush() nachm Schreiben verwendet? Und gehst du sicher, dass der richtige Reader den String empfängt? Ein String ist ja ebenfalls ein Objekt, welches vom ObjectInputStream gelesen werden kann, wenn ich mich nicht täusche. Ich benutze immer flush() nach dem Schreiben Ja ich bin sicher, dass der richtige Reader den String erhält, da die readLine() Methode des BufferedReader vor dem Erstellen des ObjectInputStreams passiert Aber ich glaube da spielt es sogar keine Rolle, wann welche Methode von welchem Stream verwendet wird. Anscheinend reicht es schon, wenn zwei Streams (ObjectOutputStream, PrintWriter) auf dem selben OutputStream liegen, damit es zu Problemen kommt. Es müsste auch gehen, den String über den ObjectOutputStream zu schicken, also dass du das ganze auf einen Stream reduzierst und dann halt prüfst, was für ein Objekt reinkommt. Stimmt! Das wäre die Möglichkeit Gar nicht mehr dran gedacht, dass so gut wie alles in Java ein Object ist.
Cyborg11 186 Melden Geschrieben 27. Juni 2011 (bearbeitet) Konnte das Problem lösen. Wenn man den ObjectInputStream auf dem Client aufmacht, aber auf dem Server kein OutputStream läuft, dann hängt sich der Client auf. Das selbe umgedreht. Es müssen gleichzeitig beide Streams auf dem Server und auf dem Client laufen. Java ist da aber auch bescheuert. Anstatt eine Fehlermeldung zu geben ... Dafür bin ich auf ein anderes Problem gestoßen, dass ich schon einmal in einer Übung hatte. java.lang.ClassCastException: server.model.UserContainer cannot be cast to client.model.UserContainer Beide Klassen heißen gleich, haben exakt den selben Inhalt und sogar exakt die selbe serialVersionUID, befinden sich nur in zwei unterschiedlichen packages. Also warum klappt das Casten nicht? Ich kann ja schlecht aufm Client das Servermodel importieren :/ Bearbeitet 27. Juni 2011 von Cyborg11
Bulletproof0000 0 Melden Geschrieben 27. Juni 2011 (bearbeitet) Ok, gut zu wissen mit den Streams. Methoden zum Lesen von Streams blockieren halt so lange, bis was zum Lesen da ist. Zum Casten: Mein Vorschlag wäre (hab ich selber schon so gemacht): Klassen, welche von Server UND Client genutzt werden in ein extra Package. Auf dieses Package greifen dann halt beide zu Bearbeitet 27. Juni 2011 von Bulletproof0000