Neues Foto veröffentlicht. Aufgenommen bei einer Tour in



  • runamoK: Ist aber nen langes Wochenende :D
  • Christian: Ich setze mich mal am Wochenende an die Bearbeitung. ;)
  • kristof: Ich erwarte die versprochenen Bilder (Punkt)
  • Jens: Schaut super aus, hast du gut gemacht (:
  • kristof: sehr schöne aufnahme! demnächst werde ich mich auch mal an einem panorama versuchen.
  • Twitter Button from twitbuttons.com
    darktree.de - Fotografie, Linux und vieles mehr
    Jan Hellriegel - Malerei und Design
    NETZFUCHS - IT-Lifestyle Blog
    VOLLSTRECKER - Fotografie, Design und die Juristerei
    Witpraechtiger.de - Personal Portfolio



    25Oct 2009
    Kategorie: Anleitungen, JAVA, Programmierung       Keine Kommentare       Trackback                 Diese Seite drucken

    Beispiele zu den Klassen

    public void onScannedRobot(ScannedRobotEvent e) {
        fire(1);
    }

    In diese Klasse schreibst du nun, welche Interaktionen bei einem gefundenen Gegner ablaufen sollen.
    In diesem Beispiel von eurem ersten Quellcode schießt er lediglich eine Kugel der Stärke 1 in die Richtung von eurer Kanonenrohrmündung.

    Die Stärke der Kugel könnt ihr in Zahlenwerten anpassen, weshalb es sich lohnt, je nach Entfernung eures Gegners die Kugel stärker, beziehungsweise schwächer abzuschießen.
    Dies hat den Effekt, dass zum Beispiel bei einer 1 die Kugel schwach ist, dafür aber schneller an ihr Ziel gelangt. Ergo ist bei einer Kugel Stufe 3 die Geschwindigkeit sehr langsam, dafür aber der Energieverlust umso höher. Der Zahlenwert kann auch als Dezimalzahl angegeben werden und lässt somit einen größeren Spielraum, da die Klasse fire als double deklariert wurde.

    Hier ein sehr sehr simples Beispiel mit fixen Entfernungslängen zur Anpassung der Kugelgröße:

     double range             = e.getDistance();
     int closecombatrange     = 200;
     int allrounderrange      = 600;
     int artilleryrange       = 1000;
    
     /* Abfrage ob der Roboter ein Teammitglied ist
     danach je nach Entfernung die Kugelgröße bestimmen */
     if(!robot.isTeammate(e.getName())) {
           if(robot.getGunHeat() == 0) {
                 if (range <= closecombatrange)
                    robot.fire(3);
                 else if(range >= closecombatrange && range <= allrounderrange)
                    robot.fire(2);
                 else if(range >= allrounderrange && range <= artilleryrange)
                    robot.fire(1);
          }
    }

    onHitByBullet(HitByBulletEvent e) & onBulletHit(BulletHitEvent e)

    Im dritten Teil des Tutorials habe ich die ColorEngine beschrieben. Um den Energiestatus für einen Farbwechsel ermitteln zu können, lasse ich die Klasse bei OnHitbyBullet (Energie verloren)
    und bei onBulletHit (Energie gewonnen) aufrufen:

     public void onHitByBullet(HitByBulletEvent e) {
     //Änderung der Farbe, wenn der Roboter Energie verliert
     ColorEngine.change(getEnergy(),(TeamRobot)this);
     }
     public void onBulletHit(BulletHitEvent e) {
     //Änderung der Farbe, wenn der Roboter Energie gewonnen hat
     ColorEngine.change(getEnergy(),(TeamRobot)this);
     }

    onHitRobot(HitRobotEvent e)

    Ein weiterer wichtiger Punkt ist das Rammen des Roboters. Rammt ihr den Gegner verlieren beide Energie.
    Dies kann euch sehr nützlich werden, wenn zum Beispiel der eigene Roboter ein bisschen mehr Energie hat und den Gegner solange verfolgt und rammt bis dieser keine Energie besitzt.

    onHitWall(HitWallEvent e)

    Ihr solltet auf jeden Fall eine Routine einbauen, die eine Handhabung bei einer Kollision mit der Wand erlaubt, da es sonst vorkommen kann, dass der Roboter an dieser Stelle hängen bleibt und ihr die Runde verliert.

    onWin(WinEvent e) & onRobotDeath(RobotDeathEvent e)

    Diese beiden Klassen sind eher obligatorisch. Ihr könnt zum Beispiel einen Siegestanz vollführen, Farben ändern, Nachricht schreiben, …

    Im fünften Teil meines Tutorials möchte ich auf die Teamgeschichte, nützliche Informationen, Codeschnipsel und weiterführende Links eingehen.



    Schlagwörter: , , , , , ,


    Kommentare:

    :) :( ;) :D :P :daumen: :nein: :lol: ^^ teufel :traurig: more »



    Christian Neu © 2009 - 2010
    Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Blog Top Liste - by TopBlogs.de BlogPingR.de - Blog Ping-Dienst, Blogmonitor blogoscoopZurück zum Anfang