# Alpha Objekt



## Dölken (13. Feb 2006)

Hallo Freunde der Java-Programmierung.
Ich frage mich schon seit langem, wie ich in Java3D die Geschwindigkeit einer Animation zur Laufzeit verändern kann. Wie setze ich die Capability dafür???? Oder geht das gar ganz anders?
Bitte um schnelle Hilfe

Liebe Grüße
euer Dölken


----------



## Gast (13. Feb 2006)

Was ist eine Animation in Java3D? Da ich eine entsprechende Klasse nicht kenne: wie realisierst du genau was?


----------



## DeepBlue (13. Feb 2006)

Schätzungsweise:

Alpha.setCapability(DECREASING_ENABLE)
Specifies that the decreasing component of the alpha is used

bzw

Alpha.setCapability(INCREASING_ENABLE)
Specifies that the increasing component of the alpha is used.

Allerdings nicht getestet, da ich mit der Interpolator Klasse noch nie gearbeitet habe ...


----------



## Dölken (14. Feb 2006)

ich komm da nicht mit! schaut euch das mal an, ich kapiers nicht!!!


```
public static Alpha getAlpha(Planet a)
{
    return(new Alpha(-1, a.geschw).setCapability(Alpha.DECREASING_ENABLE));
}
```

Java sagt:

incompatible types
found   : void
required: javax.media.j3d.Alpha
              return(new Alpha(-1, a.geschw).setCapability(Alpha.DECREASING_ENABLE));


grüße Dölken


----------



## kawrom (14. Feb 2006)

Vesuch es mal so:

```
public static Alpha getAlpha(Planet  a) 
{ 
    Alpha ret = new Alpha(-1, a.geschw);
    ret.setCapability(Alpha.DECREASING_ENABLE);
    return ret; 
}
```


----------



## Dölken (15. Feb 2006)

ehm ja. ist mir dann auch später aufgefallen. Das schlimme ist aber, dass ich, wenn ich den Parameter a.geschw veränder, sich die Animationsgeschwindigkeit dennoch nicht verändert.

Ich übergebe den Alpha-Wert ja einem Interpolator. Also dachte ich mir, ich müsse den Interpolator auch einfach noch mal während der Laufzeit aufrufen. Doch es tut sich einfach nichts


----------



## DeepBlue (15. Feb 2006)

Hast du schonmal einen Blick in das englische Java3D Tutorial von Sun geworfen ? Das ist recht gut und vollständig, allerdings nur für die Version 1.2 verfügbar. Meine jedoch, dass auch etwas über Interpolatoren drin stand.

http://java.sun.com/developer/onlineTraining/java3d/

Chapter 5 sollte da für dich von Interesse sein 

mfg DeeP


----------



## Guest (15. Feb 2006)

Danke, kenn ich 
Steht leider nix zur Veränderung der Geschwindigkeit zur Laufzeit drin :C


----------



## kawrom (15. Feb 2006)

Naja so wie du das oben probiert hast kann es meiner Meinung auch nicht funktionieren, denn int bzw long usw.(also Basistypen) werden, so viel ich weiss, nicht als Referenz sondern als Wert übergeben.
D.h. wenn du a.geschw änderst, ändert sich der Wert von Alpha nicht mit.

Du müsstest, glaube ich, ein neues Alpha-Objekt erzeugen mit einer neuen Laufzeit, bei dem alten Alpha-Objekt den derzeitigen Wert alpha.value auslesen und den neuen Alpha bei diesem Wert starten lassen. 
Nun solltest du so implementieren, dass dein Interpolator die Werte deines neuen Alpha-Objektes abfragt.  

So, stelle ich mir vor, müsste das funktionieren, bin aber kein Experte!


----------

