Terrain Kollision

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Seoman

Betreff: Terrain Kollision

BeitragDo, März 17, 2005 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich habe folgendes Problem:
In jedem Schleifendurchlauf bewege ich meine Figur (etwa 5, 5, 5) um den Wert speed vorwärts. Danach teste ich in einer If-Abfrage meine jetzige Position und die Höhe des Terrains und setze den Spieler wenn nötig an die Position px, terrainy, pz

Mein Code sieht in etwa so aus:

Code: [AUSKLAPPEN]

If EntityY (player) < TerrainY (terrain, EntityX(player), EntityY(player), EntityZ(player)) Then
 
PositionEntity player, EntityX(player), TerrainY (terrain, EntityX(player), EntityY(player), EntityZ(player)), EntityZ (player)

EndIf


(Keine Sorge, ich mache das eigentlich mit den vorher bestimmten Variablen player_X, player_Y, player_Z, terrain_Y)

Dennoch kann ich mich noch "unter" einige Hügel begeben.
Ich habe wahrscheinlich wieso oft nur irgendwo einen Denkfehler, kann ihn aber leider nicht finden.

Bitte um Hilfe,
Seoman
In Australien...

Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig Wink

Mr.Keks

BeitragDo, März 17, 2005 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso hast du diese komische ifabfrage da? dadurch bewegt man sich ja nicht mehr nach unten, wenn man den hügel hinabläuft.

ansonsten könnte es noch probleme durch absolute oder relative positionen geben.


ich persönlich bevorzuge übrigens ohnehin linepicks, um zu ermitteln, ob der spieler auf festem boden steht und wie weit er von ihm entfernt ist. das ist auch flexibler einsetzbar und verursacht keine konflikte mit objekten auf dem terrain.
MrKeks.net

Smokie

BeitragDo, März 17, 2005 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
das musst du mit colission machen das ich echt sau einfach, wenn man es mal kapiert hat. In der OH kannst du mal unter collisions nachschau da ist ein super Beispiel. Aber ich versuche es dir zu erklären:
Du machste einen SPieler
BlitzBasic: [AUSKLAPPEN]

spieler=LoadMesh(\"spieler.3ds\")
PositionEntity spieler,0,0,0
EntityType spieler,1 ; hier legst du einen Typ für den Spieler fest das ist egal welche zahl
EntityRadius spieler,1; hier legst du den Radius fest

jetzt laden wir das Terrain:BlitzBasic: [AUSKLAPPEN]

map=LoadTerrain(\"highmap.bmp\")
.
.;hier texturierst du es und Positionierst es
.
;jetzt das selbe wie mit dem spieler
EntityType map,2
EntityRadius map,1

.

jetzt die Coli abfragen
BlitzBasic: [AUSKLAPPEN]

Repeat
Cls
Collisions 1,2,2,2 ; SO die ersten zwei zahlen sind die Types die wir festgelegt haben. 1 Der Spieler, 2Die map. die dritte 2 sag was kollidiert Kugel polygyne würfel etc(wird in der OH beschrieben) und das vierte und letzte sag was das erste Objekt der Spieler der soll in diesem fall sich nicht bewegenoder auch ausweichen(auch in OH) so und jetzt noch schwerkraft damit wenn er über einen Berg geht nicht mehr schwebt
MoveEntity spieler,0,-0.3,0

Flip
RenderWorld
UpdateWorld
Until KeyHit(1)

ich hoffe es war verständlich wenn net dann s. OH
Smokie
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet
 

Darren

BeitragDo, März 17, 2005 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube seoman weiß was er tut ich glaube er wollte die collisionsbefehle vermeiden. ich würde es so wie inarie machen und nach unten picken.
MFG Darren

Seoman

BeitragDo, März 17, 2005 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Probelm ist, ich will gar nicht, dass der Spieler nach unten geht (das ist nämlich ein (fliegender) Drache), sondern nur, dass er nicht unter einen Hügel kommt.
Linepick werde ich mir nochmal anschauen.
@DarrenSharm: Ja, ich wollte Collisions vermeiden, schließlich gibt es doch terrainY und da wollte ich es auch nutzen.

mfg
Seoman
In Australien...

Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig Wink

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group