2014-03-05 4 views
-1

필자는 ActionScript 3.0을 배우기 시작하면서 파스칼에서 프로그래밍에 대한 몇 가지 기본 개념을 얻었다.작은 코드 예제

왜 내가 물어볼 것인지 묻는 질문에 대한 간략한 설명 : 나는 물음표 이론을 믿지 않습니다. 예를 들어, PES 2013에서 할 수있는 트릭을보고있었습니다 (pro evolution soccer) 그리고 비디오가 앞으로 나아갈 때마다 나는 그들을 잊어 버렸음을 알아 차렸다. 필요할 때만 자연스럽게 나에게 마주 쳤다. 이것은 무엇이든 간다, 모두는 물마루 직접 경험을 배우고, 아기는 언어가 없으며, 걷기와 말하기에 관한 이론을 필요로하지 않으며 단순히 다른 사람들을 둘러서 걸어 다니며 의사 소통하는 법을 배운다 (이유 중 하나 나는 우리가 학교에서 포르투갈어 문법을 배울 필요가 없다고 생각하지만, 대신에 읽고 읽고 말하기 위해).

나는이 코드를 읽고, 읽은 다음이 라인을 지우고 무슨 일이 일어나는지를 알 수있다. 파스칼은 구문에서 꽤 직관적이었고, 지우고, 줄을 바꾸고, 무슨 일이 일어 났는지 보면서 많은 것을 배웠습니다. 이것의 약간 후에 단지 그 때 표에 의미가 있고 나의 두뇌에있는 어떤 무작위 사실이 아니 이론을 찾을 것입니다.

그래서 내가 아주 간단한 코드 예제를^_^"물어 여기입니다 -. 당신이 두 개의 화살표 키를 눌러 권리로/왼쪽으로 이동 사각형처럼 뭔가를

내가 상관없이 저점 물건을 읽고있다 및 팁을 찾고 끌어 당길 수 있습니다. 간단하게 보였던 튜토리얼을 보았지만 플래시 개발 도구를 사용하지 않았기 때문에 액세스 할 수있는 도구가 없었기 때문에 사각형을 그리는 도구가 없었습니다. 그는 튜토리얼에서 플러스 다른 것들을했다. (Creating a 'Copter' style game in Flash - ActionScript 3)

답변

0

사각형을 왼쪽과 오른쪽으로 움직이는 코드;) 나는 그것을 간단하게 했으므로 공부할 수있다.

package { 

    import flash.display.Sprite; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    import flash.ui.Keyboard; 

    public class StackOverflow extends Sprite { 
     private var _keyListener:KeyListener; 
     private var _actor:Actor; 

     public function StackOverflow() { 
      addEventListener(Event.ADDED_TO_STAGE, onAdded); 
     } 

     private function onAdded(e:Event):void { 
      removeEventListener(Event.ADDED_TO_STAGE, onAdded); 

      stage.align = StageAlign.TOP_LEFT; 
      stage.scaleMode = StageScaleMode.NO_SCALE; 

      start(); 
     } 

     private function start():void { 
      _actor = new Actor(40, 0x323232); 
      _keyListener = new KeyListener(stage); 

      addChild(_actor); 

      _actor.x = stage.stageWidth * 0.5; 
      _actor.y = stage.stageHeight * 0.5; 

      //Main loop 
      addEventListener(Event.ENTER_FRAME, onEnterFrame); 
     } 

     private function onEnterFrame(e:Event):void { 
      if (_keyListener.isDown(Keyboard.RIGHT)) { 
       _actor.x += _actor.speed; 
      } 
      if (_keyListener.isDown(Keyboard.LEFT)) { 
       _actor.x -= _actor.speed; 
      } 
     } 
    } 
} 

import flash.display.Sprite; 
import flash.display.Stage; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 

internal class KeyListener { 
    private var _keys:Object; 

    public function KeyListener(stage:Stage) { 
     _keys = {}; 

     stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); 
     stage.addEventListener(KeyboardEvent.KEY_UP, onKeyReleased); 
     stage.addEventListener(Event.DEACTIVATE, onDeactivate); 
    } 

    public function isDown($keyCode:uint):Boolean { 
     return ($keyCode in _keys); 
    } 

    private function onDeactivate(e:Event):void { 
     _keys = {}; 
    } 

    private function onKeyPressed(e:KeyboardEvent):void { 
     _keys[e.keyCode] = true; 
    } 

    private function onKeyReleased(e:KeyboardEvent):void { 
     if (e.keyCode in _keys) { 
      delete _keys[e.keyCode]; 
     } 
    } 
} 

internal class Actor extends Sprite { 
    private var _speed:Number; 

    public function Actor(size:uint, color:uint, speed:Number = 4) { 
     _speed = speed; 

     this.graphics.beginFill(color); 
     this.graphics.drawRect(-size * 0.5, -size * 0.5, size, size); 
    } 

    public function get speed():Number { 
     return _speed; 
    } 
}