[Newton] Charakter Kollision

Posted By: Krato

[Newton] Charakter Kollision - 04/04/06 17:33

In meiner Spieler Action rufe ich die Funktion Player_physic auf.

Die Funktion Player_physic schaut so aus:
function Player_physic
{
var body;

dll_handle=newtonHandle;

my._mass=200;

body = enable_physics();
}

Nur jetzt hab ich das Problem das mein Charakter durch die andere Physic Entitys mit der Action NewtonWoodEntity hindurch laufe kann solange sie nicht still liegen.
Wie schafft man es das man dann nicht hindurch laufen kann und sie auch wegschieben kann?
Posted By: snake67

Re: [Newton] Charakter Kollision - 04/04/06 17:54

Wie bewegst Du denn den Player? Per Physik oder mit c_move?
Posted By: Krato

Re: [Newton] Charakter Kollision - 04/04/06 17:56

Ich nutze zurzeit noch den Template Skript Player_walk.
Posted By: Krato

Re: [Newton] Charakter Kollision - 04/05/06 18:11

Hab das Problem jetzt selbst schon gelöst.
Posted By: Christian__A

Re: [Newton] Charakter Kollision - 04/14/06 11:41

Wie, wenn ich fragen darf?
Posted By: Krato

Re: [Newton] Charakter Kollision - 04/14/06 21:04

Erstmal habe ich mir eine eigene Action Fass geschrieben
in der ich enable_impact aktiviere und my.event auf getroffen setze

// uses mass, linear_drag, angular_drag_x, angular_drag_y, angular_drag_z, health, shape_factor, collision_groupId, collision_sph_box, start_active, compound_collision, destructible, spawn_children;
action physic_fass
{
// collision type 0 = non-ball
var collisionType = 0;

// create a newton entity
var body;
body = NewtonAddMapEntity (my, collisionType);

NewtonSetBodyMass (body, my.mass);
NewtonSetBodyLinearDamp (body, my.linear_drag);
NewtonSetBodyAngularDamp (body, my.angular_drag_x, my.angular_drag_y, my.angular_drag_z);
NewtonSetBodyForceAndTorque (body, ApplyGravityForceEvent);
NewtonSetBodyMaterial (body, wood_material);
NewtonSetBodyActiveState (body, my.start_active);

// make me sensible for impact
my.enable_impact = on; // if player touches object
my.event = getroffen;
}

Die Funktion getroffen sieht so aus:

function getroffen
{
//set impact from missle
NewtonImpulseRecord[0] = your.x;
NewtonImpulseRecord[1] = your.y;
NewtonImpulseRecord[2] = your.z;

//Copy origin missle (use to determone the direction of the impulse)
NewtonImpulseRecord[3] = player.x * cos(camera.pan) * cos(camera.tilt);
NewtonImpulseRecord[4] = player.y * cos(camera.pan) * cos(camera.tilt);
NewtonImpulseRecord[5] = player.z - 190;

//Copy the missle mass
NewtonImpulseRecord[6] = 200;

//Copy the missle speed
NewtonImpulseRecord[7] = 100;

NewtonBodyAddImpulse( NewtonGetBody(me), NewtonImpulseRecord);
}

Es gibt aber noch 2 Fehler darin wo ich noch dabei bin sie zu lösen
Das erste ist das wenn man Rückwärts läuft in die Fässer hinneinlaufen kann was mich aber bei meinem neuen Spieler Script nicht stört da man nicht Rückwärtslaufen kann:).
Das zweite Problem ist das wenn das Fass verschoben wird und dabei ein anderes festes Objekt trifft kann man auch ins Fass hinneinlaufen.
Also wenn jemand ne Lösung für diese Probleme findet einfach posten.
© 2024 lite-C Forums