Hey Leute.

Ich versuche im Moment mein erstes Spiel in Java zu Programmieren anhand dem was wir in der Schule lernen. Es klappt auch schon ganz gut, aber ich habe ein Problem beim Programmieren des Gegners und hoffe das mir hier vielleicht jemand helfen kann.

Ganz kurz: Im allgemeinen geht es in dem Spiel darum, dass in einem Forschungslabor Roboter außer Kontrolle geraten sind und ein Jung jetzt die Aufgabe bekommt die Roboter entweder zu eleminieren oder die Fernbedienung zu finden, die alle Roboter augenblicklich abschaltet.

Aber irgendwie kriege ich die Bewegungen der Roboter nicht richtig hin. Sie sollen sich Random im Raum bewegen, sich wenn sie auf ein Objekt oder den Rand der Map stoßen umdrehen und weiter, aber sich auch so ab und zu drehen.
Mit einem einfachen Rotationswechsel ist es aber nicht getan, denn ich habe denen eine bestimmt Animation gegeben je nachdem in welche Richtung sie sich bewegen. Das Problem liegt jetzt darin, dass die Roboter sich schon so bewegen und das tun was sie sollen, aber halt nicht ganz. Sie drehen sich ständig. Mit anderen Worten: Sie krüppeln durch die Spielwelt. Wie kann ich machen, dass sie mehrere Schritte gehen, bevor sie sich random drehen? Ich vermute dass es an dem getRandomNumber liegt, weil da ja die Chance 25% ist, dass sie sich in jene Richtung bewegen und sich auch drehen. Aber ehrlich gesagt habe ich keine Ahnung wie ich es besser machen könnte.
Das drehen am Rand habe ich jetzt mal ganz rausgenommen, weil das irgendwie nicht so funktionierte wie ich das wollte.
Die Methode lookForDanny() habe ich definiert, aber das klappt einwandfrei, daswegen poste ich die mal jetzt nicht.

Der Code für die Bewegung sieht im Moment so aus (und ja ich weis er ist noch ziemlich unprofessionell, bin halt noch nicht so weit):

Code:
public void act() 

    { 
        move();
        lookForDanny();
    }


public void move()
    {
        if (Greenfoot.getRandomNumber(100) < 25)
        {
            setImage( Roboter1Links.getCurrentImage() );
            wall=(Furniture) getOneObjectAtOffset(-1,0, Furniture.class);
            if(wall==null)
            {                
                for 
                x = x-2; 
                setLocation(x, y);
            }
        }
        if (Greenfoot.getRandomNumber(100) < 50 && (Greenfoot.getRandomNumber(100) >25))
        {
            setImage( Roboter1Rechts.getCurrentImage() );
            wall=(Furniture) getOneObjectAtOffset(1,0, Furniture.class);
            if(wall==null)
            {
                x = x+1;
                setLocation(x, y);  
            }
        }
        if ( Greenfoot.getRandomNumber(100) < 75 && (Greenfoot.getRandomNumber(100) >50))
        {
            setImage( Roboter1Oben.getCurrentImage() );
            wall=(Furniture) getOneObjectAtOffset(0,-1, Furniture.class);
            if(wall==null)
            {
                y = y-2;
                setLocation(x, y);

     
            }
        }     
        if (Greenfoot.getRandomNumber(100) < 100 && (Greenfoot.getRandomNumber(100) >75))
        {
            setImage( Roboter1Unten.getCurrentImage() );
            wall=(Furniture) getOneObjectAtOffset(0,1, Furniture.class);
            if(wall==null)
            {
                y = y+2;
                setLocation(x, y);
   
       
            }
        }
    }
Es wäre echt toll wenn jemand von euch mehr Ahnung von Java hat als ich und mir helfen könnte und mir Tipss geben könnte wie ich das da alles eleganter hinkriegen könnte.

LG Lisa