This is the version 5bb8b4b308367b37baaa5abe from 2013-10-30 13:31:59 comment: 'Neue Version'
Kamera mit Scripten programmieren ed
Der Variablen-Typ für eine Kamera ist Camera.
Jede Welt erschafft automatisch eine Standart-Kamera, die als Cam angesprochen werden kann.
Mit new Camera können zusätzliche erschaffen werden.
Table of Contents
Bewegung ed
Beispiel:
class MyCamera : Camera
vector vang
void __init__()
// Blick-Winkel festlegen
vang = vector(0.4, 0, 0) // leicht nach unten gekippt
// die Kamera dem Spieler folgen lassen
overwrite void onIterate()
// Blickrichtung durch Maus-Bewegung ändern
vang.y += MouseD.x * 0.03
QuaternionRotationV(ang, vang)
// in einigem Abstand hinter der Figur
pos = pos - (ang * e_z) * 1000.0Kamerafahrt ed
Im Editor können Kamerafahrten bearbeitet werden. Im Spiel werden sie per Camera.start gestartet bzw. mit Camera.stop vorzeitig beendet.
Beispiel:
void main()
Cam.start("meine_kamerafahrt", v_0)Split-Screen ed
Beispiel:
void main()
// bisherige Kamera auf obere Bildschirm-Hälfte einschränken
Cam.dest = rect(0, 1, 0, 0.5)
// zusätzliche Kamera
Camera *Cam2
Cam2 = new Camera(v_0, q_id, rect(0, 1, 0.5, 1))
// von hier an beide Kameras verwenden (Positionen setzen...)In Textur rendern ed
Beispiel:
void main()
// eine weitere Kamera erschaffen, die nur in eine Textur rendert
Camera *c = new Camera(v_0, v_0, r_id, false)
c.output = new DynamicTexture(512, 512)
// Modell eines Objektes finden
Model *m = GetObjectByName("Objekt_fuer_Test")
// Textur der Kamera auf das Modell legen
m.material[0].texture[0] = c.outputBeispiel (komplizierter):
void main()
// Kamera in Textur umleiten
Cam.show = false
Cam.output = new DynamicTexture(512, 512)
// zusätzliche "Kamera" für die Nachbearbeitung durch Effekte
Camera *v = new Camera(v_0, v_0, r_id, true)
v.input = Cam.output
v.shader = LoadShader("netter_shader")
// könnte man auch noch durch eine weitere "Kamera" schicken....