Java3d heeft vaag probleem

Pagina: 1
Acties:

  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Ik heb een probleem met java3d.

Ik heb een BranchGroup met daaronder nog meer BranchGroupen.

Ik ben kleiduifschieten aan het maken en wil als je op de kleiduif klikt deze verwijderen.
Dat lukt op deze manier:

code:
1
duifcontainer.removeAllChildren();


Nu is de duif weg en wil ik graag een nieuwe op deze manier:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
   TransformGroup target = new TransformGroup();
         target.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
         Duif duif = new Duif();
         duif.setCapability(duif.ALLOW_APPEARANCE_READ);
             duif.setCapability(duif.ALLOW_APPEARANCE_WRITE);
             target.addChild(duif);
             Alpha alpha = new Alpha(-1, 3000);
             Transform3D axisOfRotPos = new Transform3D();


             Quat4f[] draaing = new Quat4f[11];
             float[] knots = {0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f};
             Point3f[] posities = new Point3f[11];
        
             draaing[0] = new Quat4f(0.0f, 0.0f, 0.0f, 0.0f);
             draaing[1] = draaing[0];
             draaing[2] = draaing[0];
             draaing[3] = draaing[0];
             draaing[4] = draaing[0];
             draaing[5] = draaing[0];
             draaing[6] = draaing[0];
             draaing[7] = draaing[0];
             draaing[8] = draaing[0];
             draaing[9] = draaing[0];
             draaing[10] = draaing[0];
        
             posities[0] = new Point3f(- 0.4f, -0.4f, 1f);
             posities[1] = new Point3f(  0f, 0.5f, - 2.0f);
             posities[2] = new Point3f(0.4f, 0.9f, - 4.0f);
             posities[3] = new Point3f(0.8f, 1.3f, - 6.0f);
             posities[4] = new Point3f(1.2f, 1.5f, - 8.0f);
             posities[5] = new Point3f(1.6f, 1.3f, -10.0f);
             posities[6] = new Point3f(2.0f, 0.9f, -12.0f);
             posities[7] = new Point3f(2.4f, 0.5f, -14.0f);
             posities[8] = new Point3f(2.8f, 0.4f, -16.0f);
             posities[9] = new Point3f(3.2f, 0.0f, -18.0f);
             posities[10]= new Point3f(3.6f, -1.0f, -20.0f);
        
        
             RotPosPathInterpolator rotPosPath = new RotPosPathInterpolator(alpha, target, axisOfRotPos, knots, draaing, posities);
                
             rotPosPath.setSchedulingBounds(new BoundingSphere());
            
                 BranchGroup t_duif = new BranchGroup();
             t_duif.setCapability(BranchGroup.ALLOW_DETACH);  
         t_duif.addChild(rotPosPath);
         t_duif.addChild(target );
         duifcontainer.addChild(t_duif);


Beetje omslagtig maar er is dan een nieuwe duif.
Het rotige is alleen dat deze kleiduif begint met vliegen waar de vorige gestopt is. :(
Dat is dus niet erg realistich.

Weet iemand hoe ik de BranchGroup echt kan vernietigen zodat de nieuwe duif weer bij 0 begint.

Alvast bedankt.

ps mijn programma moest vanmiddag al af zijn :'(

[ Voor 2% gewijzigd door .oisyn op 13-05-2003 17:16 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Tip: gebruik [norml]
Java:
1
...
[/] (ik heb het even voor je gedaan)

Verder kunnen we er niet veel mee op deze manier. Geef eens wat meer info. Waar geef je de positie op? In de zojuist aangemaakte TransformGroup? Of de duifcontainer die nog bestaat?

[ Voor 7% gewijzigd door .oisyn op 13-05-2003 17:18 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
De duifcontainer is een lege branchgroup. de posietie word gegenereerd door de RotPosPathInterpolator. Die berekend met behulp van het posities[ array welke baan de kleiduif aflegd.

Alles word verwijderd en op nieuw gemaakt. maar het lijkt net alsof java de oude objecten hergebruikt.

Maar dat is ook niet zo. want als ik het oude object niet weghaal dan komt het nieuwe object op de zelfde plaats als het oude object.

Beetje ingewikkeld daarom snap ik het zelf ook niet

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Heeft dat niet iets te maken met je Alpha? Je creeert namelijk steeds dezelfde Alpha, maar voor de starttijd wordt de systemstart aangehouden:
setStartTime
public void setStartTime(long startTime)Sets this alpha's startTime to that specified in the argument; startTime sets the base (or zero) for all relative time computations; the default value for startTime is the system start time.

Parameters:
startTime - the new startTime value
Doe eens na de aanmaak van je Alpha:
Java:
1
alpha.setStartTime (System.currentTimeMillis ());

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Bedankt man.

Werkt perfect

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
mr_taipan schreef op 13 May 2003 @ 18:01:
Bedankt man.

Werkt perfect
Snap je ook wat je daarmee doet, trouwens? :)

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 29-06 12:23

koli-man

Bartender!!!!

Soultaker schreef op 13 May 2003 @ 20:02:
[...]

Snap je ook wat je daarmee doet, trouwens? :)
Kun jij dat uitleggen dan? ;) Dan wil ik dat ook wel weten

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Logisch, Alpha is een interpolatie-object wat een waarde tussen 0 en 1 geeft aan de hand van een bepaalde tijd. De waarde bepaald ie door de huidige (of opgegeven) tijd van z'n begintijd af te trekken. Aangezien de default begintijd van de Alpha de starttijd van het systeem is, zal elke Alpha dezelfde waarden teruggeven op hetzelfde moment. Tenzij je de starttijd van de Alpha verandert

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1