Heebs13
12-16-2008, 12:00 PM
So I'm trying to learn actionscripting, and to be honest I really don't know what I'm doing.
I'm trying to create a sort of "frogger" game, and things were going ok til I hit a snag I just can't figure out. The problem seems to be when you die, after you click "try again" you're basically invincible. I have no idea how to fix this, though I imagine it has something to do with the hit-test still remaining true after clicking try again.
Anyways here's my code.
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.utils.*;
var key_left:Boolean=false;
var key_up:Boolean=false;
var key_right:Boolean=false;
var key_down:Boolean=false;
var speed:Number=5;
var animate:Number=0;
splat_mc.visible=false;
var dead=false;
var deadtwice=false;
tryagain_button.visible=false;
var mytimer:Timer=new Timer(5000,1);
billy_mc.x=300;
billy_mc.y=380;
billy_mc.visible=true;
stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyD own);
stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp) ;
stage.addEventListener(Event.ENTER_FRAME,movement) ;
stage.addEventListener(Event.ENTER_FRAME,vehiclemo vement);
tryagain_button.addEventListener(MouseEvent.CLICK, tryit);
mytimer.addEventListener("timer",calltryagain);
function movement(event:Event){
CheckKeys();
}
function KeyDown(event:KeyboardEvent){
if(event.keyCode==37){
key_left=true;
}
if(event.keyCode==38){
key_up=true;
}
if(event.keyCode==39){
key_right=true;
}
if(event.keyCode==40){
key_down=true;
}
}
function KeyUp(event:KeyboardEvent){
if(event.keyCode==37){
key_left=false;
}
if(event.keyCode==38){
key_up=false;
}
if(event.keyCode==39){
key_right=false;
}
if(event.keyCode==40){
key_down=false;
}
}
function CheckKeys(){
if(key_left==true && billy_mc.x>20){
billy_mc.x-=speed;
if(animate!=1){
billy_mc.gotoAndPlay(28);
}
animate=1;
}
else if(key_up==true && billy_mc.y>20){
billy_mc.y-=speed;
if(animate!=2){
billy_mc.gotoAndPlay(2);
}
animate=2;
}
else if(key_right==true && billy_mc.x<530){
billy_mc.x+=speed;
if(animate!=3){
billy_mc.gotoAndPlay(15);
}
animate=3;
}
else if(key_down==true && billy_mc.y<380){
billy_mc.y+=speed;
if(animate!=4){
billy_mc.gotoAndPlay(41);
}
animate=4;
}else{
billy_mc.stop();
animate=0;
}
}
function vehiclemovement(event:Event){
truck1_mc.x+=2;
if(truck1_mc.x>550){
truck1_mc.x= -240;
}
truck3_mc.x+=2;
if(truck3_mc.x>550){
truck3_mc.x= -240;
}
truck2_mc.x-=2;
if(truck2_mc.x<0){
truck2_mc.x= 790;
}
truck4_mc.x-=2;
if(truck4_mc.x<0){
truck4_mc.x= 790;
}
van1_mc.x+=3;
if(van1_mc.x>550){
van1_mc.x= -120;
}
van3_mc.x+=3;
if(van3_mc.x>550){
van3_mc.x= -120;
}
van2_mc.x-=3;
if(van2_mc.x<0){
van2_mc.x= 670;
}
van4_mc.x-=3;
if(van4_mc.x<0){
van4_mc.x= 670;
}
car1_mc.x+=4;
if(car1_mc.x>550){
car1_mc.x= -75;
}
car3_mc.x+=4;
if(car3_mc.x>550){
car3_mc.x= -75;
}
car2_mc.x-=4;
if(car2_mc.x<0){
car2_mc.x= 625;
}
car4_mc.x-=4;
if(car4_mc.x<0){
car4_mc.x= 625;
}
if(truck1_mc.hitTestObject(billy_mc)){
dead=true;
}
if(truck2_mc.hitTestObject(billy_mc)){
dead=true;
}
if(truck3_mc.hitTestObject(billy_mc)){
dead=true;
}
if(truck4_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van1_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van2_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van3_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van4_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car1_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car2_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car3_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car4_mc.hitTestObject(billy_mc)){
dead=true;
}
if(dead==true){
if(deadtwice==false){
billy_mc.visible=false;
splat_mc.x=billy_mc.x;
splat_mc.y=billy_mc.y;
splat_mc.visible=true;
mytimer.start();
}
deadtwice=true;
}
}
function calltryagain(event:TimerEvent){
tryagain_button.visible=true;
}
function tryit(event:MouseEvent){
var key_left:Boolean=false;
var key_up:Boolean=false;
var key_right:Boolean=false;
var key_down:Boolean=false;
var speed:Number=5;
var animate:Number=0;
splat_mc.visible=false;
var dead=false;
var deadtwice=false;
tryagain_button.visible=false;
billy_mc.x=300;
billy_mc.y=380;
billy_mc.visible=true;
}
Anyone have any words of wisdom?
I'm trying to create a sort of "frogger" game, and things were going ok til I hit a snag I just can't figure out. The problem seems to be when you die, after you click "try again" you're basically invincible. I have no idea how to fix this, though I imagine it has something to do with the hit-test still remaining true after clicking try again.
Anyways here's my code.
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.utils.*;
var key_left:Boolean=false;
var key_up:Boolean=false;
var key_right:Boolean=false;
var key_down:Boolean=false;
var speed:Number=5;
var animate:Number=0;
splat_mc.visible=false;
var dead=false;
var deadtwice=false;
tryagain_button.visible=false;
var mytimer:Timer=new Timer(5000,1);
billy_mc.x=300;
billy_mc.y=380;
billy_mc.visible=true;
stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyD own);
stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp) ;
stage.addEventListener(Event.ENTER_FRAME,movement) ;
stage.addEventListener(Event.ENTER_FRAME,vehiclemo vement);
tryagain_button.addEventListener(MouseEvent.CLICK, tryit);
mytimer.addEventListener("timer",calltryagain);
function movement(event:Event){
CheckKeys();
}
function KeyDown(event:KeyboardEvent){
if(event.keyCode==37){
key_left=true;
}
if(event.keyCode==38){
key_up=true;
}
if(event.keyCode==39){
key_right=true;
}
if(event.keyCode==40){
key_down=true;
}
}
function KeyUp(event:KeyboardEvent){
if(event.keyCode==37){
key_left=false;
}
if(event.keyCode==38){
key_up=false;
}
if(event.keyCode==39){
key_right=false;
}
if(event.keyCode==40){
key_down=false;
}
}
function CheckKeys(){
if(key_left==true && billy_mc.x>20){
billy_mc.x-=speed;
if(animate!=1){
billy_mc.gotoAndPlay(28);
}
animate=1;
}
else if(key_up==true && billy_mc.y>20){
billy_mc.y-=speed;
if(animate!=2){
billy_mc.gotoAndPlay(2);
}
animate=2;
}
else if(key_right==true && billy_mc.x<530){
billy_mc.x+=speed;
if(animate!=3){
billy_mc.gotoAndPlay(15);
}
animate=3;
}
else if(key_down==true && billy_mc.y<380){
billy_mc.y+=speed;
if(animate!=4){
billy_mc.gotoAndPlay(41);
}
animate=4;
}else{
billy_mc.stop();
animate=0;
}
}
function vehiclemovement(event:Event){
truck1_mc.x+=2;
if(truck1_mc.x>550){
truck1_mc.x= -240;
}
truck3_mc.x+=2;
if(truck3_mc.x>550){
truck3_mc.x= -240;
}
truck2_mc.x-=2;
if(truck2_mc.x<0){
truck2_mc.x= 790;
}
truck4_mc.x-=2;
if(truck4_mc.x<0){
truck4_mc.x= 790;
}
van1_mc.x+=3;
if(van1_mc.x>550){
van1_mc.x= -120;
}
van3_mc.x+=3;
if(van3_mc.x>550){
van3_mc.x= -120;
}
van2_mc.x-=3;
if(van2_mc.x<0){
van2_mc.x= 670;
}
van4_mc.x-=3;
if(van4_mc.x<0){
van4_mc.x= 670;
}
car1_mc.x+=4;
if(car1_mc.x>550){
car1_mc.x= -75;
}
car3_mc.x+=4;
if(car3_mc.x>550){
car3_mc.x= -75;
}
car2_mc.x-=4;
if(car2_mc.x<0){
car2_mc.x= 625;
}
car4_mc.x-=4;
if(car4_mc.x<0){
car4_mc.x= 625;
}
if(truck1_mc.hitTestObject(billy_mc)){
dead=true;
}
if(truck2_mc.hitTestObject(billy_mc)){
dead=true;
}
if(truck3_mc.hitTestObject(billy_mc)){
dead=true;
}
if(truck4_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van1_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van2_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van3_mc.hitTestObject(billy_mc)){
dead=true;
}
if(van4_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car1_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car2_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car3_mc.hitTestObject(billy_mc)){
dead=true;
}
if(car4_mc.hitTestObject(billy_mc)){
dead=true;
}
if(dead==true){
if(deadtwice==false){
billy_mc.visible=false;
splat_mc.x=billy_mc.x;
splat_mc.y=billy_mc.y;
splat_mc.visible=true;
mytimer.start();
}
deadtwice=true;
}
}
function calltryagain(event:TimerEvent){
tryagain_button.visible=true;
}
function tryit(event:MouseEvent){
var key_left:Boolean=false;
var key_up:Boolean=false;
var key_right:Boolean=false;
var key_down:Boolean=false;
var speed:Number=5;
var animate:Number=0;
splat_mc.visible=false;
var dead=false;
var deadtwice=false;
tryagain_button.visible=false;
billy_mc.x=300;
billy_mc.y=380;
billy_mc.visible=true;
}
Anyone have any words of wisdom?