frankie-on-platform/Sources/arm/Intro_cam.hx

151 lines
4.6 KiB
Haxe
Raw Normal View History

2019-04-16 00:33:05 +02:00
package arm;
import iron.Scene;
import iron.math.Vec4;
import iron.math.Quat;
import iron.data.SceneFormat;
import iron.data.Data;
import iron.data.MeshData;
import iron.data.MaterialData;
import iron.system.Input;
import iron.system.Time;
import iron.system.Tween;
//
// Intro_cam : Animation for the begining
//
class Intro_cam extends iron.Trait {
public function new() {
super();
// Start
var go= false;
// Positions
var loc1 = new Vec4 (0.7 ,-7.8, 2);
var loc2 = new Vec4 (6.3 ,-15.7, 3);
var deltax = (loc2.x-loc1.x)/1000;
var deltay = (loc2.y-loc1.y)/1000;
var deltaz = (loc2.z-loc1.z)/1000;
var delta = [
new Vec4 (0.0, 0.0, 0.0),
new Vec4 (-0.714604914188385, -1.9046026468276978, 0.36248692870140076),
new Vec4 (-0.2727598547935486, -3.9623684883117676, 0.6186656355857849),
new Vec4 (1.2784634828567505, -5.851366996765137, 0.7989855408668518),
new Vec4 (3.764294147491455, -7.323999881744385, 0.9349323511123657),
new Vec4 (6.88226318359375, -8.207002639770508, 1.0590277910232544),
new Vec4 (9.54699420928955, -8.419892311096191, 1.1722874641418457),
new Vec4 (12.064346313476562, -8.174274444580078, 1.3170785903930664),
new Vec4 (14.102925300598145, -7.484195232391357, 1.5114848613739014),
new Vec4 (15.088809967041016, -6.700578689575195, 1.7009670734405518),
new Vec4 (15.388349533081055, -6.067254543304443, 1.852500081062317),
new Vec4 (15.33479118347168, -5.358070373535156, 2.0269899368286133),
new Vec4 (14.867095947265625, -4.586199760437012, 2.226856231689453),
new Vec4 (14.457979202270508, -4.181393623352051, 2.337069272994995)
]
var duration=0.01;
//
// notifyOnInit
//
notifyOnInit(function() {
});
//
// notifyOnUpdate
//
notifyOnUpdate(function() {
var mouse = Input.getMouse();
if (mouse.started()) {
go= true;
}
if (loc2.x - object.transform.loc.x < 0.1 && loc2.y - object.transform.loc.y < 0.1 && loc2.z - object.transform.loc.z < 0.1) {
go= false;
}
if (go) {
duration -= iron.system.Time.delta;
if (duration <= 0.0) {
object.transform.translate(deltax, deltay, deltaz); // x, y, z
duration=0.01;
}}
});
}
}
// transform = object.transform;
// var loc1 = new Vec4 (0.7 ,-7.8, 2);
// var rot1 = new Vec4 (1.220737 ,0, -0.964036); // rad
// var rot1 = new Vec4 (69.9 ,0, -55,2); // deg
// var loc2 = new Vec4 (6.3 ,-15.7, 3);
// var rot2 = new Vec4 (1.415082 ,0,419419); // rad
// var rot2 = new Vec4 (81.1 ,0,24); // deg
// var deltax = (loc2.x-loc1.x)/10000;
// var deltay = (loc2.y-loc1.y)/10000;
// var deltaz = (loc2.z-loc1.z)/10000;
// var deltaa = (rot2.x-rot1.x)/10000;
// var deltab = (rot2.y-rot1.y)/10000;
// var deltac = (rot2.z-rot1.z)/10000;
// var m = object.transform.world ;
// for (i in 0...10) {
// // object.transform.translate(0, 0, 0.01);
// var from = object.transform.world.getLoc().z;
// // var from = object.transform.loc.z;
// var to=from+0.01;
// object.transform.loc.set(0, 0, to);
// object.transform.buildMatrix();
// object.transform.rotate(Vec4.xAxis(), deltaa); // Axis, angle in radians
// object.transform.rotate(Vec4.yAxis(), deltab); // Axis, angle in radians
// object.transform.rotate(Vec4.zAxis(), deltac); // Axis, angle in radians
// object.transform.translate(0, 0, 0.0001); // x, y, z
// armory.system.Tween.timer(1, done);
// Tween.to({
// target: object.transform,
// props: { loc: new Vec4(0, 0, 0)},
// duration: 1.0,
// });
// armory.system.Tween.timer(1, done);
// trace(i);
// for (i in 0...1000) {
// Tween.to({
// target: object.transform,
// props: { loc: new Vec4(object.transform.loc.x+deltax, object.transform.loc.y+deltay, object.transform.loc.z+deltaz),
// rot: new Quat(object.transform.rot.x+deltaa, object.transform.rot.y+deltab, object.transform.rot.z+deltac,0) },
// duration: 10.0
// });
// trace(i);
// }
// var transform = object.transform;
// transform.translate(0.1, 0.1, 0.1); // x, y, z
// iron.system.Tween.timer(1, done);
// transform.translate(0.1, 0.1, 0.1); // x, y, z
// notifyOnUpdate(function() {
// });
// notifyOnRemove(function() {
// });