PureBasic
;
; ------------------------------------------------------------
;
;   PureBasic - Mouse example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

If InitMouse() = 0 Or InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Ошибка", "Не могу открыть DirectX", 0)
  End
EndIf

;
;-------- MessageReq и OpenScreen --------
;

MessageRequester("Инфо", "Это проверит быстрый доступ мыши..."+Chr(10)+"Нажмите любую кнопку мыши, чтобы выйти!", 0)

If OpenScreen(800, 600, 32, "Mouse") = 0
  MessageRequester("Ошибка", "Невозможно открыть 800 * 600 32-битный экран",0)
  End
EndIf

;
;-------- Инициализация и загрузка --------
;

x = 100
y = 100

LoadSprite(0, #PB_Compiler_Home + "examples/sources/Data/PureBasic.bmp")   ; Загрузить красивый маленький логотип

;
;-------- Главный цикл --------
;

Repeat
  FlipBuffers()                        ; Флип для двойной буферизации
  ClearScreen(RGB(0,0,0))                   ; CleanScreen, черный

  ExamineKeyboard()
  ExamineMouse()                      
          
  x = MouseX()                         ; Возвращает актуальную x-позицию нашей мыши
  y = MouseY()                         ; Возвращает актуальную y-позицию нашей мыши
  
  x+MouseWheel()*10
  
  If MouseButton(#PB_MouseButton_Middle)
    MouseLocate(400, 300)
  EndIf

  DisplaySprite(0, x-SpriteWidth(0)/2, y-SpriteHeight(0)/2)

Until MouseButton(#PB_MouseButton_Left) Or MouseButton(#PB_MouseButton_Right)

End