game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
Pagina's: 1 2 [3] 4 5 ... 10

 21 
 Gepost op: 24 Augustus 2020, 20:18:12 
Gestart door Martientje - Laatste bericht door massimot
Ik vroeg me af of het kon liggen aan het feit dat deze code in het create event word uitgevoerd? Dat het word uitgevoerd nog voordat alle obj_dots bestaan?
Slimme vraag, maar het antwoord kun je zelf proberen te achterhalen. Bijvoorbeeld door show_message_async te gebruiken op de variable inst.

Als het niet lukt (probeer het echt eerst zelf!) dan is er nog een andere mogelijkheid.

Een andere manier is de volgende:
- Maak een array aan van width x height en geef allen variabelen waarde nul
- Voer een do-until loop uit
- Geef ieder element in de array een willekeurig getal (net als de image_index)
- Check of voor ieder element uit de array met een dubbele for-loop er een match kan worden gebruikt (net als met instance_position etc.)
- Aan het eind: Maak de objecten aan en geef ze de variabele image_index op basis van de waardes in de array.

Mocht het niet lukken, dan kun je altijd weer om hulp vragen!

 22 
 Gepost op: 24 Augustus 2020, 18:49:51 
Gestart door Martientje - Laatste bericht door Martientje
Helaas. Ik heb uw code gebruikt, maar hij geeft nog steeds een match. Ik vroeg me af of het kon liggen aan het feit dat deze code in het create event word uitgevoerd? Dat het word uitgevoerd nog voordat alle obj_dots bestaan? Want ik zie nergens een fout in de codes die er zijn bedacht (ook andere codes die ik had bedacht moeten in theorie werken) alleen werken ze niet. Zoud u nog een keer naar de code willen kijken? Ik wil heel graag dat het spel gaat werken.

 23 
 Gepost op: 18 Augustus 2020, 21:52:25 
Gestart door Martientje - Laatste bericht door massimot
Sorry, ik begrijp je script nu pas. Ik zou het volgende adviseren.

- Voer het deel om de instanties aan te maken 1x uit, dan kun je van die instanties de image_index later aanpassen
- In de loop stellen we eerst willekeurige image_index in voor alle instanties
- Daarna checken we of het zo "goed" is, dus geen matches
- Zo ja, stoppen
- Zo nee, herhaal de do-until loop

Zie de code hieronder. Ik weet 90% zeker dat dit werkt, maar misschien moet je nog iets wijzigen. Stel je vragen gerust.

Create Event
GML:
//initialize variables
width = 6;
height = 10;

offset = 32;

xstart = 88;
ystart = 216;


// Create the field
for (i=0; i < width; i++){
for (j=0; j <height; j++){
instance_create(offset * i + xstart, offset * j + ystart,obj_background_tile)
var dot = instance_create(offset * i + xstart, offset * j + ystart,obj_dots)
}
}

// Check that no matches can be made
var match = true;
do
{

// Set random image_index
for (i=0; i < width; i++){
for (j=0; j < height; j++){
var inst = instance_position(offset * i + xstart, offset * j + ystart,obj_dots);
inst.image_index = choose(0,1,2,3); // LET OP: vul hier in wat je nodig hebt
}
}

var match = false;
for (i=0; i < width; i++){
for (j=0; j < height; j++){

var inst = instance_position(offset * i + xstart, offset * j + ystart,obj_dots);

// Left-right check
if (i > 0 and i < width - 1)
{
var inst_left = instance_position(offset * (i-1) + xstart, offset * j + ystart,dot.y,obj_dots);
var inst_right = instance_position(offset * (i+1) + xstart, offset * j + ystart,obj_dots);

// Als er links en rechts een zelfde ligt, dan is er 3 op een rij
if (inst.image_index == inst_left.image_index and inst.image_index == inst_right.image_index)
{
match = true;
break;
}
}

// Bottom-down check
if (j > 0 and j < height-1)
{
var inst_up = instance_position(offset * i + xstart, offset * (j-1) + ystart,obj_dots);
var inst_down = instance_position(offset * i + xstart, offset * (j+1) + ystart,obj_dots);

// Als er links en rechts een zelfde ligt, dan is er 3 op een rij
if (inst.image_index == inst_up.image_index and inst.image_index == inst_down.image_index)
{
match = true;
break;
}
}

}
}
until (!match)

alarm[0]=20;

state = "Fill";

 24 
 Gepost op: 17 Augustus 2020, 16:22:19 
Gestart door Martientje - Laatste bericht door Martientje
ik heb inmiddels de code veranderd zodat hij de instanties ook verwijderd nadat de var match true is. Maar toch doet de code het nog steeds niet. Ik ben al met andere objecten gaan werken omdat ik dacht dat het er misschien aan lag dat de instanties van o_Dot nog niet bestonden, maar dat lijkt ook niet te werken, hij pakt daarbij de var dot1, dot2, dot3 en dot4 niet, terwijl ik ze wel initialiseer in het create event.

 25 
 Gepost op: 17 Augustus 2020, 07:38:18 
Gestart door Martientje - Laatste bericht door massimot
Omdat je alleen maar instances aanmaakt met instance_create() maar ze niet verwijderd met instance_destroy().

 26 
 Gepost op: 11 Augustus 2020, 19:30:53 
Gestart door Martientje - Laatste bericht door Martientje
sorry voor mijn hele late reactie,

Ik besef me dat hij dat doet, maar wat hij niet doet is de code herhalen totdat er geen match meer word gemaakt. Ik krijg nog steeds matched pieces. Ik snap niet waarom.

 27 
 Gepost op: 25 Juli 2020, 09:02:58 
Gestart door Martientje - Laatste bericht door massimot
Sorry voor de hele late reactie.
Wat bedoel je precies met "hij werkt niet" ?

Ik neem aan dat deze code het speelveld aanmaakt van het spel? Want dat ziet er best goed uit eigenlijk, maar er is één puntje:
Als je een veld hebt gegenereerd, en dan blijkt er een drie-op-een-rij in te zitten (match = true), dan voert GMS de do-until loop nog eens uit. Maar dan maakt hij ook de background tiles weer aan? Dat is vast niet de bedoeling...

 28 
 Gepost op: 21 Juli 2020, 01:39:04 
Gestart door JasperGameNOOB - Laatste bericht door RobbertC5
Hey wat doet mijn naam in dit spel, ik ga je aanklagen.

 29 
 Gepost op: 19 Juli 2020, 10:45:40 
Gestart door Steelkenny - Laatste bericht door Steelkenny
Tofkes

 30 
 Gepost op: 14 Juli 2020, 20:48:41 
Gestart door Steelkenny - Laatste bericht door joeykapi
Vanaf vandaag hebben we een discord bot die nieuwe berichten op dit forum in de Discord channel zetten zodat we sneller kunnen reageren Gemoedelijk

als het goed is kijkt hij ook naar edits

en natuurlijk werkt dat nog niet
Nu wel Gemoedelijk

jeej
en nog een edit voor onze lieftallige flumble

Pagina's: 1 2 [3] 4 5 ... 10 >
Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2021 Nederlandse Game Maker Community