|
|
Alles passable.... warum?
#112511
02/17/07 18:57
02/17/07 18:57
|
Joined: Feb 2007
Posts: 3
Five
OP
Guest
|
OP
Guest
Joined: Feb 2007
Posts: 3
|
Hi, ich hab vor drei wochen mit 3dgs angefangen. im mom habe ich noch die testverion (bin begeistert davon.. hol mir so schnell wie möglich die vollversion) nun habe ich schon einiges mit 3dgs hinbekommen doch irgendwie ist für meinen player alles passble obwohl ich in WED die blöcke nicht auf passable stehen hab. ich denke das es vllt am script liegt... schließlich hab ich noch wenig ahnung im c- scripten.. kann mir jemand helfen??? please 
Last edited by Five; 02/17/07 18:57.
|
|
|
Re: Alles passable.... warum?
[Re: Tempelbauer]
#112513
02/17/07 19:18
02/17/07 19:18
|
Joined: Feb 2007
Posts: 3
Five
OP
Guest
|
OP
Guest
Joined: Feb 2007
Posts: 3
|
ja hab ich bereits...
hier mein main-script...
// legend.wdl //
//////////////////////////////////////////////////// Bildschirm
var video_mode = 7; // 800*600 Auflösung var video_depth =32; // 32 bit mode
//////////////////////////////////////////////////// variablen entity* player;
var w_lauf; var s_lauf; var d_lauf; var a_lauf;
var mem_camx; var mem_camy;
var mpx; var mpy; var pan_switch;
var trig; var sunhero_x; var sunhero_y;
////////////////////////////////////////////////////////////// Main function main () { level_load ("legend.wmb"); wait (5); camera.fog = 0; // Nebel wirkt sich nicht auf Schatten aus }
///////////////////////////////////////////////////////////// Sun action sunposition { while (1) { my.x = (sunhero_x /100) * 70; my.y = (sunhero_y /100) * 70; wait(1); } }
///////////////////////////////////////////////////////////// Sky action sky_cube_five { while (1) { my.pan +=0.1*time; wait (3); } }
///////////////////////////////////////////////////////////// Player action player_move { player = me; my.z -= 1; camera.pan = my.pan; camera.x = my.x -230; camera.y = my.y; my.pan = 1; camera.z = my.z + 50; camera.tilt = -7; sunhero_x = my.x; sunhero_y = my.y; while (1) { my.passable=on;
/////////////////////////////////////////////////////////////////////////////////////// D1 && W1 if (key_a == 0 && key_w == 0 && key_d == 0) { ent_animate(my, null,0, 0); w_lauf = 0; my.tilt = 0; } ////////////////////////////////////////////// if ( key_a == 1 ) { pan_switch = 0; ent_animate(my,"run",w_lauf, anm_cycle); w_lauf += 11 * time; my.tilt = -5; /////////////////////////////////////// my.pan = camera.pan +90; camera.pan += 0.25; my.x = camera.x + 240 * sin(player.pan); // 200 = distance between the player and the camera my.y = camera.y - 240 * cos(player.pan) ; // use the same value here } if ( key_d == 1 && key_w == 0) { pan_switch = 1; ent_animate(my,"run",w_lauf, anm_cycle); w_lauf += 11 * time; my.tilt = -5; /////////////////////////////////////// my.pan = camera.pan - 90; camera.pan -= 0.25; my.x = camera.x - 240 * sin(player.pan) ; // 200 = distance between the player and the camera my.y = camera.y + 240 * cos(player.pan) ; // use the same value here }
///////////////////////////////////////////////////////////// if (my.pan > 0 && my.pan <= 90 ) { mpx = 1 - ((my.pan)/ 100); mpy = ((my.pan)/100); } if (my.pan > 90 && my.pan <= 180 ) { mpx = ((my.pan -90)/100) * (-1) ; mpy = 1 - ((my.pan -90)/100); } if (my.pan > 180 && my.pan <= 270 ) { mpx = (1- ((my.pan -180)/100))* (-1) ; mpy = ((my.pan -180)/100) * (-1); } if (my.pan > 270 && my.pan <= 360 ) { mpx = (my.pan -270)/100; mpy = (1- ((my.pan -270)/100))* (-1) ; } if (key_w == 1 && key_a == 0) { ent_animate(my,"run",w_lauf, anm_cycle); w_lauf += 11 * time; my.tilt = -3; my.pan = camera.pan; camera.y += mpy *2; my.y += mpy *2; camera.x += mpx *2; my.x += mpx *2; } mem_camx = camera.x; mem_camy = camera.y; ///////////// wichtig... if (key_q == 1 && key_w ==1 ) { my.pan = my.pan +45; } if (key_e == 1 && key_w ==1 ) { my.pan = my.pan -45; } if (my.pan >=450) { my.pan = 0; camera.pan = 0; } if (my.pan <= -90) { my.pan = 360; camera.pan = 360; } ////////////////////////////////////////////////////////////////////////////////////////////////////// wait (1); } }
|
|
|
Re: Alles passable.... warum?
[Re: Five]
#112514
02/17/07 22:41
02/17/07 22:41
|
Joined: Apr 2005
Posts: 3,076 Germany, NRW
rvL_eXile

3D Artist
|

3D Artist
Joined: Apr 2005
Posts: 3,076
Germany, NRW
|
Quote:
///////////////////////////////////////////////////////////// Player action player_move { player = me;
my.z -= 1; camera.pan = my.pan; camera.x = my.x -230; camera.y = my.y; my.pan = 1; camera.z = my.z + 50; camera.tilt = -7;
sunhero_x = my.x; sunhero_y = my.y;
while (1) { my.passable=on;
Mach das my.passble=off;
cYa Sebastian
Tutorials: [Blender]Terrain creation ENG/GER [Blender]Low Poly Tree Modeling [GIMP]Create a Texture for Terrains CLICK HERE
|
|
|
Re: Alles passable.... warum?
[Re: rvL_eXile]
#112515
02/18/07 21:42
02/18/07 21:42
|
Joined: Jun 2006
Posts: 214 Germany, NRW
TheThinker
Member
|
Member
Joined: Jun 2006
Posts: 214
Germany, NRW
|
Sehe ich das richtig, oder gibt es hier nirgends eine C_move oder ent_move anweisung? Der code ist etwas schwer zu lesen, deshalb hab ich ihn nur überflogen, jedoch glaube ich, dass du deine Spielfigur nur in der Spielwelt umherteleportierst. Das passiert wenn man die x,y,z coordinaten einer Figur direkt manipuliert. Es ist zwar nicht unmöglich eine Kollisionserkennung auf dieser Basis zu erstellen aber weitaus koplizierter. Nutze c_move... Damit hast du eine polygongenaue Kollisionserkennung der Umgebung zu deiner Figur. So weit ich weiß musst du dann aber einen Vector nutzen So vielleicht speed[3] { speed.x = 1 * key_force.y; while(1) {c_move(me,speed,null); wait(1);} } gaanz einfaches Beispiel. Les mal im Manual nach. Natürlich bin ich auch nicht mehr up-to-date, da ich mit der Syvex-edition arbeite  MfG, Ich
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|