Party osamX forked:1favorite:4lines:142license : MIT License modified : 2010-01-10 18:40:59 Embed Tweet package { import flash.display.Sprite; import flash.events.*; [SWF(width="465", height="465", frameRate="30", backgroundColor="0x000000")] public class Main extends Sprite { private const majoImgList:Array = [ "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoF1.png", //前向き1 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoF2.png", //前向き2 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoB1.png", //後ろ向き1 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoB2.png", //後ろ向き2 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoL1.png", //左向き1 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoL2.png", //左向き2 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoR1.png", //右向き1 "http://flash-scope.com/wonderfl/WonderflQuest/majo/majoR2.png" //右向き2 ]; private const souryoImgList:Array = [ "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoF1.png", //前向き1 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoF2.png", //前向き2 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoB1.png", //後ろ向き1 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoB2.png", //後ろ向き2 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoL1.png", //左向き1 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoL2.png", //左向き2 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoR1.png", //右向き1 "http://flash-scope.com/wonderfl/WonderflQuest/souryo/souryoR2.png" //右向き2 ]; private var majo:Party; private var souryo:Party; private var keyFlags:Array = [false, false, false, false]; //下上左右のキーが押されているか private var frameCount:Number = 0; //onEnterFrameで使用 public function Main():void { majo = new Party(majoImgList); souryo = new Party(souryoImgList); majo.scaleX = majo.scaleY = 3; souryo.scaleX = souryo.scaleY = 3; majo.x = 160.5; souryo.x = 256.5; majo.y = souryo.y = 208.5; addChild(majo); addChild(souryo); addEventListener(Event.ENTER_FRAME, onEnterFrame);//イベントリスナーの登録 stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); //イベントリスナーの登録 stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); //イベントリスナーの登録 } /**----------------------------------------------------- * 毎フレームの処理。 * ----------------------------------------------------- */ private function onEnterFrame(event:Event):void { //15フレーム毎に処理する if (frameCount++ > 10) { frameCount = 0; majo.walk(); souryo.walk(); } switch(true) { case keyFlags[0]: //下 majo.changeDirection(0); souryo.changeDirection(0); break; case keyFlags[1]: //上 majo.changeDirection(1); souryo.changeDirection(1); break; case keyFlags[2]: //左 majo.changeDirection(2); souryo.changeDirection(2); break; case keyFlags[3]: //右 majo.changeDirection(3); souryo.changeDirection(3); break; } } /**----------------------------------------------------- * キーボードのキーが押された時の処理。 * ----------------------------------------------------- */ private function onKeyDown(event:KeyboardEvent):void { switch(event.keyCode) { case 40: case 83: //↓ s keyFlags[0] = true; } switch(event.keyCode) { case 38: case 87: //↑ w keyFlags[1] = true; } switch(event.keyCode) { case 37: case 65: //← a keyFlags[2] = true; } switch(event.keyCode) { case 39: case 68: //→ d keyFlags[3] = true; } } /**----------------------------------------------------- * キーボードのキーが離された時の処理。 * ----------------------------------------------------- */ private function onKeyUp(event:KeyboardEvent):void { switch(event.keyCode) { case 40: case 83: //↓ s keyFlags[0] = false; } switch(event.keyCode) { case 38: case 87: //↑ w keyFlags[1] = false; } switch(event.keyCode) { case 37: case 65: //← a keyFlags[2] = false; } switch(event.keyCode) { case 39: case 68: //→ d keyFlags[3] = false; } } } } import flash.display.Sprite; import flash.display.Loader; import flash.net.URLRequest; /**----------------------------------------------------- * 勇者クラスです。勇者を作ったり、足踏させたり、向きを変えたりします。 * ----------------------------------------------------- */ class Party extends Sprite { public var direction:int = 0; //向き (0:前 1:後 2:左 3:右) private var walkFlag:Boolean = true;//足踏み用 private var yuushaImages:Array = [];//画像集 private var ImageURL:Array; /**----------------------------------------------------- * コンストラクタ。 * ----------------------------------------------------- */ public function Party(imgList:Array):void { ImageURL = imgList; for (var i:uint = 0; i < 8; i++) { var loader:Loader = new Loader(); loader.load(new URLRequest(ImageURL[i])); yuushaImages.push(loader); if(i) yuushaImages[i].visible = false; addChild(yuushaImages[i]); } } /**----------------------------------------------------- * 足踏みさせます。 * ----------------------------------------------------- */ public function walk():void { walkFlag = !walkFlag; for (var i:uint = 0; i < 8; i++) { if (i == 2*direction+int(walkFlag)) yuushaImages[i].visible = true; else yuushaImages[i].visible = false; } } /**----------------------------------------------------- * 向きを変更します。 * numは向きを表します。(0~3) * ----------------------------------------------------- */ public function changeDirection(num:int):void { direction = num; for (var i:uint = 0; i < 8; i++) { if (i == 2*direction+int(walkFlag)) yuushaImages[i].visible = true; else yuushaImages[i].visible = false; } } } Code Fullscreen Preview Fullscreen qwertyui siouxcitizen.. paq : 敵も欲しい clockmaker : ワンダフルクエストパーティー ワンダフルクエスト keyCode visible direction addChild KeyboardEvent scaleY scaleX KeyboardEvent.KEY_UP KeyboardEvent.KEY_DOWN addEventListener Loader load Array URLRequest push Boolean Event.ENTER_FRAME Event uint Number sort new page view favorite forked pv2463 Enemy osamX forked:1 favorite:2lines:122 (diff:46)