
Graphics3D 640,480,32,2
FPS=CreateTimer(60)
Global px#,py#,pvx#,pvy#
;px,py - координты плеера
;pvx,pvy - вектора скорости
Dim map(10,10)
For t=0 To 10
map(t,10)=1
Next
map(6,9)=1
map(7,9)=1
map(8,9)=1
map(8,8)=1
map(8,7)=1
Repeat
Cls
WaitTimer(FPS)
;============================
;Отрисовка карты
For y=0 To 10
For x=0 To 10
If map(x,y)<>0 Then
Color 200,200,200
Rect x*20,y*20,20,20,1
Color 100,100,100
Rect x*20,y*20,20,20,0
If RectsOverlap(x*20,y*20,20,20,px,py,20,20) Then ;Условие для y оси не предустмотренно если блок выше перса
If py>y Then
py=py-pvy
pvy=-Abs(pvy)
coll=1
EndIf
EndIf
If RectsOverlap(x*20,y*20,20,20,px,py,20,20) Then ;Условие для x оси
px=px-pvx
pvx=-pvx
EndIf
EndIf
Next
Next
;==================================
;==================================
;Управление
If KeyDown(30) Then pvx#=pvx#-0.1
If KeyDown(32) Then pvx#=pvx#+0.1
If KeyHit(57) And coll=1 Then
pvy=pvy-7
coll=0
EndIf
;=================================
;=================================
;Вычисления
pvy#=pvy#+0.3
pvy#=pvy#*0.9
py#=py#+pvy#
px#=px#+pvx#
pvx#=pvx#*0.95
;=================================
Rect px#,py#,20,20,0 ; Отрисовка перса
Flip
Until KeyHit(1)