Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 23

Thema: Koordinaten Problem

  1. #1

    Hero guckt in Richtung Mauszeiger? Frage weiter unten

    Hi ,

    Ich mache ein Spiel , es soll ein aussergewöhnliches KS haben.
    Nun das Prob , in diesem KS lasse ich die Maus anzeigen alles Abfragen und ich kann die Maus bewegen , alles kein Problem , aber wie Frage ich ab ob der Mauszeiger also die Koordinaten des Mauszeigers über einem Event sind?
    Wenn sie dann über dem Event sind und ich drücke dann z.B. die linke Maustaste (Wert ist 1) dann soll etwas passieren.Von mir aus kann der Char dann blinken oder so was!

    Könnt ihr helfen?

    blackeye

    Geändert von blackeye (06.08.2004 um 00:20 Uhr)

  2. #2
    du speicherst die "Scene X" und "Scene Y"-Werte des Events. Diese Werte vom Mauszeiger solltest du ja schon in irgendwelchen Variablen haben, weil du den Mauszeiger mit "Move Picture" ja ständig bewegst. Dann frag mit Forks ab, ob sichdas Event in X und in Y-Richtung näher als 16 Pixel an dem Mauszeigerbild befindet. Wenn ja, dann löse das Event aus, das dann Passiert (z.B einen Angriff)...

  3. #3
    Zitat Zitat
    Dann frag mit Forks ab, ob sichdas Event in X und in Y-Richtung näher als 16 Pixel an dem Mauszeigerbild befindet.
    Dumme Frage , aber könntest du mir nen Code posten , weiß grad nichts damit anzufangen.

    blackeye

  4. #4
    Du hast doch die Scene-Werte des Events in 2 Variablen gespeichert (z.B. Var0001 "Event X" und Var0002 "Event Y"). Dann hast du durch die Maussteuerung doch die Scene-Werte des Mauszeiger-Pics in zwei Variablen (z.B. Var0003 "Maus X" und Var0004 "Maus Y").

    Jetzt brauchst du noch zwei Hilfsvariablen Var0005 "Hilfe X" und Var0006 "Hilfe Y".

    <>Change Variable "Hilfe X" SET Var0001
    <>Change Variable "Hilfe Y" SET Var0002
    <>Change Variable "Hilfe X" - Var0003
    <>Change Variable "Hilfe Y" - Var0004

    Du berechnest die Differenz der Scene-Werte des Events und der des Mauszeigers. Dann prüfst du, ob diese Differenz, also die Variablen Hilfe X und Hilfe Y beide "above -16" aber auch "less 16" sind. Wenn das zutrifft, löse z.B. den Angriff aus!

  5. #5
    Ok,ich bedanke mich recht herzlich für deine Hilfe §thx.

    blackeye

    EDIT:
    Damit ich keinen neuen Thread aufmachen muss Frage ich meine Frage hier :
    Wie kann ich den Hero in die Richtung des Mauszeigers glotzen lassen?

    Geändert von blackeye (06.08.2004 um 00:22 Uhr)

  6. #6
    Wieder speicherst du die Scene-Werte von Held und Maus, bildest die Differenz und abhängig davon, ob x/y positiv ist und welche Zahl den höheren Betrag hat machst du ein Move Event mit Face up, Face down etc

    Bedingungen:
    hx/y: heroscenes mx/y: mausszenes
    x= hx - mx
    y= hy - my

    x > 0 AND |x| > |y| -> Face Left
    x < 0 AND |x| > |y| -> Face Right
    y > 0 AND |y| > |x| -> Face Up
    y < 0 AND |y| > |x| -> Face Down

    x = 0 AND y = 0 -> Face gen Himmel
    weiterhin gibts noch die Grenzfälle, wenn |y| = |x| ist... wenn du den Code so lässt, passt das aber, weil er dann einfach die Blickrichtung beibehält, wenn das der Fall ist
    den Betrag (||) einer Zahl rechnest du so aus:
    Zahl < 0 -> Zahl * -1 (mach das aber mit einer neuen Variable, die alte wird ja noch gebraucht)

  7. #7
    @Dhan:
    Dankeschön.

    @all:
    und noch eine Frage:
    Wie Frage ich ab ob ein Event , sagen wir mal 10 Felder vom Hero entfernt ist , und wenn er dann innerhalb dieser 10 Felder ist
    etwas passiert , z.B. das Event fängt an zu schießen?

    blackeye

  8. #8
    hx/y: koordinaten (nicht scenes diesmal!) des helden
    ex/y: selbes vom event

    hx = ex AND |hy-ey| <= 10 --> ballern
    hy = ey AND |hx-ex| <= 10 --> ballern

  9. #9
    Also in deiner schreibweise lässt es sich nur schwer verstehen , kannst du das bitte deutlicher schreiben?

    blackeye

  10. #10
    hx = ex AND |hy-ey| <= 10 --> ballern
    könnte man z.B. auch so schreiben:

    fork (hx = ex)
    {
    vara=hy
    vara=vara-ey
    fork (vara < 0)
    {
    vara=*-1
    }
    fork (vara <= 10)
    {
    //ballerscript
    }
    }

    ich fand meine schreibweise nur einfacher

    das AND bedeutet halt immer, dass BEIDE Bedingungen links und rechts vom AND erfüllt sein müssen (logischer Operator) und das --> ist eben, was dann passiert

  11. #11
    Ja Dhan,ich blicke immer noh nicht durch diesen Code.
    Du könntest einen letzten Versuch starten und es z.B. mit Maker Befehlen formulieren.
    Etwa so:

    <ChangeVariable(Herox)-(Eventx)>
    <ForkCondition>:
    <IF Variable(Herox) = 10>
    <Flash Event(Hero)>

    So würde ich es in meinen Kopf kriegen.
    Und könntest du das mit der Blickrichtung auch nochmal so ausdrücken?
    Ist sehr wichtig.

    blackeye

  12. #12
    hx = ex AND |hy-ey| <= 10 --> ballern
    wäre:

  13. #13
    Hab jetzt alles so gemacht sowohl mit hx = ex als auch mit hy = ey und es funzt immer noch nicht.

    blackeye

  14. #14
    Was hast du als Ballern-Script reingemacht? Probier mal eine Message reinzumachen


    btw, du hasts scho als PP gemacht, oder?

  15. #15
    Ich habs als PP und auch schon Testweise ein Flash Event reingehaun , aber dann Flasht der Char wie verrückt!

    Was mache ich falsch?

    blackeye

  16. #16
    Na wenn er flasht isses doch gut

  17. #17
    Ich will aber das er flasht wenn er innerhalb dieser 10 Felder steht.
    Also der Held soll Quasi in das Sichtfeld das 10 Felder beträgt reinlatschen und dann fängt das Event (Gegner) an zu balern.

    blackeye

    EDIT:
    Noch eine ganz wichtige Frage:
    Wie kann ich es machen , dass der Mauszeiger durch Dinge wie Wände blockiert wird?
    Also wenn ich den Mauszeiger gegen eine Wand bewege geht er normalerweise drüber , aber er soll durch die Wand angehalten werden sodass er nicht weiterkommt.

    Geändert von blackeye (07.08.2004 um 19:09 Uhr)

  18. #18
    @Dhan:
    Ok ich hab das mit dem Sichtfeld so gemacht:


    is dat richtig?
    Denn irgendwie funzt es nicht.
    Der SE kommt direkt wenn ich die Map betrete!

    PSer SE ist nur zum TEST!

    Achja :

    Variable 27 ist ex
    Variable 26 ist hy
    Variable 28 ist ey

    blackeye

    Geändert von blackeye (08.08.2004 um 05:44 Uhr)

  19. #19
    Fehler bei dir entdeckt, die Fork obs kleiner als 10 ist, ist net innerhalb der Fork obs gleich ist

  20. #20
    Ich habs jetzt so gemacht und es passiert garnichts mehr

    egal ob ich 10 Felder davor,drin oder dahinter bin.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •