Jump, Shoot and Run, erste Schritte :)

  • GM 8
  • Jump, Shoot and Run, erste Schritte :)

    LETZTES UPDATE VOM BEITRAG: 24.04.2013 - 10:00 Uhr

    Liebe GameMaker Community,

    ich versuche mich seit kurzen durch Youtube Anleitungen etwas in GameMaker einzulernen was mir sehr viel freude bereitet, jedoch stecke ich derzeit an Fehlern wo mir einfach nicht das Licht aufgeht wo mein Fehler ist.

    (Verwende aktuell 3 fertige Scripte welche ich versuche zu einem zusammen zu bauen, bissal rumspielen und dabei hoffentlich etwas lernen *gg*)

    Problem welche ich irgendwie nicht hinbekomme (24.04.2013 - 10.00 Uhr):
    • -keine Probleme aktuell-

    Über Denkanstöße würde ich mich sehr freuen :thumbsup:

    Die Datei:
    Version 1.1
    Version 1.2
    Version 1.3

    Das Spiel als Exe:
    Version 1.2
    Version 1.3

    (Und ja Grafisch ist es noch nichts ich weiß, mir geht es derzeit erstmal um die Funktionen lernen dann gehts ans Photoshop wo gottseidank mehr Erfahrung vorhanden ist *hihi*)

    Aktueller Stand des Spieles Version 1.1:

    Spoiler anzeigen
    Funktioniert - Rechts, Links laufen + Springen (+Animation Rechts + Links)
    Funktioniert - Leiter rauf/runter gehen (+Animation dafür)
    Funktioniert - Taste "Q" = Gott Item (bekommt keinen Schaden und tötet alles im Kreis des Schildes) + Jeder Gegner gibt 1x Geld-Bonus
    Funktioniert - Linke Maustaste = Schießen (Animation)
    Funktioniert - Speicherpunkte wenn man tot ist (immer nur ein Speicherpunkt aktiv)
    Funktioniert - Shop-System wo man Geld für Spezialitem ausgeben kann oder diese für Gold verkaufen kann
    Funktioniert - "Ziel" was das nächste Level startet
    Funktioniert - Gegner zielen und schießen auf Spieler
    Funktioniert - HP System für Spieler mit Anzeige
    Funktioniert - Gegner töten durch Draufspringen = erhält mein 1Stück Geld-Bonus
    Funktioniert - Gegner töten durch Schießen = kein Geld-Bonus
    Funktioniert - Wenn man In Gegner hineinlauft wird Leben abgezogen und Gegner stirbt
    Funktioniert - Animation bei Geld einsammeln
    Funktioniert - Einsammeln von Geld für Shop-Systerm + Anzeige Links oben


    Update Version 1.2 - 17.04.2013 16:00 Uhr

    Spoiler anzeigen
    Funktioniert - Medipacks als Item mit Tastenkombination und Shop-System Kauf und Verkaufen eingebaut (Taste "E")
    Funktioniert - Gegner laufen und Schießen gleichzeitig, wurde nun intelligenter gemacht
    Funktioniert - ## Fehler gefixt ## Beim Shop verlassen nur 10 Lebenpunkte Fehler
    Funktioniert - Gegner Animation beim Sterben
    Funktioniert - ## Fehler gefixt ## Bild bei Leiter rauf und runter nicht angezeigt
    Funktioniert - Medipack Animiert beim berühren


    Update Version 1.3 - 18.04.2013 - 14:00 Uhr
    Spoiler anzeigen
    Funktioniert - Statt Maus, Fadenkreuz zum Schießen (Danke Larsi POSTLINK )
    Funktioniert - Gegner neue Schuss Animation hinzugefügt und Geschwindigkeit angepasst
    Funktioniert - Gegner Animiert
    Funktioniert - ## Fehler gefixt ## Sobald meine HP auf 0 ist Reset er leider nicht, sondern bleibt einfach stehen
    Funktioniert - Neues Ladebild + Icon
    Funktioniert - Tastenerweiterung jetzt funktioniert auch Tasten UP, DOWN, RIGHT, LEFT für Steuerung wie 1 und 2 für Items
    Funktioniert - Animation Anpassung für Rauf und Runter klettern erweitert
    Funktioniert - Anzeige wurde optimiert (Leben, Geld, Spezialitem, Medipack)


    Update Version 1.4 - In Arbeit
    Spoiler anzeigen
    Funktioniert - Menü mit Grafischer Oberfläche eingeführt (Funktionen: Neues Spiel, Weiterspielen, Anleitung, Beenden)
    Funktioniert - Weiterspielen den Infotext "Es wurde kein Spielstand gefunden." Grafisch aufwerten.
    Funktioniert - Sofern "Neues Spiel" ausgewählt wird und Save.game vorhanden ist, Abfrage ob Save.game überschrieben werden soll + garfische Überarbeitung.
    Funktioniert - Neues Spiel Informationen Buttons optisch versetzt, danke an Larsi POSTLINK
    Funktioniert - Animation von Rauf und Runter wird nun korrekt angezeigt
    Funktioniert - Gegner haben jetzt jenachdem wie Sie sterben eigene sterbe Animation (draufspringen, reinlaufen, erschissen)
    Funktioniert - Level Select hinzugefügt
    Funktioniert - Fehler im Shop System gefixt


    Aktuelle DoTo-Liste
    In Arbeit - Sound Test + Erweitern für alle Aktionen
    In Arbeit - Storyboard
    weitere arbeiten folgen sicher noch... *gg*


    8o Ein großes Danke an folgende User 8o

    *gelöst* Danke an OraCom - Problem: POSTLINK
    Gegner können durch 3 Arten Sterben 1. draufspringen, 2. reinlaufen, 3.
    erschießen, nur ihrgentwie kapier ich nicht ganz wie ich dem jeweiligen
    Tot eine eigene Animation / Sprite zuweisen kann
    Lösung: leider etwas umfangreicher daher bitte Postlink beachten :)

    *gelöst* Danke an Larsi- Problem: POSTLINK
    Animation von Leiter rauf und runter funktioniert leider nicht ?!
    Lösung: code um Y Achse erweitern "image_index = y/10"

    *gelöst* Danke an OraCom - Problem: POSTLINK
    Sobald meine HP auf 0 ist Reset er leider nicht, sondern bleibt einfach stehen
    Lösung: "room_restart()" durch "loosecode()" ersetzen in steuer / step

    *gelöst* Danke an Larsi - Problem: POSTLINK
    Meine Gegner haben irgendwie Orientierungsprobleme und somit laufen Sie ab und zu, dann bleiben Sie wieder nur stehen und Schießen usw. Würde gerne das Sie sich immer bewegen mit dem vorgegeben Speed wert und dabei auf mich Schießen.
    Lösung: "direction = random(360)" gegen "hspeed *= -1" austauschen unter Gegner / Step

    *gelöst* Danke an Aku_Ryou - Problem: POSTLINK
    Wenn man den Shop verlässt hat man nur noch 10 Lebenspunkte, dies sollte natürlich nicht der Fall sein.
    Über Denkanstöße was ich hier falsch mache bzw wo mein Denkfehler ist würde ich mich sehr freuen.
    Lösung: "health = 10" unter steuershop / Create löschen
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Dieser Beitrag wurde bereits 64 mal editiert, zuletzt von mauiwaui ()

  • Haha, das Video, von dem Spiel/Tutorial kenn ich...

    Echt komische Fehler....
    Aber immerhin konnte ich den Gegner reperiren...

    file-upload.net/download-7480456/Game1.1.gm81.html
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Larsi schrieb:

    Haha, das Video, von dem Spiel/Tutorial kenn ich...

    Echt komische Fehler....
    Aber immerhin konnte ich den Gegner reperiren...

    file-upload.net/download-7480456/Game1.1.gm81.html
    Ja ich denke das ich schon viel darin herumgepufscht hab und somit wie bei windows auch, eine ändern bei ecke a, einen fehler bei ecke b auslöst gg,

    aber danke dir für das werde es mir gleich herunterladen :)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Ich bin mir grad nicht sicher ob health von haus aus eine globale Variable ist, ich glaube aber schon.

    Aber, du brauchst nicht jeden Step abfragen ob health eh noch über 0 ist. Lass einfach nur wenn der Spieler schaden erleidet abfragen ob er nun unter 0 Leben hat und in dann sterben.

    Und warum stellst du im Steuershop Object health auf 10? Dann ist ja klar dass wenn du den Shop verlässt du nur 10 Leben hast, bzw obwohl der Spieler nicht im Shop zu sehen ist, hat er sobald er den Shop betritt nur mehr 10 Leben.

    Ich hab den ganzen Code nur überflogen, aber du hast random auswählen lassen was sie tun. Ich kann mir leider nicht ansehen wie sich deine Gegner momentan bewegen, da ich nur den GM 8.0 hab und mir das spiel bei start einen Error wirft. Jedenfalls hast du Gravitation und die Gegner scheinen sich nur nach links und rechts zu bewegen können. Du brauchst also keine random Direction zu setzen sondern nur links oder rechts. und wenn sie schießen dann schießen sie entweder nach links oder rechts. Besser noch!

    GML-Quellcode

    1. if player.x < enemy.x
    2. {
    3. if canshoot = true
    4. {
    5. links = 1
    6. create bullet x,y
    7. alarm[1]= 1000
    8. etc
    9. }
    10. }

    den Alarm kannst du benutzen damit der Geist nur alle soundsoviele steps schießt falls der Spieler neben im steht. du kannst auch eine range angeben in die der spieler erst kommen muss damit der geist schießt.


    ich hoffe ich konnte denkanstossen und helfen.

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • Danke euch zwei !!! habe mir erlaubt euch ganz oben mit einem Danke zu verewigen + die Lösung dazuzuschreiben, sofern es euch nicht stört. Vielleicht haben ja andere Leute auch mal das Problem dann müssen Sie nicht solange suche :)

    Leider verstehe ich das wegen dem Reset beim Sterben noch nicht ganz, bzw stehe hier immer noch auf der Leiter :(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Das mit dem stehenbleiben liegt an einem game_save/game_load kreislauf.
    Den Fehler habe ich aber noch nicht gefunden...

    Und das mit Fadenkreuz statt Maus ist einfach...
    Erst nimmst du in den Global-Game-Settings bei display the Curser den Hacken raus
    Dann erstelle ein Object "Fadenkreuz" oder so
    Dannach mach in das Draw_Event einen Code und schreibe rein:

    GML-Quellcode

    1. draw_sprite(Fadenkreuz,0,mouse_x,mouse_y)
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Edit: verdammt haut doch nicht hin :(, noch wer ideen woran es liegen kann

    Problem gelösst:

    if health <= 0
    {
    sound_play(loose)
    game_load("game.save")
    }

    statt

    if health <= 0
    {
    sound_play(loose)
    room_restart()
    }

    "game_save/game_load kreislauf." hat mich auf die Idee gebracht DANKE
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mauiwaui ()

  • hi,
    wieso haut das mit room_start bei dir nicht hin? EDIT: meinte game_load,OC
    ich habe mal in deinem objekt steuer im step den hier gemacht:

    GML-Quellcode

    1. if health <= 0{ sound_play(loose) loosecode()}


    und er startet das gespeicherte spiel neu...an der ersten flagge, die ich anlief...wie gewünscht.
    ? oder verstehe ich dich falsch?

    ...was mir auffiel: wenn man die enemies seitlich berührt, gehen diese auch tot, ohne geld - ist das so gewollt?

    der macht den code schon wieder in eine zeile :motz: ,OC
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    (Albert Einstein)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von OraCom ()

  • OraCom schrieb:

    hi,
    wieso haut das mit room_start bei dir nicht hin? EDIT: meinte game_load,OC
    ich habe mal in deinem objekt steuer im step den hier gemacht:

    GML-Quellcode

    1. if health <= 0{ sound_play(loose) loosecode()}


    und er startet das gespeicherte spiel neu...an der ersten flagge, die ich anlief...wie gewünscht.
    ? oder verstehe ich dich falsch?

    ...was mir auffiel: wenn man die enemies seitlich berührt, gehen diese auch tot, ohne geld - ist das so gewollt?

    der macht den code schon wieder in eine zeile:motz: ,OC
    perfekt funktioniert danke dir, musste es nur auf das Loosecode verweisen, eigentlich logisch dafür hab ich den ja :S

    danke danke dir

    "...was mir auffiel: wenn man die enemies seitlich berührt, gehen diese auch tot, ohne geld - ist das so gewollt?"
    ist
    absicht, wenn man in gegner reinlauft gibts -25 Lebenspunkte, wenn man
    auf Gegner drauf springt gibts + 1 Geld und keine Lebenspunkte abzüge ;)
    Und wenn man Gegner einfach erschisst gibts kein Geld und kein Lebenspunkte abzug
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

  • Würde gerne Steuerung erweitern, habe dazu auch schon Forum durchsucht und eigentlich sollte das ja stimmen, aber ihrgentwie funktioniert wenn ich diesen Code aktiviere kein rechts und links mehr :/

    PHP-Quellcode

    1. // Steuerung Links-Rechts
    2. if (keyboard_check(ord("D"))) and (keyboard_check(vk_right))
    3. {
    4. hspeed += 7
    5. laspressed = "right"
    6. }
    7. if (keyboard_check(ord("A"))) and (keyboard_check(vk_left))
    8. {
    9. hspeed -= 7
    10. laspressed = "left"
    11. }
    Alles anzeigen


    EDIT: AHHH ich brauch den befehl für "OR" und nicht "AND", wenn ich beide tasten auf einmal drücke geht es ja mit "AND" gg
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mauiwaui ()

  • Version 1.3 ist nun öffentlich und 2 Fehler bekomme ich einfach nicht in den Griff, hat hier wär einen Tipp wo ich ansetzen muss dafür :)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • welche 2 fehler wären es denn?

    ...oder habe ich was überlesen?!, OC



    EDIT: lol...du verwirrst mich...einerseits editierst du immer deinen ersten eintrag, anderseit haust du hier jede meldung neu rein - ohne edit...dadurch hab ich den ersten glatt überlesen ;) OC

    EDIT2: dein link geht nicht? wenn ich sage, dass er speichern soll (die source von 1.3), dann kommt nix an bei mir...

    bitte prüfe das mal, OC

    EDIT3: ist doch nicht wahr: eben war ich noch mit IE8 unterwegs und es ging nicht...nun gewechselt zum crome und es geht Oo

    mysteriös,OC
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    (Albert Einstein)

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

  • OraCom schrieb:

    welche 2 fehler wären es denn?

    ...oder habe ich was überlesen?!, OC



    EDIT: lol...du verwirrst mich...einerseits editierst du immer deinen ersten eintrag, anderseit haust du hier jede meldung neu rein - ohne edit...dadurch hab ich den ersten glatt überlesen ;) OC

    EDIT2: dein link geht nicht? wenn ich sage, dass er speichern soll (die source von 1.3), dann kommt nix an bei mir...

    bitte prüfe das mal, OC

    EDIT3: ist doch nicht wahr: eben war ich noch mit IE8 unterwegs und es ging nicht...nun gewechselt zum crome und es geht Oo

    mysteriös,OC

    Hallo und Sorry das ich dich da verwirrt habe, werde nun beim ersten Beitrag dazuschreiben wann es geupdatet wurde und was neu ist.

    Ich möchte nur nicht für jede kleine Frage einen neuen Beitrag öffnen und versuche somit alle Lösungen im ersten Beitrag mit meiner Frage + Lösung zu veröffentlichen wie den aktuellen Stand meines ersten Spieles. (Sofern den Mods das nicht recht ist bitte kurze Info).

    Der Download funktioniert bei mir eigentlich einwandfrei, solltest du heute immer noch Probleme haben werde ich es über einen FileshareServer wo machen.


    Aber ja bis jetzt muss ich sagen macht Game-Maker echt sehr viel Spaß und wie man sieht schafft es auch ein Einsteiger mit 0 vorkenntnissen in kürzester Zeit ein brauchbares Projekt zu starten *gg*, meine Frau jammert schon das ich zu viel Zeit dafür investiere :love:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Habe mich gerade mit dem deutschen Handbuch versucht meinen Message Pop-Up Design anzupassen, nur ihrgentwie juckt im das nicht, ich denke mal das ich hier einen dummen Anfänger Programmierfehler gemacht habe, nur ihrgentwie komme ich nach 1 Stunde Google arbeit nicht dahinter wo hier mein Fehler liegt.

    PHP-Quellcode

    1. if show_message_ext("Möchten Sie ein neues Spiel starten?#Eventuell gespeicherte Spielerstände werden dadurch gelöscht","Ja","Nein","") == 1
    2. {
    3. message_background (Menue) //Backgroundbild auswählen in ()
    4. message_text_font("Verdana",8,c_black,0) //Text formation
    5. message_button_font("Verdana",8,c_black,1) //Button formation
    6. }
    7. room_goto(0)


    Bitte nicht lachen, aber ja meine ersten versuche am selbst Programmieren *gg*


    Edit: okey dank eines netten PN fehler erkannt :)

    Code muss natürlich über den Text stehen *hihi*

    PHP-Quellcode

    1. message_background (popuphintergrund)
    2. message_button(buttonmenue)
    3. message_text_font('Verdana',10,c_white,1)
    4. message_button_font('Verdana',12,c_white,1)
    5. if show_message_ext("Möchten Sie ein neues Spiel starten?#Eventuell gespeicherte Spielerstände werden dadurch gelöscht!","Ja","Nein","") == 1
    6. room_goto(0)


    Jedoch eines passt mir noch nicht ganz *gg* hab ich eine möglichkeit die Buttons schöner in die Mitte zu tun und den abstand zu erhöhen, habe es versucht einfach mit der Grafik selbst zu lösen, jedoch überschneidet er mir dann die grafiken :(

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

  • Vielleicht hilft dir das weiter:

    gmc.yoyogames.com/index.php?showtopic=517971

    und das:

    gamemaker.simondonkers.com/script/15

    ich hab nix über ein art align_center gelesen...aber du kannst auch RLP hier auf dem Board per PN kontaktieren, der hat viel Erfahrung mit eigenen Messageboxen und ich glaub ich hab bei ihm auch schon mittige Buttons gesehen.

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • GML-Quellcode

    1. show_message_ext("Laden ?","Ja","Nein","") // Buttons sind links und in der mitte
    2. show_message_ext("Laden ?","Ja","","Nein") // Buttons sind links und in der rechts
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Larsi schrieb:

    GML-Quellcode

    1. show_message_ext("Laden ?","Ja","Nein","") // Buttons sind links und in der mitte
    2. show_message_ext("Laden ?","Ja","","Nein") // Buttons sind links und in der rechts
    perfekt danke dir :)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    No Risk - No Fun
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • mauiwaui schrieb:

    Gegner können durch 3 Arten Sterben 1. draufspringen, 2. reinlaufen, 3. erschießen, nur ihrgentwie kapier ich nicht ganz wie ich dem jeweiligen Tot eine eigene Animation / Sprite zuweisen kann

    mach dir drei objekte: draufspringen, reinlaufen und erschiessen

    in jedem objekt im create:

    GML-Quellcode

    1. alarm[0]=15//oder so lange du willst

    im alarm[0]:

    GML-Quellcode

    1. instance_destroy()


    bei gegner im event schuss ergänst du deinen vorhandenen code:

    GML-Quellcode

    1. leben -= 1
    2. if leben < 0{
    3. instance_destroy()
    4. instance_create(x,y,erschiessen)//<--um diese zeile...
    5. exit
    6. }


    ...schiessen fertig - die anderen beiden setzt du rein bei deinem objekt spieler im event gegner - beispiel für sprung:

    GML-Quellcode

    1. if ((vspeed > 0) or (instance_exists(powerschild)))
    2. {
    3. vspeed = -12
    4. instance_create(other.x,other.y,munze)
    5. with other do instance_destroy()
    6. instance_create(x,y,draufspringen)//<--hier für draufspringen
    7. }
    8. else
    9. health -= 25


    reinlaufen dann analog zu draufspringen :)

    müsste so klappen,OC
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    (Albert Einstein)
  • Benutzer online 2

    2 Besucher