-
Notifications
You must be signed in to change notification settings - Fork 2
/
HTML5 - Beginners - screen shake.html
64 lines (53 loc) · 1.44 KB
/
HTML5 - Beginners - screen shake.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
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" />
</head>
<body>
<div id="test"></div>
<canvas id="myCanvas" width="320" height="240" style="border:1px solid #d3d3d3;">
Use different browser.
</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
// the shake x and y variables hold
// the shake offsets. add these to
// every screen object you wish to shake.
// when you start your game you could
// wrap or create functions for anything
// drawn and add the shake variables.
// adding later might take a while because
// you would need to add the +shake variables
// to every screen object.
var shakex=0;
var shakey=0;
var shake=true;
var shaketime=200;
gameloop=setInterval(doGameLoop,16);
function doGameLoop(){
myCanvas.height = window.innerHeight-32;
myCanvas.width = window.innerWidth-32;
ctx.fillStyle="rgb(0,0,0)";
ctx.fillRect(0,0,c.width,c.height);
ctx.fillStyle="rgb(255,255,255)";
ctx.fillText("Screen Shake example.",10+shakex,10+shakey);
ctx.fillRect(50+shakex,50+shakey,myCanvas.width-100,myCanvas.height-100);
// here we update the screen shake
if(shake){
shaketime--;
if(shaketime<0)shake=false;
shakex=(Math.random()-.5)*10;//the *10 is the intensity
shakey=(Math.random()-.5)*10;
}
// here we randomly initialize
// a screen shake.
if(Math.random()<.005 && shake==false){
shake=true;
shaketime=50;
}
}
</script>
</body>
</html>