e - NOHD
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Proggen bis was draus wird
 
StartseiteNeueste BilderSuchenAnmeldenLogin

 

 Vorläufiger Bewegungsalgorithmus

Nach unten 
AutorNachricht
mercury
Admin
mercury


Anzahl der Beiträge : 343
Punkte : 473
Anmeldedatum : 02.12.09
Alter : 39

Vorläufiger Bewegungsalgorithmus Empty
BeitragThema: Vorläufiger Bewegungsalgorithmus   Vorläufiger Bewegungsalgorithmus EmptyFr Jun 01, 2012 8:42 am

Ok, ich hab mich heuten mal hingesetzt und das alles ausgetüftelt, hier ist die neue getSprite-Methode

Code:

protected BufferedImage getSprite(int frame, int yend, int figposy, int xend, int figposx, boolean shoot){
      if(shoot){
         if(Math.abs(Math.abs(yend)-Math.abs(figposy+90)) > Math.abs(Math.abs(xend)-Math.abs(figposx+60))){
            if(yend > figposy+90){
               return heroShootFront[frame/10];
            }else{
               return heroShootBack[frame/10];
            }   
         }else if(Math.abs(Math.abs(yend)-Math.abs(figposy+90)) < Math.abs(Math.abs(xend)-Math.abs(figposx+60))){
            if(xend < figposx+60){
               return heroShootLeft[frame/10];
            }else{
               return heroShootRight[frame/10];
            }      
         }
      }else{
         
         if(Math.abs(Math.abs(yend)-Math.abs(figposy+90)) > Math.abs(Math.abs(xend)-Math.abs(figposx+60))){
            if(yend > figposy+90){
               return heroFront[frame/10];
            }else{
               return heroBack[frame/10];
            }   
         }else if(Math.abs(Math.abs(yend)-Math.abs(figposy+90)) < Math.abs(Math.abs(xend)-Math.abs(figposx+60))){
            if(xend < figposx+60){
               return heroLeft[frame/10];
            }else{
               return heroRight[frame/10];
            }   
            
         }
      }
      return heroFront[0];
   }


Als boolean shoot wird später das Ergebnis der Kollisionsabfrage übergeben, frust es derzeit erstmal noch mit "false" auf.

Was ich grundsätzlich gemacht habe ist einen künstlichen Nullpunkt zu schaffen und diesen dann in absoluten Zahlen mit den Klick-Koordinaten zu vergleichen. Ähnlich könnte der Algorithmus später auch aussehen, nur dass wir dann zudem noch sicher gehen müssen, dass wir auf der richtigen Zelle stehen. Es wird also keine Punktgenaue eingabe mehr sein, sondern eine 10-Pixel genau.
Nach oben Nach unten
http://enohd.wordpress.com/
 
Vorläufiger Bewegungsalgorithmus
Nach oben 
Seite 1 von 1

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
e - NOHD :: Programming :: Code-
Gehe zu: