In reading Chapter One of the "Documentaries" book, I was reminded of a Cracked article I had read recently. On page 26 of "Documentaries" it talked about how many of the travelogues of the time were faked, such as the Roosevelt safari or big game hunting. However, even though the footage of the terrain was faked and actors (Roosevelt look-alike), it was stated that the lions were actually shot and killed on camera.
The cracked article here discusses various "monstrous" movie events. Some are just directors being odd, but others reminded me specifically of this portion. The parts that came up in my mind were Number 7 (Noah's Ark), Number 5 (Ben Hur), and Number 3 (Cannibal Holocaust). With that Noah's Ark scene, it was discussed that the director did not warn people about the flood of water that would hit them, supposedly killing a few people in the process. This, in turn made the flood and panic look much more realistic, but at a price. While the film is fiction (as can be stated with the jungle safaris above), this scene was quite real (as with the killing of the lions). Again, with the Ben Hur scene, it was reported that the chariot race actually did happen as filmed, with the riders being in real peril. What better way to film a race than to film a race? In this sense, could one call this scene a travelogue or documentary piece as it was real people doing real racing even though it was in a context of a larger film? To what scope must we view "reality" in a piece in order to call it documentary? Can pieces of a film be documentary? For instance, if stock footage is used in context of a fiction film to further a plot (lets say, a period piece about Vietnam or WWII using real news footage to further the plot of the characters), does that play any role into the "realism" of the piece, or is it just as fictional as a movie that had no stock footage or "real" events?
Cannibal Holocaust I think is the most like the early travelogues in that it was completely promoted as "real" and the deaths of the animals actually happened on screen, just like the safaris and big game hunts that were discussed on page 26. In fact, audiences were so shocked by what they saw, the director of the film was sued for various abuse rights thinking that real people had died in the film. It was not until the director had the actors appear in court alive and well that the public started to believe him. In this sense, how "real" can a film be, and how much should we believe? Is it only because of the extreme nature that this film was put on trial? What about something Michael Moore makes. We all know he has an extreme bias and probably bends the truth to fit his entertainment needs, but why is he not sued and made public everything that he does? How do we know he is not paying people to do what he wants? In the same vein, we can look at reality television and wonder what is "real" or not about that. For instance, The Situation on "The Jersey Shore" made 5 million dollars last year through advertising and endorsements; but he never would have gotten the payroll had it not been for the show. Also, how much do we know came from the show? Most people believe reality TV is scripted anyway, so how can it still be called "reality?" Is it because it takes place in the "real world" as opposed to a world of fiction created specifically for the screen? Or, since these people on the Shore know they're on camera, and are getting paid for their antics, they probably play up who they are and act out in specific ways to garner better ratings and higher payrolls turning the "reality" program into something of fiction. In that sense, one could put Cannibal Holocaust and The Jersey Shore under the same label of fiction for non-fiction purposes.
So in this, I ask, what is reality and to what context and extent does that reality play into calling something fiction or non-fiction?
Wednesday, March 30, 2011
Tuesday, March 1, 2011
Final Flash Game
I was somewhat uncomfortable coding on my own which is why I went this route. Instead of copying and pasting the code in the tutorial however, I did write it myself while following so I could gain a better understanding of what I was doing. This made the process go a bit slower than expected so I didn't have much time to go back and try and add my own touches to the game. I'm still happy with the final product though and I did learn a bit along the way so even though it's so simple I hope it meets the requirements.
EDIT: If you don't like the sizing and such, you can see the full game Here.
CODE
Ship
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.*;
public class Ship extends MovieClip
{
private var mouseIsDown:Boolean = false;
public var myManager:BulletManager = new BulletManager();
public var myHud:HudDisplay = new HudDisplay(stage);
public var myEnemyManager:EnemyManager = new EnemyManager(stage, myManager, myHud);
private var bulletInerval = setInterval(createBullet, 200);
public function Ship()
{
trace("Ship added to stage!");
stage.addEventListener(Event.ENTER_FRAME, moveShip);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
myEnemyManager.spawnEnemies(4, 1);
myEnemyManager.spawnEnemies(2, 2);
myEnemyManager.spawnEnemies(2, 3);
}
private function moveShip(Event):void
{
this.x+=(stage.mouseX-this.x)/5;
}
private function mDown(MouseEvent):void
{
mouseIsDown = true;
}
private function mUp(MouseEvent):void
{
mouseIsDown = false;
}
private function createBullet():void
{
if (mouseIsDown)
{
var aBullet:Bullet = new Bullet();
stage.addChild(aBullet);
aBullet.x = this.x;
aBullet.y = this.y;
myManager.bulletArray.push(aBullet);
}
}
}
}
Bullet
package
{
import flash.display.MovieClip;
public class Bullet extends MovieClip
{
public function Bullet()
{
trace("Bullet fired!");
}
}
}
Enemy Manager
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
public class EnemyManager extends MovieClip
{
public var enemyArray:Array = [];
private var _stage;
private var _bulletmanager;
private var _hud;
private var speeds:Array = [5,7,10];
private var explosionArray:Array = [];
public function EnemyManager(get_stage:Stage, manager, hud)
{
trace("Enemy manager added");
this.addEventListener(Event.ENTER_FRAME, managing);
_stage = get_stage;
_bulletmanager = manager;
_hud = hud;
}
public function spawnEnemies(num:Number, enemytype:Number):void
{
for (var i:int=0; i {
var anEnemy:MovieClip = new Enemy();
anEnemy.gotoAndStop(enemytype);
var enemySpeed:Number = speeds[enemytype - 1];
enemyArray.push({mc: anEnemy, eSpeed:enemySpeed});
_stage.addChild(anEnemy);
anEnemy.x = Math.random() * 400;
anEnemy.y = - Math.random() * 400;
trace("Enemy spawned: " + anEnemy.height);
}
}
private function managing(Event):void
{
for (var u:int=0; u {
enemyArray[u].mc.y += enemyArray[u].eSpeed;
if (enemyArray[u].mc.y > 450)
{
if (enemyArray[u].mc.alpha == 1)
{
_hud.addMiss(1);
}
enemyArray[u].mc.y = - Math.random() * 400;
enemyArray[u].mc.x = Math.random() * 400;
enemyArray[u].mc.alpha = 1;
}
for (var g:int=0; g<_bulletmanager.bulletArray.length; g++)
{
if (_bulletmanager.bulletArray[g].alpha == 1 && enemyArray[u].mc.alpha == 1 && _bulletmanager.bulletArray[g].hitTestObject(enemyArray[u].mc))
{
enemyArray[u].mc.alpha = 0;
_bulletmanager.bulletArray[g].alpha = 0;
var anExplosion:MovieClip = new Explosion();
_stage.addChild(anExplosion);
anExplosion.x = enemyArray[u].mc.x;
anExplosion.y = enemyArray[u].mc.y;
explosionArray.push(anExplosion);
_hud.addScore(10);
}
}
}
for (var l:int=0; l {
if (explosionArray[l].currentFrame == 10)
{
_stage.removeChild(explosionArray[l]);
explosionArray.splice(l,1);
}
}
}
}
}
BulletManager
package
{
import flash.display.MovieClip;
import flash.events.Event;
public class BulletManager extends MovieClip
{
public var bulletArray:Array = [];
public function BulletManager()
{
trace("Manager added");
this.addEventListener(Event.ENTER_FRAME, managing);
}
private function managing(Event):void
{
for (var i:int=0; i {
bulletArray[i].y -= 10;
if (bulletArray[i].y < -10)
{
bulletArray[i].parent.removeChild(bulletArray[i]);
bulletArray.splice(i,1);
}
}
}
}
}
HudDisplay
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.text.TextField;
import flash.events.Event;
public class HudDisplay
{
public var playerScore:Number = 0;
public var playerMisses:Number = 0;
public var showScore:TextField = new TextField();
public var showMisses:TextField = new TextField();
private var _stage;
public function HudDisplay(get_stage:Stage)
{
_stage = get_stage;
_stage.addChild(showScore);
showScore.x = showScore.y = 10;
showScore.width = 50;
showScore.height = 24;
showScore.selectable = false;
showScore.text = "0";
showScore.background = true;
showScore.backgroundColor = 0xCCFDFD;
showScore.addEventListener(Event.ENTER_FRAME, depthChecker);
_stage.addChild(showMisses);
showMisses.x = 10;
showMisses.y = 40;
showMisses.width = 50;
showMisses.height = 24;
showMisses.selectable = false;
showMisses.text = "0";
showMisses.background = true;
showMisses.backgroundColor = 0xFF6464;
showMisses.addEventListener(Event.ENTER_FRAME, depthChecker);
}
public function addScore(amount:Number):void
{
playerScore += amount;
showScore.text = playerScore.toString();
}
public function addMiss(amount:Number):void
{
playerMisses += amount;
showMisses.text = playerMisses.toString();
}
private function depthChecker(Event):void
{
if (_stage.getChildIndex(showScore)!=(_stage.numChildren-1))
{
_stage.setChildIndex(showScore, _stage.numChildren-1);
}
if (_stage.getChildIndex(showMisses)!=(_stage.numChildren-2))
{
_stage.setChildIndex(showMisses, _stage.numChildren-2);
}
}
}
}
EDIT: If you don't like the sizing and such, you can see the full game Here.
CODE
Ship
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.*;
public class Ship extends MovieClip
{
private var mouseIsDown:Boolean = false;
public var myManager:BulletManager = new BulletManager();
public var myHud:HudDisplay = new HudDisplay(stage);
public var myEnemyManager:EnemyManager = new EnemyManager(stage, myManager, myHud);
private var bulletInerval = setInterval(createBullet, 200);
public function Ship()
{
trace("Ship added to stage!");
stage.addEventListener(Event.ENTER_FRAME, moveShip);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
myEnemyManager.spawnEnemies(4, 1);
myEnemyManager.spawnEnemies(2, 2);
myEnemyManager.spawnEnemies(2, 3);
}
private function moveShip(Event):void
{
this.x+=(stage.mouseX-this.x)/5;
}
private function mDown(MouseEvent):void
{
mouseIsDown = true;
}
private function mUp(MouseEvent):void
{
mouseIsDown = false;
}
private function createBullet():void
{
if (mouseIsDown)
{
var aBullet:Bullet = new Bullet();
stage.addChild(aBullet);
aBullet.x = this.x;
aBullet.y = this.y;
myManager.bulletArray.push(aBullet);
}
}
}
}
Bullet
package
{
import flash.display.MovieClip;
public class Bullet extends MovieClip
{
public function Bullet()
{
trace("Bullet fired!");
}
}
}
Enemy Manager
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
public class EnemyManager extends MovieClip
{
public var enemyArray:Array = [];
private var _stage;
private var _bulletmanager;
private var _hud;
private var speeds:Array = [5,7,10];
private var explosionArray:Array = [];
public function EnemyManager(get_stage:Stage, manager, hud)
{
trace("Enemy manager added");
this.addEventListener(Event.ENTER_FRAME, managing);
_stage = get_stage;
_bulletmanager = manager;
_hud = hud;
}
public function spawnEnemies(num:Number, enemytype:Number):void
{
for (var i:int=0; i
var anEnemy:MovieClip = new Enemy();
anEnemy.gotoAndStop(enemytype);
var enemySpeed:Number = speeds[enemytype - 1];
enemyArray.push({mc: anEnemy, eSpeed:enemySpeed});
_stage.addChild(anEnemy);
anEnemy.x = Math.random() * 400;
anEnemy.y = - Math.random() * 400;
trace("Enemy spawned: " + anEnemy.height);
}
}
private function managing(Event):void
{
for (var u:int=0; u
enemyArray[u].mc.y += enemyArray[u].eSpeed;
if (enemyArray[u].mc.y > 450)
{
if (enemyArray[u].mc.alpha == 1)
{
_hud.addMiss(1);
}
enemyArray[u].mc.y = - Math.random() * 400;
enemyArray[u].mc.x = Math.random() * 400;
enemyArray[u].mc.alpha = 1;
}
for (var g:int=0; g<_bulletmanager.bulletArray.length; g++)
{
if (_bulletmanager.bulletArray[g].alpha == 1 && enemyArray[u].mc.alpha == 1 && _bulletmanager.bulletArray[g].hitTestObject(enemyArray[u].mc))
{
enemyArray[u].mc.alpha = 0;
_bulletmanager.bulletArray[g].alpha = 0;
var anExplosion:MovieClip = new Explosion();
_stage.addChild(anExplosion);
anExplosion.x = enemyArray[u].mc.x;
anExplosion.y = enemyArray[u].mc.y;
explosionArray.push(anExplosion);
_hud.addScore(10);
}
}
}
for (var l:int=0; l
if (explosionArray[l].currentFrame == 10)
{
_stage.removeChild(explosionArray[l]);
explosionArray.splice(l,1);
}
}
}
}
}
BulletManager
package
{
import flash.display.MovieClip;
import flash.events.Event;
public class BulletManager extends MovieClip
{
public var bulletArray:Array = [];
public function BulletManager()
{
trace("Manager added");
this.addEventListener(Event.ENTER_FRAME, managing);
}
private function managing(Event):void
{
for (var i:int=0; i
bulletArray[i].y -= 10;
if (bulletArray[i].y < -10)
{
bulletArray[i].parent.removeChild(bulletArray[i]);
bulletArray.splice(i,1);
}
}
}
}
}
HudDisplay
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.text.TextField;
import flash.events.Event;
public class HudDisplay
{
public var playerScore:Number = 0;
public var playerMisses:Number = 0;
public var showScore:TextField = new TextField();
public var showMisses:TextField = new TextField();
private var _stage;
public function HudDisplay(get_stage:Stage)
{
_stage = get_stage;
_stage.addChild(showScore);
showScore.x = showScore.y = 10;
showScore.width = 50;
showScore.height = 24;
showScore.selectable = false;
showScore.text = "0";
showScore.background = true;
showScore.backgroundColor = 0xCCFDFD;
showScore.addEventListener(Event.ENTER_FRAME, depthChecker);
_stage.addChild(showMisses);
showMisses.x = 10;
showMisses.y = 40;
showMisses.width = 50;
showMisses.height = 24;
showMisses.selectable = false;
showMisses.text = "0";
showMisses.background = true;
showMisses.backgroundColor = 0xFF6464;
showMisses.addEventListener(Event.ENTER_FRAME, depthChecker);
}
public function addScore(amount:Number):void
{
playerScore += amount;
showScore.text = playerScore.toString();
}
public function addMiss(amount:Number):void
{
playerMisses += amount;
showMisses.text = playerMisses.toString();
}
private function depthChecker(Event):void
{
if (_stage.getChildIndex(showScore)!=(_stage.numChildren-1))
{
_stage.setChildIndex(showScore, _stage.numChildren-1);
}
if (_stage.getChildIndex(showMisses)!=(_stage.numChildren-2))
{
_stage.setChildIndex(showMisses, _stage.numChildren-2);
}
}
}
}
Subscribe to:
Posts (Atom)