# Objekt per Tastendruck anzeigen/verschwinden lassen?



## Verjigorm (27. Dez 2006)

Hallo,

ich habe da ein kleines Problem :

Und zwar möchte ich wenn mein Programm läuft per Tastendruck Objekte "anzeigen bzw verschwinden" lassen.
Da dies mein erstes Projekt in Java3D ist, habe ich natürlich nicht so den Plan 

Die Tastatureingabe habe ich jetzt erstmal mit nem keylistener (java.awt.*) realisiert und das reagiert schonmal auf die Tastatur (ka ob man das so in j3d macht, funzt auf jedenfall mal  )

nun würde ich gerne haben, dass ein Objekt in der bereits laufenden Szene, z.b. ein Würfel, auf Tastendruck verschwindet  oder wieder erscheint.
Allerdings renn ich da grade vor ne Wand, ich suche seit stunden nach sowas

kann mir wer nen Tipp geben, wie sowas funktioniert?



mfg


----------



## Illuvatar (27. Dez 2006)

Verjigorm hat gesagt.:
			
		

> Die Tastatureingabe habe ich jetzt erstmal mit nem keylistener (java.awt.*) realisiert und das reagiert schonmal auf die Tastatur (ka ob man das so in j3d macht, funzt auf jedenfall mal  )



Nein, macht man nicht  Das kann zu schweren Performanceproblemen oder cielleicht auch recht seltsamen Bugs führen.



> nun würde ich gerne haben, dass ein Objekt in der bereits laufenden Szene, z.b. ein Würfel, auf Tastendruck verschwindet  oder wieder erscheint.
> Allerdings renn ich da grade vor ne Wand, ich suche seit stunden nach sowas



Ich hoffe ich erschlage dich jetzt nicht, aber mit Hilfe von Tutorials müsstest du eigentlich verstehen, was ich meine 
Du musst eine Klasse schreiben, die von Behavior erbt. Eine Instanz davon hängst du in deinen Scenegraph und sagst, dass sie ONAWTEvent(KeyEvent.KEY_PRESSED) aufwachen soll. In der processStimulus kriegst du jetzt das AWTEvent, kannst das in ein KeyEvent casten und kriegst die Taste.

Soweit dazu, das eigentliche anzeigen/verschwinden lassen ist relativ einfach  Du benötigst 2 BranchGroups in deinem Scenegraph, an der "unteren" hängt der Würfel. Die "obere" muss die Capabilities ALLOW_CHILDREN_WRITE und ALLOW_CHILDREN_EXTEND gesetzt haben, die untere ALLOW_DETACH. Zum verschwinden tufst du untereBranchGroup.detach(); auf, zum anzeigen obereBranchGroup.addChild(untereBranchGroup);


----------



## Verjigorm (27. Dez 2006)

so grob schonmal alles gehört

apropos Tutorials ... davon gibts imho verdammt wenige und die sind meist auch noch teilweise recht schlecht


----------



## Illuvatar (27. Dez 2006)

Also ich hab mein Wissen aus dem Tutorial von Sun und aus dem Selbst-Rumexperimentieren 
Ich hab mal angefangen, ein Tutorial zu schreiben. Das ist nur so halb fertig bisher... :/ aber soweit wie das da oben geht es schon: http://www.java-forum.org/de/viewtopic.php?t=4821
Ansonsten: Das beste und umfangreichste Tutorial, das ich kenne, das auch noch auf Deutsch ist, da muss ich leider auf unsere "Konkurrenz" verweisen *g*: http://www.javacore.de/tutorials.php


----------



## Verjigorm (28. Dez 2006)

hm ok hat ja doch alles soweit geklappt 
dauerte zwar etwas länger, aber is ja noch kein meister vom Himmel gefallen 

Ich glaub ich werd das Forum hier öfters löchern wenn ich weitere Fragen habe 

mfg


----------

