-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathanimated_entity.js.html
More file actions
120 lines (99 loc) · 5.56 KB
/
animated_entity.js.html
File metadata and controls
120 lines (99 loc) · 5.56 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: animated_entity.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: animated_entity.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
var Entity = require("./entity");
/**
* An upgraded {@link Splat.Entity} that knows how to draw and advance an {@link Animation}.
* @constructor
* @augments Splat.Entity
* @alias Splat.AnimatedEntity
* @param {number} x The top-left x coordinate. See {@link Splat.Entity#x}
* @param {number} y The top-left y coordinate. See {@link Splat.Entity#y}
* @param {number} width The width on the x-axis. See {@link Splat.Entity#width}
* @param {number} height The height on the y-axis. See {@link Splat.Entity#height}
* @param {Animation|external:image} sprite The Animation or image to draw
* @param {number} spriteOffsetX How much to offset {@link Splat.AnimatedEntity#sprite} from the {@link Splat.Entity#x} when drawing
* @param {number} spriteOffsetY How much to offset {@link Splat.AnimatedEntity#sprite} from the {@link Splat.Entity#y} when drawing
*/
function AnimatedEntity(x, y, width, height, sprite, spriteOffsetX, spriteOffsetY) {
/**
* The Animation or image to draw
* @member {Animation|external:image}
*/
this.sprite = sprite;
/**
* How much to offset {@link Splat.AnimatedEntity#sprite} from {@link Splat.Entity#x} when drawing.
* @member {number}
*/
this.spriteOffsetX = spriteOffsetX;
/**
* How much to offset {@link Splat.AnimatedEntity#sprite} from {@link Splat.Entity#y} when drawing.
* @member {number}
*/
this.spriteOffsetY = spriteOffsetY;
Entity.call(this, x, y, width, height);
}
AnimatedEntity.prototype = Object.create(Entity.prototype);
/**
* Simulate movement since the last frame, changing {@link Splat.Entity#x}, {@link Splat.Entity#y}, and calling {@link Animation#move} if applicable.
* @param {number} elapsedMillis The number of milliseconds since the last frame.
*/
AnimatedEntity.prototype.move = function(elapsedMillis) {
Entity.prototype.move.call(this, elapsedMillis);
if (typeof this.sprite.move === "function") {
this.sprite.move(elapsedMillis);
}
};
/**
* Draw the {@link Splat.AnimatedEntity#sprite}.
* @param {external:CanvasRenderingContext2D} context The drawing context.
*/
AnimatedEntity.prototype.draw = function(context) {
if (typeof this.sprite.draw === "function") {
this.sprite.draw(context, this.x + this.spriteOffsetX, this.y + this.spriteOffsetY);
} else {
context.drawImage(this.sprite, this.x + this.spriteOffsetX, this.y + this.spriteOffsetY);
}
// draw bounding boxes
// context.strokeStyle = "#ff0000";
// context.strokeRect(this.x, this.y, this.width, this.height);
};
/**
* Make a copy of this AnimatedEntity. The {@link Splat.AnimatedEntity#sprite} is not copied, so both entities will share it.
* @returns {Splat.AnimatedEntity}
*/
AnimatedEntity.prototype.copy = function() {
return new AnimatedEntity(this.x, this.y, this.width, this.height, this.sprite, this.spriteOffsetX, this.spriteOffsetY);
};
module.exports = AnimatedEntity;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-buffer.html">buffer</a></li><li><a href="module-KeyMap.html">KeyMap</a></li></ul><h3>Externals</h3><ul><li><a href="external-AudioContext.html">AudioContext</a></li><li><a href="external-canvas.html">canvas</a></li><li><a href="external-CanvasRenderingContext2D.html">CanvasRenderingContext2D</a></li><li><a href="external-image.html">image</a></li></ul><h3>Classes</h3><ul><li><a href="Accelerometer.html">Accelerometer</a></li><li><a href="Animation.html">Animation</a></li><li><a href="AnimationLoader.html">AnimationLoader</a></li><li><a href="FontLoader.html">FontLoader</a></li><li><a href="ImageLoader.html">ImageLoader</a></li><li><a href="Keyboard.html">Keyboard</a></li><li><a href="Mouse.html">Mouse</a></li><li><a href="SceneManager.html">SceneManager</a></li><li><a href="SoundLoader.html">SoundLoader</a></li><li><a href="Splat.AnimatedEntity.html">AnimatedEntity</a></li><li><a href="Splat.AStar.html">AStar</a></li><li><a href="Splat.BinaryHeap.html">BinaryHeap</a></li><li><a href="Splat.Camera.html">Camera</a></li><li><a href="Splat.Entity.html">Entity</a></li><li><a href="Splat.EntityBoxCamera.html">EntityBoxCamera</a></li><li><a href="Splat.Game.html">Game</a></li><li><a href="Splat.math.Random.html">Random</a></li><li><a href="Splat.NinePatch.html">NinePatch</a></li><li><a href="Splat.Scene.html">Scene</a></li><li><a href="Splat.Timer.html">Timer</a></li></ul><h3>Namespaces</h3><ul><li><a href="Splat.html">Splat</a></li><li><a href="Splat.ads.html">ads</a></li><li><a href="Splat.leaderboards.html">leaderboards</a></li><li><a href="Splat.math.html">math</a></li><li><a href="Splat.saveData.html">saveData</a></li></ul><h3><a href="global.html">Global</a></h3>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.2</a> on Thu Sep 17 2015 23:22:42 GMT-0400 (EDT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>