злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Камера...
ахх... начал чтото писать, да надоело сразу - вот гляди исходник моей старой игры

Include "ashadow.bb"
Include "fps.bb"
aGraphics3D 1280,1024,32,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()
HidePointer()
pxCreateWorld(1,"key")
Function LoadSkyBox(file$)
m=CreateMesh()
;front face
b=LoadBrush( file$+"_lf.dds",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3:
FreeBrush b
;right face
b=LoadBrush( file$+"_fr.dds",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;back face
b=LoadBrush( file$+"_bk.dds",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;left face
b=LoadBrush( file$+"_rt.dds",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;top face
b=LoadBrush( file$+"_UP.dds",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
ScaleMesh m,10000,10000,10000
FlipMesh m
EntityFX m,1+8
Return m
End Function
Function FreeFlyCam(ent)
mxspd#=MouseXSpeed()*Mousespeed
myspd#=MouseYSpeed()*Mousespeed
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
campitch#=EntityPitch(ent)+myspd#
If campitch#<-89 Then campitch#=-89
If campitch#>89 Then campitch#=89
RotateEntity ent,campitch#,EntityYaw(ent)-mxspd#,EntityRoll(ent)
End Function
Function PlayerCam(ent,m#,ent2)
mxs#=MouseXSpeed()*m
mys#=MouseYSpeed()*m/3
mouse_shake=Abs(((mxs+mys)/2)/1000.0)
dest_camera_yaw#=dest_camera_yaw#-mxs
dest_camera_pitch#=dest_camera_pitch#+mys
camera_yaw#=camera_yaw+((dest_camera_yaw-camera_yaw)/5)
camera_pitch#=camera_pitch+((dest_camera_pitch-camera_pitch)/5)
pxBodySetRotation ent,0,pxBodyGetRotationYaw(ent)+camera_yaw#,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
End Function
Function CreatePhysEntity(mass)
p.phys_body = New phys_body
p\entity =ACreateCube(0,2)
p\mass = mass
p\phys_entity = pxBodyCreateCube(1,1,1,p\mass)
pxBodySetPosition(p\phys_entity,0,20,0)
End Function
Type phys_body
Field entity
Field phys_entity
Field mass
End Type
Function PlayerMove(ent,speed)
If KeyDown(30)
pxBodySetLocalLinearSpeed(ent,speed,pxBodyGetLocalLinearSpeedY(ent),0)
move_bool=0
ElseIf KeyDown(32)
pxBodySetLocalLinearSpeed(ent,-speed,pxBodyGetLocalLinearSpeedY(ent),0)
move_bool=0
ElseIf KeyDown(31)
pxBodySetLocalLinearSpeed(ent,0,pxBodyGetLocalLinearSpeedY(ent),speed)
move_bool=0
ElseIf KeyDown(17)
pxBodySetLocalLinearSpeed(ent,0,pxBodyGetLocalLinearSpeedY(ent),-speed)
move_bool=0
Else
;pxBodySetLocalLinearSpeed(ent,0,-10,0)
move_bool=1
EndIf
End Function
aml=175
AmbientLight aml,aml,aml
light2=CreateSLight(2,100,155,155,155)
light=CreateSLight(1,100,155,155,155)
PositionEntity light,0,30,0
Global mousespeed#=0.5
camera=CreateCamera()
CameraRange(camera,.1,100000)
loadskybox("skybox\1")
speed#=1
player=LoadAnimMesh("actor_frank\frank.b3d")
jump=LoadAnimSeq(player,"actor_frank\jump.b3d")
player_phys=pxBodyCreateCapsule(5,5,1000)
player_speed=30
plane=ACreateCube()
ScaleEntity plane,1000,0.0001,1000
PointEntity light,plane
sand=LoadTexture("sand.jpeg")
EntityTexture plane,sand
ScaleTexture sand,.007,.007
MoveEntity camera,0,15,17
TurnEntity camera,13,180,0
EntityParent camera,player
gorka=ACreateCube()
ScaleEntity gorka,20,.1,20
MoveEntity gorka,40,5,10
TurnEntity gorka,20,0,0
phys1=pxBodyCreateCube(20,.1,20,0)
pxBodySetPosition phys1,40,5,10
pxBodySetRotation phys1,20,0,0
Global move_bool=0
max_player_speed=30
Animate player,1,1,jump,5
Repeat
If KeyHit(16) Animate player,1,1,1,5
pxBodySetLocalLinearSpeed(player_phys,0,-25,0)
pxBodySetFrozenRot(player_phys,1)
PositionEntity(player,pxBodyGetPositionX(player_phys),pxBodyGetPositionY(player_phys)-7.48,pxBodyGetPositionZ(player_phys))
RotateEntity(player,pxBodyGetRotationPitch(player_phys),pxBodyGetRotationYaw(player_phys),pxBodyGetRotationRoll(player_phys))
playermove(player_phys,player_speed)
If KeyDown(57) createphysentity(12)
For p.phys_body = Each phys_body
pxBodySetEntity(p\entity,p\phys_entity)
Next
playercam(player_phys,1.2,camera)
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
ARenderWorld(camera)
pxRenderPhysic(30,0)
Text 10,10,pxkey
Flip
Until KeyHit(1)
End
ту конечно используется много всякой фигни, но переделать под блиц не проблема, и помне так всё намного проще чем у того-же Sleepybear
|