合計 昨日 今日

分割の違う画像を同じ速度で移動させる

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: helpme
[URL]
Date: 2017年8月30日(水) 17:28
No: 1
(OFFLINE)

 分割の違う画像を同じ速度で移動させる

CのDXlibでアニメーションをしようとしているのですが1キャラは10分割で1周なのですが2キャラ目が8分割で1周で3キャラ目が6分割で1周の画像を同じ速度で回したいときのプログラムを教えてください
1キャラ 0 1 2 3 4 5 6 7 8 9 0 1
2キャラ 0 1 2 3 4 5 6 7 8 0 1 2
3キャラ 0 1 2 3 4 5 6 0 1 2 3 4
これを同じときに0が来るようにしたいです。

Name: peot
[URL]
Date: 2017年8月30日(水) 19:41
No: 2
(OFFLINE)

 Re: 分割の違う画像を同じ速度で移動させる

こんな感じですか?

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <DxLib.h>
 
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int )
{
    ChangeWindowMode( true );
    if( DxLib_Init() == -1 ){ return -1; }
    SetDrawScreen( DX_SCREEN_BACK );
 
    int count = 0;
    int cycle10 = 0;
    int cycle8 = 0;
    int cycle6 = 0;
 
    while( ProcessMessage() == 0 && !CheckHitKey( KEY_INPUT_ESCAPE ))
    {
        ClearDrawScreen();
        cycle10 = ( count % 240 ) / 24;//10コマアニメ
        cycle8 = ( count % 240 ) / 30;//8コマアニメ
        cycle6 = ( count % 240 ) / 40;//6コマアニメ
        DrawFormatString( 150, 150, 0xffffff, "%d, %d, %d", cycle10, cycle8, cycle6 );
        ScreenFlip();
        ++count;
    }
    DxLib_End();
    return 0;
}

Name: usao
[URL]
ハッカー(139,041 ポイント)
Date: 2017年8月31日(木) 10:24
No: 3
(OFFLINE)

 Re: 分割の違う画像を同じ速度で移動させる

こんな感じでどうでしょう.

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
const double T = アニメーションの周期(1周に要する時間)
const int nImage = アニメーションの画像枚数(10とか8とか6とか)
double CurrTime = 処理開始から現在までの経過時間
 
//現在表示すべき画像のindex
//  時間 t = T/nImage が経過するごとに画像indexを1つ進める.
// 現在までにtが何回経過したか = nt = (int)( CurrTime / t )
//  現在表示すべき画像のindex = nt % nImage;
int CurrShowImageIndex = (int)( CurrTime * nImage / T )  %  nImage;

Name: helpme
[URL]
Date: 2017年9月07日(木) 10:24
No: 4
(OFFLINE)

 Re: 分割の違う画像を同じ速度で移動させる

みなさん 返答ありがとうございます
最終的に
int count = 0; //経過時間
int animacount = 0 ; //アニメーション用のカウント
if((count%数)==0) animacount ++
という感じでやることにしました。


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[12人]