ページ 11

Dxライブラリのムービーの終了位置

Posted: 2010年11月19日(金) 23:26
by きみどり
はじめまして
プログラムは初心者です
ムービーをスクロールバーなどで指定した位置にしたいのですが
ムービーの終了位置がわからないと作れません
そこで




int i=100000000;
while( !ProcessMessage()
&& GetHitKeyStateAll_2(Key)== 0
&& Key[KEY_INPUT_ESCAPE]== 0
){
// ムービーを一時停止します
PauseMovieToGraph( MovieGraphHandle ) ;

SeekMovieToGraph( MovieGraphHandle , TellMovieToGraph( MovieGraphHandle ) + i ) ;

// ムービーを再生状態にします
PlayMovieToGraph( MovieGraphHandle ) ;
if( TellMovieToGraph( MovieGraphHandle ) > NGS )NGS = TellMovieToGraph( MovieGraphHandle );
else{
if( i == 1 )break;
NGS = 0 ;
if( i != 1 )i/=10;
}
}



とムービーの終了位置を判断させたのですが時間がすごくかかります
ほかの方法があれば教えてください

Re:Dxライブラリのムービーの終了位置

Posted: 2010年11月20日(土) 01:05
by 白い時空
int GetMovieTotalFrameToGraph( int GraphHandle );//ムービーの総フレーム数を得る( Ogg Theora でのみ有効 )
int TellMovieToGraphToFrame( int GraphHandle );// ムービーの再生位置を取得する(フレーム単位)
int SeekMovieToGraphToFrame( int GraphHandle, int Frame );// ムービーの再生位置を設定する(フレーム単位)

DxLib.hをのぞいてみたらこんな関数見つけたんですけどこれ使えば多分できると思います。
まだ試してないのでわかりませんが。 画像

Re:Dxライブラリのムービーの終了位置

Posted: 2010年11月20日(土) 10:04
by きみどり
ループ内にWaitTimer( 20 )を追加してみたら
かかる時間は早くなりました
今までは15秒だったのが2秒ぐらいにw

それと白い時空さんに提示してもらった関数を
適当に使って見てもうまくいきませんでした
Ogg Theoraの意味をまったく理解していないので教えてほしいです