game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
+  Forums
|-+  Werken met Game Maker
| |-+  Beginners (Moderators: Erik Leppen, ericlegomeer, BlueMoonProductions)
| | |-+  specifieke id van een instance laten verwijderen
Pagina's: [1]
« vorige volgende »
Print
Advertenties

Martientje
Gebruiker

Offline Offline

Berichten: 102


« Gepost op: 24 Oktober 2020, 22:50:04 »

Hey iedereen,
daar ben ik weer eens. Nog weer een vraag over mijn snake spel. Ik probeer een o_Bird het laatste gedeelte (de tail) van o_Snake op te laten eten als o_Snake langs o_Bird loopt. Maar dit lukt me niet. Is er iemand die mij kan helpen? Hieronder staat de code die ik gebruik.

step event van o_Bird

GML:
/// @description Insert description here
// You can write your code in this editor
/// @description Insert description here
// You can write your code in this editor
//0 = up y -
//1 = right x +
//2 = down y +
//3 = left x -

if (directionFacing == 0 && place_meeting(x,y-32,o_Snake))
{
stepCounter ++;
if stepCounter > 20
{
with(tail)
{
instance_destroy();
global.length -=1;
if global.length <=1
{
show_message("You have been eaten");
room_restart();
}
}
}
stepCounter = 0;
}



if (directionFacing == 1 && place_meeting(x+32,y,o_Snake))
{
stepCounter ++;
if stepCounter > 20
{
with(tail)
{
instance_destroy();
global.length -=1;
if global.length <=1
{
show_message("You have been eaten");
room_restart();
}
}
}
stepCounter = 0;
}



if (directionFacing == 2 && place_meeting(x,y+32,o_Snake))
{
stepCounter ++;
if stepCounter > 20
{
with(tail)
{
instance_destroy();
global.length -=1;
if global.length <=1
{
show_message("You have been eaten");
room_restart();
}
}
}
stepCounter = 0;
}



if (directionFacing == 3 && place_meeting(x-32,y,o_Snake))
{
stepCounter ++;
if stepCounter > 20
{
with(tail)
{
instance_destroy();
global.length -=1;
if global.length <=1
{
show_message("You have been eaten");
room_restart();
}
}
}
stepCounter = 0;
}




alarm[0] event van o_Snake

GML:
/// @description Insert description here
// You can write your code in this editor
//id0 = head
if (currentID == 0)
// direction
// 0 = right
// 1 = left
// 2 = up
// 3 = down


{
currentID +=1;
alarm[0] = 15;
switch(global.dir)
{
case 0:
tail = instance_create_layer(x + 32, y, "Layer1", o_Snake);
break;
case 1:
tail = instance_create_layer(x - 32, y, "Layer1", o_Snake);
break;
case 2:
tail = instance_create_layer(x, y - 32, "Layer1", o_Snake);
break;
case 3:
tail = instance_create_layer(x, y + 32, "Layer1", o_Snake);
break;
}
}
else if (currentID == (global.length -1))
{
instance_destroy();
}
else
{
currentID +=1;
alarm[0] = 15;
}


Alvast bedankt!

Naar boven Gelogd

massimot
Gebruiker


Offline Offline

Berichten: 1395

GameMaker Studo 1.4 Prof + Android/iOS


« Antwoord #1 Gepost op: 29 Oktober 2020, 15:34:22 »

Hoi Martientje,

Je eerste code klopt niet helemaal denk ik...
Je zegt namelijk stepCounter++ (dus je telt er 1 bij op)
Vervolgens controleer je of die groter is dan 20. Is dat niet zo, dan zet je hem weer op 0? Ik vermoed dat als hij groter dan 20 is geweest, dat je hem dan pas op 0 wilt zetten.

Overigens begrijp ik ook niet waarom je Alarm0 elke 15 steps uitvoert?

Naar boven Gelogd

Advertenties
« vorige volgende »
Pagina's: [1]
Print


Topic Informatie
0 geregistreerde leden en 1 gast bekijken dit topic.

Ga naar:  

Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2021 Nederlandse Game Maker Community