Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
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
CryENGINE Game Programming with C++, C#, and Lua

You're reading from   CryENGINE Game Programming with C++, C#, and Lua For developers wanting to create 3D games, CryENGINE offers the intuitive route to success and this book is the complete guide to using it. Learn to use sophisticated tools and build super-real, super-addictive games.

Arrow left icon
Product type Paperback
Published in Nov 2013
Publisher Packt
ISBN-13 9781849695909
Length 276 pages
Edition 1st Edition
Languages
Arrow right icon
Toc

Table of Contents (14) Chapters Close

Preface 1. Introduction and Setup 2. Visual Scripting with Flowgraph FREE CHAPTER 3. Creating and Utilizing Custom Entities 4. Game Rules 5. Creating Custom Actors 6. Artificial Intelligence 7. The User Interface 8. Multiplayer and Networking 9. Physics Programming 10. Rendering Programming 11. Effects and Sound 12. Debugging and Profiling Index

Ray world intersections


Using the IPhysicalWorld::RayWorldIntersection function, we can cast a ray from one point of our world to another to detect distance to specific objects, surface types, normal of ground, and more.

RayWorldIntersection is pretty easy to use, and we can prove it! To start off, see the following example of a ray cast:

  ray_hit hit;

  Vec3 origin = pEntity->GetWorldPos();
  Vec3 dir = Vec3(0, 0, -1);

  int numHits = gEnv->pPhysicalWorld->RayWorldIntersection(origin, dir, ent_static | ent_terrain, rwi_stop_at_pierceable | rwi_colltype_any, &hit, 1);
  if(numHits > 0)
  {
    // Hit something!
  }

The ray_hit struct

A reference to our ray_hit hit variable is passed to RayWorldIntersection, and is where we'll be able to retrieve all of the information about the ray hit.

Commonly used member variables

  • float dist: This is the distance from the origin (in our case the position of our entity) to the place where the ray hit.

  • IPhysicalEntity *pCollider: This is the...

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
Banner background image