Friday, June 3, 2011
Wednesday, June 1, 2011
Reflection On Hens, Roosters and Eggs
Finally, a night of sleep without the dark sceptre of Foghorn Dark Fowl looming in the recesses of my sleep deprived mind. Woo hoo! Now, for the summary...
After focusing so intently on Action Script the last couple of weeks, symbols and tweens feel like topics from the distant past, which is okay since they don't require the mind numbing amount of logic analysis that code demands. (I did have to test myself to make sure I remembered how to do a tween.)
Thinking the game was due today, I put my game to rest last night, and once having done so cannot even remotely entertain the prospect of a "fowl" game resurrection. Given that, I am now resisting the urge to just add those extra roosters, dang it, or similarly, to modify the makehens/foxeatshens functions code to make it more concise, or to add in text, or music, or speed up the fox, or make the bug motion more erratic, or make the bugs avoid the hens and roosters, or make the worms only crawl through the ground area, or, or, or....you get the idea.
I approached this project with dust all over the geeky, engineering-trained part of my brain. This was a mistake is one way, a blessing in another. The blessing came in the game's evolution and the free symbol creation and what those symbols eventually came to inspire. The curse was the resulting fuzzy form and unfocused logic that I had going into the game coding part of the project. That and the fact that I didn't know the code language well at all contributed to a more frustrating experience than I should have had. Once I had my unclear picture of the game, I should have taken the time to really delve into the logical game progression, complete with flow charting so any oddities in loops or conditions could be analysed before getting lost in the code. While my fuzzy approach did work out okay, I'm sure it took me longer than if I had been more organized. For the next game: creatively brainstorm during the flash file phase, THEN logically analyse and organise BEFORE starting the action script! (But always be open to new ideas.)
Important concepts learned during this project include variables as one item storage containers, global vs local variables, arrays as several item storage containers, manipulation of variables through the use of functions, calling functions, employing loops and counters and using conditional statements. The strategy of where to place certain code based on your desired outcome is likely the most important concept reviewed. So, until the next project...have a great summer and sabbatical. (I'll be animating!)
game: hen and rooster pair team up to eat bugs and avoid fox. if all bugs are eaten, the hen lays an enormous egg and the pair gets 100 points. if the fox catches the hen, she becomes his dinner. there are three hens.
After focusing so intently on Action Script the last couple of weeks, symbols and tweens feel like topics from the distant past, which is okay since they don't require the mind numbing amount of logic analysis that code demands. (I did have to test myself to make sure I remembered how to do a tween.)
Thinking the game was due today, I put my game to rest last night, and once having done so cannot even remotely entertain the prospect of a "fowl" game resurrection. Given that, I am now resisting the urge to just add those extra roosters, dang it, or similarly, to modify the makehens/foxeatshens functions code to make it more concise, or to add in text, or music, or speed up the fox, or make the bug motion more erratic, or make the bugs avoid the hens and roosters, or make the worms only crawl through the ground area, or, or, or....you get the idea.
I approached this project with dust all over the geeky, engineering-trained part of my brain. This was a mistake is one way, a blessing in another. The blessing came in the game's evolution and the free symbol creation and what those symbols eventually came to inspire. The curse was the resulting fuzzy form and unfocused logic that I had going into the game coding part of the project. That and the fact that I didn't know the code language well at all contributed to a more frustrating experience than I should have had. Once I had my unclear picture of the game, I should have taken the time to really delve into the logical game progression, complete with flow charting so any oddities in loops or conditions could be analysed before getting lost in the code. While my fuzzy approach did work out okay, I'm sure it took me longer than if I had been more organized. For the next game: creatively brainstorm during the flash file phase, THEN logically analyse and organise BEFORE starting the action script! (But always be open to new ideas.)
Important concepts learned during this project include variables as one item storage containers, global vs local variables, arrays as several item storage containers, manipulation of variables through the use of functions, calling functions, employing loops and counters and using conditional statements. The strategy of where to place certain code based on your desired outcome is likely the most important concept reviewed. So, until the next project...have a great summer and sabbatical. (I'll be animating!)
game: hen and rooster pair team up to eat bugs and avoid fox. if all bugs are eaten, the hen lays an enormous egg and the pair gets 100 points. if the fox catches the hen, she becomes his dinner. there are three hens.
Tuesday, May 31, 2011
Hens & Roosters Code
//Hens & Roosters
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Mouse;
import flash.media.Sound;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
public class FirstGame02 extends MovieClip
{
//Declare Global Variables
var hennypenny:MovieClip;
var lusciouslulu:MovieClip;
var chickiechacha:MovieClip;
var seymour:MovieClip;
var henrythe8th:MovieClip;
var madmax:MovieClip;
var hatching:MovieClip;
var fox:MovieClip;
var fatassworm:MovieClip;
var effinfly:MovieClip;
var beetlebug:MovieClip;
var flowers:MovieClip;
var foreground:MovieClip;
var sky:MovieClip;
var vx:Number;
var vy:Number;
var tempHen = MovieClip;
var myHenArray = new Array;
var tempRooster = MovieClip;
var myRoosterArray = new Array;
var tempBug = MovieClip;
var myBugArray:Array = new Array;
var myBugArrayWorm:Array = new Array;
var myBugArrayFly:Array = new Array;
var myBugArrayBeetle:Array = new Array;
var hensclucking:Sound;
var roostercall:Sound;
var henlaying:Sound;
public function FirstGame02()//CONSTRUCTOR FUNCTION
{
//Instantiate Variables
hennypenny = new HennyPenny;
lusciouslulu = new LusciousLulu;
chickiechacha = new ChickieChaCha;
seymour = new Seymour;
henrythe8th = new HenryThe8th;
madmax = new MadMax;
hatching = new Hatching;
fox = new Fox;
fatassworm = new FatAssWorm;
effinfly = new EffinFly;
beetlebug = new BeetleBug;
flowers = new Flowers;
foreground = new Foreground;
sky = new Sky;
vx = 20;
vy = 20;
hensclucking = new HensClucking;
roostercall = new RoosterCall;
henlaying = new HenLaying;
//Hide the mouse
Mouse.hide();
//Set up the stage
stage.scaleMode = StageScaleMode.EXACT_FIT;
addChild(sky);
addChild(foreground);
addChild(flowers);
addChild(fox);
sky.x = stage.stageWidth * .45;
sky.y = stage.stageHeight * .385;
foreground.x = stage.stageWidth * .4;
foreground.y = stage.stageHeight * .45;
flowers.x = stage.stageWidth * .7;
flowers.y = stage.stageHeight * .4;
hatching.x = stage.stageWidth * .5;
hatching.y = stage.stageHeight * .5;
fox.x = stage.stageWidth*.5;
fox.y = stage.stageHeight*.1;
fox.scaleX = .20;
fox.scaleY = .20;
makeBugs();
makeHens();
makeRoosters();
// Event Listeners
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}//end public function
// Event Handlers
function onEnterFrame(event:Event):void
{
// PLAYER Hen and Rooster CONTROLLED BY MOUSE
hennypenny.x = mouseX;
lusciouslulu.x = mouseX;
chickiechacha.x = mouseX;
tempRooster.y = mouseY;
//Stage Boundary Collisions
if(fox.x > stage.stageWidth || fox.x < 0)
{
vx = -vx;
hensclucking.play();
}
if(fox.y > stage.stageHeight || fox.y < 0)
{
vy = -vy;
hensclucking.play();
}
//check for rooster/fox collisions
if(tempRooster.hitTestObject(fox))
{
vx = -vx;
vy = -vy;
roostercall.play();
}
//move stuff
fox.x += vx;
fox.y += vy;
moveBugs();
eatBugs();
foxEatsHens();
}// end onEnterFrame function
function makeBugs():void
{
for (var i:int = 30; i>=20; i--)
{
tempBug = new FatAssWorm;
tempBug.y = (Math.random()*stage.stageHeight);
tempBug.x = (Math.random()*stage.stageWidth);
tempBug.scaleX = .1;
tempBug.scaleY = .1;
tempBug.vx = (Math.random()* 15);
tempBug.vy = (Math.random()* 15);
addChild(tempBug);// display the contents of tempBug on the stage
myBugArray.push(tempBug);//puts the contents of each tempBug into myBug Array
}//end for
for (var j:int = 20; j>=10; j--)
{
tempBug = new EffinFly;
tempBug.y = (Math.random()*stage.stageHeight);
tempBug.x = (Math.random()*stage.stageWidth);
tempBug.scaleX = .1;
tempBug.scaleY = .1;
tempBug.vx = (Math.random()* 15);
tempBug.vy = (Math.random()* 30);
addChild(tempBug);// display the contents of tempBug on the stage
myBugArray.push(tempBug);//puts the contents of each tempBug into myBugArray
}//end for
for (var k:int = 10; k>=0; k--)
{
tempBug = new BeetleBug;
tempBug.y = Math.floor(Math.random()*stage.stageHeight);
tempBug.x = Math.floor(Math.random()*stage.stageWidth);
tempBug.scaleX = .1;
tempBug.scaleY = .1;
tempBug.vx = (Math.random()* 10);
tempBug.vy = (Math.random()* 20);
addChild(tempBug);// display the contents of tempBug on the stage
myBugArray.push(tempBug);//puts each tempBug into myBugArray
}//end for
}//end makeBugs
function makeHens(): void
{
myHenArray.push(hennypenny);
myHenArray.push(lusciouslulu);
myHenArray.push(chickiechacha);
var Hen:MovieClip;
Hen = myHenArray[myHenArray.length - 1];
Hen.y = stage.stageHeight*.85;
Hen.scaleX = .3;
Hen.scaleY = .3;
tempHen = Hen;
addChild(tempHen);
}//end makeHens
function foxEatsHens (): void
{
for (var i:int = myHenArray.length-1; i>0; i--)
{
if((fox).hitTestObject(myHenArray[i]))
{
vx = -vx;
vy = -vy;
removeChild(myHenArray[i]);
myHenArray.splice(i,1);
myHenArray[i - 1].x = stage.stageWidth - fox.x;
myHenArray[i - 1].y = stage.stageHeight*.85;
myHenArray[i - 1].scaleX = .3;
myHenArray[i - 1].scaleY = .3;
//trace(myHenArray.length);
addChild(myHenArray[i - 1]);
//trace(myHenArray[0]);
hensclucking.play();
}//end hen/fox collision test
}//end for
if (myHenArray.length == 1)
{
if((fox).hitTestObject(myHenArray[0]))
{
removeChild(myHenArray[myHenArray.length - 1]);
myHenArray.splice(myHenArray.length-1,1);
removeChild(tempRooster);
trace("GAME OVER");
}
}
}//end foxEatsHens
function makeRoosters(): void
{
myRoosterArray.push(seymour);//puts hen into myHenArray
myRoosterArray.push(henrythe8th);
myRoosterArray.push(madmax);
var Rooster:MovieClip;
Rooster = myRoosterArray[myRoosterArray.length - 1];
Rooster.x = stage.stageWidth*.15;
Rooster.scaleX = .3;
Rooster.scaleY = .3;
addChild(Rooster);
tempRooster = Rooster;
}//end makeRoosters
function moveBugs(): void
{
var bug:MovieClip;
for (var i:int = myBugArray.length-1; i>=0; i--)
{
bug = myBugArray[i];
bug.x += tempBug.vx;
bug.y += tempBug.vy;
if (bug.x > (stage.stageWidth - (bug.width/2)))
{
bug.x = stage.stageWidth - (bug.width/2+1);
tempBug.vx = - tempBug.vx;
}
if (bug.x < (0 + (bug.width/2+1)))
{
bug.x = 0 + (bug.width/2+1);
tempBug.vx = - tempBug.vx;
}
if (bug.y > (stage.stageHeight - (bug.height/2)))
{
bug.y = stage.stageHeight - (bug.height/2);
tempBug.vy = -tempBug.vy;
}
if (bug.y < (0 + (bug.height/2+1)))
{
bug.y = 0 + (bug.height/2+1);
tempBug.vy = - tempBug.vy;
}
}//end for
}//end moveBugs
function eatBugs(): void
{
//var sound:Sound = new SoundSubmarine();
var bug:MovieClip;// = event.target as MovieClip;
for (var i:int = myBugArray.length-1; i>=0; i--)
{
bug = myBugArray[i];
if (myHenArray[myHenArray.length - 1].hitTestObject(bug) || tempRooster.hitTestObject(bug))
{
trace("YUMMY!!!");
//hensclucking.play();
removeChild(myBugArray[i]);
myBugArray.splice(i,1);
}
if (myBugArray.length == 0) //score and add egg hatching
{
//play sound
addChild(hatching);
trace("YOU HATCHED AN EGG!!! SCORE:");
trace(100*(i+1));
henlaying.play();
henlaying.play();
henlaying.play();
//removeChild(hatching);
//makeBugs();
} //end score/egg if
}//end for
}// end eatBugs
}// end class
} // end package
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Mouse;
import flash.media.Sound;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
public class FirstGame02 extends MovieClip
{
//Declare Global Variables
var hennypenny:MovieClip;
var lusciouslulu:MovieClip;
var chickiechacha:MovieClip;
var seymour:MovieClip;
var henrythe8th:MovieClip;
var madmax:MovieClip;
var hatching:MovieClip;
var fox:MovieClip;
var fatassworm:MovieClip;
var effinfly:MovieClip;
var beetlebug:MovieClip;
var flowers:MovieClip;
var foreground:MovieClip;
var sky:MovieClip;
var vx:Number;
var vy:Number;
var tempHen = MovieClip;
var myHenArray = new Array;
var tempRooster = MovieClip;
var myRoosterArray = new Array;
var tempBug = MovieClip;
var myBugArray:Array = new Array;
var myBugArrayWorm:Array = new Array;
var myBugArrayFly:Array = new Array;
var myBugArrayBeetle:Array = new Array;
var hensclucking:Sound;
var roostercall:Sound;
var henlaying:Sound;
public function FirstGame02()//CONSTRUCTOR FUNCTION
{
//Instantiate Variables
hennypenny = new HennyPenny;
lusciouslulu = new LusciousLulu;
chickiechacha = new ChickieChaCha;
seymour = new Seymour;
henrythe8th = new HenryThe8th;
madmax = new MadMax;
hatching = new Hatching;
fox = new Fox;
fatassworm = new FatAssWorm;
effinfly = new EffinFly;
beetlebug = new BeetleBug;
flowers = new Flowers;
foreground = new Foreground;
sky = new Sky;
vx = 20;
vy = 20;
hensclucking = new HensClucking;
roostercall = new RoosterCall;
henlaying = new HenLaying;
//Hide the mouse
Mouse.hide();
//Set up the stage
stage.scaleMode = StageScaleMode.EXACT_FIT;
addChild(sky);
addChild(foreground);
addChild(flowers);
addChild(fox);
sky.x = stage.stageWidth * .45;
sky.y = stage.stageHeight * .385;
foreground.x = stage.stageWidth * .4;
foreground.y = stage.stageHeight * .45;
flowers.x = stage.stageWidth * .7;
flowers.y = stage.stageHeight * .4;
hatching.x = stage.stageWidth * .5;
hatching.y = stage.stageHeight * .5;
fox.x = stage.stageWidth*.5;
fox.y = stage.stageHeight*.1;
fox.scaleX = .20;
fox.scaleY = .20;
makeBugs();
makeHens();
makeRoosters();
// Event Listeners
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}//end public function
// Event Handlers
function onEnterFrame(event:Event):void
{
// PLAYER Hen and Rooster CONTROLLED BY MOUSE
hennypenny.x = mouseX;
lusciouslulu.x = mouseX;
chickiechacha.x = mouseX;
tempRooster.y = mouseY;
//Stage Boundary Collisions
if(fox.x > stage.stageWidth || fox.x < 0)
{
vx = -vx;
hensclucking.play();
}
if(fox.y > stage.stageHeight || fox.y < 0)
{
vy = -vy;
hensclucking.play();
}
//check for rooster/fox collisions
if(tempRooster.hitTestObject(fox))
{
vx = -vx;
vy = -vy;
roostercall.play();
}
//move stuff
fox.x += vx;
fox.y += vy;
moveBugs();
eatBugs();
foxEatsHens();
}// end onEnterFrame function
function makeBugs():void
{
for (var i:int = 30; i>=20; i--)
{
tempBug = new FatAssWorm;
tempBug.y = (Math.random()*stage.stageHeight);
tempBug.x = (Math.random()*stage.stageWidth);
tempBug.scaleX = .1;
tempBug.scaleY = .1;
tempBug.vx = (Math.random()* 15);
tempBug.vy = (Math.random()* 15);
addChild(tempBug);// display the contents of tempBug on the stage
myBugArray.push(tempBug);//puts the contents of each tempBug into myBug Array
}//end for
for (var j:int = 20; j>=10; j--)
{
tempBug = new EffinFly;
tempBug.y = (Math.random()*stage.stageHeight);
tempBug.x = (Math.random()*stage.stageWidth);
tempBug.scaleX = .1;
tempBug.scaleY = .1;
tempBug.vx = (Math.random()* 15);
tempBug.vy = (Math.random()* 30);
addChild(tempBug);// display the contents of tempBug on the stage
myBugArray.push(tempBug);//puts the contents of each tempBug into myBugArray
}//end for
for (var k:int = 10; k>=0; k--)
{
tempBug = new BeetleBug;
tempBug.y = Math.floor(Math.random()*stage.stageHeight);
tempBug.x = Math.floor(Math.random()*stage.stageWidth);
tempBug.scaleX = .1;
tempBug.scaleY = .1;
tempBug.vx = (Math.random()* 10);
tempBug.vy = (Math.random()* 20);
addChild(tempBug);// display the contents of tempBug on the stage
myBugArray.push(tempBug);//puts each tempBug into myBugArray
}//end for
}//end makeBugs
function makeHens(): void
{
myHenArray.push(hennypenny);
myHenArray.push(lusciouslulu);
myHenArray.push(chickiechacha);
var Hen:MovieClip;
Hen = myHenArray[myHenArray.length - 1];
Hen.y = stage.stageHeight*.85;
Hen.scaleX = .3;
Hen.scaleY = .3;
tempHen = Hen;
addChild(tempHen);
}//end makeHens
function foxEatsHens (): void
{
for (var i:int = myHenArray.length-1; i>0; i--)
{
if((fox).hitTestObject(myHenArray[i]))
{
vx = -vx;
vy = -vy;
removeChild(myHenArray[i]);
myHenArray.splice(i,1);
myHenArray[i - 1].x = stage.stageWidth - fox.x;
myHenArray[i - 1].y = stage.stageHeight*.85;
myHenArray[i - 1].scaleX = .3;
myHenArray[i - 1].scaleY = .3;
//trace(myHenArray.length);
addChild(myHenArray[i - 1]);
//trace(myHenArray[0]);
hensclucking.play();
}//end hen/fox collision test
}//end for
if (myHenArray.length == 1)
{
if((fox).hitTestObject(myHenArray[0]))
{
removeChild(myHenArray[myHenArray.length - 1]);
myHenArray.splice(myHenArray.length-1,1);
removeChild(tempRooster);
trace("GAME OVER");
}
}
}//end foxEatsHens
function makeRoosters(): void
{
myRoosterArray.push(seymour);//puts hen into myHenArray
myRoosterArray.push(henrythe8th);
myRoosterArray.push(madmax);
var Rooster:MovieClip;
Rooster = myRoosterArray[myRoosterArray.length - 1];
Rooster.x = stage.stageWidth*.15;
Rooster.scaleX = .3;
Rooster.scaleY = .3;
addChild(Rooster);
tempRooster = Rooster;
}//end makeRoosters
function moveBugs(): void
{
var bug:MovieClip;
for (var i:int = myBugArray.length-1; i>=0; i--)
{
bug = myBugArray[i];
bug.x += tempBug.vx;
bug.y += tempBug.vy;
if (bug.x > (stage.stageWidth - (bug.width/2)))
{
bug.x = stage.stageWidth - (bug.width/2+1);
tempBug.vx = - tempBug.vx;
}
if (bug.x < (0 + (bug.width/2+1)))
{
bug.x = 0 + (bug.width/2+1);
tempBug.vx = - tempBug.vx;
}
if (bug.y > (stage.stageHeight - (bug.height/2)))
{
bug.y = stage.stageHeight - (bug.height/2);
tempBug.vy = -tempBug.vy;
}
if (bug.y < (0 + (bug.height/2+1)))
{
bug.y = 0 + (bug.height/2+1);
tempBug.vy = - tempBug.vy;
}
}//end for
}//end moveBugs
function eatBugs(): void
{
//var sound:Sound = new SoundSubmarine();
var bug:MovieClip;// = event.target as MovieClip;
for (var i:int = myBugArray.length-1; i>=0; i--)
{
bug = myBugArray[i];
if (myHenArray[myHenArray.length - 1].hitTestObject(bug) || tempRooster.hitTestObject(bug))
{
trace("YUMMY!!!");
//hensclucking.play();
removeChild(myBugArray[i]);
myBugArray.splice(i,1);
}
if (myBugArray.length == 0) //score and add egg hatching
{
//play sound
addChild(hatching);
trace("YOU HATCHED AN EGG!!! SCORE:");
trace(100*(i+1));
henlaying.play();
henlaying.play();
henlaying.play();
//removeChild(hatching);
//makeBugs();
} //end score/egg if
}//end for
}// end eatBugs
}// end class
} // end package
A Fowl
In the interest of maintaining my sanity, the rest of my hair that hasn't been clenched out it bouts of frustration, and to prevent the dangerous lobbing of laptops, my game has been declared finished. The accompanying reflective essay will come tomorrow.
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/FirstGame02.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/FirstGame02.swf?attredirects=0
Sunday, May 29, 2011
Monday, May 16, 2011
Sunday, May 15, 2011
Hens & Roosters
I actually described my game in my posts of last week. Please, look there for the game summary.
Sunday, May 8, 2011
Coding for Hens & Roosters
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Mouse;//***NEW
import flash.media.Sound;//***NEW
public class FirstGame01 extends MovieClip
{
//Declare Global Variables
var hennypenny:MovieClip;
var lusciouslulu:MovieClip;
var chickiechacha:MovieClip;
var seymour:MovieClip;
var henrythe8th:MovieClip;
var madmax:MovieClip;
var fox:MovieClip;
var fatassworm:MovieClip;
var effinfly:MovieClip;
var beetlebug:MovieClip;
var flowers:MovieClip;
var foreground:MovieClip;
var sky:MovieClip;
var vx:Number;
var vy:Number;
var ballBounceSound:Sound;//***NEW
var playerSound:Sound;//***NEW
public function FirstGame01()//CONSTRUCTOR FUNCTION
{
//Instantiate Variables
hennypenny = new HennyPenny;
lusciouslulu = new LusciousLulu;
chickiechacha = new ChickieChaCha;
seymour = new Seymour;
henrythe8th = new HenryThe8th;
madmax = new MadMax;
fox = new Fox;
fatassworm = new FatAssWorm;
effinfly = new EffinFly;
beetlebug = new BeetleBug;
flowers = new Flowers;
foreground = new Foreground;
sky = new Sky;
fatassworm.vx = 0; //yes, I did that horrible thing!
fatassworm.vy = 0; //twice!
effinfly.vx = 0;
effinfly.vy = 0;
beetlebug.vx = 0;
beetlebug.vy = 0;
vx = 5;
vy = 5;
ballBounceSound = new SoundBasso;//***NEW
playerSound = new SoundGlass;//***NEW
//Hide the mouse ***NEW
Mouse.hide();
//Set up the stage
addChild(sky);
addChild(foreground);
addChild(flowers);
addChild(hennypenny);
//addChild(lusciouslulu);
//addChild(chickiechacha);
addChild(seymour);
//addChild(henrythe8th);
//addChild(madmax);
addChild(fox);
addChild(fatassworm);
addChild(effinfly);
addChild(beetlebug);
sky.x = stage.stageWidth * .45;
sky.y = stage.stageHeight * .385;
foreground.x = stage.stageWidth * .4;
foreground.y = stage.stageHeight * .45;
flowers.x = stage.stageWidth * .7;
flowers.y = stage.stageHeight * .4;
seymour.x = stage.stageWidth*.15;
seymour.y = stage.stageHeight*.5;
seymour.scaleX = .5;
seymour.scaleY = .5;
hennypenny.x = stage.stageWidth*.5;
hennypenny.y = stage.stageHeight*.85;
hennypenny.scaleX = .5;
hennypenny.scaleY = .5;
fox.x = stage.stageWidth*.5;
fox.y = stage.stageHeight*.1;
fox.scaleX = .5;
fox.scaleY = .5;
fatassworm.x = stage.stageWidth*.3;
fatassworm.y = stage.stageHeight*.7;
fatassworm.scaleX = .1;
fatassworm.scaleY = .1;
effinfly.x = .2;
effinfly.y = .2;
effinfly.scaleX = .1;
effinfly.scaleY = .1;
beetlebug.x = .9;
beetlebug.y = .9;
beetlebug.scaleX = .1;
beetlebug.scaleY = .1;
// Event Listeners
addEventListener(Event.ENTER_FRAME, onEnterFrame);
fatassworm.addEventListener(Event.ENTER_FRAME, onBugMove);
effinfly.addEventListener(Event.ENTER_FRAME, onBugMove);
beetlebug.addEventListener(Event.ENTER_FRAME, onBugMove);
}
// Event Handlers
function onEnterFrame(event:Event):void
{
// PLAYER X CONTROLLED BY MOUSE ***NEW
hennypenny.x = mouseX;
//hennypenny.y = mouseY;
//seymour.x = mouseY;
seymour.y = mouseX;
//Stage Boundary Collisions
if(fox.x > stage.stageWidth || fox.x < 0)
{
vx = -vx;
ballBounceSound.play();//***NEW
}
if(fox.y > stage.stageHeight || fox.y < 0)
{
vy = -vy;
ballBounceSound.play();//***NEW
}
//check for paddle ball collisions ***NEW
if(hennypenny.hitTestObject(fox)||seymour.hitTestObject(fox))
{
vx = -vx;
vy = -vy;
playerSound.play();//***NEW
}
//move stuff
fox.x += vx;
fox.y += vy;
}// end onEnterFrame function
private function onBugMove(event:Event):void
{
//Create a variable to store a reference to bug object
var bug:MovieClip = event.target as MovieClip;
//Add Brownian motion to the velocities...I'm about to commmit coding atocities...be forewarned! not sure how to do this "correctly"
bug.vx += (Math.random() * 0.2 - 0.1) * 5;
bug.vy += (Math.random() * 0.2 - 0.1) * 5;
//Add some friction
//bug.vx += 0.95;
//bug.vy += 0.95;
//Move the bug
bug.x += bug.vx;
bug.y += bug.vy;
//Stage Boundaries
//Reverse bug's velocity when it hits stage edges
//if (bug.x > stage.stageWidth)//||if (bug.x < 0)
//{
//bug.vx *= -1;
//}
//if (bug.x < 0)
//{
//bug.vx *= -1;
//}
if (bug.y > stage.stageHeight)
{
bug.vy *= -1;
}
if (bug.y < 0)
{
bug.vy *= -1;
}
//Bug emerges from opposite sides
if (bug.x - bug.width / 2 > stage.stageWidth)
{
bug.x = 0 - bug.width / 2;
}
else if (bug.x + bug.width / 2 < 0)
{
bug.x = stage.stageWidth + bug.width / 2;
}
//if (bug.y - fly.height / 2 > stage.stageHeight)
//{
//bug.y = 0 - bug.height / 2;
//}
//else if (bug.y + bug.height / 2 < 0)
//{
//bug.y = stage.stageHeight + bug.height / 2;
//}
}//end onBugMove function
}// end class
} // end package
This coding includes a lot of "commented out" code for the game that will eventually be (by finals week) Also, it obviously still needs a lot. Ultimately, the game will be about a hen and a rooster working together to catch enough bugs to create/lay an egg while avoiding the ever present fox. The motion of the hen and the rooster is tied so that some strategy will be necessary to catch bugs and avoid the fox. The hen has three lives should she get offed by the fox. The more bugs she eats, the sooner she lays an egg. The rooster can chase the fox away if he has eaten enough bugs. The odds of his being successful in the chase increase with increased bug consumption. Score goes up with egg laying.
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Mouse;//***NEW
import flash.media.Sound;//***NEW
public class FirstGame01 extends MovieClip
{
//Declare Global Variables
var hennypenny:MovieClip;
var lusciouslulu:MovieClip;
var chickiechacha:MovieClip;
var seymour:MovieClip;
var henrythe8th:MovieClip;
var madmax:MovieClip;
var fox:MovieClip;
var fatassworm:MovieClip;
var effinfly:MovieClip;
var beetlebug:MovieClip;
var flowers:MovieClip;
var foreground:MovieClip;
var sky:MovieClip;
var vx:Number;
var vy:Number;
var ballBounceSound:Sound;//***NEW
var playerSound:Sound;//***NEW
public function FirstGame01()//CONSTRUCTOR FUNCTION
{
//Instantiate Variables
hennypenny = new HennyPenny;
lusciouslulu = new LusciousLulu;
chickiechacha = new ChickieChaCha;
seymour = new Seymour;
henrythe8th = new HenryThe8th;
madmax = new MadMax;
fox = new Fox;
fatassworm = new FatAssWorm;
effinfly = new EffinFly;
beetlebug = new BeetleBug;
flowers = new Flowers;
foreground = new Foreground;
sky = new Sky;
fatassworm.vx = 0; //yes, I did that horrible thing!
fatassworm.vy = 0; //twice!
effinfly.vx = 0;
effinfly.vy = 0;
beetlebug.vx = 0;
beetlebug.vy = 0;
vx = 5;
vy = 5;
ballBounceSound = new SoundBasso;//***NEW
playerSound = new SoundGlass;//***NEW
//Hide the mouse ***NEW
Mouse.hide();
//Set up the stage
addChild(sky);
addChild(foreground);
addChild(flowers);
addChild(hennypenny);
//addChild(lusciouslulu);
//addChild(chickiechacha);
addChild(seymour);
//addChild(henrythe8th);
//addChild(madmax);
addChild(fox);
addChild(fatassworm);
addChild(effinfly);
addChild(beetlebug);
sky.x = stage.stageWidth * .45;
sky.y = stage.stageHeight * .385;
foreground.x = stage.stageWidth * .4;
foreground.y = stage.stageHeight * .45;
flowers.x = stage.stageWidth * .7;
flowers.y = stage.stageHeight * .4;
seymour.x = stage.stageWidth*.15;
seymour.y = stage.stageHeight*.5;
seymour.scaleX = .5;
seymour.scaleY = .5;
hennypenny.x = stage.stageWidth*.5;
hennypenny.y = stage.stageHeight*.85;
hennypenny.scaleX = .5;
hennypenny.scaleY = .5;
fox.x = stage.stageWidth*.5;
fox.y = stage.stageHeight*.1;
fox.scaleX = .5;
fox.scaleY = .5;
fatassworm.x = stage.stageWidth*.3;
fatassworm.y = stage.stageHeight*.7;
fatassworm.scaleX = .1;
fatassworm.scaleY = .1;
effinfly.x = .2;
effinfly.y = .2;
effinfly.scaleX = .1;
effinfly.scaleY = .1;
beetlebug.x = .9;
beetlebug.y = .9;
beetlebug.scaleX = .1;
beetlebug.scaleY = .1;
// Event Listeners
addEventListener(Event.ENTER_FRAME, onEnterFrame);
fatassworm.addEventListener(Event.ENTER_FRAME, onBugMove);
effinfly.addEventListener(Event.ENTER_FRAME, onBugMove);
beetlebug.addEventListener(Event.ENTER_FRAME, onBugMove);
}
// Event Handlers
function onEnterFrame(event:Event):void
{
// PLAYER X CONTROLLED BY MOUSE ***NEW
hennypenny.x = mouseX;
//hennypenny.y = mouseY;
//seymour.x = mouseY;
seymour.y = mouseX;
//Stage Boundary Collisions
if(fox.x > stage.stageWidth || fox.x < 0)
{
vx = -vx;
ballBounceSound.play();//***NEW
}
if(fox.y > stage.stageHeight || fox.y < 0)
{
vy = -vy;
ballBounceSound.play();//***NEW
}
//check for paddle ball collisions ***NEW
if(hennypenny.hitTestObject(fox)||seymour.hitTestObject(fox))
{
vx = -vx;
vy = -vy;
playerSound.play();//***NEW
}
//move stuff
fox.x += vx;
fox.y += vy;
}// end onEnterFrame function
private function onBugMove(event:Event):void
{
//Create a variable to store a reference to bug object
var bug:MovieClip = event.target as MovieClip;
//Add Brownian motion to the velocities...I'm about to commmit coding atocities...be forewarned! not sure how to do this "correctly"
bug.vx += (Math.random() * 0.2 - 0.1) * 5;
bug.vy += (Math.random() * 0.2 - 0.1) * 5;
//Add some friction
//bug.vx += 0.95;
//bug.vy += 0.95;
//Move the bug
bug.x += bug.vx;
bug.y += bug.vy;
//Stage Boundaries
//Reverse bug's velocity when it hits stage edges
//if (bug.x > stage.stageWidth)//||if (bug.x < 0)
//{
//bug.vx *= -1;
//}
//if (bug.x < 0)
//{
//bug.vx *= -1;
//}
if (bug.y > stage.stageHeight)
{
bug.vy *= -1;
}
if (bug.y < 0)
{
bug.vy *= -1;
}
//Bug emerges from opposite sides
if (bug.x - bug.width / 2 > stage.stageWidth)
{
bug.x = 0 - bug.width / 2;
}
else if (bug.x + bug.width / 2 < 0)
{
bug.x = stage.stageWidth + bug.width / 2;
}
//if (bug.y - fly.height / 2 > stage.stageHeight)
//{
//bug.y = 0 - bug.height / 2;
//}
//else if (bug.y + bug.height / 2 < 0)
//{
//bug.y = stage.stageHeight + bug.height / 2;
//}
}//end onBugMove function
}// end class
} // end package
This coding includes a lot of "commented out" code for the game that will eventually be (by finals week) Also, it obviously still needs a lot. Ultimately, the game will be about a hen and a rooster working together to catch enough bugs to create/lay an egg while avoiding the ever present fox. The motion of the hen and the rooster is tied so that some strategy will be necessary to catch bugs and avoid the fox. The hen has three lives should she get offed by the fox. The more bugs she eats, the sooner she lays an egg. The rooster can chase the fox away if he has eaten enough bugs. The odds of his being successful in the chase increase with increased bug consumption. Score goes up with egg laying.
Game Questions...
Well, it seems my game is ridiculously unformed. The raw elements are there, but more collision work (bug eating) is needed, and a score element needs to be added. and published size is still a mystery, Looked fine in Flash, but once again, difficulties in the move to the blog. Argh! The random motion on the bugs worked nicely. Oh, and speeds of characters and looping background needs work. If I don't go on a homicidal coding induced rampage, I may try to tackle more of this tonight. Or, I may just let the brain rest for a bit.
Tuesday, April 26, 2011
Sunday, April 24, 2011
Interactions...
As it is late 'o clock pm, and there is, alas, so much more to do tonight, verbosity be-eth banished! Concise reflections on interactions:
Swimming: The therapeutic value of a good swim work out is undeniable. The pat on the back for a job well done, the feel of the surrounding water, the freedom from the weightier world, the smell of the pool (or the beach, or the lake), the list could go on forever. It is a kind of moving meditation, one in which the whole being is lighter afterwards with a refreshed mind, body and spirit. That is one thing I doubt can be captured in a computer game. The extreme physicality of it, in addition to the tangibility of the elements-- the water all around, the air above on the face when breathing, the smells -- definitely makes it a real world interaction.
Swing or Salsa or any partner dancing: Dancing is absolute joy. The game of "follow the leader" is not too far removed from partner dancing, but with a great twist. Each party agrees to try and figure each other out for the sheer fun of it, and all set to music. What could be better? Again, this is a physical game, but a social one, too. Each person has a different manner, different way of moving, expressing, enjoying. Also, there is something primal about dancing and moving to music. It is a shame that not everyone feels a freedom to just dance. Of course, that sentiment can be applied to anything...like drawing. ; ) I can draw. I can. I can. I can!!!
EATING CHOCOLATE!!! Ok. So the truth of it is, I really like chocolate, any variety, from the darkest darks to the milkiest milks. YUM! It smells good. It melts just right in your mouth. It soothes the soul from the moment it hits your tongue, magically melting to fill the whole head with yumminess. It is a treat to be slowly savored, best enjoyed at the end of the day when everything is quiet and you can just focus on its perfection...unless you get a dark that someone sugared up too much. ugh! darks should be bitter, in the best possible way, naturally.
Swimming: The therapeutic value of a good swim work out is undeniable. The pat on the back for a job well done, the feel of the surrounding water, the freedom from the weightier world, the smell of the pool (or the beach, or the lake), the list could go on forever. It is a kind of moving meditation, one in which the whole being is lighter afterwards with a refreshed mind, body and spirit. That is one thing I doubt can be captured in a computer game. The extreme physicality of it, in addition to the tangibility of the elements-- the water all around, the air above on the face when breathing, the smells -- definitely makes it a real world interaction.
Swing or Salsa or any partner dancing: Dancing is absolute joy. The game of "follow the leader" is not too far removed from partner dancing, but with a great twist. Each party agrees to try and figure each other out for the sheer fun of it, and all set to music. What could be better? Again, this is a physical game, but a social one, too. Each person has a different manner, different way of moving, expressing, enjoying. Also, there is something primal about dancing and moving to music. It is a shame that not everyone feels a freedom to just dance. Of course, that sentiment can be applied to anything...like drawing. ; ) I can draw. I can. I can. I can!!!
EATING CHOCOLATE!!! Ok. So the truth of it is, I really like chocolate, any variety, from the darkest darks to the milkiest milks. YUM! It smells good. It melts just right in your mouth. It soothes the soul from the moment it hits your tongue, magically melting to fill the whole head with yumminess. It is a treat to be slowly savored, best enjoyed at the end of the day when everything is quiet and you can just focus on its perfection...unless you get a dark that someone sugared up too much. ugh! darks should be bitter, in the best possible way, naturally.
ANIMATIONS
Coded:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/rabbitproject.swf?attredirects=0
Frame by Frame:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/PLANTBEING.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/FLITTERCRITTER.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/BLOCKS.swf?attredirects=0
Tweened:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/dingbats%26wombats.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/jumpsortof.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/OPENCLOSED.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/STAR.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/SLURPYFACE.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/STICKPEOPLE.swf?attredirects=0
Nested:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/FLORAFAUNA.swf?attredirects=0
YAY!!!
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/rabbitproject.swf?attredirects=0
Frame by Frame:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/PLANTBEING.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/FLITTERCRITTER.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/BLOCKS.swf?attredirects=0
Tweened:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/dingbats%26wombats.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/jumpsortof.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/OPENCLOSED.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/STAR.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/SLURPYFACE.swf?attredirects=0
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/STICKPEOPLE.swf?attredirects=0
Nested:
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/FLORAFAUNA.swf?attredirects=0
YAY!!!
Tuesday, April 19, 2011
Coded Collage Link
https://sites.google.com/a/sou.edu/dmf203temple/swftemple/BigTittyBruisers.swf?attredirects=0
this obviously is not working. only part of the swf is visible and adjusting for size in the blog does not enable one to see any more of the swf. (already tried copying and pasting the html code for altering size.) need to link to the html file, but only the flash file, action script file and the swf are saved in my folder at home. at sou, somehow the html was in my folder or maybe i just don't remember where to find it. how do i get to the html file? arrrgh!!!
this obviously is not working. only part of the swf is visible and adjusting for size in the blog does not enable one to see any more of the swf. (already tried copying and pasting the html code for altering size.) need to link to the html file, but only the flash file, action script file and the swf are saved in my folder at home. at sou, somehow the html was in my folder or maybe i just don't remember where to find it. how do i get to the html file? arrrgh!!!
Monday, April 18, 2011
Collage Code, Final
package
{
import flash.display.MovieClip;
public class BigTittyBruisers extends MovieClip
{
public function BigTittyBruisers()
{ // constructor code
trace("Beware the Boobzooka!");
var purpleslate:MovieClip; //names variable types
var tits:MovieClip;
var warptime:MovieClip;
var boobzooka:MovieClip;
var zookafuel:MovieClip;
var defyingtext:MovieClip;
var jobtext:MovieClip;
purpleslate = new PurpleSlate; //declares variables
tits = new Tits;
warptime = new WarpTime;
boobzooka = new BoobZookaLessFuel;
zookafuel = new ZookaFuel;
defyingtext = new DefyingText;
jobtext = new JobText;
purpleslate.scaleX = 2.0; //modifies variables
purpleslate.scaleY = 2.0;
tits.x = 285;
tits.y = 275;
tits.scaleX = 1.1;
tits.scaleY = 1.1;
warptime.x = 30;
warptime.y = 145;
warptime.scaleX = 1.25;
warptime.scaleY = 1.25;
boobzooka.x = -75;
boobzooka.y = 140;
boobzooka.scaleX = 1.5;
boobzooka.scaleY = 1.25;
zookafuel.x = 450;
zookafuel.y = 125;
defyingtext.x = 100;
defyingtext.y = -125;
defyingtext.scaleX = 2;
defyingtext.scaleY = 2;
jobtext.x = 300;
jobtext.y = 300;
addChild(purpleslate); //drops variables on stage
addChild(tits);
addChild(warptime);
addChild(boobzooka);
addChild(zookafuel);
addChild(defyingtext);
addChild(jobtext);
}
}
}
{
import flash.display.MovieClip;
public class BigTittyBruisers extends MovieClip
{
public function BigTittyBruisers()
{ // constructor code
trace("Beware the Boobzooka!");
var purpleslate:MovieClip; //names variable types
var tits:MovieClip;
var warptime:MovieClip;
var boobzooka:MovieClip;
var zookafuel:MovieClip;
var defyingtext:MovieClip;
var jobtext:MovieClip;
purpleslate = new PurpleSlate; //declares variables
tits = new Tits;
warptime = new WarpTime;
boobzooka = new BoobZookaLessFuel;
zookafuel = new ZookaFuel;
defyingtext = new DefyingText;
jobtext = new JobText;
purpleslate.scaleX = 2.0; //modifies variables
purpleslate.scaleY = 2.0;
tits.x = 285;
tits.y = 275;
tits.scaleX = 1.1;
tits.scaleY = 1.1;
warptime.x = 30;
warptime.y = 145;
warptime.scaleX = 1.25;
warptime.scaleY = 1.25;
boobzooka.x = -75;
boobzooka.y = 140;
boobzooka.scaleX = 1.5;
boobzooka.scaleY = 1.25;
zookafuel.x = 450;
zookafuel.y = 125;
defyingtext.x = 100;
defyingtext.y = -125;
defyingtext.scaleX = 2;
defyingtext.scaleY = 2;
jobtext.x = 300;
jobtext.y = 300;
addChild(purpleslate); //drops variables on stage
addChild(tits);
addChild(warptime);
addChild(boobzooka);
addChild(zookafuel);
addChild(defyingtext);
addChild(jobtext);
}
}
}
Sunday, April 17, 2011
Gaming Role...
To be perfectly honest, while I find this class fun and interesting, I do not intend to become a game designer, coder, or likely anything related to gaming. I do, however, have some ideas that I wouldn't mind incorporating into some indie game. My geeky engineering past is re-emerging and I find the coding to be very intriguing, and this, combined with the creative ideas, makes it all very appealing, but nothing I'm truly passionate about. I see this more as a hobby than a profession, but because I want to open doors to all avenues of media arts, I feel I need to at least understand the basics of game design. Who knows, perhaps I'll really get into this? I was good at BASIC, FORTRAN, COBOL and PASCAL. Why not Flash?
If I had to choose a role in the gaming industry, it would be very difficult, as I would love to come up with the idea of the game and be involved in its story development, and I would also like to code for the challenge and elegance of it. I suspect, though, that the idea generation would ultimately win.
If I had to choose a role in the gaming industry, it would be very difficult, as I would love to come up with the idea of the game and be involved in its story development, and I would also like to code for the challenge and elegance of it. I suspect, though, that the idea generation would ultimately win.
Wednesday, April 13, 2011
Collage Code, Practice
package
{
import flash.display.MovieClip;
public class BigTittyBruisers extends MovieClip
{
public function BigTittyBruisers()
{ // constructor code
trace("Beware the Boobzooka!");
var purpleslate:MovieClip;
purpleslate = new PurpleSlate; //declares variable for symbol, PurpleSlate
purpleslate.scaleX = 2.0; //scales symbol, PurpleSlate
purpleslate.scaleY = 2.0;
addChild(purpleslate); //places symbol, PurpleSlate, on stage
var tits:MovieClip;
tits = new Tits; //declares variable for symbol, Tits
tits.x = 285; //sets stage location for symbol, Tits
tits.y = 275;
tits.scaleX = 1.1; //scales symbol, Tits
tits.scaleY = 1.1;
addChild(tits); //places symbol, Tits, on stage
var warptime:MovieClip;
warptime = new WarpTime; //declares variable for symbol, WarpTime
warptime.x = 30; //sets stage location for symbol, WarpTime
warptime.y = 145;
warptime.scaleX = 1.25;
warptime.scaleY = 1.25;
addChild(warptime); //places symbol, WarpTime, on stage
var boobzooka:MovieClip;
boobzooka = new BoobZookaLessFuel; //declares variable for symbol,
boobzooka.x = -75; //sets stage location for symbol,
boobzooka.y = 140;
boobzooka.scaleX = 1.5; //scales symbol, BoobZookaLessFuel
boobzooka.scaleY = 1.25;
addChild(boobzooka); //places symbol, BoobZookaLessFuel, on stage
var zookafuel:MovieClip;
zookafuel = new ZookaFuel; //declares variable for symbol, ZookaFuel
zookafuel.x = 450; //sets stage location for symbol, ZookaFuel
zookafuel.y = 125;
addChild(zookafuel); //places symbol, ZookaFuel, on stage
var defyingtext:MovieClip;
defyingtext = new DefyingText; //declares variable for symbol, DefyingText
defyingtext.x = 100; //sets stage location for symbol, DefyinText
defyingtext.y = -125;
defyingtext.scaleX = 2; //scales symbol, DefyingText
defyingtext.scaleY = 2;
addChild(defyingtext); //places symbol, DefyingText, on stage
var jobtext:MovieClip;
jobtext = new JobText; //declares variable for symbol, JobText
jobtext.x = 300; //sets stage location for symbol, JobText
jobtext.y = 300;
addChild(jobtext); //places symbol, JobText, on stage
}
}
}
{
import flash.display.MovieClip;
public class BigTittyBruisers extends MovieClip
{
public function BigTittyBruisers()
{ // constructor code
trace("Beware the Boobzooka!");
var purpleslate:MovieClip;
purpleslate = new PurpleSlate; //declares variable for symbol, PurpleSlate
purpleslate.scaleX = 2.0; //scales symbol, PurpleSlate
purpleslate.scaleY = 2.0;
addChild(purpleslate); //places symbol, PurpleSlate, on stage
var tits:MovieClip;
tits = new Tits; //declares variable for symbol, Tits
tits.x = 285; //sets stage location for symbol, Tits
tits.y = 275;
tits.scaleX = 1.1; //scales symbol, Tits
tits.scaleY = 1.1;
addChild(tits); //places symbol, Tits, on stage
var warptime:MovieClip;
warptime = new WarpTime; //declares variable for symbol, WarpTime
warptime.x = 30; //sets stage location for symbol, WarpTime
warptime.y = 145;
warptime.scaleX = 1.25;
warptime.scaleY = 1.25;
addChild(warptime); //places symbol, WarpTime, on stage
var boobzooka:MovieClip;
boobzooka = new BoobZookaLessFuel; //declares variable for symbol,
boobzooka.x = -75; //sets stage location for symbol,
boobzooka.y = 140;
boobzooka.scaleX = 1.5; //scales symbol, BoobZookaLessFuel
boobzooka.scaleY = 1.25;
addChild(boobzooka); //places symbol, BoobZookaLessFuel, on stage
var zookafuel:MovieClip;
zookafuel = new ZookaFuel; //declares variable for symbol, ZookaFuel
zookafuel.x = 450; //sets stage location for symbol, ZookaFuel
zookafuel.y = 125;
addChild(zookafuel); //places symbol, ZookaFuel, on stage
var defyingtext:MovieClip;
defyingtext = new DefyingText; //declares variable for symbol, DefyingText
defyingtext.x = 100; //sets stage location for symbol, DefyinText
defyingtext.y = -125;
defyingtext.scaleX = 2; //scales symbol, DefyingText
defyingtext.scaleY = 2;
addChild(defyingtext); //places symbol, DefyingText, on stage
var jobtext:MovieClip;
jobtext = new JobText; //declares variable for symbol, JobText
jobtext.x = 300; //sets stage location for symbol, JobText
jobtext.y = 300;
addChild(jobtext); //places symbol, JobText, on stage
}
}
}
Saturday, April 9, 2011
On Play
On Play
Shigeru Miyamoto, a person wholly in tune with himself, is able to create “play” because he is play. He doesn’t need focus groups to tell him that his creations are fun because he feels it at a visceral level. He doesn’t over-analyze; he plays. This is all, of course, according to the New Yorker article, “Master of Play” by Nick Paumgarten, since I have no other knowledge of him whatsoever. I am one of those people who just missed the “gaming era”. Other than a bit of Pac Man, Asteroids and Tetris, I have no computer gaming experience. My world, however, is about to change, and I’m game for it.
As a kid, my favorite games were Tag, 4-Square, Jump Rope, Mud Football, basically anything with lots of speed and activity, with sedentary favorites being similar in that quick thinking, quick reaction, speed aspect, and the best games were those in which we cooperatively modified the rules. With the advent of “gaming”, it seems that there is less outdoor play among kids and, more problematic, less face to face communication. I haven’t quite labeled this a descent or de-evolution of society, but I’ve been tempted. I am countered by the subject New Yorker article, “And yet the success of this “casual revolution,” as Juul has called the spread of easier, more accessible video games, like the Finnish sensation Angry Birds, has engendered the idea that games should be more widely integrated into everything we do—that we are insufficiently engaged unless we are passing simultaneously through a real world and a simulated one.” While I would argue that a simulated world can be merely the world of play itself and need not be of the cyber world, I am willing to explore this point by learning several computer games and designing one, or who knows, maybe more?
Looking at designing a game, I must confess, is exciting and challenging, and though it feels a bit hypocritical as I’ve espoused that “quit wasting time on the computer” sentiment, combining the creative and technical aspects of the endeavor is very appealing. Inspired by Miyamoto, I’m going to assume that if I like my game idea, then others will too. Also, I would like to steer away from the gratuitous, graphic, visual violence that is in many computer games, which is fortunate for me since I don’t have the computer graphics talent to create that kind of visual. As Will Wright said of Miyamoto’s games, “When you play his games, you feel like you’re a kid and you’re out in the back yard playing in the dirt.” I would like to design a game with this feel to it, but perhaps, also with a very subtle message or something in addition to just the play aspect. That way, people will have an excuse to play my game; it’s for the message, right? NO! It’s for the play. Miyamoto definitely has that right.
Wednesday, April 6, 2011
Subscribe to:
Posts (Atom)