Book Image

Panda3D 1.6 Game Engine Beginner's Guide

Book Image

Panda3D 1.6 Game Engine Beginner's Guide

Overview of this book

Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. It includes graphics, audio, I/O, collision detection, and other abilities relevant to the creation of 3D games. Also, Panda3D is Open Source and free for any purpose, including commercial ventures. This book will enable you to create finished, marketable computer games using Panda3D and other entirely open-source tools and then sell those games without paying a cent for licensing. Panda3D 1.6 Game Engine Beginner's Guide follows a logical progression from a zero start through the game development process all the way to a finished, packaged installer. Packed with examples and detailed tutorials in every section, it teaches the reader through first-hand experience. These tutorials are followed by explanations that describe what happened in the tutorial and why. You will start by setting up a workspace, and then move on to the basics of starting up Panda3D. From there, you will begin adding objects like a level and a character to the world inside Panda3D. Then the book will teach you to put the game's player in control by adding change over time and response to user input. Then you will learn how to make it possible for objects in the world to interact with each other by using collision detection and beautify your game with Panda3D's built-in filters, shaders, and texturing. Finally, you will add an interface, audio, and package it all up for the customer.
Table of Contents (22 chapters)
Panda3D 1.6 Game Engine
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – setting a range of bits with BitMask.range


Let's fix our BitMasks to work better for our purpose.

  1. In the setupCollisions method of our Cycle class, change the line where we set the Into collide mask for self.shieldCN to this:

        self.shieldCN.setIntoCollideMask(BitMask32.range(2,3))
  2. Save the file as CycleClass_03.py.

  3. Modify WorldClass_02.py to import CycleClass_03.py instead of CycleClass_02.py. Then, save it as WorldClass_03.py and run it from the command prompt. Attempt to collide the cycles together and we'll see that the collision is detected again, like in the following image:

What just happened?

Now our cycles can collide with each other again because they share bits on their BitMasks.

Pop quiz – understanding BitMasks

BitMasks are often misunderstood because they are both an esoteric concept and also largely invisible when being used. We never really see the BitMasks themselves, just the result of their use. For that reason, we should make certain of our understanding before...