Anfängerfragen

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

  • Anfängerfragen

    Hallo zusammen,

    also ich bin neu hier und hab mir auch gamemaker 6.1 zugelegt nachdem ich lange zeit mit multimediafusion rumhantiert habe.
    Ich hab gleich zu beginn mehrere Fragen *g*

    1. wie könnte ich am besten anfangen das scripten zu lernen ? Das andere hab ich schon soweit verstanden, aber nur mit den grundfunktionen ohne scripten lässt sich anscheinend nicht wirklich viel umsetzen. :(

    2. ich hab verzweifelt versucht erst eine simple fahrzeug-"engine" zu machen... auch mit dem scripten.. aber irgendwie bekomm ich das mit der 360 grad drehung nicht richtig hin und mit der geschwindigkeitszunahme. .. bevor jetzt jemand auf die idee kommt mir die beispiele aus dem forum anzubieten.. ja die hab ich schon *g*.. würd aber gerne eine gute mit gescheiter kollisionserkennung haben.. nicht mit so einem komischen abprallen oder so .... wenn das heck ausbrechen würde beim fahren wäre das zusätzlich richtig genial :)

    3. ich hab das tutorial mit den lichtquellen ganz gut umsetzen können.. auch wenn der start etwas heikel war *g*.. das partikelsystem hab ich auch schon geschnallt.... das einzigste was immer noch nicht bei mir funktionieren will ist das mit den schatten.... :-/ das gibts ja zum download auf der seite :) kann mir da jemand helfen irgendwie ?


    4. ich will als script abfragen ob ein objekt vorhanden ist. Dabei hab ich im scripteditor unten geschaut was so möglich ist und bin auf das gestoßen :

    object_exists(ind)

    ich kapier aber nicht was er mit dem "ind" meint.. für was steht die abkürzung ? ich hab schon im deutschen help geschaut von gm6 aber nix gefunden :-/ sonst hätte ich die kleine frage nicht gepostet :D sry

    5. gibts ein script der die anzahl von objekten abfragt und wenn z.B. 5 vorhanden sind von dem typ dann macht er weiter ?
    also so wie "if OBJEKTANZAHL blablabla"



    ich hoffe ich hab nicht zuviel gefragt *g*

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

  • 4,

    instance_exists(obj) Gibt an, ob eine Instanz des Objektes obj existiert. obj kann ein Objekt, eine Instanz-ID oder das Schlüsselwort "all" sein.




    5.

    instance_number(obj) Gibt die Anzahl der Instanzen von Objekt obj an. obj kann ein Objekt oder das Schlüsselwort "all" sein.


    ind und obj sind das gleiche
    *gähn*
  • Antwort zu 1: Les dir am besten erst einmal die Hilfe durch zum Thema GML. Danach: Getreu nach dem Motto: "Learning by doing!". Es gibt auch zahlreiche Tutorials bei uns hier im Forum und sonst wo im Internet. Einfach mal googlen.

    Ansonsten noch Viel Spaß und Frohe Weihnachten

    Projektsite: www.kabsoft.de.vu
  • RE: Anfängerfragen

    Original von darulaz
    2. ich hab verzweifelt versucht erst eine simple fahrzeug-"engine" zu machen... auch mit dem scripten.. aber irgendwie bekomm ich das mit der 360 grad drehung nicht richtig hin und mit der geschwindigkeitszunahme. .. bevor jetzt jemand auf die idee kommt mir die beispiele aus dem forum anzubieten.. ja die hab ich schon *g*.. würd aber gerne eine gute mit gescheiter kollisionserkennung haben.. nicht mit so einem komischen abprallen oder so .... wenn das heck ausbrechen würde beim fahren wäre das zusätzlich richtig genial :)

    Ne gute kollision is sehr schwer zu machen, aber wo ist den das problem mit der geschwindigkeitszunachme und der 360° drehung?
    Für die 360° Drehung und der Geschwindigkeitszunahme: (Stepevent)

    GML-Quellcode

    1. speed-=0.1 //damit das Auto langsamer wird, wenn man nichts drückt
    2. if keyboard_check_direct(vk_up) //wenn man nach oben drückt
    3. if speed<15 //wenn die Geschwindigkeit kleiner als 15 ist
    4. speed+=0.5 //dann soll die Geschwindigkeit um 0.5 erhöht werden
    5. if keyboard_check_direct(vk_down) //wenn man nach unten drückt
    6. if speed>-10 //wenn die Geschwindigkeit größer als -10 ist
    7. speed-=0.5 //dann soll die Geschwindigkeit um 0.5 gesenkt werden werden
    8. if keyboard_check_direct(vk_left) //wenn man nach links drückt
    9. direction+=2 //dann soll die richtung um 2° nah links gedreht werden
    10. if keyboard_check_direct(vk_left) //wenn man nach rechts drückt
    11. direction-=2 //dann soll die richtung um 2° nah rechts gedreht werden
    Alles anzeigen

    Natürlich kannst du die werte auch n bisschen ändern, falls du ne andere Höchstgeschwindigkeit, Beschleunigung, oder Lenkung haben mlchtest...

    Und damit das auto auch immer in die Richtung guckt, wohin man fährt, muss das Auto sprite nach rechts gucken und folgender code in das drawevent:

    GML-Quellcode

    1. draw_sprite_ext(Autospritename,0,x,y,1,1,direction,c_white,1)

    Du solltest das kreuz, das den x und y wert des sprites bestimmt entweder in den mittelpunkt setzten oder in die mitte der motorhaube, damit die lenkung halbwegs realistisch aussieht...

    Als ich mir das ganze in der Vorschau durchgelesen habe, hab ich gesehn, das du ja bereits ein Example hast... funzt das nicht, oda weiso fragst du nach der Lenkung und der Beschleunigung?
  • Danke erstmal für die Antworten ;)
    hilft mich sicher ;) probiers gleich aus...

    als ich mir das ganze in der Vorschau durchgelesen habe, hab ich gesehn, das du ja bereits ein Example hast... funzt das nicht, oda weiso fragst du nach der Lenkung und der Beschleunigung?


    ich frag deswegen danach weil ich versuchen will das selber zu machen.. das ganze klappt schon.. nur das heck soll noch ausbrechen bei dem fahrzeug ;) mh... wird sicherlich eine schwere sache :-/


    Nachtrag : So ich hab jetzt schonmal eingebaut das des Fahrzeug fährt. Bin zurzeit dabei eine bessere kollisionserkennung zu machen. Unzwar ist mir da so eine idee gekommen die ich euch gerne zeigen würde...

    Kollisionsmethode :

    Das rote Objekt was ihr seht wird immer auf die positions x und y vom fahrzeug gesetzt. Wenn jetzt das Fahrzeug gegen die Wand fährt...



    .. dann wird die steuerung und bewegung gestoppt und das andere objekt geht genau in die andere richtiung (also direction -180) vom fahrzeug weg. In der Zeit wird das fahrzeug auf die x und y koordinate von dem roten objekt gesetzt. Wenn das rote objekt an geschwindigkeit verloren hat bzw. der wert auf 0 ist, dann hat der spieler seine steuerung wieder zurück und das ganze geht von vorne los..... im spiel würde das dann so aussehen als würde das fahrzeug abprallen...
    Damit allerdings das rote objekt auch noch mal anprallt, lassen wir es wenn es wieder auf ein hinderniss trifft abprallen... ansonsten würde bei engen gassen oder wegen im spiel das fahrzeug einfach wo hängen bleben.. wäre nicht schön :)

    habt ihr eine idee wie ich das system umsetzen könnte ? oder würdet ihr ein anderes system einbauen ? ;)


    Wenn wir schon dabei sind.... ich versuch auch verzweifelt das heck vom fahrzeug ausbrechen zu lassen.. ich habs zwar mit variablen versucht aber konnte das bis jetzt nich wirklich so umsetzen... rein von der logik würde mich interessieren wie man sowas machen könnte ?!? :)

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

  • Hmm... für was das rote Object?
    Du kannst doch auch das Auto object apprallen lassen...
    und wenn du willst, dass der SPieler keine kontrolle in der zeit hat, dann machst es halt so:
    bei der Kollision mit der Wand:

    GML-Quellcode

    1. keinekontrolle=1

    im stepevent:

    GML-Quellcode

    1. speed-=0.1 //damit das Auto langsamer wird, wenn man nichts drückt
    2. if keinekontrolle=1
    3. {
    4. speed-=0.2 //wenn der Spieler keine kontrolle hat, soll das auto schneller ausrollen
    5. if speed<1 //wenn der speed kleiner als 1 ist
    6. keinekontrolle=0 //erhälltl man die kontrolle wieder zurück
    7. }
    8. if keinekontrolle=0 // wenn keinekontrolle=1
    9. {
    10. if keyboard_check_direct(vk_up) //wenn man nach oben drückt
    11. if speed<15 //wenn die Geschwindigkeit kleiner als 15 ist
    12. speed+=0.5 //dann soll die Geschwindigkeit um 0.5 erhöht werden
    13. if keyboard_check_direct(vk_down) //wenn man nach unten drückt
    14. if speed>-10 //wenn die Geschwindigkeit größer als -10 ist
    15. speed-=0.5 //dann soll die Geschwindigkeit um 0.5 gesenkt werden werden
    16. if keyboard_check_direct(vk_left) //wenn man nach links drückt
    17. direction+=2 //dann soll die richtung um 2° nah links gedreht werden
    18. if keyboard_check_direct(vk_left) //wenn man nach rechts drückt
    19. direction-=2 //dann soll die richtung um 2° nah rechts gedreht werden
    20. }
    Alles anzeigen


    das mit dem heck ausbrechen lassen, is mehr eine graphische sache, als eine technische...
    du köntnest zb, bei einer kollison mit der wand ne variable (zb.: schaden) n bisschen erhöhen und wenn die variable nen bestimmten wert erreicht hat, wird die grafik auf ein auto ohne motorhaube gesetzt und ein object (mit der motorhaubengrafik) auf dem auto erzeugt, dass dan einfach wegfliegt...
  • Hmm... für was das rote Object? Du kannst doch auch das Auto object apprallen lassen...


    stimmt fast.. ich kann das auto abprallen lassen .. aber weisst du was passiert wenn man abprallt ? dann wechselt er die richtung.. er soll aber nach hinten fahren wenn du weisst was ich meine ;) und nicht in die entgegengesetzte richtung :D
  • mach es doch einfach so:
    Im Collision Event:

    GML-Quellcode

    1. speed=-6


    oder halt speed mit deiner geschwindigkeitsvariable verändern. So fährt er kurz zurück!
    In meiner psychisch soziologischen Konstellation, manifestiert sich die absolute Dominanz positiver Impressionen meines Individuums.
    Kurz: Ich bin geil!

  • jo, ich würde dann folgendes im collisionsevent machen:

    GML-Quellcode

    1. speed=-speed/2 //So prallt man mit halber geschwindigkeit zurück

    kann das durch "/2" auch wegmachen oda 1,bla machen, musst n bisschen rumexperimentieren...
  • Original von TrunX
    im stepevent:

    GML-Quellcode

    1. speed-=0.1 //damit das Auto langsamer wird, wenn man nichts drückt

    Fehlt da nicht noch ne if-Abfrage drum? Sonst wird es nicht stehenbleiben, sondern rückwärts fahren, oder nicht?

    IMHO müsste das so sein (ich hab keinen GM ums zu testen...):

    GML-Quellcode

    1. if speed > 0 //Wenn also Bewegung nach vorn da ist
    2. {
    3. speed-=0.1 //Ausrollen
    4. }
    5. if speed < 0 //Wenn Bewegung nach hinten da ist
    6. {
    7. speed+=0.1 //Ausrollen
    8. }
    Signaturverweigerer

    Na gut, Ausnahme:
    Original von Alexander
    Ich frag dich deswegen um dem Typen weil ich ein seitenansicht(platformansicht) Mafia ähnliches Game mach.Mit Physik

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