聖闘士聖矢のアレを作ってみたが、絵心が無いので誰か続き頼む。

  • このエントリーをはてなブックマークに追加
  • 0

ソースファイル

今回は、短いので全ソース掲載。難しい事は何一つとしてやってない。

ActionScript

  1. /*
  2.  *  Copyright 2008 tarotarorg(http://tarotaro.org)
  3.  *
  4.  *  Licensed under the Apache License, Version 2.0 (the "License");
  5.  *  you may not use this file except in compliance with the License.
  6.  *  You may obtain a copy of the License at
  7.  *
  8.  *      http://www.apache.org/licenses/LICENSE-2.0
  9.  *
  10.  *  Unless required by applicable law or agreed to in writing, software
  11.  *  distributed under the License is distributed on an "AS IS" BASIS,
  12.  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  *  See the License for the specific language governing permissions and
  14.  *  limitations under the License.
  15.  */
  16. package org.tarotaro.flash.display
  17. {
  18.     import com.trick7.effects.TeraFire;
  19.     import com.trick7.utils.TeraClock;
  20.     import flash.display.DisplayObject;
  21.     import flash.display.Sprite;
  22.     import flash.events.Event;
  23.    
  24.     /**
  25.      * 聖闘士聖矢黄道十二宮編に出てきた火時計っぽいもの。
  26.      * 背景画像無し。
  27.      * @author 太郎(tarotaro.org)
  28.      */
  29.     [SWF(width="200", height="200", backgroundColor="0", frameRate="30")]
  30.     public class SanctuaryClock extends Sprite
  31.     {
  32.        
  33.         public function SanctuaryClock():void
  34.         {
  35.             if (stage) init();
  36.             else addEventListener(Event.ADDED_TO_STAGE, init);
  37.         }
  38.        
  39.         private function init(e:Event = null):void
  40.         {
  41.             removeEventListener(Event.ADDED_TO_STAGE, init);
  42.             // entry point
  43.             var fires:Array = new Array(12);
  44.             var degree:Number = 0;
  45.             for (var i:uint = 0; i < 12; i++) {
  46.                 degree = (-90 + 15 + 30 * i) * Math.PI / 180;
  47.                 var fire:TeraFire = new TeraFire(85 * Math.cos(degree) + 95,
  48.                                                  85 * Math.sin(degree) + 105,
  49.                                                  60, 60, 0x00CCFF, 0x092DE2);
  50.                 fire.phaseRateX = 3;
  51.                 fire.phaseRateY = 0;
  52.                 fires&#91;i] = fire;
  53.                 this.addChild(fires&#91;i]);
  54.             }
  55.            
  56.             //ギリシャの時間
  57.             var clock:TeraClock = new TeraClock(2);
  58.            
  59.             //着く炎と消える炎を判定
  60.             for (i = 0; i < fires.length; i++) {
  61.                 fires&#91;i].visible = (i >= clock.hours % 12);
  62.             }
  63.  
  64.             //時刻に変動があった場合、着く炎と消える炎を再度判定
  65.             clock.addEventListener(TeraClock.HOURS_CHANGED, function(e:Event):void
  66.             {
  67.                 for (i = 0; i < fires.length; i++) {
  68.                     fires&#91;i].visible = (i >= clock.hours % 12);
  69.                 }
  70.             });
  71.            
  72.         }
  73.        
  74.     }
  75.    
  76. }
スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク