トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     fpsに同期したmcの移動
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ibm-old
Åê¹ÆNo.47878
投稿日時: 2011-8-12 0:21
新米
居住地:
投稿: 5
使用環境:
fpsに同期したmcの移動
初めて投稿させて頂きます。宜しくお願い致します。

プログラミングもFlashも全くの素人ですが、アクションゲームを作成しようと思いactionscriptをいじっています。バージョンは3.0で、環境はFlash CS5 (Mac) です。

まずはプレイヤーを動かせるようにするため、以下のようなスクリプトを組んでみました。

var move:uint = 8;

Object(root).player_mc.addEventListener(Event.ENTER_FRAME,enterframe);
function enterframe(e:Event):void
{

	stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeydown);
	function onKeydown(e:KeyboardEvent):void
	{

		if (e.keyCode == Keyboard.RIGHT)
		{
			Object(root).player_mc.x +=  move;
		}
		if (e.keyCode == Keyboard.LEFT)
		{
			Object(root).player_mc.x -=  move;
		}
		if (e.keyCode == Keyboard.UP)
		{
			Object(root).player_mc.y -=  move;
		}
		if (e.keyCode == Keyboard.DOWN)
		{
			Object(root).player_mc.y +=  move;
		}

		e.updateAfterEvent();

	}
}


2,3行目でEnterFrameを使っていますが、これを入れないとムービークリップがfpsに関係なく同じスピードで動く為です。(KEY_DOWNイベントはユーザがキーを押している間、一定間隔で送出されるらしいので、それで正しいのかもしれません。)

そこで、上のようにして単純にfpsに同期するようにしようとしてみたのですが、うまく働きませんでした。
具体的には、
 1.fpsに関係なく更新される
 2.fpsを上げると1フレームあたりの移動距離が異様に大きくなる
という感じです。

色々と調べてはみましたが、ややニッチな目的のため、中々良い情報が見つからず、こうして質問させて戴くことにいたしました。
お知恵を貸していただけると有難いです。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » fpsに同期したmcの移動 ibm-old 2011-8-12 0:21
     Re: fpsに同期したmcの移動 mayor 2011-8-12 11:22
       Re: fpsに同期したmcの移動 ibm-old 2011-8-12 21:22
         Re: fpsに同期したmcの移動 Fumio 2011-8-12 22:17
           Re: fpsに同期したmcの移動 Fumio 2011-8-12 22:31
             Re: fpsに同期したmcの移動 ibm-old 2011-8-13 3:17

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops