Purebasic: Tipps und Tricks
Aus Wikibooks
[Bearbeiten] Code nicht mitkompilieren
Manchmal hat man das Problem, dass man sehr viel Code auskommentieren muss, weil man ihn vielleicht später mal noch gebrauchen kann (zum Beispiel zum Debuggen, Funktionen checken, usw.). Man kann sich die viele Mühe mittels
Compilerif 0=1 nicht gebrauchter code ... Compilerendif
sparen, da Compilerif 0=1 immer falsch ergibt und dieser Code so nie vom Compiler in das fertige Programm eingebunden wird.
- ==================================================================
- --------- Simple Spritessteuerung ------------
;=========== Spritessteuerung ========= #FensterNr = 0 #Auf =100 #Ab =101 #Rechts =103 #Links =102 R=203:G=201:Bl=201 ;Bildschirmfarbe Fensterbreite=400 Fensterhoehe =300 b=24 ;Breite des Sprite h=24 ;Höhe des Sprite
InitSprite() ;----------------- Fenster-Erzeugen ------------------- OpenWindow(#FensterNr, 0, 0, Fensterbreite, Fensterhoehe, #PB_Window_MinimizeGadget| #PB_Window_ScreenCentered, "Erstes Window-Fenster") OpenWindowedScreen(WindowID(), 0, 0, Fensterbreite, Fensterhoehe, 0, 0, 0)
;---------------Cursor-Tasten hizufügen--------------------
If CreateGadgetList(WindowID())
AddKeyboardShortcut(#FensterNr,#PB_Shortcut_Up,#Auf)
AddKeyboardShortcut(#FensterNr,#PB_Shortcut_Down,#Ab)
AddKeyboardShortcut(#FensterNr,#PB_Shortcut_Right,#Rechts)
AddKeyboardShortcut(#FensterNr,#PB_Shortcut_Left,#Links)
EndIf
;===================== Sprites ==== Viereck =============
CreateSprite(1, b, h) ;=== Speicher resevieren ==
StartDrawing(SpriteOutput(1))
Box(0, 0, b, h, RGB(61, 104, 194)) ;box zeichnen
StopDrawing()
;=============== Haupt-Warte-Schleife ===============
Repeat
EventID=WindowEvent()
ClearScreen(R,G,Bl)
If EventID=#PB_Event_Menu
;--------------- Steuerung --------------
TastenEvent=EventMenuID()
If TastenEvent=#Auf : ypos=ypos-5: EndIf ;Auf
If TastenEvent=#Ab : ypos=ypos+5: EndIf ;Ab
If TastenEvent=#Rechts: xpos=xpos+5: EndIf ;rechts
If TastenEvent=#Links : xpos=xpos-5: EndIf ;links
EndIf
;-------------------- Randbegrenzung ------------------
If ypos < 0:ypos=0:EndIf
If xpos > Fensterbreite-b:xpos=Fensterbreite-b:EndIf
If xpos < 0:xpos=0:EndIf
If ypos > Fensterhoehe-h:ypos=Fensterhoehe-h:EndIf
;--------------- Anzeige und Position der Sprites --------------
DisplaySprite(1,xpos,ypos)
FlipBuffers() ;Umschalten des Bildschirms
Until EventID=#PB_Event_CloseWindow
End

