Anfrage an User zu Funktionen

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

  • Anfrage an User zu Funktionen

    Hallo meine Freunde

    Das ist an Alle User aus dem Board gerichtet


    Es ist so ich versuche jeden Tag etwas neues zu lernen durch Tutorials,das Hanbuch oder selbst Probieren.Aber da das nicht wirklich gut klappt und man es in der Schule ja auch punkt für punkt durchgeht
    würde ich mich sehr darüber freuen wenn Ihr euch dazu bereit erklärt mir jeden Tag eine Funktion (oder mehrere) zu erklären und zu zeigen wie ich sie benutzen kann.

    Ich schaue ständig in die hilfedateien jedoch bringt das nicht allzuviel wenn man einfach nicht versteht für was es ist und was man damit machen kann.
    Es ist auch nicht viel Arbeit.Es geht nur darum das ich jede Funktion mal kennenlerne und sehe wie man sie anwendet und für was......

    Wie gesagt lernt man ja auch so in einer Schule!
    Ich gebe mir wirklich mühe es zu verstehen aber einfach alleine funktioniert nicht richtig.
    Und erst gestern als mir ein wirklich guter Freund und sehr guter Programmierer zb erklärt hat wie man mit einer for schleife und draw point einen halbkreis zeichnet ist mir aufgefallen das ich nur so
    verstehen und lernen kann.



    Ich wäre wirklich dankbar dafür da mir wirklich viel daran liegt Spiele zu Programmieren und es sonst ewigkeiten dauern würde bis ich alles verstehe.
    Und es würde sicherlich jeden anderen neuen user auch sehr helfen!!


    Danke thx
  • Welche Funktion schwebt dir denn grad vor? Als wir uns geschrieben haben hast du glaub ich mal gesgat dass du nicht verstehen kannst für was man eine ds_list gebrauchen kann. Also die erklär ich dir mal schnell:

    Ne ds_list speichert Werte, in eine rgewissen Reihenfolge. Also es speichert Werte und eben die Reihenfolge. Du kannst z.B. ein Inventar für den Spieler damit machen. Und die Items dann alphabetisch sortiert anzeigen lassen. Oder nach Reihenfolge wann man welches Item erhalten hat sortiert.

    Ich merk grad das mir selber grad nicht mehr als das Inventar-Bsp. einfällt. Bei mir ist es halt immer so: Ich überlege was ich fürs Spiel machen will - z.B. ein Inventar - dann überlege ich was das Inventar können muss - und zu letzt überlege ich welche Funktionen des GMs das können
    So komm ich drauf was man mit den Funktionen anstellen kann. Also learning by doing. Nicht anders herum!

    Ja klar, wobei man natürlich verstanden haben muss was die Funktionen können. Bsp. Du willst Zahlen von 1 - 10 von oben nach unten drawen lassen. Jetzt kannst hergehen und draw_text(x,y, 1), draw_text(x,y, 2).... schrieben oder du überlegst ob es eine Funktion gibt die das besser macht. Die wäre dann?
    Genau, eine for-schleife. Oder du kannst das auch mit repeat oder do ode while machen.

    Soll ich dir noch eine bestimmte Funtkion erklären?
  • diesen kurs habe ich schon durch aber danke

    danke morpheus aber ich glaub wir hatten noch nie kontakt.aber danke das du es mir erklärst.mir schweben alle funktionen vor....
    von der ersten bis zur letzten.damit ich lernen kann.

    ja also die for schleife und repeat usw hab ich schon gemacht die kapier ich jetzt auch.aber zb:
    place_free(x, y) Gibt an, ob die Instanz an angegebener Position(x,y) eine Kollision auslöst. Sie wird verwendet als Prüfroutine bevor man sich auf die neue Stelle bewegt.
    place_empty(x, y) Gibt an, ob die Instanz an angegebener Position(x,y) auf nichts trifft. (Diese Funktion beachtet auch "non-solid" Instanzen.)
    place_meeting(x, y, obj) Gibt an, ob die Instanz an angegebener Position(x,y) das Objekt obj trifft. obj kann ein Objekt sein - in so einem Fall gibt die Funktion den Wert "true" zurück, wenn es auf eine Instanz des
    Objekts trifft. Es kann aber auch eine "instance id" sein, das besondere Wort "all" (bedeutet irgendeine Instanz irgendeines Objektes), oder das besondere Wort "other".


    die zb könntest mir erklären.....also ich hab zb place free für die kollision verwendet mit diesem code

    GML-Quellcode

    1. if (!place_free(x+hspeed,y)) //bedeutet das wenn der platz nicht frei ist wenn ich gerade gehe bzw renne....usw


    wie siehts mit den anderen aus??



    und oder besser noch ich hab gerade herumgespielt mit draw point und eine for schleife benutzt um eine linie oder kreis usw zu zeichnen ....jetzt würde ich aber gern ein dreieck zeichnen mit einer for schleife....ich weiß es gibt die funktion draw_triangle aber ich würde es gerne mit draw point machen und ner for schleife...um zu lernen...weiß jemand rat??

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

  • Ich erkläre dir diese Funktionen mal in Worten:

    Legen wir erstmal fest das wir in den folgenden BEISPIELEN immer die gleichen Zahlen verwenden:
    x = 200 (POSITION)
    y = 100 (POSITION)
    hspeed += 5
    Objekt = SPIELER
    obj. = WAND
    if = WENN
    ! = NICHT

    Bsp.:
    In allen Beispielen ist es wichtig das diese Funktionen von einem Objekt (SPIELER) aus abgefragt werden.

    GML-Quellcode

    1. if (!place_free(x+hspeed,y))
    2. // Setzen wir nun x,y und hspeed ein.
    3. if (!place_free(200+5,100))
    4. // Bedeutung: WENN der Platz für den SPIELER NICHT frei ist auf der POSITION x = 205 und y = 100, dann führe folgenden code aus...

    GML-Quellcode

    1. if (place_empty(x+hspeed,y))
    2. // Setzen wir nun x,y und hspeed ein.
    3. if (!place_free(200+5,100))
    4. // Bedeutung: WENN der Platz für den SPIELER NICHT leer ist auf der POSITION x = 205 und y = 100 dann führe folgenden code aus...(Theoretisch das gleiche wie place_free, bloß das diese Funktion auch auf "nicht Solide" Instanzen reagiert)

    GML-Quellcode

    1. if (!place_meeting(x,y,obj))
    2. //Setzen wir nun x,y und obj ein.
    3. if (!place_meeting(200,100,Wand))
    4. //Bedeutung: WENN der SPIELER NICHT auf die WAND trifft bei der POSITION x = 200 und y = 100, dann führe folgenden Code aus...


    Ich hoffe das ist verständlich genug. ^^
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.
  • das kann man alles schön in den docs lesen place_meeting wird benutz um die kollision mit einer maske zu berechnen und place_free wenn kein solides objekt an der stelle steht und place_empty wenn nix da steht
    Wir stehen zusammen und wir fallen zusammen
  • glim888 schrieb:

    for schleife kreis : length_dir


    Dazu gleich ein praktisches Beispiel: eine analoge Uhr.

    Create:

    Spoiler anzeigen

    GML-Quellcode

    1. xx = room_width / 2;
    2. yy = room_height / 2;
    3. s_laeng = 170;
    4. s_breit = 3;
    5. m_laeng = 140;
    6. m_breit = 5;
    7. h_laeng = 100;
    8. h_breit = 8;
    9. aussen = 200;
    10. innen = 180;
    Alles anzeigen


    Draw:

    Spoiler anzeigen

    GML-Quellcode

    1. // Zifferblatt-Rand
    2. draw_set_color(c_dkgray);
    3. draw_circle(xx, yy, aussen, false);
    4. // Zifferblatt-Innen
    5. draw_set_color(c_gray);
    6. draw_circle(xx, yy, innen, false);
    7. // Zifferblatt Punkt hinten
    8. draw_set_color(c_black);
    9. draw_circle(xx, yy, 20, false);
    10. // Sekunden
    11. seconds_dir = 90 - current_second * 6;
    12. draw_set_color(c_black);
    13. draw_line_width(xx, yy, xx + lengthdir_x(s_laeng, seconds_dir), yy + lengthdir_y(s_laeng, seconds_dir), s_breit);
    14. // Minuten
    15. minutes_dir = 90 - current_minute * 6;
    16. draw_set_color(c_dkgray);
    17. draw_line_width(xx, yy, xx + lengthdir_x(m_laeng, minutes_dir), yy + lengthdir_y(m_laeng, minutes_dir), m_breit);
    18. // Stunden
    19. hour_dir = 90 - current_hour * 30 - current_minute / 10 * 5;
    20. draw_set_color(c_red);
    21. draw_line_width(xx, yy, xx + lengthdir_x(h_laeng, hour_dir), yy + lengthdir_y(h_laeng, hour_dir), h_breit);
    22. // Zifferblatt Punkt vorne
    23. draw_set_color(c_dkgray);
    24. draw_circle(210, 210, 12, false);
    25. // Zifferblatt Linien und Zahlen
    26. draw_set_font(fnt_zeit);
    27. draw_set_valign(fa_middle);
    28. draw_set_halign(fa_center);
    29. a = 3; // Uhrzeit auf dem Ziffernblatt. Wir beginnen bei drei und zählen gegen den Uhrzeigersinn
    30. draw_set_color(c_black);
    31. for (i = 0; i < 360; i += 30)
    32. {
    33. draw_line_width(xx + lengthdir_x(innen - 15, i), yy + lengthdir_y(innen - 15, i), xx + lengthdir_x(innen, i), yy + lengthdir_y(innen, i), 4);
    34. draw_text(xx + lengthdir_x(innen - 32, i), yy + lengthdir_y(innen - 32, i), string(a));
    35. // Bei 1 sollte die Zählung auf 12 springen
    36. if (a = 1)
    37. {
    38. a = 12;
    39. }else{
    40. a--;
    41. }
    42. }
    43. draw_set_color(c_dkgray);
    44. for (i = 0; i < 360; i += 6)
    45. {
    46. draw_line_width(xx + lengthdir_x(innen - 10, i), yy + lengthdir_y(innen - 10, i), xx + lengthdir_x(innen, i), yy + lengthdir_y(innen, i), 2);
    47. }
    Alles anzeigen

    Byte GameMaker Magazin - Online Zeitschrift für Spieleentwickler

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


  • @Morpheus

    einen kreis mit for schleife und draw point

    im create event

    GML-Quellcode

    1. x=room_width/2;//musst eigentlich nicht machen ich mach das nur damit es genau in der mitte ist und sichtbar
    2. y = room_height/2;
    3. radius = 100;



    im draw event

    GML-Quellcode

    1. for (var j = 0;j<360;j++)
    2. {
    3. xx = x+lengthdir_x(radius,j)
    4. yy= y+lengthdir_y(radius,j)
    5. draw_point(xx,yy);
    6. }



    so zeichnet man einen kreis mit einer for schleife und draw point
  • @Eddysoulo
    ich weiß das das alles in den handbuch steht warum hab ichs denn hier gepostet???? es geht darum auch wenn ich es schon mehrmals durchgelesen habe bringt es mir nicht da ich nicht weiß was zb die koordinaten bewirken oder so..

    zb bei if (!place_free(x+hspeed,y)) wusste ich am anfang nur aha das bedeutet wenn der platz nicht frei ist dann hat mir ein freund erklärt was es mit dem x+hspeed aufsich hatte nämlich das bedeutet wenn der platz nicht frei ist wenn ich renne....und sowas mein ich....monate lang hab ich einfach nur den code auswendig gelernt bis ich endlich wusste was er wirklich tut.
  • also richtig dran bin ich jetzt ca bald ein jahr.

    ja ich merke eh täglich das ich was dazu lerne usw. aber es ist halt so bei mir das man mir es zunächst erklären muss und veranschaulichen wie man es macht...dann
    merk ich mir mal den aufbau was man alles dafür braucht und dann fang ich an mit dem code zu experimentieren und ihm zu verstehen.deshalb wären kleine aufgaben toll.

    ein user hat auf youtube mal 2 videos mit aufgaben gemacht.das war toll...zb hat er gezeigt wie ein spiel aussehen sollte und was man können sollte und dann hat man es so
    gut wie möglich allein nachgemacht.und ich konnte es auch teilweise und ihr könnt euch nicht vorstellen was für freude das in mir auslöste.leider macht er nur mehr tutorials und keine solche aufgaben mehr.

    ich brauche einen lehrer der mir einmal am tag was neues beibringt....alleine mach ich es zwar auch bzw versuche ich es aber ohne hilfe brauche ich dann die 5 fache zeit.