-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdemo-sprite.html
55 lines (44 loc) · 2 KB
/
demo-sprite.html
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Undefined</title>
<script type="text/javascript" src="JSCodeSkulptor.js" ></script>
</head>
<body>
<div id="leftPanel" style="left:0; top:0; width:245px; height: 400px; float:left;"></div>
<canvas id="myCanvas" width="600" height="400" style="border:1px solid #000000; background-color:black;"></canvas>
<script>
////////////////////////////////////////////////////////////////////////////////
// Code Skulptor code below
// Animation of explosion using 2D sprite sheet
// http://www.codeskulptor.org/#demos-animation.py
//
// load 9 x 9 frame sprite sheet for explosion - image generated by phaedy explosion generator, source is hasgraphics.com
var EXPLOSION_CENTER = [50, 50];
var EXPLOSION_SIZE = [100, 100];
var EXPLOSION_DIM = [9, 9];
var explosion_image = simplegui.load_image("http://commondatastorage.googleapis.com/codeskulptor-assets/explosion.hasgraphics.png")
// define draw handler
function draw(canvas) {
// Draw handler for simple animation using 2D sprite sheet
var explosion_index = [counter % EXPLOSION_DIM[0], Math.floor(counter / EXPLOSION_DIM[0])];
canvas.draw_image(explosion_image,
[EXPLOSION_CENTER[0] + explosion_index[0] * EXPLOSION_SIZE[0],
EXPLOSION_CENTER[1] + explosion_index[1] * EXPLOSION_SIZE[1]],
EXPLOSION_SIZE, EXPLOSION_CENTER, EXPLOSION_SIZE);
counter = (counter + 1) % (EXPLOSION_DIM[0] * EXPLOSION_DIM[1]);
}
// create frame and size frame based on 100x100 pixel sprite
var frame = new simplegui.create_frame("Asteroid sprite", EXPLOSION_SIZE[0], EXPLOSION_SIZE[1]);
// set draw handler and canvas background using custom HTML color
frame.set_draw_handler(draw);
frame.set_canvas_background("Blue");
// initialize counter for animation and start frame
var counter = 0;
frame.start();
// Code Skulptor code above
////////////////////////////////////////////////////////////////////////////////
</script>
</body>
</html>