Оператор ЭВМ
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: аркадная FPS, прыжок и гравитация
тем что ты не сможешь подниматься по ступенькам и уткнёшся в первыйже выступ.
Я тут сделал пару набросков помогите оптемизировать плиз))

Graphics3D 1440,900,32,1
AppTitle "FPS"
SetBuffer BackBuffer()
HidePointer
SetFont LoadFont("Tahoma",14)
Global player
Global camera
Global level
Global mvx#,mvz#
Const TypePlayer=1
Const TypeLevel=2
Function create_player()
player=CreatePivot()
EntityRadius player,4.5,6
RotateEntity player,0,180,0
PositionEntity player,0,8,0
EntityType player,TypePlayer
camera=CreateCamera(player)
CameraClsMode camera,False,True
PositionEntity camera,0,0,0
MoveEntity camera,0,1.2,0
CameraRange camera,.1,10000
End Function
Function load_level()
level=LoadMesh("test.b3d")
PositionEntity level,0,0,0
ScaleEntity level,10,10,10
EntityType level,TypeLevel
light=CreateLight()
End Function
Collisions TypePlayer,TypeLevel ,2,3
create_player()
load_level()
While Not KeyHit(1)
mxs#=MouseXSpeed()/4.0
mys#=MouseYSpeed()/4.0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
camxa#=camxa-mxs
camya#=camya+mys
If camya<-70 Then camya=-70
If camya>70 Then camya=70
RotateEntity player,0,camxa,0
RotateEntity camera,camya,0,0
MoveEntity player,0,mvy#,0
If EntityCollided(player, TypeLevel) Then
gravity#=0.1 mvy#=0 jumping=0
Else
gravity#=0.5
EndIf
jumpvel#=0.65
If KeyDown(30) Then mvx=mvx-.1
If KeyDown(32) Then mvx=mvx+.1
If KeyDown(17) Then mvz=mvz+.1
If KeyDown(31) Then mvz=mvz-.1
mvx=mvx/1.2
mvz=mvz/1.2
MoveEntity player,mvx,0,mvz
If jumping=0
If KeyDown(57) Then mvy#=jumpvel# jumping=1
TranslateEntity player,0,-gravity#,0
EndIf
If jumping=1
mvy#=mvy#-gravity#*0.1
EndIf
UpdateWorld
RenderWorld
Text 10,35, "Position of player: "
Text 20,50, "X = " + EntityX(player)
Text 20,65, "Y = " + EntityY(player)
Text 20,80, "Z = " + EntityZ(player)
Text 10,105, "Poligons = "+TrisRendered()
Flip
Wend
End
Последний раз редактировалось HolyDel, 18.06.2008 в 19:39.
Причина: оформление кода было паршивым
|