聯成電腦技術論壇

 找回密碼
 註冊
搜索
查看: 1114|回復: 4

[求助] AS3.0

[複製鏈接]
發表於 2012-12-20 11:55:34 | 顯示全部樓層 |閱讀模式
不好意思想請教一下 我正在寫遊戲倒數計時器的部分,程式碼都是參照網路上的,但是他卻出現錯誤說指定的目標必須是參考值,這種錯誤是要如何解決,可以幫我除錯一下嗎
 樓主| 發表於 2012-12-20 12:00:26 | 顯示全部樓層
不好意思附註(我們的遊戲是一體成型的)只有一個影格,所以能在一個影格內搞定嗎 這是我們專題的遊戲,因為提報快要到了想做些改善
頭像被屏蔽
發表於 2012-12-20 12:07:57 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
 樓主| 發表於 2012-12-20 12:22:57 | 顯示全部樓層
這是檔案部分
 樓主| 發表於 2012-12-20 12:23:45 | 顯示全部樓層
import flash.utils.Timer;
import fl.motion.MotionEvent;

var scoreNum1:Number=0;
var scoreNum2:Number=0;

var game_Over:Game_Over=new Game_Over();
var game_Over1:Game_Over1=new Game_Over1();
var GameState:String="start";
var blue=new Blue();
var i,j;
var GameMap:Array=new Array();
var MapTest;
var blockArray:Array=new Array();
var blockNumber:int = 0;
var block3Array:Array=new Array();
var block3Number:int = 0;
var block=new Block();
var block3=new Block3();
var tank1=new Tank1();
var tank2=new Tank2();
var bullet1=new Bullet1();
var bullet2=new Bullet2();
var coins=new Coins();
var coins1=new Coins1();
var coins2=new Coins2();
var sped:Number = 50;//子彈的速度
var sin1:Number;
var cos1:Number;
var sin2:Number;
var cos2:Number;
var defenceefence=new Defence();
var time:int=60;
var gameTimer:Timer=new Timer=(1000,60);
bullet1.visible = false;
bullet2.visible = false;
gameTimer.addEventListener(TimerEvent.TIMER,tickGame);
function tickGame():void{
        time=time-1;
        time_txt.text=time.toString();
}
gameTimer.start();
function initGame():void{
        txt_Score1.text =scoreNum1.toString();
        txt_Score2.text =scoreNum2.toString();
}


function shoot()
{
        if (bullet1.visible == false)
        {
                bullet1.visible = true;
                bullet1.x = tank1.x;
                bullet1.y = tank1.y;
                sin1=Math.sin(tank1.rotation*(Math.PI/180))*sped;
                cos1=Math.cos(tank1.rotation*(Math.PI/180))*sped;
                bullet1.rotation = tank1.rotation;
                addEventListener(Event.ENTER_FRAME,loop);
        }
}


function shoot1()
{
        if (bullet2.visible == false)
        {
                bullet2.visible = true;
                bullet2.x = tank2.x;
                bullet2.y = tank2.y;
                sin2=Math.sin(tank2.rotation*(Math.PI/180))*sped;
                cos2=Math.cos(tank2.rotation*(Math.PI/180))*sped;
                bullet2.rotation = tank2.rotation;
                addEventListener(Event.ENTER_FRAME,loop1);
        }
}


function loop(e:Event)
{
        bullet1.x +=  sin1;
        bullet1.y -=  cos1;
        if (bullet1.x < 0 || bullet1.x > stage.stageWidth || bullet1.y < 0 || bullet1.y > stage.stageHeight)
        {//如果超出視窗範圍就停止發射
                bullet1.visible = false;
                removeEventListener(Event.ENTER_FRAME,loop);
        }
}


function loop1(e:Event)
{
        bullet2.x +=  sin2;
        bullet2.y -=  cos2;
        if (bullet2.x < 0 || bullet2.x > stage.stageWidth || bullet2.y < 0 || bullet2.y > stage.stageHeight)
        {//如果超出視窗範圍就停止發射
                bullet2.visible = false;
                removeEventListener(Event.ENTER_FRAME,loop1);
        }
}


var left:Boolean;
var right:Boolean;
var up:Boolean;
var down:Boolean;


var left1:Boolean;
var right1:Boolean;
var up1:Boolean;
var down1:Boolean;


var speed = 7;
blue.x = 0;
blue.y = 0;
addChild(blue);
bullet1.x = 40;
bullet1.y = 550;
addChild(bullet1);
bullet2.x = 750;
bullet2.y = 50;
addChild(bullet2);
tank1.x = 40;
tank1.y = 550;
addChild(tank1);
tank2.x = 750;
tank2.y = 50;
addChild(tank2);
coins.x = 490;
coins.y = 350;
addChild(coins);
coins1.x = 420;
coins1.y = 70;
addChild(coins1);
coins2.x = 300;
coins2.y = 250;
addChild(coins2);


defence.x = -100;
defence.y = 0;
defence.gotoAndStop(1);
addChild(defence);



GameMap=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,2,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0],
         [0,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,0,2,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,2,0,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
         [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]];





for (i=0; i<26; i++)
{
        for (j=0; j<19; j++)
        {
                MapTest = GameMap[j][i];
                if (MapTest != 0)
                {
                        blockArray[blockNumber]=new Block();
                        blockArray[blockNumber].x = 30 * i;
                        blockArray[blockNumber].y = 30 * j;
                        blockArray[blockNumber].gotoAndStop(MapTest);
                        addChild(blockArray[blockNumber]);
                        blockNumber +=  1;
                }
        }
}

stage.addEventListener(MouseEvent.MOUSE_DOWN,downfunction);
function downfunction(event:MouseEvent):void
{
        shoot();       
}

stage.addEventListener(KeyboardEvent.KEY_DOWN,_onKeyDown);
function _onKeyDown(event:KeyboardEvent)
{
       
        switch (event.keyCode)
        {            
                case 37 :
                        left = true;
                        right = false;
                        up = false;
                        down = false
                        break;
                case 39 :
                        left = false;
                        right = true;
                        up = false;
                        down = false;
                        break;
                case 38 :
                        left = false;
                        right = false;
                        up = true;
                        down = false;
                        break;
                case 40 :
                        left = false;
                        right = false;
                        up = false;
                        down = true;
                        break;

        }
}

stage.addEventListener(KeyboardEvent.KEY_UP,_onKeyUp);
function _onKeyUp(event:KeyboardEvent)
{
        switch (event.keyCode)
        {               
                case 37 :
                        left = false;
                        break;
                case 39 :
                        right = false;
                        break;
                case 38 :
                        up = false;
                        break;
                case 40 :
                        down = false;
                        break;
        }
}

stage.addEventListener(KeyboardEvent.KEY_DOWN,_onKeyDown1);
function _onKeyDown1(event:KeyboardEvent)
{
        switch (event.keyCode)
        {
                case 32 :
                        shoot1();               
                        break;                       
                case 65 :
                        left1 = true;
                        right1 = false;
                        up1 = false;
                        down1 = false;
                        break;
                case 68 :
                        left1 = false;
                        right1 = true;
                        up1 = false;
                        down1 = false;
                        break;
                case 87 :
                        left1 = false;
                        right1 = false;
                        up1 = true;
                        down1 = false;
                        break;
                case 83 :
                        left1 = false;
                        right1 = false;
                        up1 = false;
                        down1 = true;
                        break;

        }
}

stage.addEventListener(KeyboardEvent.KEY_UP,_onKeyUp1);
function _onKeyUp1(event:KeyboardEvent)
{
        switch (event.keyCode)
        {
                case 65 :
                        left1 = false;
                        break;
                case 68 :
                        right1 = false;
                        break;
                case 87 :
                        up1 = false;
                        break;
                case 83 :
                        down1 = false;
                        break;
        }
}



stage.addEventListener(Event.ENTER_FRAME,tankMove);
function tankMove(event:Event)
{
       
        if (left)
        {
                tank1.x -=  speed;
                tank1.rotation = -90;
        }
        if (right)
        {
                tank1.x +=  speed;
                tank1.rotation = 90;
        }

        if (up)
        {
                tank1.y -=  speed;
                tank1.rotation = 0;
        }
        if (down)
        {
                tank1.y +=  speed;
                tank1.rotation = 180;
        }
}


stage.addEventListener(Event.ENTER_FRAME,tankMove1);
function tankMove1(event:Event)
{
       
        if (left1)
        {
                tank2.x -=  speed;
                tank2.rotation = -90;
        }
        if (right1)
        {
                tank2.x +=  speed;
                tank2.rotation = 90;
        }

        if (up1)
        {
                tank2.y -=  speed;
                tank2.rotation = 0;
        }
        if (down1)
        {
                tank2.y +=  speed;
                tank2.rotation = 180;
        }
}





stage.addEventListener(Event.ENTER_FRAME,tank1HitBlock);
function tank1HitBlock(event:Event)
{
        for (i=0; i<blockArray.length; i++)
        {
                if (tank1.hitTestObject(blockArray[i].collision))
                {
                        if (left)
                        {
                                tank1.x +=  speed;
                        }
                        if (right)
                        {
                                tank1.x -=  speed;
                        }
                        if (up)
                        {
                                tank1.y +=  speed;
                        }
                        if (down)
                        {
                                tank1.y -=  speed;
                        }
                }

        }
}

stage.addEventListener(Event.ENTER_FRAME,tank2HitBlock);
function tank2HitBlock(event:Event)
{
        for (i=0; i<blockArray.length; i++)
        {
                if (tank2.hitTestObject(blockArray[i].collision))
                {
                        if (left1)
                        {
                                tank2.x +=  speed;
                        }
                        if (right1)
                        {
                                tank2.x -=  speed;
                        }
                        if (up1)
                        {
                                tank2.y +=  speed;
                        }
                        if (down1)
                        {
                                tank2.y -=  speed;
                        }
                }

        }
}

stage.addEventListener(Event.ENTER_FRAME,bullet1HitBlock);
function bullet1HitBlock(event:Event)
{         
        for (i=0; i<blockArray.length; i++)
        {
                if (bullet1.hitTestObject(blockArray[i].collision))
                {
                        bullet1.visible = false;
                        removeEventListener(Event.ENTER_FRAME,loop);
                        blockArray[i].y=-100;
         }
                 
                 if (bullet1.hitTestObject(tank2))
                 {  
                    //tank2.x = 750;
                        //tank2.y = 50;
                        bullet1.visible = false;
                        scoreNum1 +=1;
                        txt_Score1.text=scoreNum1.toString();
                        return;
         }
        }
}

stage.addEventListener(Event.ENTER_FRAME,bullet1Hitblock3);
function bullet1Hitblock3(event:Event)
{
        for (i=0; i<blockArray.length; i++)
        {
                if (bullet1.hitTestObject(block3))
                {
                        bullet1.visible = false;
                        removeEventListener(Event.ENTER_FRAME,loop);
        }

        }
}


stage.addEventListener(Event.ENTER_FRAME,tank1Hitblock3);
function tank1Hitblock3(event:Event){
                if (tank1.hitTestObject(block3))
                {
                        if (left)
                        {
                                tank1.x +=  speed;
                        }
                        if (right)
                        {
                                tank1.x -=  speed;
                        }
                        if (up)
                        {
                                tank1.y +=  speed;
                        }
                        if (down)
                        {
                                tank1.y -=  speed;
                        }
                }
}


stage.addEventListener(Event.ENTER_FRAME,tank1Hittank2);
function tank1Hittank2(event:Event)
{
        for (i=0; i<blockArray.length; i++)
        {
                if (tank1.hitTestObject(tank2))
                {
                        if (left)
                        {
                                tank1.x +=  speed;
                        }
                        if (right)
                        {
                                tank1.x -=  speed;
                        }
                        if (up)
                        {
                                tank1.y +=  speed;
                        }
                        if (down)
                        {
                                tank1.y -=  speed;
                        }
                }

        }
}














stage.addEventListener(Event.ENTER_FRAME,tank1Hitcoins);
function tank1Hitcoins(event:Event)
{
        if (tank1.hitTestObject(coins))
        {
                coins.gotoAndStop(2);
                bullet1.gotoAndStop(2);
        }
        if (tank1.hitTestObject(coins1))
        {
                coins1.gotoAndStop(2);
                speed = 10;
        }
        if ((coins2 != null)&&(tank1.hitTestObject(coins2)))
        {
                coins2.gotoAndStop(2);
                coins2.parent.removeChild(coins2);
                defence.gotoAndPlay(2);
                addEventListener(Event.ENTER_FRAME,DefenceState);
                //stage.removeEventListener(Event.ENTER_FRAME,tank1Hitcoins);
                //stage.addEventListener(Event.ENTER_FRAME,tank1HitcoinsAlt);
        }
                if (tank2.hitTestObject(coins))
        {
                coins.gotoAndStop(2);
                bullet2.gotoAndStop(2);
        }
        if (tank2.hitTestObject(coins1))
        {
                coins1.gotoAndStop(2);
                speed = 10;
        }
        if ((coins2 != null)&&(tank2.hitTestObject(coins2)))
        {
                coins2.gotoAndStop(2);
                coins2.parent.removeChild(coins2);
                defence.gotoAndPlay(2);
                addEventListener(Event.ENTER_FRAME,DefenceState1);
                //stage.removeEventListener(Event.ENTER_FRAME,tank1Hitcoins);
                //stage.addEventListener(Event.ENTER_FRAME,tank1HitcoinsAl);
        }
}

function tank1HitcoinsAlt(event:Event)
{
        if (tank1.hitTestObject(coins))
        {
                coins.gotoAndStop(2);
                bullet1.gotoAndStop(3);
        }
        if (tank1.hitTestObject(coins1))
        {
                coins1.gotoAndStop(2);
                speed = 10;
        }
}
function tank2HitcoinsAl(event:Event)
{
        if (tank2.hitTestObject(coins))
        {
                coins.gotoAndStop(2);
                bullet2.gotoAndStop(3);
        }
        if (tank2.hitTestObject(coins1))
        {
                coins1.gotoAndStop(2);
                speed = 10;
        }
}


function DefenceState(event:Event)
{
        if (defence.currentFrame == 100)
        {
                defence.gotoAndStop(1);
                defence.x = -15;
                defence.y = 20;
                coins2.x = -15;
                coins2.y = 30;
                removeEventListener(Event.ENTER_FRAME,DefenceState);
        }
        else if (defence.currentFrame!=1)
        {

                defence.x = tank1.x;
                defence.y = tank1.y;
        }
}
function DefenceState1(event:Event)
{
        if (defence.currentFrame == 100)
        {
                defence.gotoAndStop(1);
                defence.x = -15;
                defence.y = 20;
                coins2.x = -15;
                coins2.y = 30;
                removeEventListener(Event.ENTER_FRAME,DefenceState);
        }
        else if (defence.currentFrame!=1)
        {

                defence.x = tank2.x;
                defence.y = tank2.y;
        }
}











stage.addEventListener(Event.ENTER_FRAME,bullet2HitBlock);
function bullet2HitBlock(event:Event)
{
        for (i=0; i<blockArray.length; i++)
        {
                if (bullet2.hitTestObject(blockArray[i].collision))
                {
                        bullet2.visible = false;
                        removeEventListener(Event.ENTER_FRAME,loop1);
                        blockArray[i].y=-100;
         }
                 
                if (bullet2.hitTestObject(tank1))
                 {  
                    //tank1.x = 40;
                        //tank1.y = 550;
                        bullet2.visible = false;
                        scoreNum2 +=1;
                        txt_Score2.text=scoreNum2.toString();
                        return;
         }
        }
}

stage.addEventListener(Event.ENTER_FRAME,bullet2Hitblock3);
function bullet2Hitblock3(event:Event)
{
        for (i=0; i<blockArray.length; i++)
        {
                if (bullet2.hitTestObject(block3))
                {
                        bullet2.visible = false;
                        removeEventListener(Event.ENTER_FRAME,loop1);
        }

        }
}



function GameOver():void{
        GameState="STOP";
        game_Over.x=0;
        game_Over.y=0;
        addChild(game_Over);
}


function GameOver1():void{
        GameState="STOP";
        game_Over1.x=0;
        game_Over1.y=0;
        addChild(game_Over1);
}

因為檔案過大所以我把程式碼PO出來
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

小黑屋|Archiver|手機版|聯成電腦技術論壇

GMT+8, 2021-10-22 06:21

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表