This is the version 5bb8b4b308367b37baaa5abf from 2013-10-30 11:13:50 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 = NixCreateDynamicTexture(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 = NixCreateDynamicTexture(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.... Blue, // blau
"test" ) // eigentlicher Text
// ein Modell
matrix mat
MatrixRotation(mat, vector(0.5, 1.1, 0))
picture3d p3d = CreatePicture3D( LoadModel("irgend_ein_model"), // ein Modell
mat, // die Drehung
0.1) // Bildschirm-Tiefe
// Gruppierung abschliessen
CurrentGrouping = nil
float t = 0
while true
// Text-Anzeige fuer die Lebenspunkte verwenden
txt.Str = "Lebenspunkte: " + f2s(ego.Life, 1)
// die komplette Gruppe blinken lassen
t += elapsed * 2
group.Color.a = 0.7 + 0.3 * sin(t)
wait_of()