Hét vraag- en antwoordplatform van Nederland

Hoe kan ik dit oplossen?

Voor school moet ik in een team een spel maken. Nu hebben wij een bewaker in het spel die loopt heen en weer via een timeline. Je ziet het bewaker ook echt lopen. Maar zodra henry de hoofdpersonage binnen een staal rondom de bewaker is gaat de bewaker naar hem toe. Het werk allemaal prima. Op 1 ding na.
Zodra de bewaker naar henry toe gaat laat hij van de loop animatie alleen maar het eerste plaatje zien. Hoe kan ik dit oplossing.

distance=abs(x - henry.x);
if (distance>range_min)
if (distance{
timeline_position=962;
timeline=0;
if (henry.x {
sprite_index=guard_walk_L;
image_index=0;
image_speed=1;
motion_set(180,2);
}
else
{
sprite_index=guard_walk_R;
image_index=0;
image_speed=1;
motion_set(0,2);
}
}
if (distancemotion_set(360,0);
if (distance>range_max)
if (timeline=0)
{
timeline_index=guard;
timeline_position=0;
timeline=1;
}

Deze code is gemaakt door middel van The_ultimate_D&D_to_GML_converter.exe
Zo werkt het niet. Maar met D&D wel

Verwijderde gebruiker
15 jaar geleden
Geef jouw antwoord
0 / 2500
Geef Antwoord

Antwoorden (2)

Volgens mij ligt het probleem er in dat je keihard de timeline_position op een bepaalde waarde (962) blijft schijven terwijl je natuurlijk wilt dat hij blijt bewegen. Je moet dus de if/else structuur zo oplossen dat je alleen de richting omgooit maar wel de walk aan blijft roepen.

Overigens zie ik zo ook nog twee if-statements na elkaar staan, ik weet niet of dit programma dat wel kan, maar ik zou eerder iets verwachten in de trant van

if (distance>range_min) || (distance{
...
}

waarbij de || dus staat voor een OR. Wel even nakijken of de syntax zo goed is.

Toegevoegd na 47 minuten:
Zie ook deze language overview:
http://www.gmlscripts.com/gml/language_overview
Verwijderde gebruiker
15 jaar geleden
Dat komt waarschijnlijk omdat je ergens in de collision event tussen het object van de bewaker en het object van de hoofdpersonage de variabele 'image_index' een bepaalde waarde krijgt. Het is ook mogelijk dat image_speed gelijk is aan 0. Controleer of image_speed hoger is dan 0 en wis indien aanwezig het toekennen van een waarde aan image_index.
Verwijderde gebruiker
15 jaar geleden
Deel jouw antwoord
0 / 2500
Geef Antwoord
logo van Kompas Publishing

GoeieVraag.nl is onderdeel van Kompas Publishing