Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
0 registered members (), 18,435 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
movement #229908
10/01/08 14:12
10/01/08 14:12
Joined: Sep 2007
Posts: 28
C
craik Offline OP
Newbie
craik  Offline OP
Newbie
C

Joined: Sep 2007
Posts: 28
Also, hier mein Problem ich hoffe ihr könnt mir helfen:

Click to reveal..

action move_me()
{

while(1)
{
if(key_w)
{
temp.x = mouse_pos.x;
temp.y = mouse_pos.y;
temp.z = 0;
vec_for_screen(temp,camera);
vec_sub(temp,me.x);
vec_to_angle(me.pan,temp);


c_move(me, vector(5*time_factor,0,0),nullvector, IGNORE_ME);



}





Ich wollte mit diesem script erreichen das das entity dahin fährt wo die maus ist, es fährt aber nur zur kamera.
Was mach ich falsch?
Schon mal danke im Vorraus.

Re: movement [Re: craik] #229909
10/01/08 14:17
10/01/08 14:17
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Espér Offline
Expert
Espér  Offline
Expert

Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
du musst den punkt wo es hin soll antracen...

Code:

function raster_scale(var* pos,var tile_size)
{
	if(abs(fraction(pos[0]/tile_size)) > 0.5)
	{pos[0] += (tile_size/2)*sign(pos[0]);}
	if(abs(fraction(pos[1]/tile_size)) > 0.5)
	{pos[1] += (tile_size/2)*sign(pos[1]);}
	pos[0] = pos[0] * 1/tile_size;
	pos[1] = pos[1] * 1/tile_size;
	pos[0] = integer(pos[0]);
	pos[1] = integer(pos[1]);
	pos[0] = pos[0] * tile_size;
	pos[1] = pos[1] * tile_size;
	
        vec_to_angle(cursorblock.pan,vector(pos[0],pos[1],0));

	c_move(cursorblock, vector(5*time_factor,0,0),nullvector, USE_BOX);
}


function tilemap()
{
	while(1)
	{
		temp.x = mouse_pos.x;
		temp.y = mouse_pos.y;
		temp.z = camera.z;
		vec_for_screen(temp,camera);
		
		vec_set(mouse_click, mouse_dir3d);
		vec_normalize(mouse_click, 10000);
		vec_add(mouse_click, camera.x);
		c_trace(camera.x, mouse_click, IGNORE_PASSABLE);
		
		raster_scale(target.x,1);
		wait(1);
	}
}


Ersetzt "cursorblock" einfach mit dem pointer des entities.


Habs nicht getestet.. sollte aber gehen.

Last edited by xXReapeRXx; 10/01/08 14:17.

Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<
Re: movement [Re: craik] #229910
10/01/08 14:20
10/01/08 14:20
Joined: Sep 2007
Posts: 28
C
craik Offline OP
Newbie
craik  Offline OP
Newbie
C

Joined: Sep 2007
Posts: 28
Sorry ich bin noch ein Anfänger, könntest du mir das vlt. erklären, will ja nicht ein spiel rein aus code schnipseln zusammen baun wink
Also mein Code hat ja vom Prinzip her eig funktioniert oder... er hat halt das entity in die passende richtung gedreht aber leider nicht auf den maus zeiger sondern auf die camera

Last edited by craik; 10/01/08 14:23.
Re: movement [Re: craik] #229912
10/01/08 14:28
10/01/08 14:28
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Espér Offline
Expert
Espér  Offline
Expert

Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
oje XD

Also..
Du musst einen Strahl von der kamera-Position, zu der Maus-Position in der Welt schicken. das macht man mit c_trace

Trifft der Strahl auf ein objekt, so ist der pnkt des aufschlags "target".
flits hat mir jetzt ma für meinen maker ein Script gemacht, wo ein block Feld-für-feld auf ein raster gelegt wurde.
aufzurufen war das mit:

raster_scale(target.x,Feldgröße);


Stellt man die Feldgröße jetzt auf 1, isses wieder pixelgenau.

Alles was ich gemacht hab war, meinen code zu nehmen, und statt dem objekt die position direkt zu geben ( warpen zum target punkt ), hab ich das c_move gesetzt. so läuft das objekt in richtung des mauszeigers.

musst das c_move jetzt noch in ne abfrage packen, ob dein entity auf der position:
pos[0] // X
pos[1] // Y

ist. Damit er weider aufhört zu laufen wenn er angekommen iss.

Wie gesagt, kp obs 100% funktioniert.


Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<
Re: movement [Re: Espér] #229917
10/01/08 14:38
10/01/08 14:38
Joined: Sep 2007
Posts: 28
C
craik Offline OP
Newbie
craik  Offline OP
Newbie
C

Joined: Sep 2007
Posts: 28
Ok , das hab ich verstanden aber ersagt mit immer das es diese mouse_click funktion nicht gibt

Re: movement [Re: craik] #229919
10/01/08 14:47
10/01/08 14:47
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Espér Offline
Expert
Espér  Offline
Expert

Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Maustastenabfrage in lite-C geht anders als in wdl ^^

if(mouse_left == 1)
if(mouse_right == 1)
if(mouse_middle == 1)


Achte zudem darauf, das due mouse_range hochgedreht hast
Ich verwende bei mir ne weite von 4000.

Last edited by xXReapeRXx; 10/01/08 14:47.

Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<
Re: movement [Re: Espér] #229921
10/01/08 14:55
10/01/08 14:55
Joined: Sep 2007
Posts: 28
C
craik Offline OP
Newbie
craik  Offline OP
Newbie
C

Joined: Sep 2007
Posts: 28
ahaaa,
ok ssoweit aber darf ich fragen warum mein altes script nicht funktioniert?

Re: movement [Re: craik] #229923
10/01/08 15:04
10/01/08 15:04
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Espér Offline
Expert
Espér  Offline
Expert

Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
weil du von der kamera aus, nicht in Richtung 3D-position des Cursors getracet hast ^^
Also den Strahl nicht gesendet hast..

Dein Entity glaubte also, dass es in richtung Kamera dackeln muss ^^


Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<
Re: movement [Re: Espér] #230277
10/04/08 12:28
10/04/08 12:28
Joined: Sep 2007
Posts: 28
C
craik Offline OP
Newbie
craik  Offline OP
Newbie
C

Joined: Sep 2007
Posts: 28
also ich hab jetzt mal den code schnipsel für mich verändert:

Click to reveal..

function raster_scale(var* pos,var tile_size)
{
if(abs(fraction(pos[0]/tile_size)) > 0.5)
{pos[0] += (tile_size/2)*sign(pos[0]);}
if(abs(fraction(pos[1]/tile_size)) > 0.5)
{pos[1] += (tile_size/2)*sign(pos[1]);}
pos[0] = pos[0] * 1/tile_size;
pos[1] = pos[1] * 1/tile_size;
pos[0] = integer(pos[0]);
pos[1] = integer(pos[1]);
pos[0] = pos[0] * tile_size;
pos[1] = pos[1] * tile_size;

vec_to_angle(fisch.pan,vector(pos[0],pos[1],0));

c_move(fisch, vector(5*time_factor,0,0),nullvector, USE_BOX);
}

function tilemap()
{
while(1)
{
temp.x = mouse_pos.x;
temp.y = mouse_pos.y;
temp.z = camera.z;
vec_for_screen(temp,camera);

vec_set(mouse_left, mouse_dir3d);
vec_normalize(mouse_left, 10000);
vec_add(mouse_left, camera.x);
c_trace(camera.x, mouse_left, IGNORE_PASSABLE);

raster_scale(target.x,1);
wait(1);
}
}




die funktion tilemap ruf ich einfach bei mouse_left = 1 auf.
So jetzt stürzt mein spiel immer ab wenn ich die linke mouse taste drücke tired crazy

ich denke das mouse left ist falsch oder... is eig kein vektor


Last edited by craik; 10/04/08 12:28.
Re: movement [Re: craik] #230332
10/04/08 19:26
10/04/08 19:26
Joined: Feb 2006
Posts: 385
Oldenburg,Germany
Ralph Offline
Senior Member
Ralph  Offline
Senior Member

Joined: Feb 2006
Posts: 385
Oldenburg,Germany
Probier es mal so:
Code:
VECTOR* temp=nullvector;
action move_me(){
my.skill4=0;
while(me!=NULL){
if(mouse_left==1){
temp.x=mouse_pos.x;
temp.y=mouse_pos.y;
temp.z=200;
vec_for_screen(temp,camera);
my.skill4=1;
}
if(my.skill4==1){
c_trace(temp.x,vector(temp.x,temp.y,temp.z-1000),IGNORE_ME);
vec_set(temp.x,target.x);
if(vec_dist(my.x,temp.x)>20){
vec_sub(temp.x,my.x);
vec_to_angle(my.pan,temp);
my.tilt=0;
my.skill1=5*time_step;
c_move(vector(my.skill1,0,0),nullvector,GLIDE);
}else{
my.skill4=0;
}
}
wait(1);
}
}
//und in der Main Funktion sollte das hier stehen:
function main(){
//.. irgendwas was du da hast
mouse_mode=1;
while(1){
mouse_pos.x=mouse_cursor.x;
mouse_pos.y=mouse_cursor.y;
wait(1);
}
}

MFG Ralph

Last edited by Ralph; 10/04/08 19:30.

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1