GLOOP: Animationen

Bitte aktiviere JavaScript!
Hey,

Wir machen gerade ein Gruppenprojekt, und ich komme hier an einer Stelle seit bereits sechs Stunden nicht weiter.

Hier erstmal der Code:

Btw: Armination() war ein fehlgeschlagener Versuch. Ich habe tausend Sachen ausprobiert, und der war ein besonders schlimmer Clusterfuck.

Java:
import GLOOP.*;
import java.lang.Thread;

public class Mensch
{
    public GLSchwenkkamera glk;
    public GLLicht gll;
    public GLKugel kopf;
    public GLQuader torso;
    public GLQuader arm;
    public GLQuader arm1;
    public GLQuader bein;
    public GLQuader bein1;
   
    public int latency;
    public int armTimerForward;
    public int armTimerBackward;
    public int thirdTimer;
   
    public boolean forwardMotion;
    public boolean backwardMotion;
    public boolean thirdTimerBool;
   
    public double torsoPosX;
    public double torsoPosY;
    public double torsoPosZ;
    public double armPosX;
    public double armPosY;
    public double armPosZ;
    public double arm1PosX;
    public double arm1PosY;
    public double arm1PosZ;
    public double beinPosX;
    public double beinPosY;
    public double beinPosZ;
    public double bein1PosX;
    public double bein1PosY;
    public double bein1PosZ;
    public double kopfPosX;
    public double kopfPosY;
    public double kopfPosZ;
    public double glkPosX;
    public double glkPosY;
    public double glkPosZ;
   
    public double armRotX;
    public double armRotY;
    public double armRotZ;

    Mensch() {
        glk = new GLSchwenkkamera(0,0);
        gll = new GLLicht();
        kopf = new GLKugel(0,14,0,20);
        torso = new GLQuader(0,-35,0,50,70,20);
        arm = new GLQuader(-30.3,-27,-1,10,10,50);
        arm.setzeDrehung(90,0,0);
        arm1 = new GLQuader(30.3,-27,-1,10,10,50);
        arm1.setzeDrehung(90,0,0);
        bein = new GLQuader(-13,-70,0,20,20,50);
        bein.setzeDrehung(90,0,0);
        bein1 = new GLQuader(13,-70,0,20,20,50);
        bein1.setzeDrehung(90,0,0);
        latency = 25;
        armTimerForward = 1;
        armTimerBackward = -14;
        thirdTimer = 7;
        thirdTimerBool = false;
        walkingforward(50);
    }
   
    public void armination() {
        forwardMotion = false;
        backwardMotion = false;
        System.out.printf("armTimerForward: %d\n", armTimerForward);
        System.out.printf("armTimerBackward: %d\n", armTimerBackward);
        if (thirdTimerBool == true && thirdTimer != 0) {
            arm.drehe(1,0,0);
            thirdTimer--;
        } else {
            backwardMotion = false;
        }
        if (armTimerForward < 7 && backwardMotion == false) {
            forwardMotion = true;
            thirdTimerBool = false;
        } else if (armTimerForward > -6) {
            backwardMotion = true;
        }
        if (forwardMotion == true) {
            arm.drehe(1,0,0);
            armTimerForward++;
        } else if (backwardMotion == true) {
            if (armTimerBackward != 0) {
                arm.drehe(-1,0,0);
                armTimerBackward++;
            } else {
                thirdTimerBool = true;
                backwardMotion = true;
                System.out.println("Third Timer Activated");
                armTimerForward = 0;
            }
        }
        System.out.println("New Step");
    }
   
    public void a_test() {
        System.out.println("Funktionsaufrufe");
        animaForward();
    }
   
    public int animaForward() {
        System.out.println("Vorwärts");
        int timer1 = 0;
        if (timer1 < 7) {
            timer1++;
            arm.drehe(-1,0,0);
        } else {
            return timer1;
        }
    }
   
     
    public void walkingforward(int steps) {    
        int i = 0;
        while(i <= steps) {  
            System.out.println("Movement");
            torso.verschiebe(torsoPosX, torsoPosY, torsoPosZ);
            bein.verschiebe(beinPosX, beinPosY, beinPosZ);
            bein1.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm1.verschiebe(beinPosX, beinPosY, beinPosZ);
            kopf.verschiebe(beinPosX, beinPosY, beinPosZ);
            glk.verschiebe(glkPosX, glkPosY, glkPosZ);
            torsoPosZ++;
            beinPosZ++;
            bein1PosZ++;
            armPosZ++;
            arm1PosZ++;
            kopfPosZ++;
            glkPosZ++;
            //armination();
            a_test();
            Sys.warte(latency);
            i++;
        }
    }

   
   
    public void walkingbackward(int steps) {    
        int i = 0;
        while(i <= steps) {
            torso.verschiebe(torsoPosX, torsoPosY, torsoPosZ);
            bein.verschiebe(beinPosX, beinPosY, beinPosZ);
            bein1.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm1.verschiebe(beinPosX, beinPosY, beinPosZ);
            kopf.verschiebe(beinPosX, beinPosY, beinPosZ);
            glk.verschiebe(glkPosX, glkPosY, glkPosZ);
            torsoPosZ--;
            beinPosZ--;
            bein1PosZ--;
            armPosZ--;
            arm1PosZ--;
            kopfPosZ--;
            glkPosZ++;
            Sys.warte(latency);
            i++;
        }
    }
   
    public void walkingright(int steps) {
        int i = 0;
        while(i <= steps) {
            torso.verschiebe(torsoPosX, torsoPosY, torsoPosZ);
            bein.verschiebe(beinPosX, beinPosY, beinPosZ);
            bein1.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm1.verschiebe(beinPosX, beinPosY, beinPosZ);
            kopf.verschiebe(beinPosX, beinPosY, beinPosZ);
            glk.verschiebe(glkPosX, glkPosY, glkPosZ);
            torsoPosX++;
            beinPosX++;
            bein1PosX++;
            armPosX++;
            arm1PosX++;
            kopfPosX++;
            glkPosZ++;
            Sys.warte(latency);
            i++;
        }
    }
   
    public void walkingleft(int steps) {  
        int i = 0;
        while(i <= steps) {
            torso.verschiebe(torsoPosX, torsoPosY, torsoPosZ);
            bein.verschiebe(beinPosX, beinPosY, beinPosZ);
            bein1.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm.verschiebe(beinPosX, beinPosY, beinPosZ);
            arm1.verschiebe(beinPosX, beinPosY, beinPosZ);
            kopf.verschiebe(beinPosX, beinPosY, beinPosZ);
            glk.verschiebe(glkPosX, glkPosY, glkPosZ);
            torsoPosX--;
            beinPosX--;
            bein1PosX--;
            armPosX--;
            arm1PosX--;
            kopfPosX--;
            glkPosZ++;
            Sys.warte(latency);
            i++;
        }
    }
}
Ich möchte, dass wenn sich der Mensch eine Koordinatenstelle nach vorne bewegt, dass sich der Arm dementsprechend bewegt.
Ich habe bereits alles versucht, was mir mit meiner begrenzten Erfahrung einfällt. Ich bin mit meinem Latein am Ende.
Kann mir hier jemand helfen?

Mfg
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben