Java Reference
In-Depth Information
Figure 18. Second code segment for handling collisions
25. public void CollisionEvent() {
26.
System.out.println("collision"+ " " + direction);
27.
if (direction == 1) { System.out.println("Moving back");
28.
viewposi.x = viewposi.x+3.0f*SPAN*(float)Math.sin(turningAngle);
29.
viewposi.z = viewposi.z+3.0f*SPAN*(float)Math.cos(turningAngle);
30.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
31.
if (direction == 2 ) { System.out.println("Moving forward");
32.
viewposi.x = viewposi.x-3.0f*SPAN*(float)Math.sin(turningAngle);
33.
viewposi.z = viewposi.z-3.0f*SPAN*(float)Math.cos(turningAngle);
34.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
35.
if (direction == 3) { System.out.println("Moving right");
36.
viewposi.x = viewposi.x+3.0f*SPAN*(float)Math.sin(turningAngle+Math.PI/2.0);
37.
viewposi.z = viewposi.z+3.0f*SPAN*(float)Math.cos(turningAngle+Math.PI/2.0);
38.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
39.
if (direction == 4) { System.out.println("Moving left");
40.
viewposi.x = viewposi.x-3.0f*SPAN*(float)Math.sin(turningAngle+Math.PI/2.0);
41.
viewposi.z = viewposi.z-3.0f*SPAN*(float)Math.cos(turningAngle+Math.PI/2.0);
42.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
43.
if (direction == 5) { System.out.println("Moving down"); viewposi.y = viewposi.y-0.02f-SPAN;
44.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
45.
if (direction == 6) { System.out.println("Moving up"); viewposi.y = viewposi.y+0.02f+SPAN;
46.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
47.
if (direction == 7) { System.out.println("Moving left");
48.
viewposi.x = viewposi.x-3.0f*SPAN*(float)Math.sin(turningAngle+Math.PI/2.0);
49.
viewposi.z = viewposi.z-3.0f*SPAN*(float)Math.cos(turningAngle+Math.PI/2.0);
50.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); }
51.
if (direction == 8) { System.out.println("Moving right");
52.
viewposi.x = viewposi.x+3.0f*SPAN*(float)Math.sin(turningAngle+Math.PI/2.0);
53.
viewposi.z = viewposi.z+3.0f*SPAN*(float)Math.cos(turningAngle+Math.PI/2.0);
54.
setPosition3D(collisiontran, viewposi); setPosition3D(collisionbodyTrans, viewposi); } }
55.
56. public void processStimulus(Enumeration criteria) {
57.
WakeupCriterion wakeup; AWTEvent[] event;
58.
while(criteria.hasMoreElements()) {
59.
wakeup = (WakeupCriterion) criteria.nextElement();
60.
if(wakeup instanceof WakeupOnCollisionEntry) { System.out.println("Collision Entry");
61.
CollisionEvent(); }
62.
if(wakeup instanceof WakeupOnCollisionExit) System.out.println("Collision Exit");
63.
if(wakeup instanceof WakeupOnCollisionMovement) System.out.println("Collision Movement"); }
64.
this.wakeupOn(allEvents); }
65.
66. }
summary
This chapter has discussed how navigation in the 3D virtual world can be handled through
the use of the keyboard, mouse and external device. The use of Java 3D utility classes as
Search WWH ::




Custom Search