CameraProjMode Problem (mit rendern)
Übersicht

BlackErrorBetreff: CameraProjMode Problem (mit rendern) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi zusammen,
Folgendes Problem: Ich hab mir ne Map mit Wasser, Himmel und so weiter gebastelt. Für eine kleine Minimap hab ich nun CameraViewport verwendet (Map camera hängt weit über dem Terrain) Nun hab ich festgestellt, dass die Textur der Minimap von der Höhe zu klein skaliert ist. Darum habe ich den Befehl CameraProjMode verwendet, um einmal nur die Minimap mit der Hochskalierten Textur und einmal nur die HauptCam mit der normalen Textur zu rendern. Wenn ich nun meinen Code ausführe, stimmen zwar die Texturen der Minimap und der HauptCam, aber nun stimmt etwas mit dem Bewegen auf dem Terrain nicht mehr). Wenn ich nun laufen will, werde ich immer auf den Boden gezogen (kann also kein stück Berg hinauflaufen). Habe aber schon festgestellt, dass es an dem CameraProjMode Teil im Code liegt. Nur ich finde nicht den Fehler daran. Hier mal die Hauptcodeteile: Code: [AUSKLAPPEN] Cam = CreateCamera() PositionEntity Cam, x,y,z RotateEntity Cam, 0,3,0 CameraRange Cam, 1,223^3 Cam_Map = CreateCamera() TurnEntity Cam_Map, 90,0,0 PositionEntity Cam_Map, 7785,12000,7635 CameraRange Cam_Map, 1,12000 CameraViewport Cam_Map, 1200,55,200,200 ... ... ;Terrain + Textur Terrain = LoadTerrain ("Terrain\Highmap.jpg") ScaleEntity Terrain, 20,500,20 PositionEntity Terrain, -2562.5,0,-2562 TerrainShading Terrain, True TerrainDetail Terrain, 2500, True EntityFX Terrain, 8 Tex_Terrain = LoadTexture ("gfx\Textur_Boden.jpg") EntityTexture Terrain, Tex_Terrain, 0, 1 ... ... ;Entitytype for Collision EntityType Cam, 1 EntityType Terrain, 2 EntityType Wasserbett, 3 EntityRadius Cam, 70 Repeat TurnEntity Cam, 0,-MouseXSpeed()/2,0 TurnEntity Cam, 0,+MouseXSpeed()/2,0 MoveMouse 400,300 If KeyDown(17) Then MoveEntity Cam, 0,0,+5 If KeyDown(31) Then MoveEntity Cam, 0,0,-5 If KeyDown(30) Then MoveEntity Cam, -5,0,0 If KeyDown(32) Then MoveEntity Cam, +5,0,0 If EntityCollided (Cam,2) Then TranslateEntity Cam, 0,-1,0 If Not EntityCollided (Cam,2) Then TranslateEntity Cam, 0,-15,0 Collisions 1,2,2,3 Collisions 1,3,2,3 If KeyDown(57) ;Größe der Minimap verändern CameraViewport Cam_Map, 888,55,512,512 Else CameraViewport Cam_Map, 1200,55,200,200 End If ;____________________________________________________________ ;Doppeltes Rendern für Anpassen der Minimap [b] CameraProjMode Cam_Map, 0 CameraProjMode Cam, 1 ScaleTexture Tex_Terrain, 20,20 RenderWorld UpdateWorld CameraProjMode Cam, 0 CameraProjMode Cam_Map, 1 ScaleTexture Tex_Terrain, 200,200 UpdateWorld RenderWorld [/b] ;____________________________________________________________ Text 10,20, "Title: DarkWalk Beta" Text 10,60, "Cam_X " + Int EntityX (Cam, 1) Text 10,80, "Cam_Y " + Int EntityY (Cam, 1) Text 10,100, "Cam_Z " + Int EntityZ (cam, 1) Text 1080,20, "Zum Vergrö0ern Leertaste gedrückt halten" ;Text 1200,230, "Cam_Map_X " + Int EntityX (Cam_Map, 1) ;Text 1200,250, "Cam_Map_Y " + Int EntityY (Cam_Map, 1) ;Text 1200,270, "Cam_Map_Z " + Int EntityZ (Cam_Map, 1) Flip Until KeyHit(1) End Der Problembereich ist der abgegrenzte Codeteil im Code (doppeltes rendern) Hoffe auf Antwort Danke im Vorraus Gruß BlackError |
||
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nochmal Hallo,
Bitte verzeiht den Doppelpost. Kennst sich niemand mit meinem Problem aus? Bräuchte so langsam wirklich eine kleine Hilfestellung. Hoffe auf Antworten |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
versuch das doppelt rendern ma mit hideentity cam: showentity cam_map und nachher umgekehrt | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey,
Erstmal vielen Dank für deine Antwort. Das Problem wäre "fast" gelöst, wenn ich jetzt nicht plötzlich duch die map nach unten fliegen würde ![]() Code: [AUSKLAPPEN] HideEntity Cam_Map ShowEntity Cam ScaleTexture Tex_Terrain, 20,20 If EntityCollided (Cam,2) Then TranslateEntity Cam, 0,-1,0 If Not EntityCollided (Cam,2) Then TranslateEntity Cam, 0,-15,0 Collisions 1,2,2,3 Collisions 1,3,2,3 RenderWorld UpdateWorld HideEntity Cam ShowEntity Cam_Map ScaleTexture Tex_Terrain, 200,200 UpdateWorld RenderWorld collisions 1,3,2,3 funktioniert ganz normal. jedoch collisions 1,2,2,3 (Cam mit Terrain) nicht. Verstehe irgendwie nicht, warum es mit dem Wasserbett geht, aber mit dem Terrain nicht. ![]() ![]() ![]() |
||
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab grad die sache nochmal mit cameraprojmode versucht, weil ich dachte, dass es vielleciht nur an der Anziehungskraft oder so gelegen hat.
Mit Show- und Hideentity gehts auf jedenfall schonmal besser. Jetzt fehlt halt wirklich nur noch die kollision mit dem Terrain |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nimm das zweite updateworld raus wo du die minimap renderst
du brauchst ja keinen update der weltelemente nur ein rendern |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm, klingt verdammt logisch ![]() Jedoch klappts mit der collision im ersten rendern immer noch net richtig. Komisch finde ich jedoch, dass die Kollission am anfang funktioniert (cam steht etwas oben auf dem Berg) Sobald ich mich aber bewege, fliege ich sofort nach unten durch das Terrain hindurch. Trotzdem schonmal vielen dank Dreamora. Hast mir bereits sehr viel geholfen. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann gibts eigentlich nur noch eine Möglichkeit: Gravitation zu hoch oder Collisionsphere der Cam zu klein.
Und da du net keine Codestruktur wie Mark (der Macher von Blitz) hast, kannst du so durchs terrain durch flattern. Schau dir mal das Castle beispiel an, dann siehst du was ich meine. wie du das beheben kannst: 1. TerrainY statt Collision nehmen -> eh schneller 2. LinePick mit aktueller Position und zukünftiger, radius der kollisionssphere nehmen. Dann weisst du obs mit dem terrain kollidieren würde. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ...
grundsätzliches Vorgehen........ Camera1 einrichten mit Colratius Camera2 einrichten ohne Colradius Beide Cameras Positionieren 1. Camera1 mittels move in richtung boden 2. Camera2 Mittes Positionentity und RotateEntity an die gleiche Position wie Camera1 3. Colision mit Slide für Camera1 4. Update World 5. RenderWorld So solte es funktinieren. Wenn du es so gemacht hast. Dann mach mal in einem separaten Code Teil das ganze von forne. Manchmal schleichen sich bei langem Quell Code unsichtbare Fehler ein. Und wenn es dann nicht funktioniert. Poste doch mal den Code. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, an dem sollte es ja eigentlich nicht liegen, da die Kollision mit dem "Wasserbett" normal funktioniert. Die collisiontypes für Terrain und Wasserbett und so habe ich immer zusammen im code geschrieben. Darum wundert es mich auch, dass nur die Kollision mit dem Terrain fehlerhaft ist.
An der Gravitation kanns eigentklich auch nicht ligen, weil die Werte vor der Umstellung mit nem Cameraviewport (Minimap) auch funktioniert haben. Auch der Wert der Collisionsphere hat zuvor gestimmt. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group