Weitere kleine Fragen

  • GM 7
  • Weitere kleine Fragen

    Moinmoin,

    dann leg ich mal gleich los :P :

    1.) Ich möchte für meinen Level (1024 Pixel hoch und ca 10000 Pixel breit) einen einheitlichen Hintergrund (Größe 1280x1024) haben. Es soll so funktionieren :

    Der Spieler startet am Anfang und muss sich dann nach und nach durch das Level bewegen. Hierbei wird der Levelausschnitt (1280x1024) durch die Bewegung des Spielers gescrollt, dabei soll sich allerdings nicht der Hintergrund (Größe 1280x1024) mitbewegen! Wie kann ich das realisieren?

    2.) Ich möchte eine Gegnerklasse mit 2 Sprites ausstatten : 1x eine Bewegungssprite nach rechts und eine nach links. Dies soll diese Gegnerklasse, die sich frei bewegt, eigenständig ändern. Ich habe es mit:

    GML-Quellcode

    1. if hspeed > 0
    2. {sprite_index:blablay;}
    3. else
    4. {sprite_index:blablax;}


    probiert. Allerdings ändert dann diese Gegnerklasse nicht automatisch, je nach dem in welche Richtung sich diese bewegt, die Bewegungssprites. Woran kann das liegen und vor allen Dingen, wie kann ich es beheben :P?

    3.) Ich möchte größere Hintergründe, Sounds und eventuell Videos extern in das Spiel laden, da es über Game Maker extrem lange dauert...
    - Wie kann ich das machen? Gibt es diese Funktion überhaupt, ich habe nämlich bis jetzt noch nichts darüber gelesen, oder an den falschen Stellen nachgeschlagen. Wenn ja, wie kann ich dann die extern geladenen Sachen in das Spiel einbinden?

    4.) Momentan habe ich auch Probleme mit dem Abspielen der Sounds. Folgendes passiert:
    - Wenn ich als Spieler die Space Taste drücke, führt meine Spielfigur einen Schlag aus. Dabei wird ein "Hit"- Sound abgespielt. Das Problem ist, dass der Sound nicht nur einmal abgespielt wird, wenn man die Space Taste drückt, sondern er wird solang wiederholt, bis man die Space Taste loslässt... Woran kann das liegen? Ich habe auf jeden Fall nicht den Loop-Sound Befehl verwendet! Es soll so funktionieren, dass pro Betätigung der Space Taste nur 1x der Sound abgespielt wird

    Das wars erstmal, danke schonmal im Voraus ;)
  • Ich muss mein Senf dazulegen, fangen wir an:

    1. Besimmt benutzt du ein View.. Dein View verfolgt den Spieler, richtig?
    Erstell ein Objekt und setz im draw_event das ein:

    GML-Quellcode

    1. draw_background(view_xview[0]+0,view_yview[0]+0,dein_background);


    2. Naja, das würde nur klappen, wenn dein Gegner auch hspeed zum vorranbewegen benutzt,
    hast du auch diesen code ins richtige objekt gesteckt?

    3. Du kannst große dateien ins spiel nur laden, wenn du sie extern lädst,
    so sparst du viel performance.

    4. Ändere den Space-Event auf Key Pressed Space (das bedeutet, wenn gedrückt)
  • 1. Ins Step Event:
    background_x[0] = view_xview[0]
    background_y[0] = view_yview[0]

    2. sprite_index= muss es heißen nich : (vorausgesetzt du bewegst dein Objekt mit speed)

    3. sprite_add, sound_add usw.

    4. Dein Befehl zum Sound abspielen muß dann in den Key Press Space Event
  • So, hab mich mal direkt probiert...

    1.) Also das mit dem Hintergrund funktioniert perfekt.

    2.) Habe mal geschaut wegen dem Prob mit den Spriteänderungen.. Also das Script ist dem richtigen Objekt zugeordnet und dort steht auch "sprite_index=". Zu sagen wäre vielleicht noch, dass diese Gegnerklasse den Spieler ab einem Radius von 250 Pixeln verfolgt und von diesem ablässt, wenn er wieder außerhalb des Radius von 250 Pixeln gelangt. Weiß nicht ob es deswegen mit "hspeed" nicht funktioniert?! Wie könnte man da Abhilfe schaffen?

    3.) Habe noch nicht ganz verstanden wie das funktioniert mit dem extern laden...

    Gesetzt den Fall man lädt alle Dateien (Sounds, Videos etc.) für einen Level in einen Raum, der als Loading Screen gedacht ist:

    Kann ich das dann so lösen, dass ich dann alles was das level benötigt per "sprite_add, sound_add usw." in ein Script schreibe und das in ein Create Event eines Objekts packe, welches sich auf dem Loading Screen befindet? Eine weitere Frage wäre natürlich, ob dann die geladenen Objekte erhalten bleiben und importiert werden können, wenn sich der Raum "Loading Screen" zu Raum "Level 1" ändert. Wenn ja, mit welchem Befehl kann ich dann diese Sounds/Sprites/Videos ingame abrufen/abspielen?

    4.) Gut^^, hier habe ich die Lage etwas schlecht erläutert :pinch:

    Also der Spieler kann nur dann zuschlagen, wenn er Space + A oder D oder keine Taste drückt. Folglich erfolgt auch nur dann eine Spriteänderung bzw. ein Abspielen des Sounds wenn diese Auflagen erfüllt sind, was dann wieder die Frage aufwirft, wie das genau zu realisieren ist :p
  • 2. wenn du den geschwindigkeitswert speed beim verfolgen benutzt, dann muss der code so heissen:

    GML-Quellcode

    1. if speed >0{image_index=1;image_speed=0;}
    2. else{image_index=0;image_speed=0;}


    3. extern laden funktioniert so:

    I. datei in den ordner stecken, da wo dein projekt(spiel) ist!
    II. z.b. erstell einen sound !aber! erstelll ihn einfach und OK, keinen sound laden oder sonst noch was!
    III. beim objekt, create machst du

    GML-Quellcode

    1. sound_replace(sound0,musik_aus_dem_ordner.mp3,0,1);
    2. sound_play(sound0);


    4. erstell einfach eine variable z.b. laut=0;
    dann fragst du da ab, wo du die kombo-tasten abfragst, machste einfach dazu:

    GML-Quellcode

    1. if keyboard_check_pressed(vk_space) && keyboard_check_pressed(ord('A')) && laut=0{laut=1;}
    2. if laut=1{sound_play(sound0);laut=0;}