Skip to Content
Killer Game Programming in Java
book

Killer Game Programming in Java

by Andrew Davison
May 2005
Intermediate to advanced
998 pages
26h
English
O'Reilly Media, Inc.
Content preview from Killer Game Programming in Java

Preparing the Laser Beam

The LaserBeam object is a red cylinder, hidden inside the gun cone when not in use, so there's no need for a Switch or visibility-controlling code. ShootingBehaviour rotates the cylinder (and gun cone) to point at the location picked by the user on the checkerboard. It lets FireBeam handle the shooting of the beam and subsequent explosion.

The laser beam is accompanied by a PointSound, which moves along with it. This means that the sound's volume increases (or diminishes) as the beam travels towards (or away from) the user's viewpoint.

The class diagram for LaserBeam is in Figure 23-5; all public methods are shown.

LaserBeam's public methods

Figure 23-5. LaserBeam's public methods

WrapShooter3D uses getBeamBG() to retrieve the beam's BranchGroup for addition to the scene. The scene graph branch built inside LaserBeam (by makeBeam()) is shown in Figure 23-6.

Scenegraph branch for LaserBeam

Figure 23-6. Scenegraph branch for LaserBeam

The cylinder is made unpickable, as only the floor should be pickable by the user:

    beam.setPickable(false);

The capability bits of beamTG are set to allow it to be rotated and translated.

ShootingBehaviour rotates the beam with makeRotation(), which is identical to the method in GunTurret, except that it applies the rotation to the beam's TransformGroup, beamTG.

 public void makeRotation(AxisAngle4d ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Learning Java Through Games

Learning Java Through Games

Lubomir Stanchev

Publisher Resources

ISBN: 0596007302Errata Page