CALENDAR
Sun Mon Tue Wed Thu Fri Sat
 123456
78910111213
14151617181920
21222324252627
28293031   
<< October 2018 >>
本家STORY FACTサイト
NEW ENTRIES
CATEGORIES
RECENT COMMENTS
  •  『マネーショート』を観た!
    萬太郎 (10/03)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    hikali (05/08)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    マイケル村田 (05/04)
  • GB解析 -NG- ウィザードリィ3 ダイヤモンドの騎士 橋爪さんですね・・・
    hikali (03/29)
  • GB解析 -NG- ウィザードリィ3 ダイヤモンドの騎士 橋爪さんですね・・・
    マイケル村田 (03/25)
  • GB解析 -NG- ルパン三世/暁の第三帝国 良作なエンターテイメント
    hikali (01/09)
  • GB解析 -NG- ルパン三世/暁の第三帝国 良作なエンターテイメント
    マイケル村田 (01/06)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    hikali (11/24)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    マイケル村田 (11/21)
  • GB解析 -NG- 新・鬼ヶ島 暗黒の化身を討て! 成功した理由が良く分かりました。
    hikali (06/27)
RECENT TRACKBACK
ARCHIVES
MOBILE
qrcode
LINKS
PROFILE
OTHERS
無料ブログ作成サービス JUGEM
 
管理人hikaliの開発の日々の備忘録です。
本家はこちら。
http://plaza.rakuten.co.jp/hikali/
<<  原稿完了 | main | あんまりたいしたことはないけど、表紙をアップしておく。 >>
[ActionScript3.0]ドラッグして投げることができるボール


 開発中で、絶賛リハビリ中の管理人ですが、以前のActionScript2での開発時も書いたのですが、わたしの中で、勝手にドラッグボールと呼んでいるFLASHのActionScript3版が出来ましたので、紹介しておきます。

 前回の様子↓
 ■[ActionScript2.0]ドラッグして投げることができるボール
 http://blog.story-fact.com/?eid=775440


 実は、この動きはわたしが作っているFLASHゲームブックのUIの中核部分だったりするのですが、まあ、難しい事はいいので、FLASHとコードをさらしておきます。






var dx:Number = 0;
var dy:Number = 0;
var oldx:Number = 0;
var oldy:Number = 0;
var flag:int = 1;

this.addEventListener(MouseEvent.MOUSE_DOWN,MD);
this.addEventListener(MouseEvent.MOUSE_UP,MU);
this.addEventListener(Event.ENTER_FRAME,EF);

function MD(event:MouseEvent):void {
this.startDrag();
oldx = this.x;
oldy = this.y;
flag = 0;
}

function MU(event:MouseEvent):void {
this.stopDrag();
flag = 1;
}

function EF(event:Event):void {
if (flag == 1){
this.x = this.x + dx;
this.y = this.y + dy;
dx = dx * 0.8;
dy = dy * 0.8;
} else {
dx = this.x - oldx;
dy = this.y - oldy;
oldx = this.x;
oldy = this.y;
}
}



 このコードはonClipEventがaddEventListenerとfunctionに置き換わっただけで、ほとんど変わってないですね。数値が若干調整されているのは、FLASH CS4のデフォルトのフレームレートが24だからという、それだけなので、まあ、あんまり関係ないです。


 続いて、ボールの中央部分のY座標が350で止まるようになっているドラッグボール。






var dx:Number = 0;
var dy:Number = 0;
var oldx:Number = 0;
var oldy:Number = 0;
var flag:int = 1;

this.addEventListener(MouseEvent.MOUSE_DOWN,MD);
this.addEventListener(MouseEvent.MOUSE_UP,MU);
this.addEventListener(Event.ENTER_FRAME,EF);

function MD(event:MouseEvent):void {
this.startDrag();
oldx = this.x;
oldy = this.y;
flag = 0;
}

function MU(event:MouseEvent):void {
this.stopDrag();
flag = 1;
}

function EF(event:Event):void {
if (flag == 1){
if (this.y > 300) {
dy = (350 - this.y)/2
} else {
}
this.x = this.x + dx;
this.y = this.y + dy;
dx = dx * 0.8;
dy = dy * 0.8;
} else {
dx = this.x - oldx;
dy = this.y - oldy;
oldx = this.x;
oldy = this.y;
}
}



 あれ、なんかシンプルじゃね? と昔のと比べて思ったかたは、正解というか、昔のわたしがおそろしく頭の悪いコードを書いていたというだけなのですが、なんであんなへんてこなコードを書いていたんですかねえ・・・。

 まあ、よい。
 とりあえず、慣例に従ってエントリーをポストしておきました。

| AS3ゲーム修行 | 15:28 | comments(0) | trackbacks(0) |









http://blog.story-fact.com/trackback/1094262