-
Notifications
You must be signed in to change notification settings - Fork 5
/
FlyingBlock.js
66 lines (54 loc) · 2.13 KB
/
FlyingBlock.js
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
60
61
62
63
/**
*
* @licstart The following is the entire license notice for the
* JavaScript code in this page.
*
* Copyright (C) 2012 David "aniwey" L.
*
*
* The JavaScript code in this page is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*
*/
function FlyingBlock(x, y, xFlyingSpeed, yFlyingSpeed, width, height, maxStep, color){
// Call the Instakiller constructor
Instakiller.call(this, x, y, width, height, (color !== undefined? color : "#D7017A"), false, false, false, false);
// Set members from parameters
this.xFlyingSpeed = xFlyingSpeed;
this.yFlyingSpeed = yFlyingSpeed;
this.maxStep = maxStep;
// Direction (are we going from (x1, y1) to (x2, y2) or the other way?)
this.direction = true;
// The current step
this.step = 0;
}
FlyingBlock.prototype = Object.create(Instakiller.prototype);
// Empty loop method
FlyingBlock.prototype.loop = function(){
// Move depending on the direction
this.xMovement = (this.direction? 1 : -1) * this.xFlyingSpeed;
this.yMovement = (this.direction? 1 : -1) * this.yFlyingSpeed;
// Increment step
this.step++;
// Possibly invert the direction
if(this.step >= this.maxStep){
this.step = 0;
this.direction = !this.direction;
}
// Call Instakiller loop method
Instakiller.prototype.loop.call(this);
}