Wenn ich die Würfel kleiner mache zeigt es mir die Nämen der Städte auch nicht mehr an.. wohl ein fehler von Ogre.
Code: Alles auswählen
#CameraSpeed = 2
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
ExamineDesktops()
OpenScreen(DesktopWidth(0),DesktopHeight(0),32,"3D Terrain Test")
UsePNGImageDecoder()
;Terrain erstellen
CreateMaterial (0, LoadTexture(0, "Terrain_Texture.jpg"))
AddMaterialLayer(0, LoadTexture(1, "Terrain_Detail.jpg"), #PB_Material_Add)
CreateTerrain("terrain.png", MaterialID(0))
Sun(250,144,474,#Yellow)
;test bild laden
Global test1 = LoadSprite(#PB_Any,"test.png")
;stadt
tstadt = CreateMesh(#PB_Any,100)
SetMeshData(tstadt, #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_Color, ?CubeData2, 8)
SetMeshData(tstadt, #PB_Mesh_Face, ?CubeDataIndex, 12)
mstadt = CreateMaterial(#PB_Any,LoadTexture(2,"stadt.jpg"))
Global stadt1 = CreateEntity(#PB_Any,MeshID(tstadt),MaterialID(mstadt))
Global stadt2 = CreateEntity(#PB_Any,MeshID(tstadt),MaterialID(mstadt))
Global stadt3 = CreateEntity(#PB_Any,MeshID(tstadt),MaterialID(mstadt))
ScaleEntity(stadt1,0.08,0.08,0.08)
ScaleEntity(stadt2,0.08,0.08,0.08)
ScaleEntity(stadt3,0.08,0.08,0.08)
MoveEntity(stadt1,274,TerrainHeight(274,341)+27,341)
MoveEntity(stadt2,348,TerrainHeight(348,436)+27,436)
MoveEntity(stadt3,491,TerrainHeight(491,304)+27,304)
;1 Kamera erstellen
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 250, 269, 474)
maus=CreateSprite(-1,5,5)
SkyDome("clouds.jpg",10)
CreateWater(0,159,4,101,100,#PB_World_WaterSmooth|#PB_World_WaterHighQuality|#PB_World_WaterCaustics | #PB_World_WaterSun)
Repeat
;Steuerung
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
ExamineMouse()
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
CameraLocate(0,CameraX(0),Height,CameraZ(0))
MoveCamera (0, KeyX, -CameraY(0)+50, KeyY)
RenderWorld()
DisplaySprite(test1,0,0)
DisplaySprite(maus,MouseX(),MouseY())
StartDrawing(SpriteOutput(test1))
Box(0,0,SpriteWidth(test1),SpriteHeight(test1),#Green)
DrawText(0,0,"Camera X = "+Str(CameraX(0)),#Red)
DrawText(0,20,"Camer Y = "+Str(CameraY(0)),#Red)
DrawText(0,40,"Camera Z = "+Str(CameraZ(0)),#Red)
DrawText(0,60,Str(MousePick(0,MouseX(),MouseY())))
Select MousePick(0,MouseX(),MouseY())
Case stadt1
DrawText(0,80,"London")
Case stadt2
DrawText(0,80,"Paris")
Case stadt3
DrawText(0,80,"Berlin")
EndSelect
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
End
#SQRT13 = 0.57735026
DataSection
CubeData2:
Data.f -100.0,100.0,-100.0 ; 0 position
Data.f -#SQRT13,#SQRT13,-#SQRT13 ; 0 normal
Data.l 255 ; 0 colour
Data.f 100.0,100.0,-100.0 ; 1 position
Data.f #SQRT13,#SQRT13,-#SQRT13 ; 1 normal
Data.l 255 ; 1 colour
Data.f 100.0,-100.0,-100.0 ; 2 position
Data.f #SQRT13,-#SQRT13,-#SQRT13 ; 2 normal
Data.l 255 ; 2 colour
Data.f -100.0,-100.0,-100.0 ; 3 position
Data.f -#SQRT13,-#SQRT13,-#SQRT13 ; 3 normal
Data.l 255 ; 3 colour
Data.f -100.0,100.0,100.0 ; 4 position
Data.f -#SQRT13,#SQRT13,#SQRT13 ; 4 normal
Data.l 255 ; 4 colour
Data.f 100.0,100.0,100.0 ; 5 position
Data.f #SQRT13,#SQRT13,#SQRT13 ; 5 normal
Data.l 255 ; 5 colour
Data.f 100.0,-100.0,100.0 ; 6 position
Data.f #SQRT13,-#SQRT13,#SQRT13 ; 6 normal
Data.l 255 ; 6 colour
Data.f -100.0,-100.0,100.0 ; 7 position
Data.f -#SQRT13,-#SQRT13,#SQRT13 ; 7 normal
Data.l 255 ; 7 colour
CubeDataIndex:
Data.w 0,2,3
Data.w 0,1,2
Data.w 1,6,2
Data.w 1,5,6
Data.w 4,6,5
Data.w 4,7,6
Data.w 0,7,4
Data.w 0,3,7
Data.w 0,5,1
Data.w 0,4,5
Data.w 2,7,3
Data.w 2,6,7
EndDataSection