FroZ | Дата: Суббота, 15 Ноября 2008, 12:12 | Сообщение # 23 |
![FroZ](http://igrostroenie.my1.ru/avatar/37/147955.jpg) Бывалый
Группа: Участники
Сообщений: 57
Награды: 0
Замечания: 0%
Статус: ![](/on.gif)
| Code Graphics3D 1280,1024 ,32,1 Global sky=mAKESKYBOX("sKY/SKY")
Const T_player=1 ; не верно, низя называть типы и константы одинаково! Const player1=1 ;так верно Const T_terrain=2
;player=LoadAnimMesh("me4.3ds") ; вот скажи нгафиг это надо?! мы же потом будем только объявлять ;PositionEntity player,0,2,0 ;и это тоже в топку
Type t_player Field model1 Field model2 End Type
player.t_player = New T_Player player\model1 = LoadAnimMesh("me4.3ds") player\model2 = LoadAnimMesh("me41.3ds")
Function MakeSkyBox( file$ )
m=CreateMesh() ;front face b=LoadBrush( file$+"_F.bmp",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$+"_L.bmp",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$+"_B.bmp",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$+"_R.bmp",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$+"_U.bmp",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,150,150,150 FlipMesh m EntityFX m,9 EntityOrder m,10 Return m End Function ScaleEntity SKY,150,150,150 sndWave=LoadSound("tada.wav") LoopSound sndWave PlaySound sndWave
Camera=CreateCamera(player\model1) ; мы должы указывать Entity а ты указываешь сдесь переменную типа T_player CameraRange Camera,0.1,100000 Light=CreateLight(1,Camera) LightRange Light,5
terrain=LoadMesh("terrain.3ds") EntityType player\model1,player1 ; сдесь тоже не так там выше писал и исправлял я EntityType player\model2,player1 ; это тоже надо - чтобы обе модели EntityType terrain, T_terrain Collisions T_player,T_terrain,2,3 While Not KeyDown(2) mxspd#=MouseXSpeed()*0.25 myspd#=MouseYSpeed()*0.25 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 campitch#=EntityPitch(player\model1)+myspd# ; а вот тут хз, надо знать точно какакя у тебя щас модель видна - model1 или model2 - иначе будет глючить If campitch#<-85 Then campitch#=-85 If campitch#>85 Then campitch#=85 RotateEntity player\model1,campitch#,EntityYaw(player\model1)-mxspd#,EntityRoll(player\model1) TranslateEntity player\model1,0,-2,0 If KeyDown(57) TranslateEntity player\model1,0,3,0 If MouseHit(1) Then Animate player\model1 ,3,4 If KeyDown(17) MoveEntity player\model1,0,0,.2 If KeyDown(31) MoveEntity player\model1,0,0,-.2 If KeyDown(32) MoveEntity player\model1,.2,0,0 If KeyDown(30) MoveEntity player\model1,-.2,0,0
RenderWorld
UpdateWorld Flip CameraRange CAMERA,0.1,100000 Wend End Исправил, должно работать но не совсем корректно - читай коменты не используй player, используй player\model1 или player\model2 а ешё лучше сделай невидимый бокс, повесь на него коллизии и передвигай его а модель цепляй сверху - так будет проще
[VeXeD Signature] All come to Mobius soon >:]
Сообщение отредактировал FroZ - Суббота, 15 Ноября 2008, 12:19 |
|
| |