Mein Miniversuch

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: Mein Miniversuch

BeitragDi, Sep 14, 2010 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich taste mich gerade ans Dim-Feld ran und habe jetzt mein 1 Problem.
Ich habe ein weißen Punkt der mit der Maus Steuerbar ist und einen Punkt der als Ziel geltet.
Nur die Kollidierung zwischen den Zwei Punkten funktioniert nicht einwandfrei.
Was hab ich Falsch gemacht?
Und sobald man das Ziel Trifft soll es vergrößert werden.

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer BackBuffer()


Dim Gegner(1,4)
Gegner(1,1) = 400 ;X
Gegner(1,2) = 300 ;Y
Gegner(1,3) = 3 ;GrößeX
Gegner(1,4) = 3 ;GrößeY

Dim Spieler(1,4)
Spieler(1,3) = 5 ;GrößeX
Spieler(1,4) = 5 ;GrößeY

Repeat
   
   
   Rect Gegner(1,1), Gegner(1,2) ,Gegner(1,3) ,Gegner(1,4)
   Rect MouseX(), MouseY(), Spieler(1,3), Spieler(1,4)
   
   If MouseX() => Gegner(1,1) And MouseX() =< Gegner(1,1)+Gegner(1,3)
       If MouseY() => Gegner(1,2)  And MouseY() =< Gegner(1,2)+Gegner(1,4)
         Gegner(1,1) = Gegner(1,1) +Rand (-50,+50)
         Gegner(1,2) = Gegner(1,2) +Rand (-50,+50)
         Gegner(1,3) = Gegner(1,3) +1
         Gegner(1,4) = Gegner(1,4) +1
       End If
   End If
   
   Flip
   Cls
   HidePointer
Until KeyHit (1)



MFG:
Raiden/Kevin
 

Krischan

BeitragDi, Sep 14, 2010 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich das richtig verstanden haben sollte das hier die Lösung sein:

If MouseX() => Gegner(1,1)-Gegner(1,3) And MouseX() =< Gegner(1,1)+Gegner(1,3)
If MouseY() => Gegner(1,2)-Gegner(1,4) And MouseY() =< Gegner(1,2)+Gegner(1,4)


Du musst prüfen, ob MouseX zwischen Position-Breite und Position+Breite liegt, hast aber nur Position+Breite geprüft, analog gilt für MouseY und Höhe. Und der Punkt wird jetzt auch immer grösser.

Raiden93

BeitragDi, Sep 14, 2010 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
jetzt hab ich nur das Problem das ich beim 10 versuch das dingen zu treffen es schon reicht in der nähe des Punktes zu sein um es aufzufressen.

aber nur wenn ich den punkt oben oder links treffe


EDIT:
Habe es jetzt so gemacht und scheint zu gehen:
Code: [AUSKLAPPEN]
   If MouseX() => Gegner(1,1) And MouseX() =< Gegner(1,1)+Gegner(1,3)
      If MouseY() => Gegner(1,2) And MouseY() =< Gegner(1,2)+Gegner(1,4)
 

Sterbendes Lüftlein

BeitragDi, Sep 14, 2010 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

Hubsi

BeitragDi, Sep 14, 2010 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber dann den Timer nicht vergessen, sonst sinds wieder 100% Very Happy HidePointer ist übrigens in der Hauptschleife auch nicht gut aufgehoben.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

PacMani

BeitragDi, Sep 14, 2010 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Krischan hat Folgendes geschrieben:
If MouseX() => Gegner(1,1)-Gegner(1,3) And MouseX() =< Gegner(1,1)+Gegner(1,3)
If MouseY() => Gegner(1,2)-Gegner(1,4) And MouseY() =< Gegner(1,2)+Gegner(1,4)


Geht das überhaupt? Ich dachte, MouseX() ergibt nach einem Auslesevorgang 0?
  • Zuletzt bearbeitet von PacMani am Di, Sep 14, 2010 18:57, insgesamt einmal bearbeitet

Holzchopf

Meisterpacker

BeitragDi, Sep 14, 2010 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht. Denn die Koordinaten werden beim Aufruf (eben zB durch MouseX) nicht zurückgesetzt - das passiert nur bei den Tastenanschlägen, also MouseHit oder KeyHit =)

(Und bitte: Nicht ganze Beiträge zitieren, immer nur das nötige Wink )

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

mpmxyz

BeitragDi, Sep 14, 2010 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
MouseXSpeed, MouseHit, KeyHit und Co. setzen sich beim Aufruf zurück.
Bei MouseX kann es 'nur' zu unterschiedlichen Positionen in unterschiedlichen Programmteilen kommen.
mfG
mpmxyz
PS: Raiden93, erstelle für die Eigenschafts-Indizes Konstanten. Sonst weißt du bald nicht mehr, welcher Index für welche Eigenschaft steht.
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
  • Zuletzt bearbeitet von mpmxyz am Di, Sep 14, 2010 18:58, insgesamt einmal bearbeitet
 

PacMani

BeitragDi, Sep 14, 2010 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hatte ich wohl wieder vergessen... speichere sie sowieso in MX, MY, MHL etc. zwischen Wink

Raiden93

BeitragDi, Sep 14, 2010 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
welchen timer?
 

Sterbendes Lüftlein

BeitragDi, Sep 14, 2010 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

Raiden93

BeitragDi, Sep 14, 2010 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ok

Nicdel

BeitragMi, Sep 15, 2010 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Flip, CreateTimer, WaitTimer
Have fun Smile
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Sterbendes Lüftlein

BeitragMi, Sep 15, 2010 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

Raiden93

BeitragMi, Sep 15, 2010 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
habs schon gemacht ^^ aber danke

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group