Umgezogen

Alle neuen Posts findet man ab sofort unter

http://web287.webgo24-server18.de/

Sobald die Domain auch umzieht, gilt wieder http://www.start-at.de/ . Das merkt ihr daran, dass dieser Post hier verschwunden ist, wenn ihr auf http://www.start-at.de/ geht.

Post to Twitter

Umzug

Ab morgen leite ich hier langsam aber sicher den Umzug auf einen neuen Hoster ein, nachdem mein alter Hoster echt Geld von mir verlangt um auf eine aktuelle PHP Version upzudaten. Ist ja nicht so, dass er nicht von sich aus Interesse haben sollte, mögliche Schlupflöcher zu schließen.

Für euch als Leser sollte sich nichts ändern. Im Idealfall merkt ihr nichtmal, wenn ich umziehe.
Falls es doch zu Ausfällen kommen sollte, entschuldige ich mich hiermit schonmal pro forma ;) .

Post to Twitter

Java á la Propädeutikum

So hier dann mal eine erste Fassung von dem was wir im Propädeutikum so gemacht haben

1. Allgemeines
Java-Programme müssen immer in Dateien die auf “.java” enden gespeichert werden. Dabei ist zu beachten dass der Dateiname (ohne das “.java”) und die Angabe im Programmrumpf übereinstimmen.

Um eure Programme zu übersetzen geht ihr, wie im Propädeutikum gezeigt mit der Konsole (bzw. dem Terminal) in euren Java Ordner (also dort wo eure “.java” Dateien liegen) und gebt:

javac DATEINAME.java

ein. Wollt ihr Befehle aus der Tools.zip benutzen sieht der Befehl etwas anders aus:

javac -cp .;Tools.zip DATEINAME.java

Wichtig ist dass es unter Windows ein Semikolon anstelle des Doppelpunktes (den wir im Propädeutikum hatten) ist!

Wollt ihr euer Programm dann starten ersetzt einfach das “javac” durch “java” und lasst am Ende des Befehls das “.java” weg.

2.Der Programmrumpf
Ein Javaprogramm, so wie ihr es in Grundlagen der Informatik und Numerik anfangs schreiben werdet, hat immer die folgende grobe Form:

public class DATEINAME{
  public static void main(String[] args){
    //Hier kommt das eigentliche Programm
  }
}

Zeile 1 gibt dabei an dass es sich bei dem, was wir hier schreiben, um eine Klasse mit dem Namen DATEINAME handelt. Zeile 2 ist die Standardform der main-Funktion (oder auch main-Methode), diese wird immer als erstes aufgerufen wenn euer Programm gestartet wird, deswegen macht es Sinn innerhalb dieser Funktion zu programmieren. Was eine Klasse genau ist und dass man auch außerhalb der main-Funktion programmieren kann, werdet ihr wahrscheinlich im Laufe des Semesters noch lernen.

3. Kommentare
Wollt ihr in Java kommentieren so tut habt ihr dafür 2 Möglichkeiten:

  1. Ihr schreibt // (also 2 mal den Schrägstrich der mit auf der Taste der 7 liegt). Dabei müsst ihr beachten, dass ab diesen beiden Schrägstrichen alles auf der gleichen Zeile dann als Kommentar angesehen wird.
  2. Ihr packt euren Kommentar in /* und */   . Dies ermöglicht es Kommentare innerhalb von Zeilen zu benutzen oder auch über mehrere Zeilen zu kommentieren (falls ihr mal längere Texte zur Erklärung braucht ;) )

4. Verzweigungen
Während des Propädeutikums haben wir grundlegend eine Art der Verzweigung kennengelernt. Das IF- bzw. das IF-ELSE-Konstrukt.
Dies sieht im allgemeinen so aus:

if(BEDINGUNG){
  //Das hier passiert wenn die Bedingung wahr ist (und auch nur dann!)
}
else
{
  //Das hier passiert wenn die Bedingung falsch ist (und auch nur dann!)
}

Der else-Teil (also das else und die beiden folgenden Klammern) sind optional und können weggelassen werden, wenn ihr garkeinen else-Fall benötigt.

5. Schleifen

Um Dinge zu wiederholen benötigt man Schleifen. Davon solltet ihr eigentlich 3 Stück kennen (Die do-while-Schleife, die while-Schleife und die for-Schleife).
Zur Erinnerung hier noch einmal alle 3 in der allgemeinen Form:

/*Die do-while-Schleife läuft immer mindestens einmal ab und prüft am Ende ob die Schleifenbedingung erfüllt ist*/
do{
  //Mache irgendwas
}while(BEDINGUNG);
 
/*Die while-Schleife prüft am Anfang ob die Bedingung erfüllt ist. Ist dies der Fall beginnt die Schleife mit ihrer Arbeit und prüft nach jedem Durchlauf erneut ob die Bedingung noch gilt*/
while(BEDINGUNG){
  //Mache irgendwas
}
 
/*Die for-Schleife wird genutzt, wenn man bestimmt viele Durchläufe braucht. Also im prinzip vorher schon weiss, wie oft die Schleife laufen soll*/
 
for( SCHLEIFENVARIABLE INITIALISIEREN ; BEDINGUNG ; SCHLEIFENVARIABLE ÄNDERN)
{
  //Mache irgendwas
}
 
//Zur for Schleife mal ein Beispiel welches 10 mal läuft
for(int i=0; i<10 ;i++)
{
  //Mache irgendwas
}

6. Ausgabe
Will man etwas Ausgeben so benutzt man die Befehle “System.out.println()” bzw. “System.out.print()”. Diese unterscheiden sich darin,dass nach der Ausgabe mit println ein Zeilenumbruch ausgegeben wird (also eine neue Zeile begonnen wird).

 

Falls ihr noch mehr Erläuterungen braucht oder ich etwas vergessen habe, schreibt mir einfach eine Mail (die Adresse ist auf der Grundlagen der Informatik und Numerik Seite).

 

Post to Twitter

Javaanleitung ist in arbeit

Nur dass ihr bescheid wisst, die Anleitung ist in arbeit. Ich hab euch nicht vergessen ;) .

Edit vom 10.10.2011: Morgen abend kommt vorraussichtlich eine erste Fassung der Anleitung. Habe auch schon Mails bekommen, dass das unter Windows nicht so ganz klappt wie wir es im Propädeutikum gemacht haben. Das kommt dann mit rein ;)

Post to Twitter

Auf ins neue Semester

Nächste Woche beginnt das Propädeutikum, dieses Jahr etwas anders, da einige Gruppen erst in der 2. Propädeutikumswoche dazustoßen und diese dann gleich mit Java beginnen, anstatt C zu lernen. 2 Wochen später brauchen genau diese Gruppen das sowieso schon, da kann man das gleich nutzen.

Ansonsten bereite ich mich gerade noch auf eine Nachprüfung vor, die ich am Anfang des kommenden Monats schreiben werde und ein Miniprojekt steht auch noch bis Ende diesen Monats an. Alles in allem also ein arbeitsreicher Semesterstart.

Ich werde nächstes Semester übrigens sowohl in Modellierung und Programmierun I, als auch in Grundlagen der Informatik und Numerik als Helferlein zu finden sein.

Post to Twitter

Sommersemester 2011

Das Sommersemester neigt sich dem Ende zu und die Prüfungszeit beginnt. Das heisst zum Einen ersteinmal viel viel Lernstress und zum Anderen, dass es demnächst sehr viel Freizeit gibt, die gefüllt werden will.

Während des Semesters bin ich nur mäßig dazu gekommen meine 2D Engine weiter umzusetzen, da vorallem das Softwaretechnik Praktikum, bei dem meine Gruppe übrigens mit Bestnote und Lob bestanden hat, sehr viel Zeit geschluckt hat.

In den Semesterferien sieht das endlich wieder etwas anders aus und ich kann wieder Zeit fürs Bloggen und Programmieren eigener Projekte aufbringen.

Erstes Ziel ist es mir einen Überlick über meinen eigenen Code zu verschaffen und ihn vernünftig zu Dokumentieren. Danach geht es daran ein Message- oder Eventsystem zu schreiben, dass mir die Eingaben von Tastatur und Maus entgegennimmt und an die einzelnen (interessierten) Entities weiterleitet, die mit diesen dann etwas anfangen können.

Das zieht vielleicht auch eine Überarbeitung des Entitysystems mit sich, das zur Zeit eher gewachsen als durchdacht ist.

So das wars erstmal wieder von mir.

Links:

 

Post to Twitter

Propädeutikum 2011

Auch dieses Jahr werde ich, zusammen mit einigen Kollegen, wieder beim Informatikpropädeutikum der Uni Leipzig aushelfen und den wissbegierigen Lehrern und Erstis die Grundlagen der imperativen Programmierung beibringen.

Wer sich schonmal etwas einlesen will oder einfach nur schauen will, was wir im letzten Jahr so gemacht haben, klickt einfach auf der rechten Seite auf das Propädeutikumswiki.

Post to Twitter

Erste Fortschritte

Ich möchte vorerst nicht zu sehr ins technische Detail gehen, deswegen ein grober Überblick über meine Fortschritte.

Nachdem ich nun den Fensteraufbau und das Rendern einfacher viereckiger Polygone (unregelmäßige brauche ich für ein einfaches Spiel vorläufig nicht) in einem eigenen Engineprojekt gekapselt habe und mir ein einfaches Spieleprojekt aufbauend auf der SEngine getauften Engine angelegt habe, will ich nun Textrendering und Texturen einbinden. Das alles passiert natürlich Engineseitig und wird nicht teil des Spiels.

Um nicht die Loader für Text, Texturen (und Sound, auch wenn dieser erstmal keine Rolle spielen soll) alle selbst zu schreiben, habe ich mir die slick-util besorgt. Das ist eine Utility Library des Slick2D Projektes (eine Engine), welches auf LWJGL aufbaut, aber unabhängig von der restlichen Slick2D Engine läuft und Funktionen zum Laden von Text/Bildern/Sound bereitstellt.

Später werde ich die slick-util durch eine eigene lib ersetzen, so dass man diese beliebig austauschen kann, dabei geht es mir hauptsächlich um die Vermeidung von Abhängigkeiten zu Libraries von Dritten. Vorerst erspart mir das jedoch lästige Implementierungsarbeit die nicht so viel mit der eigentlichen Engine zutun hat.

Post to Twitter

In Planung:2D Engine mit LWGJL

Ich habe ja schon vor den Semesterferien immer mal ein wenig mit LWJGL rumgespielt und ein paar rudimentäre Tests gemacht. Nun will ich mich mal dran setzen und eine einfache 2D RTS Engine schreiben die ich dann auch für mein nächstes Projekt gebrauchen kann.

Erste Ziele sind also:

- Aufbau eines Fensters
- Rendern einfacher Polygone
- Bewegen von Polygonen
- Maussteuerung (anwählen und zielgerichtetes bewegen)
- Texturen laden

Wenn das alles klappt ist der nächste Schritt dann mit animationen zu arbeiten und erste kleine spieltests durchzuführen.

Gut gemerkt, Sound bleibt ersteinmal aussen vor.

Post to Twitter

Propädeutikum

Das Propädeutikumswiki ist wieder online, denn auch dieses Jahr findet im Sommer wieder das 2 wöchige C-Propädeutikum an der Uni Leipzig statt.

Post to Twitter

Ältere Beiträge «