  IndexBase 0
  Include Once "Win_G.inc"

  Declare Function LoadBitmap Lib "A.Dll" (byval hdc as long, byval sFile As String, byval x  as long, byval y As Long) as long
  Declare Function DrawBitmap Lib "A.Dll" (byval hdc as long, byval sHdc As Long, byval x1 As Long, byval y1 As Long)
  Declare Function FreeBitmap Lib "A.Dll" (byval bHnd as long)
  Declare Function SetFont    Lib "A.Dll" (byval hdc As Long, byval width As Long, byval height As long, byval flags As Long,byval font As string) As Long
  Declare Function DrawText   Lib "A.Dll" (byval hdc as long, byval text as string, byval x3 as long, byval y3 as long, byval color as long)
  Declare Function FreeFont   Lib "A.Dll" (byval font as long)
  Declare Function LoadSprite Lib "A.Dll" (byval hdc as long,byval sFile As String, byval sWidth As Long, byval sHeight As Long) As Long
  Declare Function DrawSprite Lib "A.Dll" (byval hdc as long, byval Num As Long, byval x1 As Long, byval y1 As Long, byval zx As Long, byval zy As Long, byval Frame As Long)
  Declare Function FreeSprite Lib "A.Dll" (byval sHnd As Long)
  Declare Function SetFps     Lib "A.Dll" (byval Frame as long)
  Declare Function WaitFps    Lib "A.Dll" ()

  /* OWN  DECLARES */
  Declare Function You()
  Declare Function Move()

  Dim youR,youL,youU,youD,CirU,CirD,Fire,p1,p1,p3,p4,sx,sy,sr,sz,sf,xsr,ysr as long
  Dim aFont,bHdc as long

  SetWindow "OxygenBasic o26", 800, 600, ws_overlapped
  bHdc  = SetImage 1600,1200
  aFont = SetFont bHdc,16,24,FW_BOLD,"times"    '-> times/courier/symbol/""
  SetFps 120

  youR = LoadSprite bHdc,"media/youR.bmp",32,32
  youL = LoadSprite bHdc,"media/youL.bmp",32,32
  youU = LoadSprite bHdc,"media/youU.bmp",32,32
  youD = LoadSprite bHdc,"media/youD.bmp",32,32
  cirD = LoadSprite bHdc,"media/cirD.bmp",32,32
  cirU = LoadSprite bHdc,"media/cirU.bmp",32,32

  p1 = LoadBitmap bHdc,"media/G1.bmp",800,600
  p2 = LoadBitmap bHdc,"media/G2.bmp",800,600
  p3 = LoadBitmap bhdc,"media/G3.bmp",800,600
  p4 = LoadBitmap bhdc,"media/G4.bmp",880,600

  sy =100: sr =1: sf =0

  While WinExit =0
    DrawBitmap bHdc,p1, 0, 0
    DrawBitmap bHdc,p2,800,0
    DrawBitmap bHdc,p3,0,600
    DrawBitmap bHdc,p4,800,600
    Move
    You
    DrawText bHdc, "THIS IS MY MEADOW.",220,118, RGB(170,250,155)
    DoEvents
    FlipImageRect 0,0,800,600,xsr,ysr      '-> FlipBuffer is not necessary!
    WaitFps
  Wend
  FreeSprite youL: FreeSprite youU       '-> next, we will get FREEIMAGES for all the Graphics!
  FreeSprite youR: FreeSprite youD
  FreeSprite cirU: FreeSprite cirD
  FreeBitmap p1  : FreeBitmap p2
  FreeBitmap p3  : FreeBitmap p4
  FreeFont aFont
  WinEnd

  Function Move()
    iF Key(vk_up) and sr =1 and sf =0
      sf = -1
    ElseiF Key(vk_down) and sr =1 and sf =0
      sf = -2
    ElseiF Key(vk_up) and sr =2 and sf =0
      sf = -3
    ElseiF Key(vk_down) and sr =2 and sf =0
      sf = -4
    ElseiF Key(vk_right) and sr =3 and sf =0
      sf = -5
    ElseiF Key(vk_left) and sr =3 and sf =0
      sf = -6
    ElseiF Key(vk_right) and sr =4 and sf =0
      sf = -7
    ElseiF Key(vk_left) and sr =4 and sf =0
      sf = -8
    ElseiF Key(vk_left) and sr =1 and sf =0
      sf = -9
    ElseiF Key(vk_right) and sr =2 and sf =0
      sf = -10
    ElseiF Key(vk_up) and sr =4 and sf =0
      sf = -11
    ElseiF Key(vk_down) and sr =3 and sf =0
      sf = -12
    ElseiF Key(vk_right) and sx <1600-40 and sf =0
      sx +=1: sr =1
      iF sx >320 and sx <1120 Then xsr +=1
    ElseiF Key(vk_left) and sx >0 and sf =0
      sx -=1: sr =2
      iF sx >=320 and sx <1120 Then xsr -=1
    ElseiF Key(vk_up) and sy >0 and sf =0
      sy -=1: sr =3
      iF sy <=900 and sy >280 Then ysr -=1
    ElseiF Key(vk_down) and sy <1200 -40 and sf =0
      sy +=1: sr =4
      iF sy >280 and sy <=900 Then ysr +=1
    End iF
  End Function

  Function You()
    iF sf = -1
      DrawSprite bHdc,cirU,sx,sy,40,40,sz
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =3
      End iF
    ElseiF sf = -2
      DrawSprite bHdc,cirD,sx,sy,40,40,sz
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =4
      End iF
    ElseiF sf = -3
      DrawSprite bHdc,cirD,sx,sy,40,40,sz+16
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =3
      End iF
    ElseiF sf = -4
      DrawSprite bHdc,cirU,sx,sy,40,40,sz+16
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =4
      End iF
    ElseiF sf = -5
      DrawSprite bHdc,cirD,sx,sy,40,40,sz+24
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =1
      End iF
    ElseiF sf = -6
      DrawSprite bHdc,cirU,sx,sy,40,40,sz+8
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =2
      End iF
    ElseiF sf = -7
      DrawSprite bHdc,cirU,sx,sy,40,40,sz+24
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =1
      End iF
    ElseiF sf = -8
      DrawSprite bHdc,cirD,sx,sy,40,40,sz+8
      sz +=1
      iF sz =8
        sz =0: sf =0: sr =2
      End iF
    ElseiF sf = -9
      DrawSprite bHdc,cirU,sx,sy,40,40,sz
      sz +=1
      iF sz =16
        sz =0: sf =0: sr =2
      End iF
    ElseiF sf = -10
      DrawSprite bHdc,cirD,sx,sy,40,40,sz+16
      sz +=1
      iF sz =16
        sz =0: sf =0: sr =1
      End iF
    ElseiF sf = -11
      DrawSprite bHdc,cirD,sx,sy,40,40,sz+8
      sz +=1
      iF sz =16
        sz =0: sf =0: sr =3
      End iF
    ElseiF sf = -12
      DrawSprite bHdc,cirU,sx,sy,40,40,sz+8
      sz +=1
      iF sz =16
        sz =0: sf =0: sr =4
      End iF
    ElseiF sr =1
      DrawSprite bHdc,youR,sx,sy,40,40,0
    ElseiF sr =2
      DrawSprite bHdc,youL,sx,sy,40,40,0
    ElseiF sr =3
      DrawSprite bHdc,youU,sx,sy,40,40,0
    ElseiF sr =4
      DrawSprite bHdc,youD,sx,sy,40,40,0
    End iF
  End Function
