warum keine terrain collission?
Übersicht

![]() |
mas93Betreff: warum keine terrain collission? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 640,480,16,1 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,1,1,1 light=CreateLight() RotateEntity light,90,0,0 ;TERRAIN SACHEN terrain=LoadTerrain("heightmap.png") TerrainDetail terrain,4000,True ScaleEntity terrain,1,50,1 grass_tex=LoadTexture("schnee.png") EntityTexture terrain,grass_tex,0,1 ;Sachen Laden HidePointer Global fadenkreuz=LoadImage("fadenkreuz.png") MaskImage fadenkreuz,0,0,255 ;CAMERA Global cameraa=CreateCamera() MoveEntity cameraa,150,150,110 Pivot = CreatePivot(cameraa) Global CameraX,CameraY,CameraZ,XWinkel,YWinkel a#=0.5 MoveMouse 320,240 SetBuffer BackBuffer() Hauptspiel() ;--------------------FUNCTIONS------------------------------------- Function Hauptspiel() Repeat ;Camera Position ermitteln um die werte auch ;Später Speichern und wieder laden zu können CameraX = EntityX(cameraa) CameraY = EntityY(cameraa) CameraZ = EntityZ(cameraa) XWinkel = EntityYaw(cameraa) YWinkel = EntityPitch(cameraa) CameraXMove#=0 CameraZMove#=0 ;----------------BEWEGUNG------------------------- If KeyDown(200) Then CameraZMove# = 6.0 EndIf If KeyDown(208) Then CameraZMove# = -6.0 EndIf If KeyDown(203) Then CameraXMove# = -6.0 EndIf If KeyDown(205) Then CameraXMove# = 6.0 EndIf RotateEntity cameraa,EntityPitch(cameraa)+MouseYSpeed()*.10,EntityYaw(cameraa)-MouseXSpeed()*.10,0 MoveEntity Cameraa,CameraXMove#,0,CameraZMove# MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 ;------------------------ZOOM----------------------- If Cam_Zoom = 0 Then If MouseHit(2) And MouseDown(2) Then Cam_Zoom = 1 EndIf EndIf If Cam_Zoom = 1 Then If zoom# < 10.0 Then zoom# = zoom# + .10 EndIf CameraZoom camera,zoom# EndIf TranslateEntity cameraa,0,-10,0 RenderWorld Print "x" + camerax Flip Until KeyHit(1) End End Function HI, wisst ihr warum ich hier durchs terrain falle?? wenn ich translateentity weglasse,dann kann ich enfach durchs terrain laufen,und wenn ichs hin mache,ist alles schwarz,womöglich weil ich durchfalle. Hab ihr ne idee was ich falsch geacht hab??? wäre nett wenn ihr antworten würdet. mfg marius |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast nichts falsch gemacht, du hast nur keine Kollision gesetzt womit er halt auch nicht kollidiert. Wobei man bei Terrains häufig garnicht erst auf Kollision geht sondern TerrainY nimmt um die Höhe des Terrains unter sich zu errechnen.
~VERSCHOBEN~ falsches Board Dreamora |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ahh,k
aber wie mache ich das mit dem terrain y? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ql:terrainy | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
sry,aber da ich noch anfänger in 3d bin weis ich nich genau wie ich das machen soll.
Könntet ihr mir einmal den code schreiben??? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir bitte den code an der in der Onlinehilfe mitgegeben wird. Was wird da mit terrainy gemacht? Der Code ist sehr simpel und noch dazu lauffähig, also teste ihn einfach.
EDIT: Ups, daq fehlen eventuell die medias. Das ist aber nicht schlimm: height_map.bmp sollte ein bild aus grausstufen sein. Für mossygrass kannst du jede beliebeige textur nehmen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 640,480,16,1 SetBuffer BackBuffer() ;Kollisionstypes: Const Player=1,Ground=2 camera=CreateCamera() PositionEntity camera,1,1,1 light=CreateLight() RotateEntity light,90,0,0 Entitytype camera,Player ;< Kamera den Kollisionstype zuweisen ;TERRAIN SACHEN terrain=LoadTerrain("heightmap.png") TerrainDetail terrain,4000,True ScaleEntity terrain,1,50,1 grass_tex=LoadTexture("schnee.png") EntityTexture terrain,grass_tex,0,1 Entitytype terrain,Ground ;< das gleiche beim Terrain ;Kollisionen festlegen: collisions Player,Ground,2,2 [...] ;CAMERA ??? Ich verstehe nicht warum du 2 Kameras brauchst? und noch einen Pivot IN der Kamera? Global cameraa=CreateCamera() MoveEntity cameraa,150,150,110 Pivot = CreatePivot(cameraa) Global CameraX,CameraY,CameraZ,XWinkel,YWinkel a#=0.5 Als letztes noch ein "Updateworld" vor Renderworld, dann solltest du nicht mehr durchfallen ![]() |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
...immer schön vorkauen damit er auch bloß nichts lernt. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja du hast ihn doch auch eine falsche Fährte gebracht! TerrainY ist etwas völlig anderes als Kollision. Und außerdem habe ich im Code alles erklärt ![]() ![]() |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mittels terrainy kann er seine Figur ausrichten ohne sich um eine Kollisin zu kümmern.
Nix falsche Fährte. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Richtig.
Kollision und Pick braucht man bei einem Terrain nur dann wenn man für irgendwelche Arten von Physik die Oberflächennormale benötigt an dem Punkt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen dank für eure mühen.An hand des codes(in dem alles gut beschrieben ist) hab ich das endlich kapiert.
mfg marius |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 1024,768,16,1 SetBuffer BackBuffer() ;Kollisionstypes: Const Player=1,Ground=2 camera=CreateCamera() PositionEntity camera,1,1,1 light=CreateLight() RotateEntity light,90,0,0 EntityType camera,Player ;< Kamera den Kollisionstype zuweisen ;TERRAIN SACHEN terrain=LoadTerrain("heightmap.png") TerrainDetail terrain,4000,True ScaleEntity terrain,1,50,1 grass_tex=LoadTexture("schnee.png") EntityTexture terrain,grass_tex,0,1 EntityType terrain,Ground ;< das gleiche beim Terrain ;Sachen Laden HidePointer Global fadenkreuz=LoadImage("fadenkreuz.png") MaskImage fadenkreuz,0,0,255 ;CAMERA Global cameraa=CreateCamera() MoveEntity cameraa,150,150,110 Pivot = CreatePivot(cameraa) Global CameraX,CameraY,CameraZ,XWinkel,YWinkel a#=0.5 MoveMouse 320,240 SetBuffer BackBuffer() Hauptspiel() ;--------------------FUNCTIONS------------------------------------- Function Hauptspiel() Repeat ;Camera Position ermitteln um die werte auch ;Später Speichern und wieder laden zu können CameraX = EntityX(cameraa) CameraY = EntityY(cameraa) CameraZ = EntityZ(cameraa) XWinkel = EntityYaw(cameraa) YWinkel = EntityPitch(cameraa) CameraXMove#=0 CameraZMove#=0 ;----------------BEWEGUNG------------------------- If KeyDown(200) Then CameraZMove# = 6.0 EndIf If KeyDown(208) Then CameraZMove# = -6.0 EndIf If KeyDown(203) Then CameraXMove# = -6.0 EndIf If KeyDown(205) Then CameraXMove# = 6.0 EndIf RotateEntity cameraa,EntityPitch(cameraa)+MouseYSpeed()*.10,EntityYaw(cameraa)-MouseXSpeed()*.10,0 MoveEntity Cameraa,CameraXMove#,0,CameraZMove# MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 ;------------------------ZOOM----------------------- If Cam_Zoom = 0 Then If MouseHit(2) And MouseDown(2) Then Cam_Zoom = 1 EndIf EndIf If Cam_Zoom = 1 Then If zoom# < 10.0 Then zoom# = zoom# + .10 EndIf CameraZoom camera,zoom# EndIf TranslateEntity cameraa,0,-10,0 ;Kollisionen festlegen: Collisions Player,Ground,2,2 ;:::::::::::::SCHLUSSSACHEN:::::::::::::::::::::::::::::::: UpdateWorld RenderWorld Print "x" + camerax DrawImage fadenkreuz,493,366 Flip Until KeyHit(1) End End Function sry das ich jezt nochmal den ganzen code paste,aber irgendwas stimmt immer nich nicht.Ich hab jetzt alles was ihr gesagt habt eingebaut,es gibt aber immer noch keine collision.. Wisst ihr warum?? wäre nett wenn ihr mir nocheinmal helfen könnten thx mfg marius |
||
![]() |
NewJerzy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du dir das Beispiel von Blade Runner nicht anschaust dann kann das ja gar nicht richtig funktionieren!
Mach das mal, was dir Blade-Runner gesagt hat, der Code in der OH ist nämlich echt nicht schwer zu verstehen... Wenn es danach immer noch nicht geht, dann haste wo anders n Denkfehler! Probier das mit TerrainY() auf jeden Fall mal aus!! jerzy |
||
Projekt: NewJerzy Online (40%) - Wird wahrscheinlich nciht mehr weitergearbeitet
Projekt: Arbeitszimmer (3.9%) - Schreibtisch und Laptop vollendet Hier gehts zum Thread: Klick Ach ja, meine FilmAG Website: Hier Klicken |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group