GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2006-Feb-23

Title: X_collision
Post by: WPShadow on 2006-Feb-23
Hi!

Gibt es einen Weg eine Linie, in dem Fall eine Normale zu erstellen, die einfach oben und Unten bzw. einfach nur bei einer Kollision reagiert???

GLG

W.
Title: X_collision
Post by: Kitty Hello on 2006-Feb-23
:/ Ich kapier die Frage leider nicht :)
Title: X_collision
Post by: WPShadow on 2006-Feb-24
Hier meine Idee:

Der Boden wird als Fläche angegeben, dessen Ränder auf einer gewissen Höhe gehalten werden:

Mit X_OBJ...

y1 = 0
y2 = 0
y3 = 0

Nun kommt mein "Bodenfahrzeug" ins Spiel. Mein Bodenfahrzeug bewegt sich z.B. in der Höhe "yFahr = 50" darüber. Ich möchte das Gelände so gestalten, daß sich das Schiff über den Boden bewegt und dabei das Gelände leicht absinkt.

y1 = -5
y2 = 0
y3 = 0

Dadurch kann man immer wieder seine Wege nachvollziehen und den selben Weg nachfahren bzw. fliegen, den man vorher gekommen ist.

Und hier kommt mein Problem. Wie mache ich das mit dem Absinken? Ich dachte an eine Kollision. Nur frage ich mich, ob das die beste Methode ist. Ich möchte nämlich das Fahrzeug bzw. die Fahrbedingungen vom Untergrund abhängig zu machen.

Damit meine ich, daß das Fahrzeug zwar beim einmaligen drüberfahren das Gelände beeinflußt, aber beim durchfahren der "Spurrinne" selbst absackt.

Deshalb auch meine Idee mit der Linie. Eine Normale zum unteren, glatten Bereich des "Gleiters", der bei Berührung das Gelände absinken läßt und so auch die Höhe hält.

Falls du eine bessere Idee hast, dann schlag sie mir um die Ohren.

GLG

W.
Title: X_collision
Post by: Kitty Hello on 2006-Feb-24
Nochmal: Du willst, dass ein Fahrzeug so schwer ist, dass es beim ersten Überfahren den Boden komprimiert, bei weiteren Überfahrten der Boden aber nicht weiter nachgibt, ja? Und das in Echtzeit, oder? :o
2 Methoden:
Einfach
Mach ein weisses rechteck, 256x256 und ein weiteres 512x512.
Auf das große packst Du alle Boden-Texturen (das ganze Land von oben).
Auf das kleine ein paar graue Punkterl
Wenn jetzt die Autos gefahren sind (neuer SHOWSCREEN) zeichnest Du das kleine Sprite und machst da, wo die Fahrzeuge sind einen dunklen Punkt.
Dann GRABSRITE, SAVESPRITE, LOADBUMPSPRITE.
Nun die große (bunte) als Textureinheit 0 und die kleine als Bump-Einheit setzen.
Damit schaffst Du ca 20FPS nicht mehr. (geschätzt)
Vorteil: sieht super aus (Reifenspuren usw...)
Nachteil: Spiel wird zum Dias-Abend

Exakt
Dein Terrain musst Du (wie auch oben) in einer map[100][100] oder so speichern - siehe Islands Demo. Jetzt kopierst Du diese: heightmap[] = map[]; und arbeitest von nun an mit der heightmap[][].
Du skaierst die echten Koordinaten vom Fahrzeug einfach zurück auf die Feld-Indizies und drückst die Werte runter - aber (Trick) nicht kleiner werden als map
Vorteil: Schnell
Nachteil: relativ ungenau, Reifenspuren kannst' vergessen

Verstehst Du, was ich meine?