Ok guys, here is my problem!
I'm getting a memory access violation! when i run my program. don't worry about not seeing anything, I know the program is not complete!. Another thing, I program in modules. This makes correcting mistakes a lot easier!!!
There are three files altogether
1. The main file
2. A sub-program
3. Another sub-program
I'm getting a memory access violation! when i run my program. don't worry about not seeing anything, I know the program is not complete!. Another thing, I program in modules. This makes correcting mistakes a lot easier!!!
There are three files altogether
1. The main file
Include "Collisions.bb" Include "Setup.bb" Include "World.bb" ;Include "Player.bb" ; ; =============================================== ; ; These files are not necessary for this particular game-script but they help out in coding Include "key function.bb" ; ; Main Routines ; SetBuffer BackBuffer() Setup landscape("terrain-1.bmp", "water-2_mip.bmp", "sky", "heightmap_256.bmp") Flip UpdateWorld RenderWorld WaitKey()
2. A sub-program
; SetUp file Type MainCamera Field entity,camera,target,heading,sky End Type Type Player Field entity,model Field anim_speed#,player_y#,roll# End Type Function SetUp() Graphics3D 800, 600, 32, 0 Player1.Player = CreatePlayer(0,10,0) Player1Camera.MainCamera = CreateMainCamera(Player1\entity) End Function Function CreateMainCamera.MainCamera(entity) c.MainCamera=New MainCamera c\entity=entity c\camera=CreateCamera() c\target=CreatePivot( entity ) PositionEntity c\target,0,3,-10 EntityType c\target,TYPE_TARGET c\heading=CreatePivot( entity ) PositionEntity c\heading,0,0,20 c\sky=CopyEntity( sky ) Return c End Function Function UpdateMainCamera ( c.MainCamera) If KeyDown(200) TranslateEntity c\heading,0,-3,0 Else If KeyDown(208) TranslateEntity c\heading,0,+3,0 EndIf dx#=EntityX(c\target,True)-EntityX(c\camera,True) dy#=EntityY(c\target,True)-EntityY(c\camera,True) dz#=EntityZ(c\target,True)-EntityZ(c\camera,True) TranslateEntity c\camera,dx*.1,dy*.1,dz*.1 PointEntity c\camera,c\heading PositionEntity c\target,0,0,0 ResetEntity c\target PositionEntity c\target,0,3,-10 PositionEntity c\sky,EntityX(c\camera),EntityY(c\camera),EntityZ(c\camera) End Function Function CreatePlayer.Player(x#, y#, z#) p.Player=New Player p\entity=CreatePivot() p\model=CopyEntity( player_model,p\entity ) p\player_y=y PositionEntity p\entity,x,y,z EntityType p\entity,TYPE_PLAYER EntityRadius p\entity,1.5 ResetEntity p\entity Return p End Function
3. Another sub-program
Function skybox(file$) m=CreateMesh() ;front face b=LoadBrush( file$+"_FR.jpg",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$+"_LF.jpg",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.jpg",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.jpg",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.jpg",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 ;bottom face b=LoadBrush( file$+"_DN.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1 AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ScaleMesh m,100,100,100 FlipMesh m EntityFX m,1 End Function Function landscape(land$,water$,sky$,heightmap$) light=CreateLight() TurnEntity light,45,45,0 land_tex=LoadTexture( land$,1 ) ScaleTexture land_tex,10,10 land=LoadTerrain( heightmap$ ) EntityTexture land,land_tex TerrainShading land,True PositionEntity land,-1000,-100,-1000 ScaleEntity land,2000.0/256,100,2000.0/256 EntityType land,TYPE_TERRAIN TerrainDetail land,750,True For k=1 To n_trees Repeat tx#=Rnd(-70,70)-150 tz#=Rnd(-70,70)+400 ty#=TerrainY( land,tx,0,tz ) Until ty>water_level t=CopyEntity( tree_sprite ) PositionEntity t,tx,ty,tz ScaleSprite t,Rand(2,3),Rand(4,6) Next ground=CreatePlane() EntityTexture ground,land_tex PositionEntity ground,0,-100,0 EntityOrder ground,9 water_tex=LoadTexture( water$,3 ) ScaleTexture water_tex,20,20 water=CreatePlane() EntityTexture water,water_tex PositionEntity water,0,water_level,0 sky=skybox( sky$ ) EntityOrder sky,10 HideEntity sky End Function