Skip to content

Commit 813d98f

Browse files
Subtle screen shake
Added a container to get some very subtle screen shake to make the game feel a bit more immersive. (decreases performance...) Need to do performance upgrades asap.
1 parent 026673c commit 813d98f

File tree

3 files changed

+80
-4
lines changed

3 files changed

+80
-4
lines changed

src/LudumDare32.fla

26.3 KB
Binary file not shown.

src/Main.as

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ package
2828
public var gameRateMultiplier:Number = 1;
2929
public var worldSpeed:Number = 60 * gameRateMultiplier;
3030
public var cameraContainer:Sprite; // everything visual goes in this
31+
public var stageContainer:Sprite; // put even the cameraContainer in this
3132

3233
// game variables
3334
public var crowdTextDisplay:TextField;
3435
public var crowd:Vector.<Rioter>;
3536
public var tank:Tank;
3637
public var menu:Menu;
38+
public var background:bgImage
3739

3840
// constant playing sounds
3941
public var bgAmbience:Sound = new bgAmbienceSound();
@@ -58,12 +60,18 @@ package
5860
}
5961

6062
// The menu kind of always stays there? It just drops down?
61-
public function init():void
63+
public function init():void
6264
{
65+
stageContainer = new Sprite();
66+
addChild(stageContainer);
67+
68+
var background:bgImage = new bgImage();
69+
stageContainer.addChild(background);
70+
6371
cameraContainer = new Sprite();
6472
cameraContainer.x = 0;
6573
cameraContainer.y = 0;
66-
addChild(cameraContainer);
74+
stageContainer.addChild(cameraContainer);
6775
game();// game will play in background at all times
6876

6977
menu = new Menu(); // menu will overlay and allow options
@@ -84,6 +92,16 @@ package
8492

8593
public function game():void
8694
{
95+
// for subtle screen movement
96+
var stageX:Number = stageContainer.x;
97+
var stageY:Number = stageContainer.y;
98+
var motionAmt = 5;
99+
var randStageX:Number = randomNumber( -motionAmt, motionAmt);
100+
var randStageY:Number = randomNumber( -motionAmt, motionAmt);
101+
var motionSpeed = 0.005;
102+
var updateTime = 1 * 60;
103+
var currentScreenTime = 0;
104+
87105
// placeholder stuff
88106
var myFormat:TextFormat = new TextFormat();
89107
myFormat.color = 0xDED5D1;
@@ -100,7 +118,7 @@ package
100118
crowdTextDisplay.wordWrap = true;
101119
crowdTextDisplay.text = "Control the Rioting Crowd";
102120
crowdTextDisplay.setTextFormat(myFormat);
103-
addChild(crowdTextDisplay);
121+
stageContainer.addChild(crowdTextDisplay);
104122

105123
var instructionsDisplayCt:int = 0;
106124

@@ -169,7 +187,20 @@ package
169187

170188

171189
function mainLoop(e:Event):void
172-
{
190+
{
191+
if (currentScreenTime >= updateTime)
192+
{
193+
randStageX = randomNumber( -motionAmt, motionAmt);
194+
randStageY = randomNumber( -motionAmt, motionAmt);
195+
196+
currentScreenTime = 0;
197+
}
198+
stageX = doLerp(stageX, randStageX, motionSpeed);
199+
stageY = doLerp(stageY, randStageY, motionSpeed);
200+
stageContainer.x = stageX;
201+
stageContainer.y = stageY;
202+
currentScreenTime++;
203+
173204
for (i = 0; i < crowd.length; i++)
174205
{
175206
// update rioters
@@ -488,6 +519,32 @@ package
488519
}
489520
}
490521
}
522+
523+
// current speed, goal speed, amount of lerp
524+
public function doLerp(value:Number, goal:Number, lerpSpeed:Number):Number
525+
{
526+
var lerpValue:Number = 0.0;
527+
528+
// Update
529+
if (value != goal)
530+
{
531+
lerpValue = 0.0;
532+
}
533+
534+
if (lerpValue < 1.0)
535+
{
536+
lerpValue += lerpSpeed;
537+
}
538+
539+
var newVal:Number = lerp(value, lerpValue, goal);
540+
value = newVal;
541+
return value;
542+
}
543+
544+
public function lerp(x:Number, t:Number, y:Number):Number
545+
{
546+
return x * (1-t) + y*t;
547+
}
491548
}
492549

493550
}

src/bgImage.as

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package
2+
{
3+
import flash.display.MovieClip;
4+
5+
/**
6+
* ...
7+
* @author Dylan Gallardo
8+
*/
9+
public class bgImage extends MovieClip
10+
{
11+
12+
public function bgImage()
13+
{
14+
15+
}
16+
17+
}
18+
19+
}

0 commit comments

Comments
 (0)