Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
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
6 registered members (AndrewAMD, Ayumi, degenerate_762, 7th_zorro, VoroneTZ, HoopyDerFrood), 1,268 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
LucasJoshua, Baklazhan, Hanky27, firatv, wandaluciaia
19053 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
intelligente Tür #133738
06/04/07 18:18
06/04/07 18:18
Joined: Jan 2005
Posts: 134
Germany
T
TTKJonas Offline OP
Member
TTKJonas  Offline OP
Member
T

Joined: Jan 2005
Posts: 134
Germany
Hallo,

Ich möchte gerne ein Türscript erstellen, das ein paar ganz spezielle Anforderungen hat
Ich versuche es mal zu erklären:

Alle Türen in meinem Level öffnen sich selbtständig, sobald sich der Spieler nähert. Nun öffnen sich die Türen bei meinem jetzigen Script aber immer in die selbe Richtung, jenachdem wie sie gedreht sind. Das führte dazu, das sich die Tür manchmal durch den Spieler bewegte. Das habe ich dann dadurch gelöst, das sich die Tür entwerder schon sehr früh, oder relativ schnell öffnet.
Das ist aber in vielen Fällen keine besonders gute Lösung.
Deswegen möchte ich mein Türscript nun nochmal überarbeiten.
Allerdings fehlt mir noch der passende Ansatz, wie ich so ein Script anfangen soll.

Das neue Script soll folgendes können:

Wenn sich der Spieler der Tür nähert, soll die Tür selbstständig erkennen aus welcher Richtung der Spieler kommt und sich dann in die entgegengesetze Richtung öffnen. Knackpunkt ist hierbei, das es egal sein sollte wie die Tür im Level gedreht ist (sie steht natürlich immer aufrecht).

Um das besser zu veranschaulichen, hab ich ein Bild gezeichnet:


Hat jemand eine Idee wie das Script dafür aussehen könnte?

Gruß
Jonas

Last edited by TTKJonas; 06/04/07 18:37.
Re: intelligente Tür [Re: TTKJonas] #133739
06/04/07 19:05
06/04/07 19:05
Joined: Jun 2006
Posts: 2,640
Earth
Germanunkol Offline
Expert
Germanunkol  Offline
Expert

Joined: Jun 2006
Posts: 2,640
Earth
also, scripten würd länger dauern, das kann ich dir grad nicht. Die erste idee die mir kommt ist:

wenn er in reichweite kommt (hast du schon, das kannst du so lassen wie's ist) dann:
var approach_angle[3];
vec_diff(temp,player.x,tür.x);
vec_to_angle(approach_angle,tür);

Jetzt hast du in approach_angle.pan den pan aus dem der spieler kommt. den vergleichst du mit dem tür.pan. wenn das eine minus das andere etwas bestimmes gibt, dann drehst du nach links, ansonsten nach rechts....?

versuch das mal. für "etwas bestimmtes" musst du rumprobieren... weis grad nicht, kommt drauf an welches du von welchem abziehst und so...

weist du was ich meine?

viel glück!
Micha


~"I never let school interfere with my education"~
-Mark Twain
Re: intelligente Tür [Re: TTKJonas] #133740
06/04/07 19:21
06/04/07 19:21
Joined: Jan 2007
Posts: 1,619
Germany
Scorpion Offline
Serious User
Scorpion  Offline
Serious User

Joined: Jan 2007
Posts: 1,619
Germany
ich würde das so lösen:
erst gucks du wie gewohn, ob der spieler in reichweite ist, wenn ja nimmst du 2 punkte die relativ zur tür sind und bestimmst welcher näher ist...:

z.b.:
Code:
action door
{
var standart_rotation[3];
vec_set(standart_rotation,my.pan);
while(1)
{
if(vec_dist(my.x,player.x)<300)
{
vec_set(temp,vector(0,20,0));
vec_rotate(temp,standart_rotation);
vec_add(temp,my.x);

vec_set(target,vector(0,-20,0));//abuse target-vector
vec_rotate(target,standart_rotation);
vec_add(target,my.x);
if(vec_dist(temp,player.x)<vec_dist(target,player.x))
{
while(abs(my.pan-standart_rotation.pan)<90)
{
my.pan+=5*time_step;
wait(1);
}
}
else
{
while(abs(my.pan-standart_rotation.pan)<90)
{
my.pan-=5*time_step;
wait(1);
}
}
while(vec_dist(my.x,player.x)<400){wait(1);}
if(my.pan>standart_rotation.pan)
{
while(abs(my.pan-standart_rotation.pan)<2)
{
my.pan-=5*time_step;
wait(1);
}
}
else
{
while(abs(my.pan-standart_rotation.pan)<2)
{
my.pan+=5*time_step;
wait(1);
}
}
my.pan = standart_rotation.pan;
}
wait(1);
}
}



PS: wouldn't it be easy when that forum would support highlighting...?

Last edited by Scorpion; 06/04/07 19:22.
Re: intelligente Tür [Re: Scorpion] #133741
06/05/07 07:51
06/05/07 07:51
Joined: Apr 2005
Posts: 4,506
Germany
F
fogman Offline
Expert
fogman  Offline
Expert
F

Joined: Apr 2005
Posts: 4,506
Germany
Noch eine Methode:



Die Türen könnten zwei Scankegel (grün im Bild) in jede Richtung werfen. Wenn der Spieler dann erfasst wird weißt Du von wo er kommt.
Ich denke es reicht, wenn Du alle 0.3 Sekunden scannst.


no science involved
Re: intelligente Tür [Re: fogman] #133742
06/05/07 18:21
06/05/07 18:21
Joined: Jan 2005
Posts: 134
Germany
T
TTKJonas Offline OP
Member
TTKJonas  Offline OP
Member
T

Joined: Jan 2005
Posts: 134
Germany
Hallo!

Vielen, vielen Dank für Eure Hilfe!

Ich habe das Script von Scorpion genommen. Es funktioniert ausgezeichnet. Ich musste nur noch ein paar Werte vertauschen, da sich die Tür in die falsche Richtung geöffnet und abrupt wieder geschlossen hat.

Das Script sieht nun so aus:

Code:
action door
{
wait(1);
var standart_rotation[3];
vec_set(standart_rotation,my.pan);
while(1)
{
if(vec_dist(my.x,player.x)<250)
{
vec_set(temp,vector(0,20,0));
vec_rotate(temp,standart_rotation);
vec_add(temp,my.x);

vec_set(target,vector(0,-20,0));
vec_rotate(target,standart_rotation);
vec_add(target,my.x);
if(vec_dist(temp,player.x)<vec_dist(target,player.x))
{
while(abs(my.pan-standart_rotation.pan)<95)
{
my.pan-=7*time_step;
wait(1);
}
}
else
{
while(abs(my.pan-standart_rotation.pan)<95)
{
my.pan+=7*time_step;
wait(1);
}
}
while(vec_dist(my.x,player.x)<300){wait(1);}
if(my.pan>standart_rotation.pan)
{
while(abs(my.pan-standart_rotation.pan)>2)
{
my.pan-=7*time_step;
wait(1);
}
}
else
{
while(abs(my.pan-standart_rotation.pan)>2)
{
my.pan+=7*time_step;
wait(1);
}
}

my.pan = standart_rotation.pan;
}
wait(1);
}
}


Vielen Dank nochmal für Eure Hilfe!

Gruß
Jonas

Last edited by TTKJonas; 06/05/07 18:23.
Re: intelligente Tür [Re: TTKJonas] #133743
06/05/07 19:16
06/05/07 19:16
Joined: Jan 2007
Posts: 1,619
Germany
Scorpion Offline
Serious User
Scorpion  Offline
Serious User

Joined: Jan 2007
Posts: 1,619
Germany
naja...ich habs ja auch net getestet
schön dass es funzt


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

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