Die Frage mit der Maus

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Die Existenz
Beiträge: 3
Registriert: 05.01.2006 19:11
Wohnort: Die Existenz wohnt nirgends, sie existiert nur ;-P

Die Frage mit der Maus

Beitrag von Die Existenz »

Nun ja ich habe ein Menü erstellt [oder habe es zuminderst versucht 8) ]
das auf einem Bild basiert und per Maus gesteuert wird.
Menü trifft es eigentlich nicht so genau, da es vielmehr ein Titelbildschirm für ein Spiel ist.
nun habe ich die Eckpositionen meines "Spiel Starten" auf dem Bild mit je 2 Variablen festgelegt. Was ich der hilfe in Pure Basic entnommen habe, was dass man mit MouseX() und MouseY() die Mausposition festlegen kann. Also habe ich folgendes geschrieben:
Init Mouse
Global SpielstartX.w
Global SpielstartY.w
Global SpielstartX2.w
Global SpielstartY2.w
Global SpielstartX3.w
Global SpielstartY3.w
Global SpielstartX4.w
Global SpielstartY4.w
Global Beginn.w

SpielstartX = 203
SpielstartY = 236
SpielstartX2 = 428
SpielstartY2 = 236
SpielstartX3 = 203
SpielstartY3 = 267
SpielstartX4 = 428
SpielstartY4 = 267

ExamineMouse()
LoadSprite(10,"Menu.bmp",0)
Repeat
DisplaySprite(10,0,0)
If MouseY() > SpielstartY And MouseX() > SpielstartX And MouseY() < SpielstartY2 And MouseX() < SpielstartX2
And MouseY() < SpielstartY3 And MouseX() > SpielstandX3 And MouseY() < SpielstartY4 And MouseX() < SpielstartX4 And MouseButton(1)
Beginn = 1
EndIf

Until Beginn = 1
wenn ich es nun kompelieren und starten will kommt die Meldung
"MouseY is not a valid Operator"
was habe ich falsch gemacht? Kann mir bitte jemand helfen?

Mfg,

Die Existenz :wink:
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

hab leider keine möglichkeit den code schnell zu testen, aber auf den ersten blick finde ich zwei fehler:

1) es heist InitMouse()
2) Das ExamineMouse() solltest du in deine hauptschleife packen :allright:
-.-"
Benutzeravatar
Die Existenz
Beiträge: 3
Registriert: 05.01.2006 19:11
Wohnort: Die Existenz wohnt nirgends, sie existiert nur ;-P

Beitrag von Die Existenz »

nya... ändert leider auch nicht viel...
aber trotzdem Danke!

Mfg, Die Existenz :wink:
Existieren kann man mit Leben nicht vergleichen. Man existiert zwar, um zu leben, doch lebt man nicht nur um zu existieren.
heinz.goldbach
Beiträge: 93
Registriert: 16.11.2005 18:27
Wohnort: Neuss

Beitrag von heinz.goldbach »

Ich bin kein Profi was Spiele angeht, aber so sollte es gehen. Man benötigt glaube ich noch FlipBuffers()
Mein Bildschirm bleibt schwarz, aber das liegt wohl an meinem TFT Display.

Code: Alles auswählen

InitSprite()
OpenScreen(1024,768,32,"Test")
InitMouse()
Global SpielstartX.w
Global SpielstartY.w
Global SpielstartX2.w
Global SpielstartY2.w
Global SpielstartX3.w
Global SpielstartY3.w
Global SpielstartX4.w
Global SpielstartY4.w
Global Beginn.w
SpielstartX = 203
SpielstartY = 236
SpielstartX2 = 428
SpielstartY2 = 236
SpielstartX3 = 203
SpielstartY3 = 267
SpielstartX4 = 428
SpielstartY4 = 267

ExamineMouse()
LoadSprite(10,"Menu.bmp",0)
Repeat

DisplaySprite(10,0,0)
If MouseY() > SpielstartY And MouseX() > SpielstartX And MouseY() < SpielstartY2 And MouseX() < SpielstartX2 And (MouseY() < SpielstartY3) And MouseX() > SpielstandX3 And MouseY() < SpielstartY4 And MouseX() < SpielstartX4 And MouseButton(1)
Beginn = 1
EndIf
Until Beginn = 1 
---------------------------------------------------
Man lernt nur aus Fehlern!
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

>Mein Bildschirm bleibt schwarz
ne, das liegt daran, dass du auch kein flipbuffers drin hast :mrgreen:

so sollte es gehen....allerdings weis ich net, für was du diese vielen variabeln brauchst und wieso du die alle global machst. :?

Code: Alles auswählen

InitSprite() 
OpenScreen(1024,768,32,"Test") 
InitMouse() 
InitKeyboard()
Global SpielstartX.w 
Global SpielstartY.w 
Global SpielstartX2.w 
Global SpielstartY2.w 
Global SpielstartX3.w 
Global SpielstartY3.w 
Global SpielstartX4.w 
Global SpielstartY4.w 
Global Beginn.w 
SpielstartX = 203 
SpielstartY = 236 
SpielstartLaenge = 100 ;Länge des Sprites.
SpielstartHoehe = 100 ;Höhe des Sprites.

LoadSprite(10,"Menu.bmp",0)
LoadSprite(11,"Maus.bmp")
Repeat 
  ExamineMouse() 
  ExamineKeyboard()
  DisplaySprite(10,SpielstartX,SpielstartY) 
  DisplaySprite(11,MouseX(),MouseY())
  If MouseButton(1)
    If MouseX() > SpielstartX And MouseX() < SpielstartX + SpielstartLaenge And MouseY() > SpielstartY And MouseY() < SpielstartY + SpielstartHoehe
      Beginn = 1
    EndIf
  EndIf 
  
  If KeyboardPushed(#PB_Key_Escape)
    End
  EndIf
  
  FlipBuffers()
  ClearScreen(0,0,0)
Until Beginn = 1
;Code
End
edit:
ach ja, der code ist hässlich, sorry. hab leider grad wenig zeit :|

und noch was:
>dass man mit MouseX() und MouseY() die Mausposition festlegen kann
du kannst sie damit nicht festlegen, sondern abfragen ;)
-.-"
Benutzeravatar
Die Existenz
Beiträge: 3
Registriert: 05.01.2006 19:11
Wohnort: Die Existenz wohnt nirgends, sie existiert nur ;-P

Beitrag von Die Existenz »

Danke Gerren Snake, deins funzt. muss nur noch bischen was verändern [wenn ich darf :| ] Warum ich alle Global mache? nya ich kenn für Variablenbestimmung nur den Befehl Global... Bin halt noch ein Anfänger :mrgreen:

Mfg,

Die Existenz
Existieren kann man mit Leben nicht vergleichen. Man existiert zwar, um zu leben, doch lebt man nicht nur um zu existieren.
Antworten