Object Anklicken

  • GM 7

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

  • Object Anklicken

    Hi Community,

    Ich hab mal wieder ein Problem undzwar , habe ich ein Inventar erstellt wo Objekte abgelegt werden können und sich mit dem Spieler mitbewegt(Mit Draw-event gemacht) doch wen ich jetzt z.b einen Fisch(hat sich automatisch ins Inventar gelegt) im Inventar habe und ihn anklicken will so das der Spieler ihn isst geht das nicht den der Fisch muss sich ja mit dem Inventar mitbewegen und ich hab das auch mit dem Draw-event gemacht (da ich keine bessere methode gefunden habe)also wie kann ich es schaffen das ich den Fisch anklicken kann oder wiesst ihr eine bessere Methode das sich der Fisch mit dem Inventar mitbewegt ?( so das ich ihn anklicken kann :)
  • Ich verstehe dein Problem jetzt nicht wirklich aber wenn ich das richtig verstanden habe, könntest Du dir eine Variable anlegen, die aussagt, ob der Fisch sich in Inventar bewegen soll oder nicht. Wenn ja, dann im Inventar zeichnen, wenn nein, dann sonst wo Zeichnen.

    Falls du meinst, dass der Fisch nicht anklickbar ist, dann liegt es daran, dass die Position des Fisches anders ist, als die Position des Sprites weshalb der nicht auf Klicks reagiert. Mach den Fisch einfach ins Step Event.

    Bitte Schildere dein Problem nochmal genau, weil ich nicht glaube, dass das das Problem war.

    mfg Critical
  • Bitte hä wie?
    Was machst du mit deinem Fisch?

    Wenn du den als Objekt im dxraw Event "mitfliegen" lässt, kannst du ihn einfach anklicken!

    GML-Quellcode

    1. Fisch.x = view_xview[0]+Pixelanzahl, die der x-Wert vom 0-Punkt entfernt ist
    2. Fisch.y = view_yview[0]+Pixelanzahl, die der y-Wert vom 0-Punkt entfernt ist


    Das klappt und du kannst deinen Fisch essen (oder dein Charakter isst ihn, mir egal :P )

    Guten Appetit :thumbsup:



    EDIT: Und wenn du ihn da nicht mehr haben willst dann machst du das so:

    Variable: (öhm...)

    GML-Quellcode

    1. global.Fisch_da? = 1


    So, dann machst du

    GML-Quellcode

    1. If(global.Fisch_da? = 1)
    2. {Fisch.x = view_xview[0]+Pixelanzahl, die der x-Wert vom 0-Punkt entfernt ist
    3. Fisch.y = view_yview[0]+Pixelanzahl, die der y-Wert vom 0-Punkt entfernt ist}



    EDIT2: Hupps, Klammer vergessen.


  • Spoiler anzeigen

    ToWe schrieb:

    Bitte hä wie?
    Was machst du mit deinem Fisch?

    Wenn du den als Objekt im dxraw Event "mitfliegen" lässt, kannst du ihn einfach anklicken!

    GML-Quellcode

    1. Fisch.x = view_xview[0]+Pixelanzahl, die der x-Wert vom 0-Punkt entfernt ist
    2. Fisch.y = view_yview[0]+Pixelanzahl, die der y-Wert vom 0-Punkt entfernt ist


    Das klappt und du kannst deinen Fisch essen (oder dein Charakter isst ihn, mir egal :P )

    Guten Appetit :thumbsup:



    EDIT: Und wenn du ihn da nicht mehr haben willst dann machst du das so:

    Variable: (öhm...)

    GML-Quellcode

    1. global.Fisch_da? = 1


    So, dann machst du

    GML-Quellcode

    1. If(global.Fisch_da? = 1)
    2. {Fisch.x = view_xview[0]+Pixelanzahl, die der x-Wert vom 0-Punkt entfernt ist
    3. Fisch.y = view_yview[0]+Pixelanzahl, die der y-Wert vom 0-Punkt entfernt ist}



    EDIT2: Hupps, Klammer vergessen.


    Dir ist aber schon klar, dass in Variablen-Namen nur die Zeichen von a-z, sowie '_' vorkommen dürfen?
    Dein Code würde der GM nicht verstehen, da in deiner Variable ein '?' ist.
    Ausserdem achtet der Game Maker auch auf Groß- und Kleinschreibung, daher wird er, wenn du das Spiel startest eine Fehlermeldung anzeigen; 'Unknown Variable If. ;)

    @Taz:
    Ja, wenn der Sprite an der Angegebenen Position gezeichnet wird, dann ist das Objekt noch lange nicht an der Position ;).
    Schreib am besten ins [ Draw Event ] folgendes:

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,image_index,view_xview[0]+10/*oder anderer wert*/,view_yview[0]+10/*oder anderer wert*/,image_xscale,image_yscale,image_angle,image_blend,image_alpha);
    2. x = view_xview[0] + 10; // oder anderer wert; sollte der selbe wert sein, den du bei 'draw_sprite_ext' beim 2ten argument angegeben hast.
    3. y = view_yview[0] + 10; // oder anderer wert; sollte der selbe wert sein, den du bei 'draw_sprite_ext' beim 3ten argument angegeben hast.

    Würdest du nur

    GML-Quellcode

    1. x = view_xview[0] + 10; // oder anderer wert;
    2. y = view_yview[0] + 10; // oder anderer wert;

    schreiben, würde die Fisch-Instanz ein wenig 'nachruckeln', wenn sich das View bewegt.
    Wenn du den ersten Code eingibst, ist der Sprite immer schön an der angegebenen Position. ;)
    Und wenn du willst, dass man den Fisch auch anklicken kann, dann schreib' das noch ins [ Draw Event ] ( oder [ Step Event ] :(

    GML-Quellcode

    1. if position_meeting(mouse_x,mouse_y,self) && mouse_check_button_released(mb_left) /* oder 'mouse_check_button_pressed(mb_left) */ {
    2. instance_destroy();
    3. health += 10; /* oder sonst was */
    4. }

    ;)

    EDIT: Jahu, 600ster Beitrag! :)
    EDIT2: Das alles klappt wundert mich, mit nem '?' innem Variablen-Namen. oO
    fabse64 -> haiyyu

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

  • @fabse: Ich weiß das das bei Variablen nicht klappt, es war ein Beispiel. Unterstrich klappt aber eigentlich^^ Bei mri zumindest.

    GML-Quellcode

    1. Fisch.x = view_xview[0]+Pixelanzahl, die der x-Wert vom 0-Punkt entfernt ist
    2. Fisch.y = view_yview[0]+Pixelanzahl, die der y-Wert vom 0-Punkt entfernt ist


    Sorgt nicht für nachruckeln! Ich hab sowas grad erst benutzt!


  • Benutzer online 1

    1 Besucher