Kollision; Ich find den Fehler nicht
Übersicht
BlitzBasic
Beginners-Corner|
|
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 oder EntityRadius auf den Spieler anwenden.
Nachtrag: UpdateWorld solltest du auch nicht weglassen!
|
||
|
|
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
BlitzBasic
Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group

