ich als voller noob (habe vorher eigentlich nur fürs Web programmiert (asp&php)) bin so begeistert von PureBasic, dass ich einfach mal für alle PB Einsteiger einen kleinen Code geschrieben habe, damit auch einsteiger mit ein wenig vorwissen evtl. auf anhieb erkennen, wie einfach es ist mit PureBasic auf bewegungen bzw. eingaben eines Users zu reagieren.
In diesem Code/Script wird anhand logischer abfragen die aktuelle Maus position ermittelt und mit FillArea sichtbar gemacht.
Mit ein wenig Mathematik kann man einen Bildschirm beliebig teilen,
ich habe die Auflösung von 1024 * 768 gewählt:
Der Bildschirm ist dann:
1024 Pixel breit (der linke rand ist 0px, der rechte 1024px)
768 Pixel hoch (der ober rand ist 0ox, der untere 768)
möchte ich den Bildschirm horizontal teilen : 1024/2
möchte ich den Bildschirm Vertikal teilen: 768/2
jede Zahl die jetzt größer ist als 1024/2 wär somit die hälfte auf der rechten Seite des Bildschirms, alles unter 1024/2 auf der linken Seite.
Ich habe in diesem Code den Bildschirm in vier teile geteilt:
oben rechts- und links
unten rechts- und links
bei berührung mit Maus, leuchten diese auf:
Code: Alles auswählen
;PureBasic 4
;#############################
;#### Einfache koordinaten abfrage ####
;#############################
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024,768,16,"Koordinaten")
Repeat
ExamineKeyboard()
ExamineMouse()
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(RGB(255,255,255))
;### teile den bildschirm in vier teile
LineXY(0,768/2,1024,768/2)
LineXY(1024/2,0,1024/2,768)
;### schreibe die aktuellen maus-koordinaten auf den schirm
DrawText(0,0,"x:"+Str(MouseX()))
DrawText(0,15,"y:"+Str(MouseY()))
;### frage ab ob sich die maus im oberen bereich LINKS befindet
;### wenn ja, wird dieser gefüllt.
If MouseX() < 1024/2 And MouseY() < 768/2
FillArea(MouseX(),MouseY(),RGB(255,255,255),RGB(55,200,122))
EndIf
;### frage ab ob sich die maus im unteren bereich LINKS befindet
;### wenn ja, wird dieser gefüllt.
If MouseX() <1024/2 And MouseY() >768/2
FillArea(MouseX(),MouseY(),RGB(255,255,255),RGB(55,200,122))
EndIf
;### frage ab ob sich die maus im oberen bereich RECHTS befindet
;### wenn ja, wird dieser gefüllt.
If MouseX() >1024/2 And MouseY() <768/2
FillArea(MouseX(),MouseY(),RGB(255,255,255),RGB(55,200,122))
EndIf
;### frage ab ob sich die maus im unteren bereich RECHTS befindet
;### wenn ja, wird dieser gefüllt.
If MouseX() >1024/2 And MouseY() >768/2
FillArea(MouseX(),MouseY(),RGB(255,255,255),RGB(55,200,122))
EndIf
;### Nutze ein X umd den Mauszeiger sichtbar zu machen
DrawText(MouseX(),MouseY(),"X",RGB(255,255,0))
StopDrawing()
FlipBuffers()
ClearScreen(0)
Until KeyboardPushed(#PB_Key_Escape)
Viel Spaß