MapCreater

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Schönen Abend!

    Ich arbeite gerade an einem Projekt, das mir in der Schule einfiel! Zurzeit arbeite ich an dem MapCreater. Dieser soll Gold, Stein und Holz auf einer Karte erstellen und zwar sinnvoll! Der Raum ist 1280*1280 groß und jeder Block 16*16! Ich habe bereits einen Creater geschrieben doch der arbeit seehr zufällig, das heißt man kann auch Pech haben und z.b.: kein Gold bzw. Stein in seiner Umgebung haben! Er braucht ca. 2 Sekunden um die Karte zu erstellen. Naja ich werd euch mal den Script zeigen und hoffe auf Verbesserungsvorschläge bzw. auf Engines die es ca. so machen wie ich es will.

    GML-Quellcode

    1. /*
    2. Wird im Creation code des Raumes ausgeführt!
    3. */
    4. var i;
    5. var j;
    6. for(i=0; i<room_width;i+=16)
    7. {
    8. for(j=0; j<room_height;j+=16)
    9. {
    10. instance_create(i,j,obj_bauplatz);
    11. }
    12. }
    13. var xx, yy, schalter;
    14. for(i=0;i<(room_height+room_width)/640;i+=1)
    15. {
    16. do
    17. {
    18. xx = random(floor(room_width/16)*16);
    19. yy = random(floor(room_height/16)*16);
    20. schalter = false;
    21. with(instance_position(xx,yy,obj_bauplatz)) {if(sprite_index==spr_bauplatz){schalter = true; sprite_index = spr_gold; haupt_gold = true;}}
    22. }until(schalter==true)
    23. }
    24. for(i=0;i<(room_height+room_width)/640;i+=1)
    25. {
    26. do
    27. {
    28. xx = random(floor(room_width/16)*16);
    29. yy = random(floor(room_height/16)*16);
    30. schalter = false;
    31. with(instance_position(xx,yy,obj_bauplatz)) {if(sprite_index==spr_bauplatz){schalter = true; sprite_index = spr_stein; haupt_stein = true;}}
    32. }until(schalter==true)
    33. }
    34. for(i=0;i<(room_height+room_width)/8;i+=1)
    35. {
    36. do
    37. {
    38. xx = random(floor(room_width/16)*16);
    39. yy = random(floor(room_height/16)*16);
    40. schalter = false;
    41. with(instance_position(xx,yy,obj_bauplatz)) {if(sprite_index==spr_bauplatz){schalter = true; sprite_index = spr_holz; haupt_holz = true;}}
    42. }until(schalter==true)
    43. }
    44. instance_create(0,0,obj_control);
    Alles anzeigen


    Und in dem Object 'obj_bauplatz' ist im StepEvent dieser Code

    GML-Quellcode

    1. /*---Gold wird erstellt---S-T-A-R-T---*/
    2. if(haupt_gold == true)
    3. {
    4. haupt_gold = false;
    5. for(i=0; i<10;i+=1)
    6. {
    7. richtung=round(random(3));
    8. if(richtung==0) {xx=+16; yy=0; } //Rechts
    9. if(richtung==1) {xx=0; yy=+16;} //Runter
    10. if(richtung==2) {xx=-16; yy=0; } //Links
    11. if(richtung==3) {xx=0; yy=-16;} //Rauf
    12. with(instance_position(x+xx,y+yy,obj_bauplatz))
    13. {
    14. if(sprite_index==spr_gold)
    15. {
    16. richtung=round(random(3));
    17. if(richtung==0) {xx=+16; yy=0; } //Rechts
    18. if(richtung==1) {xx=0; yy=+16;} //Runter
    19. if(richtung==2) {xx=-16; yy=0; } //Links
    20. if(richtung==3) {xx=0; yy=-16;} //Rauf
    21. with(instance_position(x+xx,y+yy,obj_bauplatz))
    22. {
    23. sprite_index=spr_gold;
    24. }
    25. }
    26. else
    27. {
    28. sprite_index=spr_gold;
    29. }
    30. }
    31. }
    32. }
    33. /*---Gold wird erstellt---E-N-D-E---*/
    Alles anzeigen

    Dieser wird auch für Holz und Stein gleich verwenden und es wäre nur Platzverschwendung, wenn ich ihm hier auch posten würde.

    Bei den Bäumen passt etwas nicht und zwar werden sie auch gleich wie das Gold bzw. Stein erstellt doch gibt es für mich einfach vieel zu viele Lücken! Es sollte ein richtiger Wald werden, jedoch auch noch genug Bauplatz! Ich hoffe ihr versteht wie ich meine. Jetzt die Frage:
    1. Wie könnte ich die Punkte wo die Bäume, Gold und Steine erstellt werden Sinnvoller wählen.
    2. Gibt es irgendwelche vorgefertigten Scripts, die ich mir dann anschauen kann.
    3. Welche Ideen zum MapCreater hättet ihr noch?

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.