Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Не поможет.
Вот нормальный код, найдите пару десятков отличий. А заодно замерьте во сколько раз повісилась производительность...
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
;ystanovka kolliziy
Const robotType = 1
Const levelType = 2
Const boxType = 3
Const cameraType = 4
Collisions robotType,levelType,2, 3
Collisions robotType,boxType,2, 2
Collisions cameraType,levelType,2, 3
Collisions cameraType,boxType,2, 2
;shrift pokrupnee
SetFont(LoadFont ("arial cyr",20))
;Sun
l = CreateLight(1)
RotateEntity l, 90, 0,0
;Level
level=CreatePlane ()
EntityColor level,0,0,200
PositionEntity level,0,-10,0
EntityType level,levelType
;Robo
robot = CreateCube ()
EntityColor robot,0,200,0
ScaleEntity robot,5,5,5
EntityRadius robot, 6
EntityType robot,robotType
;Camera
cam = CreateCamera(robot)
EntityRadius cam,5
EntityType cam,cameraType
CameraRange cam,0.01,2000;<<NEVER USE SUCH VALUES OR Z-Buffer WILL DIE! USE SOMETHING LIKE (0.1,1000)-MAXIMUM!
CameraFogColor cam, 0,128,255
CameraFogRange cam, 1,1000
CameraClsColor cam,0,128,255;<<FOG COLOR WITHOUT BACKGROUND COLOR HAS NO REASON IN RESULT...
PositionEntity cam, 0, 5, 10
;bol'shoy kubik
cub1=CreateCube()
ScaleEntity cub1 ,1, 10, 100
PositionEntity cub1,25,5,-30
EntityType cub1,boxType
cub2=CopyEntity (cub1)
PositionEntity cub2,-25,5,-30
EntityType cub2,boxType
;iskry ot mashiny
spr1 = LoadSprite ("spr1.bmp")
SpriteViewMode spr1,2
RotateEntity spr1,0,180,90
ScaleSprite spr1,5,5
EntityFX spr1,17
FPSTimer=CreateTimer(60)
;------------------------------------------
;<<MAIN LOOP
While Not KeyHit(1)
;povorot kamery na robota
PointEntity cam,robot
;dvigaem kamery
If KeyDown(44) Then TranslateEntity cam,0,-0.5,0
If KeyDown(45) Then TranslateEntity cam,0,0.5,0
If KeyDown (46) Then MoveEntity cam,0,0,-1
If KeyDown(47) Then MoveEntity cam,0,0,1
;dvigaem robota
If KeyDown(208) Then MoveEntity robot,0,0,1
If KeyDown (200) Then MoveEntity robot,0,0,-1
If KeyDown (203) Then MoveEntity robot,1,0,0
If KeyDown (205) Then MoveEntity robot,-1,0,0
;gravitaciya
TranslateEntity robot,0,-1,0
;esli zadevaem steny, to risyem iskry
For coll=1 To CountCollisions(Robot)
If GetEntityType(CollisionEntity(Robot,coll))=boxType Then
px# = CollisionX(Robot,coll)
py# = CollisionY(Robot,coll)
pz# = CollisionZ(Robot,coll)
PositionEntity spr1,px#,py#,pz#
nx# = CollisionNX(Robot,coll)
ny# = CollisionNY(Robot,coll)
nz# = CollisionNZ(Robot,coll)
AlignToVector spr1,nx#,ny#,nz#,3
MoveEntity Spr1,0,0,0.1
EntityAlpha spr1,1;<<Hide/ShowEntity cmds is slowly- don't use it in loop
Exit
Else
EntityAlpha spr1,1
EndIf
Next
UpdateWorld
RenderWorld
Flip(0)
WaitTimer(FPSTimer)
Wend
End
P.S. Кстати, что делает эта тема в разделе "2Д-программирование" ?
|