Repository navigation
Expand file tree
/
Copy pathstage.html
More file actions
127 lines (104 loc) · 4.63 KB
/
Copy pathstage.html
File metadata and controls
127 lines (104 loc) · 4.63 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
121
122
123
124
125
126
127
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/qunit/git/qunit.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://code.jquery.com/qunit/git/qunit.js"></script>
<script type="text/javascript" src="../crafty.js"></script>
<script>
$(document).ready(function () {
Crafty.init();
test("simulateFrames", function() {
var framesPlayed = 0;
Crafty.bind("EnterFrame", function () {
framesPlayed++;
});
Crafty.timer.simulateFrames(1);
equal(framesPlayed, 1, "A frame should have been simulated");
Crafty.timer.simulateFrames(100);
equal(framesPlayed, 101, "101 frames should have been simulated");
})
module("Viewport");
test("scroll using _x, _y", function () {
var e = Crafty.e("2D, DOM").attr({ x: 50, y: 50 });
var before = Crafty.DOM.translate(e.x, e.y);
Crafty.viewport.scroll('_x', 100);
equal(before.x - Crafty.DOM.translate(e.x, e.y).x, 100, "Scroll in x direction");
Crafty.viewport.scroll('_y', 70);
equal(before.y - Crafty.DOM.translate(e.x, e.y).y, 70, "Scroll in y direction");
Crafty.viewport.scroll('_x', 0);
Crafty.viewport.scroll('_y', 0);
equal(before.x - Crafty.DOM.translate(e.x, e.y).x, 0, "Scroll to 0");
equal(before.y - Crafty.DOM.translate(e.x, e.y).y, 0, "Scroll to 0");
});
test("scroll using x, y", function () {
var e = Crafty.e("2D, DOM").attr({ x: 50, y: 50 });
var before = Crafty.DOM.translate(e.x, e.y);
Crafty.viewport.scroll('x', 100);
equal(before.x - Crafty.DOM.translate(e.x, e.y).x, 100, "Scroll in x direction");
Crafty.viewport.scroll('y', 70);
equal(before.y - Crafty.DOM.translate(e.x, e.y).y, 70, "Scroll in y direction");
Crafty.viewport.scroll('x', 0);
Crafty.viewport.scroll('y', 0);
equal(before.x - Crafty.DOM.translate(e.x, e.y).x, 0, "Scroll to 0");
equal(before.y - Crafty.DOM.translate(e.x, e.y).y, 0, "Scroll to 0");
});
test("follow", function () {
var e = Crafty.e("2D, DOM").attr({ x: Crafty.viewport.width + 100, y: Crafty.viewport.height + 70 });
Crafty.viewport.follow(e, 0, 0);
equal(Crafty.viewport._x, -100, "Center viewport on entity.x but take clamp into account");
equal(Crafty.viewport._y, -70, "Center viewport on entity.y but take clamp into account");
//Make large enough so the viewport won't get clamped
Crafty.e("2D, DOM").attr({ x: 0, y: 0, w: Crafty.viewport.width * 2 + 50, h: Crafty.viewport.height*2+35 });
Crafty.viewport.follow(e, 0, 0);
equal(Crafty.viewport._x, Math.floor(-(Crafty.viewport.width/2 + 100)), "Center viewport on entity.x");
equal(Crafty.viewport._y, Math.floor(-(Crafty.viewport.height / 2 + 70)), "Center viewport on entity.y");
Crafty.viewport.scroll('x', 0);
Crafty.viewport.scroll('y', 0);
});
test("pan", function () {
Crafty.e("2D, DOM").attr({ x: 0, y: 0, w: Crafty.viewport.width * 2, h: Crafty.viewport.height * 2 });
Crafty.viewport.pan("x", 100, 10);
Crafty.timer.simulateFrames(5);
equal(Crafty.viewport._x, -50, "Pan half the way on half the time");
Crafty.timer.simulateFrames(5);
equal(Crafty.viewport._x, -100, "Pan all the way when all the time is spent");
Crafty.viewport.pan("y", 100, 10);
Crafty.timer.simulateFrames(20);
equal(Crafty.viewport._y, -100, "Pan all the way and stay there");
Crafty.viewport.scroll('x', 0);
Crafty.viewport.scroll('y', 0);
});
test("centerOn", function () {
var e = Crafty.e("2D, DOM").attr({ x: 0, y: 0, w: Crafty.viewport.width * 2, h: Crafty.viewport.height * 2 });
Crafty.viewport.centerOn(e, 10);
Crafty.timer.simulateFrames(10);
equal(Crafty.viewport._x, -e.w / 2 + Crafty.viewport.width / 2, "Entity centered after exact duration");
Crafty.timer.simulateFrames(10);
equal(Crafty.viewport._x, -e.w / 2 + Crafty.viewport.width / 2, "Entity still centered 10 frames later");
Crafty.viewport.scroll('x', 0);
Crafty.viewport.scroll('y', 0);
});
module("Crafty.timer")
test("curTime", 1, function () {
var startTime = Crafty.timer.currentTime;
setTimeout(function () {
var endTime = Crafty.timer.currentTime;
ok(endTime > startTime, "EndTime " + endTime + " must be larger than StartTime " + startTime);
start();
}, 100);
stop();// pause the QUnit so the timeout has time to complete.
});
});
</script>
</head>
<body>
<h1 id="qunit-header">Crafty: Stage</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup, will be hidden</div>
</body>
</html>