-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathghostscript.js
More file actions
59 lines (47 loc) · 1.68 KB
/
ghostscript.js
File metadata and controls
59 lines (47 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var onGhost=false;
var oldwalk_speed = room.walk_speed;
var oldrun_speed = room.run_speed;
var oldjump_velocity = room.jump_velocity;
room.onKeyDown = function(event) {
// Use or leave the boat
if (event.keyCode == 'B') {
var dist = distance(player.pos, room.objects["TECHNOSHAMAN-1-1528563899"].pos);
if (dist < 2) {
onGhost = !onGhost;
}
}
if (onGhost) {
room.walk_speed =20;
room.run_speed =20;
room.jump_velocity=0;
room.objects["TECHNOSHAMAN-1-1528563899"].collision_id="";
}else{
room.walk_speed =oldwalk_speed;
room.run_speed =oldrun_speed;
room.jump_velocity=oldjump_velocity;
room.objects["TECHNOSHAMAN-1-1528563899"].collision_id="http://techn0shaman.one/misc/Ghost/Ghost.DAE";
}
}
room.update = function() {
}
//euler angles to rotation matrix
function rotateXYZ(xrot, yrot, zrot, rot){
var A = Math.cos(xrot);
var B = Math.sin(xrot);
var C = Math.cos(yrot);
var D = Math.sin(yrot);
var E = Math.cos(zrot);
var F = Math.sin(zrot);
room.objects[rot].xdir = Vector(A*E , A*F , -B);
room.objects[rot].ydir = Vector(D*B*E - C*F , D*B*F + C*E , A*D);
room.objects[rot].zdir = Vector(C*B*E + D*F , C*B*F - D*E , A*C);
}
room.update = function() {
if (onGhost) {
var playerxrot= Math.atan2( -player.view_dir.z,player.view_dir.x);
rotateXYZ(playerxrot, 0, 0, "TECHNOSHAMAN-1-1528563899");
room.objects["TECHNOSHAMAN-1-1528563899"].pos.x =player.pos.x;
room.objects["TECHNOSHAMAN-1-1528563899"].pos.y =player.pos.y;
room.objects["TECHNOSHAMAN-1-1528563899"].pos.z =player.pos.z;
}
}