|
Re: player collison
[Re: DuaneDawson]
#428514
08/29/13 00:59
08/29/13 00:59
|
Joined: Jul 2008
Posts: 2,110 Germany
rayp
 
X
|
 
X
Joined: Jul 2008
Posts: 2,110
Germany
|
Here is a good obstacle avoidance. I cant give credits, but its not written by myself...iam pretty sure ^^
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
function camera_setup()
{
vec_set(camera.x,vector(0,-580,720));
vec_set(camera.pan,vector(90,-50,0));
vec_set(d3d_lodfactor,vector(12.5,25,50));
sun_light = 0;
camera.clip_near = 0;
camera.clip_far = 4000;
camera.fog_start = 100;
camera.fog_end = 4000;
fog_color = 4;
d3d_fogcolor4.red = 150;
d3d_fogcolor4.green = 150;
d3d_fogcolor4.blue = 150;
sky_color.red = d3d_fogcolor4.red;
sky_color.green = d3d_fogcolor4.green;
sky_color.blue = d3d_fogcolor4.blue;
}
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
function main()
{
warn_level = 6;
fps_max = 60;
video_set(800,600,32,0);
freeze_mode = 1;
level_load("1.WMB");
wait(3);
freeze_mode = 0;
camera_setup();
}
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
ENTITY* target_ent;
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
action target_act()
{
target_ent = my;
set(my,TRANSLUCENT|POLYGON);
}
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
#define trace_hit1 skill69
#define trace_hit2 skill70
action zombie_act()
{
VECTOR temp_vec;
VECTOR content_left;
VECTOR content_right;
ANGLE temp_angle;
while(!target_ent){wait(1);}
wait(1);
c_setminmax(my);
set(my,TRANSLUCENT|POLYGON);
while(1)
{
draw_text("BASIC OBSTACLE AVOIDANCE",10,10,COLOR_WHITE);
if(c_trace(my.x,content_right,IGNORE_ME|USE_POLYGON|IGNORE_PASSABLE) + c_trace(my.x,content_left,IGNORE_ME|USE_POLYGON|IGNORE_PASSABLE) == 0)
{
vec_set(temp_vec,target_ent.x);
vec_sub(temp_vec,my.x);
vec_to_angle(temp_angle,temp_vec);
if(ang(temp_angle.pan - my.pan) < -2 | ang(temp_angle.pan - my.pan) > 2)
{
my.pan += sign(ang(temp_angle.pan - my.pan)) * time_step * 7;
}
}
vec_set(content_right,vector(35,-20,0));
vec_rotate(content_right,my.pan);
vec_add(content_right,my.x);
draw_line3d(my.x,NULL,100);
draw_line3d(my.x,COLOR_RED,100);
draw_line3d(content_right.x,COLOR_RED,100);
if(c_trace(my.x,content_right,IGNORE_ME|USE_POLYGON|IGNORE_PASSABLE) != 0 && c_trace(my.x,content_left,IGNORE_ME|USE_POLYGON|IGNORE_PASSABLE) == 0)
{
my.trace_hit1 = 1;
my.pan += 10 * time_step;
}
vec_set(content_left,vector(35,20,0));
vec_rotate(content_left,my.pan);
vec_add(content_left,my.x);
draw_line3d(my.x,NULL,100);
draw_line3d(my.x,COLOR_RED,100);
draw_line3d(content_left.x,COLOR_RED,100);
if(c_trace(my.x,content_left,IGNORE_ME|USE_POLYGON|IGNORE_PASSABLE) != 0 && c_trace(my.x,content_right,IGNORE_ME|USE_POLYGON|IGNORE_PASSABLE) == 0)
{
my.trace_hit2 = 1;
my.pan -= 10 * time_step;
}
if(vec_dist(my.x,target_ent.x) > 70)
{
c_move(my,vector(10 * time_step,0,0),nullvector,IGNORE_PASSABLE|GLIDE);
}
if (my.trace_hit2 && my.trace_hit1) my.pan=random(360);
my.trace_hit1=0;
my.trace_hit2=0;
wait(1);
}
}
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
Edit: works like a charm. Edit2: with good oa i meant "not bad, good 4 basic"
Last edited by rayp; 08/29/13 01:47.
Acknex umgibt uns...zwischen Dir, mir, dem Stein dort... "Hey Griswold ... where u gonna put a tree that big ?" 1998 i married my loved wife ... Sheeva from Mortal Kombat, not Evil-Lyn as might have been expected rayp.flags |= UNTOUCHABLE;
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|