Kollision; Ich find den Fehler nicht
Übersicht

![]() |
LakortaBetreff: Kollision; Ich find den Fehler nicht |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab schon wieder ein problem mit Kollision, und zwar, dass der Spieler nicht stehenbleibt, wenn er mit dem Gelände kollidiert.
Code: Code: [AUSKLAPPEN] AppTitle "Dragon-Eye" ;---Grafikeinstellungen--- Graphics3D 800,600,16,2 SetBuffer BackBuffer() timer=CreateTimer(60) ;---Kamera-Einstellungen--- cam=CreateCamera() CameraRange cam,1,100 ;---Terrain--- ;Heightmap map=LoadTerrain("Images\heightmap.png") EntityTexture map,LoadTexture("Images\land.png") ;Himmel sky=CreateSphere() ScaleEntity sky,5,5,5 PositionEntity sky,EntityX(cam),EntityY(cam),EntityZ(cam) EntityParent sky,cam EntityTexture sky,LoadTexture("Images\himmel.png") FlipMesh sky EntityOrder sky,1 ;Wasser wasser=LoadTexture("Images\wasser.png") ScaleTexture wasser,10,10 Dim water(5) For i=1 To 5 water(i)=CreatePlane() PositionEntity water(i),0,-30*i,0 EntityAlpha water(i),0.5+0.1*i EntityTexture water(i),wasser Next ;Licht licht=CreateLight(2) ;---Spieler-Einstellungen--- player=LoadMesh("Meshs\player.x") EntityParent cam,player PositionEntity player,25,0.8,21 Global player_hp=100 Global player_hp_max=100 Global player_tmp#=0.2 ;---Meshs-Einstellungen--- ;---Kollision--- EntityType map,1 EntityType player,2 Collisions 2,1,2,1 ;---!---Hauptschleife---!--- While Not KeyHit(1) PositionEntity licht,EntityX(player),EntityY(player)+10,EntityZ(player) ;---Spielersteuerung--- If KeyDown(17) Then MoveEntity player,0,0,player_tmp If KeyDown(30) Then MoveEntity player,-player_tmp,0,0 If KeyDown(31) Then MoveEntity player,0,0,-player_tmp If KeyDown(32) Then MoveEntity player,player_tmp,0,0 ;---3D-Ende--- RenderWorld ;---Spieleranzeige--- ;---Sonstiges--- WaitTimer timer Flip 0 Wend End Ich finde da den Fehler irgendwie nicht ![]() |
||
--- |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
EntityBox![]() ![]() Nachtrag: UpdateWorld ![]() |
||
![]() |
Lakorta |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah danke. Hab die ganze Zeit nach dem Fehler gesucht, und dabei nur UpdateWorld vergessen ![]() Noch mal eine andere Frage. Ich hab das jetzt so gemacht, aber der Spieler fällt durch die Map durch. Die normale Kollision mit Wänden funktioniert einwandfrei: Code: [AUSKLAPPEN] AppTitle "Dragon-Eye" ;---Grafikeinstellungen--- Graphics3D 800,600,16,2 SetBuffer BackBuffer() timer=CreateTimer(60) ;---Kamera-Einstellungen--- cam=CreateCamera() CameraRange cam,1,100 ;---Terrain--- ;Heightmap map=LoadTerrain("Images\heightmap.png") EntityTexture map,LoadTexture("Images\land.png") ;Himmel sky=CreateSphere() ScaleEntity sky,5,5,5 PositionEntity sky,EntityX(cam),EntityY(cam),EntityZ(cam) EntityParent sky,cam EntityTexture sky,LoadTexture("Images\himmel.png") FlipMesh sky EntityOrder sky,1 ;Wasser wasser=LoadTexture("Images\wasser.png") ScaleTexture wasser,10,10 Dim water(5) For i=1 To 5 water(i)=CreatePlane() PositionEntity water(i),0,-30*i,0 EntityAlpha water(i),0.5+0.1*i EntityTexture water(i),wasser Next ;Licht licht=CreateLight(2) ;---Spieler-Einstellungen--- player=LoadMesh("Meshs\player.x") EntityRadius player,1 EntityParent cam,player PositionEntity player,25,0.8,21 Global player_hp=100 Global player_hp_max=100 Global player_tmp#=0.2 ;---Meshs-Einstellungen--- ;---Kollision--- EntityType map,1 EntityType player,2 Collisions 2,1,2,1 ;---!---Hauptschleife---!--- While Not KeyHit(1) PositionEntity licht,EntityX(player),EntityY(player)+10,EntityZ(player) ;---Spielersteuerung--- MoveEntity player,0,-0.2,0 If KeyDown(17) Then MoveEntity player,0,0,player_tmp If KeyDown(30) Then MoveEntity player,-player_tmp,0,0 If KeyDown(31) Then MoveEntity player,0,0,-player_tmp If KeyDown(32) Then MoveEntity player,player_tmp,0,0 ;---3D-Ende--- UpdateWorld RenderWorld ;---Spieleranzeige--- ;---Sonstiges--- WaitTimer timer Flip 0 Wend End EDIT: Hab den Fehler raus. Der Spieler musste einfach nur 0.3 mehr nach oben (y) positonieren, dann hat das auch funktioniert. |
||
--- |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group