Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Learning LibGDX Game Development- Second Edition

You're reading from   Learning LibGDX Game Development- Second Edition Wield the power of the LibGDX framework to create a cross-platform game

Arrow left icon
Product type Paperback
Published in Jan 2015
Publisher Packt
ISBN-13 9781783554775
Length 478 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Suryakumar B Nair Suryakumar B Nair
Author Profile Icon Suryakumar B Nair
Suryakumar B Nair
Andreas Oehlke Andreas Oehlke
Author Profile Icon Andreas Oehlke
Andreas Oehlke
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Introduction to LibGDX and Project Setup FREE CHAPTER 2. Cross-platform Development – Build Once, Deploy Anywhere 3. Configuring the Game 4. Gathering Resources 5. Making a Scene 6. Adding the Actors 7. Menus and Options 8. Special Effects 9. Screen Transitions 10. Managing the Music and Sound Effects 11. Advanced Programming Techniques 12. Animations 13. Basic 3D Programming 14. Bullet Physics Index

Ray picking

It would be great if we could interact with the game objects. In a 2D scene, it is easy as we can map the 2D coordinates of the game object with the input coordinates. However, in a 3D game, it is different as the game object is positioned in 3D world coordinates and the input is available as 2D screen coordinates. A familiar scenario is a first person shooter game, wherein on shooting the bullet it is traced through the scene until a collision is detected. Ray picking is the process of shooting a line or ray from the camera through the 2D view port into the 3D game world until it hits an object, as shown here:

Ray picking

The following code will explain the process of ray picking in LibGDX. We will extend and update CameraInputController in the create() function as follows:

@Override
public void create() {
...
final BoundingBox box= model.calculateBoundingBox(new BoundingBox());
camController = new CameraInputController(cam) {
private final Vector3 position = new Vector3();

@Override
public...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime