Game Development Community

A True Beginner Question (RayCast)

by Louis Deane · in Torque Developer Network · 09/07/2009 (10:03 am) · 1 replies

function RifleImage::onFire(%this, %obj, %slot)
{
//Decrement Inventory
%obj.decInventory(%this.ammo,1);
//get the players eye vector
//%startVector = %obj.getEyeVector();
%startVector = %obj.getMuzzleVector(%slot);
//multiply the eye vector by the weapon range 4000 for now
%endvector = VectorScale(%startVector, 500);

//get the collision types
%mask = $Game::AllTypesMask;

%raycast = ContainerRayCast ( %startVector, %endvector , %mask, %this);

echo(%raycast);
if(%raycast)
{
%hitPoint = getWords($raycast,1,3);
%hitNormal = getWords($raycast,4,6);
}
}

A really daft question. Im a fairly experianced programmer but totally new to torque. I am trying to run a traceline from the players muzzle point for use in a rifle type weapon. The All Types Mask is a collection of the object types i want it to collide with.

$Game::AllTypesMask = $TypeMasks::StaticObjectType|$TypeMasks::EnvironmentObjectType|$TypeMasks::TerrainObjectType|$TypeMasks::InteriorObjectType|$TypeMasks::WaterObjectType|$TypeMasks::TriggerObjectType|$TypeMasks::MarkerObjectType|$TypeMasks::GameBaseObjectType|$TypeMasks::ShapeBaseObjectType|$TypeMasks::CameraObjectType|$TypeMasks::StaticShapeObjectType|$TypeMasks::PlayerObjectType|$TypeMasks::ItemObjectType|$TypeMasks::VehicleObjectType|$TypeMasks::VehicleBlockerObjectType|$TypeMasks::ProjectileObjectType|$TypeMasks::ExplosionObjectType|$TypeMasks::CorpseObjectType|$TypeMasks::DebrisObjectType|$TypeMasks::PhysicalZoneObjectType|$TypeMasks::StaticTSObjectType|$TypeMasks::StaticRenderedObjectType|$TypeMasks::DamagableItemObjectType;

This seems a fairly horrible way of doing this so if theres an alternative XD i'd love to know.
Also the raycast seems to always return 0 with the exception of where it collides with the player. then it returns valid coords. Can someone please help me? i've spent the entire morning googleing possible solutions :). many thanks

#1
09/13/2009 (3:27 pm)
If you trace through the weapons code in the TGE source code, what does it do?