Gamestudio Links
Zorro Links
Newest Posts
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
5 registered members (AbrahamR, wdlmaster, 7th_zorro, dr_panther, 1 invisible), 764 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Verwendung von vec_for_vertex #302410
12/19/09 10:18
12/19/09 10:18
Joined: Dec 2009
Posts: 53
Vyshess Offline OP
Junior Member
Vyshess  Offline OP
Junior Member

Joined: Dec 2009
Posts: 53
Hi @ all,

ich möchte gern ein "Feuer-Sprite" an die Antiebsdüse eines Raumschiffes machen. So wie z.B. bei Lylatwars. Also der Sprite soll auch noch richtig sitzen wenn sich roll, pan und tilt des Raumschiffs ändert.

Daher hab ich dann im C-Skript Handbuch (ich verwende noch die A5)nach Alternativen gesucht. Dieses vec_for_vertex ist ja scheinbar dafür geeignet. Nur wie genau verwende ich das jetzt? Dieses Beispiel im Handbuch hilft mir da nicht wirklich weiter...(konnte auch hier im Forum nichts passendes finden)

danke schonmal im vorraus!

Re: Verwendung von vec_for_vertex [Re: Vyshess] #302416
12/19/09 10:46
12/19/09 10:46
Joined: May 2009
Posts: 445
Peine, Germany
Razoron Offline
Senior Member
Razoron  Offline
Senior Member

Joined: May 2009
Posts: 445
Peine, Germany
Du gehst in MED in die "Vertex Mode" und wählst einen gelben Punkt(Vertex) aus. Dann steht unten rechts z.B. "Vertex #285". Das setzt du dann als "nummer" parameter ein.

Last edited by Razoron; 12/19/09 18:07.
Re: Verwendung von vec_for_vertex [Re: Vyshess] #302481
12/19/09 20:24
12/19/09 20:24
Joined: Dec 2009
Posts: 53
Vyshess Offline OP
Junior Member
Vyshess  Offline OP
Junior Member

Joined: Dec 2009
Posts: 53
okay danke! ich hab jetzt den code dafür gemacht. die action wird von einer unsichtbaren entity ausgeführt. Doch irgendwie bekomm ich es nicht richtig hin. Der Sprite bewegt sich nicht mit.Hier der momentane Code:
Code:
/////////////////////////////Antrieb-Sprite//////////////////
string antrieb_map = <antrieb01.bmp>;


var antrieb_pos; 
function antrieb_an()

////////////////////////////////////

function antrieb_an()
{	
	my.passable = on;
	my.facing = on;
	my.bright = on;
	my.flare = on;
	my.alpha = 100;
	my.ambient = 100;
	
	while (1)
	{ 	
		my.scale_x = 0.4+random(0.125)-0.125;
		my.scale_y = my.scale_x;
		
			
		wait(1);
	}
	ent_remove(my);
}

/////////////////////////////////////////

action start_antrieb
{ 
 	
vec_for_vertex(antrieb_pos,player,53);
ent_create (antrieb_map,antrieb_pos, antrieb_an); 
	sleep (0.1);
 
}



Ich hab heut irgendwie ein Brett vorm Kopf. Was muss ich ändern damit sich der Sprite mit dem Player bewegt??
Ach und noch am Rande: my.alpha hat irgendwie keine Auswirkung auf den Sprite..was habe ich da denn übersehen??


A8 Commercial
A5 Standart
---------------
created games: - Bomber Maniacs
Re: Verwendung von vec_for_vertex [Re: Vyshess] #302483
12/19/09 20:37
12/19/09 20:37
Joined: Nov 2008
Posts: 354
saeculum II
MPQ Offline
Senior Member
MPQ  Offline
Senior Member

Joined: Nov 2008
Posts: 354
saeculum II
Das Vertex muss, da sich der Player bewegt, ständig eine neue Position bekommen.

Du setzt aber die Position des Sprites nur am Anfang auf die Position, updatest diese dann aber nicht mehr.

füge z.B noch hinzu (innerhalb der while-schleife):

vec_for_vertex(antrieb_pos,player,53);
vec_set (my.x, antrieb_pos);




Last edited by MPQ; 12/19/09 20:39.

new project in early stage...

Intel Xeon X3450 2,66GHz | Mushkin 8 Gib | Zotac GTS250 + 7300LE | A8.3 com
Re: Verwendung von vec_for_vertex [Re: Vyshess] #302539
12/20/09 11:16
12/20/09 11:16
Joined: Dec 2009
Posts: 53
Vyshess Offline OP
Junior Member
Vyshess  Offline OP
Junior Member

Joined: Dec 2009
Posts: 53
Hey danke für die schnelle Antwort.Hab`s dort wie du es beschrieben hast , eingesetzt aber jetzt erscheint der Sprite beim links und rechts fliegen nur für ein paar sekunden an der Düse.Danach erscheint er wieder an der Stelle wo die unsichtbare Entity ,die die action ausführt, befindet. Dabei erscheint er zwar auf der selben z coordinate wie der player,verändert seine y coordinate aber überhaupt nicht. Sobal das Raumschiff dann wieder bewegt wird ,springt der Sprite wieder an die Düse und bleibt dort wie schon gesagt nur ein paar Sekunden...

Allerdings ist mir was seltsames aufgefallen. Als ich nebenbei noch ein skript zum schießen von einem Laser geschrieben habe ist mir aufgefallen das solange ich die taste "S" zum schießen gedrückt halte(ja das dauerfeuer muss ich noch unterbinden) verhält sich der Sprite des Antriebs genau so wie er soll. Also solange ich "S" drücke kann ich das Raumschiff bewegen wie ich will und der Sprite ist die ganze Zeit da wo er auch sein soll...
Hier wäre der Code zum abfeuern des Lasers:
Code:
///////////////laser_shot///////////

function fire_laser();
function move_laser();



function fire_laser()
{
	proc_kill(4);
	snd_play(laser_wav,50,0);
	ent_create (laser_mdl,player.pos,move_laser);
}

function move_laser()
{	
	
	my.enable_entity = on;
	my.enable_block = on;
	my.transparent = on;
	my.bright = 100;
	my.pan = player.pan;
	my.tilt = player.tilt;
	my.roll = player.roll;
	my.move=on;
		
		while(1)
		{ 
		  my.x += 150*time; 
		  wait(1);
		}

}


Und das hier steht in meiner player_action um über die Taste "S" die Laser function auszuführen:
Code:
if(key_s == 1)
{ fire_laser(); }



Ich kann einfach den Zusammenhang von dem Laser schießen und dem Verhalten des Antriebs-Sprites nicht nachvollziehen...warum verhält sich der Sprite nur beim Laser Abschuss korrekt??

Kann mir echt keiner helfen? Ich bastle schon die ganzen letzten Tage nur an diesem Antrieb-Code,hab auch schon so gut wie alle AUM`s durchsucht und ähnliche Codes angeschaut..ich vermute langsam das es ein Bug in der vec_for_vertex selbst ist.Anderes kann ich mir das nicht mehr erklären.

Last edited by Vyshess; 12/22/09 16:41.

A8 Commercial
A5 Standart
---------------
created games: - Bomber Maniacs
Re: Verwendung von vec_for_vertex [Re: Vyshess] #307351
01/28/10 17:54
01/28/10 17:54
Joined: Dec 2009
Posts: 53
Vyshess Offline OP
Junior Member
Vyshess  Offline OP
Junior Member

Joined: Dec 2009
Posts: 53
Kann mir wirklich niemand helfen?? Ich hab jetzt schon so viel ausprobiert und dreh bald ab. Hab die AUM`s auch nochmal durchgeblättert und bei dem Morrowing Code(AUM48) eine Zeile gesehen die theoretisch genau das bewirkt was ich will. Also hab ich den Code genommen und angepasst. In meiner while Schleife steht nun das:
Code:
while(1) 
    { 
       vec_for_vertex(antieb_pos, player, 53);
       my.x = antieb_pos.x;
       my.y = antieb_pos.y;
       my.z = antieb_pos.z;

       my.scale_x = 0.4+random(0.125)-0.125;
		my.scale_y = my.scale_x;
       wait(1);
    }
    ent_remove(my);
}



Das hat aber nicht wirklich was an meinem Problem geändert.Ich hab echt keine Ideen mehr. Is wahrescheinlich ein Bug..anderes kann ich mir das bald nich mehr erklären...

Re: Verwendung von vec_for_vertex [Re: Vyshess] #307358
01/28/10 18:33
01/28/10 18:33
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Die vec_for_vertex-Funktion hat keinen Bug.
Ich kann aber nicht wirklich schlau aus Deinem Code werden.
Das einzige, was mir jetzt auffällt, ist, dass antrieb_pos nur als Variable, mit nur einem Wert, definiert wird und nicht als Vektor, mit 3 Werten.

Re: Verwendung von vec_for_vertex [Re: Pappenheimer] #307480
01/29/10 15:57
01/29/10 15:57
Joined: Dec 2009
Posts: 53
Vyshess Offline OP
Junior Member
Vyshess  Offline OP
Junior Member

Joined: Dec 2009
Posts: 53
wie jetzt nur einen Wert?? vec_to_vertex speichert doch die position des vertex (also die 3 werte) in die angegebene Variabel.

Was genau ist den unklar an meinen code?
Das in der while-schleife ist 1:1 aus AUM48.
Ich versuchs nochmal kurz zusammen zufassen.

Also eine kleine Map-Entity erzeugt durch die ihm zugewiesene action einen Sprite der an dem Antrieb meines Raumschiffs ausgerichtet ist. Das Verhalten des Sprites ist die function "antrieb_an()". Und diese Position des Sprites soll dann permanent aktualisiert werden und mit Hilfe der, in der While Schleife befindlichen vec_for_vertex zeile, immer korretkt am Antrieb sitzen bleiben.

Problem ist das der Sprite scheinbar zufällige Positionen bekommt solange das Raumschiff nicht bewegt wird.

Re: Verwendung von vec_for_vertex [Re: Vyshess] #307487
01/29/10 16:39
01/29/10 16:39
Joined: Feb 2009
Posts: 3,207
Germany, Magdeburg
Rei_Ayanami Offline
Expert
Rei_Ayanami  Offline
Expert

Joined: Feb 2009
Posts: 3,207
Germany, Magdeburg
@Pappenheimer: Er benutzt scheinbar noch A5

@Vyshess: Du kannst dir die Extra Edition von A7 gratis auf der download seite runterladen, denn lite-c ist viel besser und übersichtlicher als WDL-script wink .
wenn du schon a7 hast, und ich deine erste falsch interpretiert habe, dann habe ich keine idee - sorry...

edit: vec_for_vertex nimmt das ganze in einen vector und nicht in eine variable

Last edited by Rei_Ayanami; 01/29/10 16:39.
Re: Verwendung von vec_for_vertex [Re: Rei_Ayanami] #307498
01/29/10 17:19
01/29/10 17:19
Joined: Aug 2007
Posts: 1,922
Schweiz
Widi Offline
Serious User
Widi  Offline
Serious User

Joined: Aug 2007
Posts: 1,922
Schweiz
Variable = ein Wert, eine Zahl
Vector = drei Werte, drei Zahlen.

Um eine Position zu speichern, braucht es immer drei Werte. (x,y,z)

Page 1 of 2 1 2

Gamestudio download | chip programmers | 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