Kollisionsprüfung/Scrollmap

  • GM 8

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

  • Kollisionsprüfung/Scrollmap

    Hallo Leute, ich habe 2 Fragen:

    1. Ich arbeite nach wie vor fleissig an meinem Strategie-Spiel und habe beim Bauen ein Problem. Eigentlich sollte es einfach sein, aber ich komme einfach nicht drauf, wie ich es machen soll. Die Sache ist folgende: Man kann die Gebäude auswählen, dann verfolgen sie die Maus und am gewünschten Platz kann man sie schlussendlich bauen. So kennt man das ja von den meisten Strategie-Spielen. Aber ich bringe es nicht fertig, dass sie rot werden, wenn man über ein bereits vorhandenes Objekt fährt.

    2. Ist es möglich, eine Scroll-Map zu erstellen, also wenn man mit der Maus an den oberen Bildschirmrand geht, ist man auf der Karte weiter nördlich. Wenn man dann wieder runter kommt sollten dann dort immer noch die Gebäude sein, die man zuvor gebaut hat.



    Ich hoffe, ihr wisst, was meine Probleme sind.

    lg
    Liebe Grüsse
    MirrorGames
  • ich habe mal ein wenig im Strategie Genre rumprobiert, ich hab es recht einfach gelöst:

    mach ein objekt (nennen wir es obj_mouse), welches im end step event das hier hat

    GML-Quellcode

    1. x=mouse.x
    2. y=mouse.y


    dann sollte die View das objekt verfolgen, einfach im raum einstellen und an dem werten ein wenig rumspielen^^

    zu 1.
    erst variablen definieren:

    GML-Quellcode

    1. kollision_mit_wasweisich = false

    dann erstelste das objekt " obj_buildingparent" und gibst es jedem gebäude, das verhindert, dass du nicht bauen kannst.
    im event mit der Kollision von obj_buildingparent:

    GML-Quellcode

    1. kollision_mit_wasweisich = true


    im step_event:

    GML-Quellcode

    1. if kollision_mit_wasweisich = false { /*dein Code fürs gebäude bauen*/}
    2. else {exit}
  • Also. Du änderst die Roomgröße auf die Gesamtgröße deiner Map. Dann wechselst du im Roomenditor links auf die Registerkarte Views.
    Dort aktivierst du die Kontrollkästchen "Enable the use of views" und "Visible when room starts". Dann gibst du noch bei "View in Room" unter W und H die View Größe ein. Bei Port On Screen gibst du am besten das selbe ein. Das ist dann die Größe, die auf einmal von deiner Map sichtbar ist. Zum Schluss stellst du noch unter "Object following" ein Objekt ein (zb obj_Cursor), welches immer deiner Maus folgt. Damit lässt sich der View jetzt bewegen.

    @edit: Ich hab dir mal schnell ein Example gebastelt. Der Hintergrund ist mist. ;-), aber ich brauchte was, damit du den view sieht.
    Dateien
    • View_Example.rar

      (9,17 kB, 166 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von peini ()

  • So, klappt eigentlich soweit. :) Nur bewegt sich jetzt das auch mit:

    GML-Quellcode

    1. if (global.Bauen == 1)
    2. {
    3. draw_set_font (SimpleSmall);
    4. draw_text (438,452, "Wo wollt Ihr das Haupthaus platzieren?");
    5. }


    und

    GML-Quellcode

    1. draw_text (440,10, "Credits: " + string (global.Credits));




    Diese zwei Sachen sollten jedoch immer oben rechts (Credits) bzw. oben Links (Bauanweisung) stehen. Die Hilfe und die Suchfunktion konnten mir nicht weiterhelfen, weil ich nicht wusste, wonach ich suchen sollte ;)
    Liebe Grüsse
    MirrorGames
  • Mach:

    GML-Quellcode

    1. if (global.Bauen == 1)
    2. {
    3. draw_set_font (SimpleSmall);
    4. draw_text (view_xview[0]+438,view_yview[0]+452, "Wo wollt Ihr das Haupthaus platzieren?");
    5. }

    "view_xview[0]" gibt die X-Position des Views 0 an.
    "view_yview[0]" gibt die Y-Position des Views 0 an.
  • Benutzer online 2

    2 Besucher