> しかし、DX_MOVIEPLAYTYPE_BCANCEL関数では、ゲームパッドの入力に割り当てたキー以外からのキーボードからの入力をもってムービーの再生をキャンセルすることができません。
手元で試してみた限りでは、ゲームパッドの入力に割り当てていないキー( バックスペースキー等 )でも再生をキャンセルできました
PlayMovie の内部では CheckHitKeyAll を使用していて、何かキーが押された状態( CheckHitKeyAll の戻り値が 0 以外 )で
再生が開始されたら、まずは何もキーが押されなくなる( CheckHitKeyAll の戻り値が 0 になる )まで待ち、
何もキーが押されない状態になったら、今度は何かキーが押されたら( CheckHitKeyAll の戻り値が 0 以外になったら )再生をキャンセルします
なので、もしかしたら CheckHitKeyAll の戻り値が私の意図しない値になっているのかもしれません
よろしければ以下のような CheckHitKeyAll の結果を表示するだけのプログラムを実行してみていただけないでしょうか?
通常は何もキーを押さなければ 0 となる筈ですが、何もキーを押していないのに 0 以外の値になっていたら、何か原因がわかるかもしれません
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面のクリア
ClearDrawScreen() ;
// CheckHitKeyAll の結果を表示
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "CheckHitKeyAll = %d", CheckHitKeyAll() ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}