Gamestudio Links
Zorro Links
Newest Posts
Executing Trades on Next Bar Open
by vicknick. 06/13/24 08:51
Zorro Beta 2.61: PyTorch
by jcl. 06/10/24 14:42
New FXCM FIX Plugin
by flink. 06/04/24 07:30
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
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (monarch), 1,259 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19059 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Events und Highscore #188766
03/16/08 12:57
03/16/08 12:57
Joined: Feb 2008
Posts: 23
BW, Germany
X
xakac Offline OP
Newbie
xakac  Offline OP
Newbie
X

Joined: Feb 2008
Posts: 23
BW, Germany
Hallo Leute, habe folgendes Problem:
in meinem Spiel schieße ich mit einem Lichstrahl verschiedene Entities ab. In Abhängigkeit davon, was es für eine Entity ist, gibt es unterschiedliche Punktezahl für den Abschuss. Solange die Entities eine nach der anderen erscheinen, ist das kein Problem. Wenn aber mehrere auf einmal kommen und ich die abschieße, zählt der Highscore irgendein Schwachsinn und ich kann nicht rauskriegen warum oder was habe ich falsch gemacht. Ist evtl. die Switch-Anweisung nicht das Richtige?

Hier mein Code für den Lichstrahl:

// Funktion für den Strahl
function strahlEvent(){
wait(1);
if(key_space){ // wenn Leertaste gedrück (Strahl an)
switch(you)
{
case ent_tropfen:
highscore += 10;
ent_remove(you);
break;

case ent_batterie:
highscore += 50;
ent_remove(you);
break;

case ent_stern:
highscore +=100;
ent_remove(you);
break;
}
}
}

// Aktion, die die Funktion strahlEvent aufruft
action strahlAction(){

while(1){

my.y = ent_lamp.y; // y-Position des Strahls ist identisch mit der der Lampe

// Strahl ausblenden
if(!key_space){
set(my, TRANSLUCENT | PASSABLE); // Strahl durchscheinend machen und Kollisionserkennung abgeschalten
my.alpha = 0; // Setzen des Transparenzwertes vom Strahl (unsichtbar)
}

// Strahl einblenden
if(key_space){
reset(my, TRANSLUCENT | PASSABLE); // Strahl reseten = Kollisionserkennung AN und sichtbar
my.alpha = 100; // Setzen des Transparenzwertes vom Strahl (sichtbar)

my.emask |= ENABLE_IMPACT; // mache Strahl für Kollisionen empfindlich
my.event = strahlEvent; // starte die Funktion strahlEvent, wenn Strahl mit etwas kollidiert

soundHandle = snd_play(sndLichtstrahl, 10, 0); // Startup-Sound abspielen
}
wait(1);
}
}

Re: Events und Highscore [Re: xakac] #199776
04/01/08 11:04
04/01/08 11:04
Joined: Feb 2008
Posts: 23
BW, Germany
X
xakac Offline OP
Newbie
xakac  Offline OP
Newbie
X

Joined: Feb 2008
Posts: 23
BW, Germany
Na Leute,
niemand hat ne Idee? Ich habs immer noch nicht rausgefunden, was an dem Code falsch ist \:\(

Re: Events und Highscore [Re: xakac] #199781
04/01/08 11:11
04/01/08 11:11
Joined: Jan 2007
Posts: 651
Germany
R
RedPhoenix Offline
User
RedPhoenix  Offline
User
R

Joined: Jan 2007
Posts: 651
Germany
setz mal kein wait(1) in deiner event function. you ist ein pointer der immer nur einen frame konstant ist, wenn mehrere entities gleichzeitig sichtbar sind, ist er möglicherweise nach einem frame schon durch eine andere function verfälscht worden.

Re: Events und Highscore [Re: RedPhoenix] #199787
04/01/08 11:24
04/01/08 11:24
Joined: Feb 2008
Posts: 23
BW, Germany
X
xakac Offline OP
Newbie
xakac  Offline OP
Newbie
X

Joined: Feb 2008
Posts: 23
BW, Germany
OK, danke! ich versuch`s ohne.
aber es hieß doch in den tutorials, daß ich immer vor einem ent_remove(); ein wait(1) setzen sollte...

z.B. so funkzts auch nicht:

/ Funktion für den Strahl
function strahlEvent(){
switch(you)
{
case ent_tropfen:
highscore += 10;
wait(1);
ent_remove(you);
break;

case ent_batterie:
highscore += 50;
wait(1);
ent_remove(you);
break;

case ent_stern:
highscore +=100;
wait(1);
ent_remove(you);
break;
}
}

aber der Code an sich so ist in Ordnung? Oder sind alle wait(1) zu entfernen? Bin grad in der Firma und kann es nicht sofort austesten \:\(

Re: Events und Highscore [Re: xakac] #199797
04/01/08 11:56
04/01/08 11:56
Joined: Feb 2008
Posts: 23
BW, Germany
X
xakac Offline OP
Newbie
xakac  Offline OP
Newbie
X

Joined: Feb 2008
Posts: 23
BW, Germany
Das komische daran ist, nachdem ich z.B. Batterie (ent_batterie) abgeschossen habe und danach wieder Tropfen (ent_tropfen) abschieße, wird die Highscorefunktion von der Batterie gestartet und nicht vom Tropfen, als ob you-Pointer immer noch an ent_batterie "hängt"...

Re: Events und Highscore [Re: xakac] #232176
10/19/08 22:27
10/19/08 22:27
Joined: Sep 2008
Posts: 2
Vienna
N
Naurandir Offline
Guest
Naurandir  Offline
Guest
N

Joined: Sep 2008
Posts: 2
Vienna
Ich weiss nicht genau wie die restliche Programmierung aussieht, und ich hoffe ich rede keinen absoluten Blödsinn da ich doch noch ein ziemlicher Anfänger bin.

Aber:
Vielleicht probierst du es mal von der anderen Richtung aus?
Also mit Kollision Dedection von deinen Gegnern durchführst

z.B.

//Tropfen Funktion
function touch_event()
{
if(you == strahlAction && strahlon== 1)
{
my.death = 1;
}
}

//Tropfen Entity Ausschnitt:
Action ent_trpopfen()
{
my.emask |= ENABLE_IMPACT;
my.event = touch_event;

while(my.death != 1)
{
wait(1)
}
highscore += 10;
todesanimation(); //Explosion oder was weiss ich
ent_remove(me);
}

in deiner strahlAction könntest du dann noch ne Globale Variable einbauen ob der Strahl gerade an ist oder nicht.

(Diese funktion event_touch könntest du dann auch für alle anderen Gegner benutzen und immer nur in der action des Gegners die Punkte definieren)

Hoffe ich konnte dir damit vielleicht weiter helfen


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