Point & Click frage

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

  • Point & Click frage

    hallo

    also ich wollte ein kleines testspiel das ein point & click spiel sein soll angefangen....jedoch hab ich schon das erste problem...wie bewegt man die figur???

    ich dachte an move_towards_point() aber wenn ich das benutze bleibt er nicht stehen sonder geht direkt weiter .....es soll ein 2d point&click sein also ein grosser raum mit mehreren ebenen und er soll nur rechts oder links gehen können und natürlich die leiter raufklettern.aber er soll nicht nach hinten gehn können also in die tiefe..... und man kann halt überall hinklicken..

    ich hab es mit diesem code probiert:

    GML-Quellcode

    1. if mouse_check_button_released(mb_left)
    2. {
    3. posx = mouse_x;
    4. posy = mouse_y;
    5. if distance_to_point(posx,posy)> 20
    6. {
    7. move_towards_point(posx,posy,6);
    8. ]
    9. if distance_to_point(posx,posy)<10
    10. {
    11. move_towards_point(posx,posy,0)
    12. }
    13. bitte könnte mir jemand eine gute erklärung mit vieleicht einen kleinen code beispiel zeigen wie die steuerung sein sollte.....
    14. }
    Alles anzeigen



    wenn ich direkt auf den player drücke wenn er gerade mal wieder zu weit gegangen ist dann bleibt er plötzlich stehen.

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

  • Die selbe Frage wurde dir schon vor längerem in etwas anderem Zusammenhang beantwortet. Das soll kein Angriff sein, aber für mich persönlich konnte ich noch keinen nennenswerten Anstieg deiner Programmierkenntnisse in deiner Zeit hier im Forum verzeichnen. Es wirkt immer wieder so als hättest du Lust auf irgend ein Spiel deiner Vorstellungen, aber nicht auf die damit Verbundene Arbeit. Entweder du verschwendest keinen Gedanken an einen Lösungsansatz oder deine Fähigkeiten lassen es wirklich nicht zu, in letzterem Fall solltest du "nocheinmal"(ich bin mir nicht sicher ob dies überhaut schon geschehen ist) ganz von Vorne anfangen, in ersterem Fall wäre es ratsam das Vorhaben einzustellen. Du fängst immerwieder neue Projekte an, scheiterst irgendwo, das Forum kann oder will dir irgendwann nicht mehr helfen, dann gehts von Vorne los. Dir mangelt es meines Erachtens im Moment neben Syntax-sicherheit vor allem an der Fähigkeit der Problemlösung bzw. das erdachte umzusetzen. Aber Programmieren setzt nunmal ein gewisses abstraktes Denken vorraus. Und wenn du dich dann in deiner IDE nichtmal auskennst bzw. nicht weißt was die Funktionen bewirken, dann ist das ganze zum Scheitern verurteilt. Ich will dich hier wirklich nicht kleinmachen und möchte dir gerne helfen, aber nur unter der Vorraussetzung das sich mal was ändert an deiner Vorgehensweise.

    GML-Quellcode

    1. if mouse_check_button_released(mb_left)
    2. {
    3. posx = mouse_x;
    4. posy = mouse_y;
    5. move_towards_point(posx,posy,6);
    6. }
    7. if (distance_to_point(posx,posy)<= speed)
    8. {
    9. speed = 0;
    10. x = posx;
    11. y = posy;
    12. }
    Alles anzeigen
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • Woow du willst mich wirklich nicht kleinmachen..........schaut aber nicht so aus.
    ja ich stelle viele fragen weil ich auch mehrere projekte am tag erstelle um zu lernen.und sie auch beende.
    Nur WEIL DU MEINE PROGRAMMIER ARBEITEN AUCH NICHT SIEHST kannst du nicht einfach daraus schlussfolgern das ich es nicht kann oder keinen lernfortschritt habe.:::UND WENN ICH DANN ETWAS VOLLKOMMEN ANDERES MACHE IST DOCH KLAR DAS ICH DANN FRAGEN MUSS:
    und sowieso du hast sicher auch am anfang länger gebraucht.also ich bin jetzt grad einmal ein jahr wirklich dabei zu lernen.und ich habe auch schon einige kleine spiele erstellt.die du
    natürlich nicht gesehen hast.

    Ich bitte alle User mir nicht zu Antworten in dieser Art da ich mich wirklich stark angegriffen fühle.Wenn ihr euch aufregt das ich so viel themen aufmache und soviel frage, dann ok sagt es mir einmal und ich machs nicht mehr.
  • Rhazul schrieb:

    Ich will dich hier wirklich nicht kleinmachen und möchte dir gerne helfen


    @Rhazul sagt ja schon, dass er dich nicht angreifen will. Wenn du dich also angegriffen fühlst, dann weil er dir an dir selbst etwas aufzeigen will und diese Kritik ist absolut legitim und kein Angriff. Oftmals sieht man ja selbst den Wald vor lauter Bäumen nicht mehr und dann muss man auf den Input von außerhalb hören, sich aber deswegen nicht beleidigt fühlen.

    Rhazul schrieb:

    Dir mangelt es meines Erachtens im Moment neben Syntax-sicherheit vor allem an der Fähigkeit der Problemlösung bzw. das erdachte umzusetzen. Aber Programmieren setzt nunmal ein gewisses abstraktes Denken vorraus.


    Niemand will, dass du weniger fragst, oder weniger Threads erstellst, aber wenn du immer wieder etwas erfragst, was du nun schon wissen solltest, weil es dir schon mehrmals beantwortet wurde, dann hast du nicht gelernt dein Wissen anzuwenden. Du musst lernen die Funktionen auch abseits von der spezifischen Situation die du erfragt hast anzuwenden.

    Rhazul schrieb:

    Die selbe Frage wurde dir schon vor längerem in etwas anderem Zusammenhang beantwortet.

    Wir müssen dazu auch nicht deine Programmierarbeit sehen und kennen, denn du stellst oft Fragen, die zeigen, dass dir sehr viele Grundlagen fehlen oder falsch angewendet werden und du dann natürlich über kompliziertere Dinge doppelt drüberstolperst. Das sind aber Dinge die wir dir nicht unbedingt beibringen können. Wir können die erklären wie eine Funktion funktioniert oder wie man globale Variablen am besten verwendet, etc, aber wie du diese Funktionen dann für die verschiedensten Problemlösungen einsetzt können wir dir nicht beibringen, da musst du kreativ werden.
    Es gibt auch nicht für jedes Problem, dass passende Tutorial. Nach einem Jahr Programmierarbeit, sollten da gewisse Dinge einfach sitzen ,vorallem damit wir dir am effektivsten helfen können. Und es ist ein Unterschied ob du ein langsamer Lerner bist oder immer wieder dasselbe Problem auftaucht.

    Es ist wichtig Kritik anzunehmen und sich zu verbessern anstatt sauer zu werden und weiterzumachen wie bisher, oder schlimmer; den Kopf hängen zu lassen. Außerdem sind mir auch schon Bereiche aufgefallen wo du Fortschritte gemacht hast und Dinge verstanden hast und sie auch in anderem Kontext anwenden kannst. Aber die Kritik kommt natürlich nur bei den Dingen raus, die nicht funktionieren.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • @acidrain833 Passt zwar jetzt nicht zum Post aber ich bin ganz deiner Meinung. Jeder fängt halt mal klein ein und verzweifelt auch schon bei kleineren Dingen.
    Ich stelle auch ziemlich einfache Fragen die eigentlich sehr offensichtlich sind. Und wenn es jemanden so nervt das man viele Fragen stellt soll er halt einfach nicht antworten.
    Ich habe früher NUR mit drag & drop gearbeitet und das sogar nur schwer verstanden.

    Und außerdem hilft @acidrain833 auch sehr gut bei anderen Problemen weiter und macht sich auch darüber Gedanken.
    @Rhazul Außerdem ist es nicht unbedingt möglich ein Spiel direkt fertig zu machen wenn man noch nicht so gute Kenntnisse hat.
    Ich glaub man lernt am schnellsten wenn man möglichst viele Projekte anfängt. (da man z.B immer was anderes hat oder andere Dinge wieder benutzt.)
    Und wie @acidrain833 schon meinte, ich denke auch nicht das du alles direkt von 0 auf 100 wusstest und solange es nur ein Hobby ist hat man auch nicht lust sich pausenlos
    mit Codes etc. zu beschäftigen.

    Mit der Zeit weiß man immer mehr :thumbsup:
    Wollt auch mal mein Senf dazu geben und @acidrain833 recht geben. 8|
    :thumbup:
  • Ich mach bei eurem Off-Topic nicht mit :P

    @acidrain833
    Eigentlich musst du nur deine eigene Frage anschauen und sie in einzelne Teile packen.
    Ein Teil zum Beispiel:
    ​Spieler darf nur nach rechts oder links laufen
    Du kannst einfach nur die x Koordinate benutzen :)
    die Funktion move_torwards_point() habe ich noch nie benutzt und werde sie hoch wahrscheinlich auch nicht benutzen.
    Vor allem hier solltest du etwas eigenes schreiben.
    Wenn der Spieler irgendwo hin geklickt hast, nimmst du die x Koordinate der Maus und speicherst sie irgendwo ab. Jetzt lässt du den Spieler dort hin laufen, falls möglich und bleibst stehen, wenn du in der Nähe der Maus bist. Abfragen, ob obj_player.x==clicked_mouse_x funktioniert meistens nicht, da du zB. mit speed 2 und x Position des Spielers 100 und x Position 101 der Maus nie diese Position durch einfaches

    GML-Quellcode

    1. ​if(x<clicked_mouse_x)
    2. x+=sp;
    3. if(x>clicked_mouse_x)
    4. x-=sp;

    hin kommst.
    Deswegen solltest du noch die Differenz der beiden Positionen berechnen.

    GML-Quellcode

    1. ​if(abs(x-clicked_mouse_x)>=sp){
    2. //code von eben
    3. }
    4. else
    5. x = clicked_mouse_x;

    abs macht hierbei einfach die Differenz positiv, wenn die Zahl negativ ist. Ohne dem auch ein negativer Wert entstehen könnte, den man unnötig beachten müsste.
    Solange der Abstand größer gleich der Speed ist, darf sich noch bewegt werden. Sonst wird wie oben beschrieben herum gezappelt.
    Ansonsten wird die x Koordinate einfach auf die Position des Mausklicks gesetzt. Der Sprung fällt dabei nicht auf, da die "Geschwindigkeit" nicht mal so schnell ist, wie der Speed.

    Die anderen Probleme kannst du auch mal versuchen so anzugehen ;)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Hallo,
    Da @Husi012 die Frage von @acidrain833 vorbildlich beantwortet hat und keinen Off-Topic Quatsch von sich gibt, bin ich dafür das wir Ihn mal beklatschen vielleicht sogar auszeichnen sollten. :)

    So nun möchte ich den Rest noch mal auf zwei Namen hinweisen: Luan und Ritalia.
    Und ich bin mir ziemlich sicher das alle hier einen IQ von über 100 haben, so dass jetzt die Glocken läuten sollten.
    Ich hab hier seit Monaten keine Dislikes mehr gesehen, was auch nicht schlimm ist da diese nur die eigene Meinung wiederspiegeln aber wir sollten (jetzt schon) alle mal ein Gang zurückschalten.
    Die Community hatte das schon ein paar mal durch und wir wissen wie es angefangen hat und wie es geendet ist und irgendjemand hat diesen Stein wieder ins rollen gebracht.
    Am besten wir unterbinden das einfach, geben uns die Hand und gut ist. :)
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.
  • Ernstgemeinte Kritik ist nunmal was anderes als bashing/shitstorming. Es tut vielleicht weh auf den Wunden Punkt zu drücken aber ich sehe halt keine glänzende Zukunft für ihn wenn er seine Vorgehensweise nicht ändert. Das geht aber nur wenn das gesagte auch zu Herzen genommen wird. Grundlagen müssen aufjedenfall nocheinmal wiederholt werden, die IDE einstudiert. Man kann nicht mit der Tür ins Haus fallen, das Überstürzen hat nur zur Folge das man im Endeffekt länger braucht da alles aufeinander aufbaut.
    Es würden sich sicherlich einige aus dem Forum inklusive meiner Person bereiterklären, beispielsweise im Ts3 Problemzonen zu besprechen und auszumerzen so das du selbstständiger und selbstsicherer an die Probleme rantgehst. es wird dir gerne geholfen, aber man ärgert sich dann schon wenn die selbe Frage von vor 3 Wochen nur in Grün dann nochmal gestellt wird nur weil Grundlagen nicht gefestigt sind.

    @Rotfuchs7 Ich habe doch zur Lösung beigetragen im Ersten Post, aber in irgendeinem Thread musste ich die Katze doch mal aus dem Sack lassen, ein eigener Thread dafür wäre ein wenig überzogen, findest du nicht auch?
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • Mehr oder weniger @Rhazul.
    Wie gesagt hättest Ihn das auch per pn mitteilen können anstatt Ihn öffentlich und für jeden einsehbar ans Pranger zu stellen. :/
    Ist halt ein Zweischneidiges Schwert, du willst soviele wie möglich damit erreichen obwohl es schon alle wissen, deswegen ist die pn immer noch die beste möglichkeit jemanden seine Meinung zu sagen ohne Ihn als Gespött der ganzen Community hinzustellen.
    Oder möchtest du, dass wir dich hier hinstellen alle mal herzlich über dich lachen und sagen das du voll der Lappen bist? (Ist natürlich nicht ernst gemeint und ich schätze sehr deine Erfahrungen)

    Es hätte dir doch vollkommen klar sein müssen das sich hieraus zwei Parteien bilden wenn du es öffentlich machst... und tada hier hast du dein Ergebnis.
    Es fängt erst mit ein paar kommentaren an, dann folgen Likes und Dislikes, dann folgt Sarkasmus aller @Sorm und @Pacmangamer (auch nichts gegen die beiden, find euch auch voll cool ^^) und dann bricht alles Zusammen...und ich bekomme dann wieder ne Abmahnung vom Admin weil ich mitgemacht hab. :D
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.