3

プログラミングは初めてです!AS3を気にせず、MovieClipsの配列に特定のクリック数を設定しようとすると問題が発生します。これは正しく聞こえない可能性があるため、私がやろうとしていることを正確にお知らせします。

私は現在、戦艦タイプのゲームを作成しようとしています。プレーヤーグリッドとコンピューター/AIグリッドの両方にグリッドタイルのセットアップと配列があります。プレーヤーグリッドのグリッドタイルの1つをクリックすると、MovieClipフレームを変更して、別のグラフィック(船を表す別のタイル)を表示します。これはすべて正常に機能していますが、プレーヤーがクリックできるのは15回だけに制限したいのですが、現在のところ、プレーヤーは何度でもクリックできます。

どんな助けでも、どんなガイダンスと一緒にでも大いに感謝されるでしょう(私が言ったように、私はこれすべてに本当に新しいです)。

これが私がこれまでに持っているものです:

    var i:int = 0; 
    var playerTileArray:Array = new Array(); 
    var compTileArray:Array = new Array();

    for (var v:uint = 0; v < 20;v++){                                                   
      for (var h:uint = 0; h < 20;h++){                                             

         playerTileArray[i] = new gridTile(); //gridTile is a MovieClip symbol in my Library.                                       
         playerTileArray[i].x = h*20;                                               
         playerTileArray[i].y = v*20 + 50;                                          
         playerTileArray[i].addEventListener(MouseEvent.CLICK, playerClick);            
         this.addChild(playerTileArray[i]);                                         

             trace ("creating player vertical tile " + v);                              
         trace ("creating player horizontal tile " + h);                                

         compTileArray[i] = new gridTile(); //gridTile is a MovieClip symbol in my Library.                             
         compTileArray[i].x = playerTileArray[i].x + 600;                           
         compTileArray[i].y = playerTileArray[i].y;                                                 
         this.addChild(compTileArray[i]);                                           

         trace ("creating computer vertical tile " + v);                                
         trace ("creating computer horizontal tile " + h);                          

         i++;                                                                       
      }
    }


      function playerClick(e:MouseEvent):void{
           e.currentTarget.gotoAndStop(2);
           trace("placed ship on player grid at: " +    playerTileArray.indexOf(e.currentTarget));
     }
4

1 に答える 1

1
  var clickCount:int = 0;

  function playerClick(e:MouseEvent):void{
    if( clickCount >= 15 ){
      return;
    }
    ++clickCount
    e.currentTarget.gotoAndStop(2);
    trace("placed ship on player grid at: " +    playerTileArray.indexOf(e.currentTarget));
 }
于 2012-11-09T16:13:29.360 に答える