トップページ > 記事閲覧
[DxLib v3.19b] ラスト分割画像が消えました
名前:AZ 日時: 2018/04/08 01:19

to 管理人さん: こんにちは。私は台湾人です、日本語があまり良くありません、初心者です。 何か間違って言うなら、私を許してください。 Win7 64bit + Code::Blocks v17.12 + TDM GCC v5.1.0-2 64bit + DxLib GCC v3.19b - MinGW\5_2_0_w64\x86_64 ================================================== GetJoypadInputState は LoadDivGraph ラスト分割画像を消えました。 【Project Download】https://mega.nz/#!Jc8ADAgJ!dxJ6d9pR5CVYAQvQcwuHrEw95_DdcDdGqsqq4WuLu2E -------------------------------------------------- プロジェクト「01」は正常です。 Run(sprite:player.png) + Jump -------------------------------------------------- プロジェクト「02」は異常です。「01」+ Idle(sprite:player_idle.png) Key = GetJoypadInputState(DX_INPUT_KEY_PAD1); //ここは実行すれば、 //Run(sprite:player.png) ラスト分割画像が消えました ︙ ︙ ︙ DrawGraph(500, 200, PlayerGraph[47], true); //ラスト分割画像が消えました -------------------------------------------------- プロジェクト「02a」は「02」の省略されたバージョン ================================================== 管理人さんのおかげで、とても素晴らしいのライブラリーです、ありがとうございます。 ================================================== //【省略されたバージョン】 // ジャンプ #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int Key; int PlayerGraph[47]; int SizeX, SizeY; int PlayerIdleGraph[15]; SetGraphMode(1366, 768, 32); if(DxLib_Init() == -1) return -1; // DXライブラリ初期化処理 // エラーが起きたら直ちに終了 // 描画先画面を裏画面にセット SetDrawScreen(DX_SCREEN_BACK); // グラフィックのロード LoadDivGraph("player.png", 48, 12, 4, 512, 512, PlayerGraph); LoadDivGraph("player_idle.png", 16, 4, 4, 512, 512, PlayerIdleGraph); GetGraphSize(PlayerGraph[0], &SizeX, &SizeY); //自動抓取圖片的大小 /*▼【Debug】▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▼ while(1) { if(CheckHitKey(KEY_INPUT_ESCAPE)) {DxLib_End(); return 0;} ClearDrawScreen(); DrawFormatString(0, 0, GetColor(255, 255, 255), "[Debug]"); //▼================================================================================================▼ DrawGraph(500, 200, PlayerGraph[47], true); //ここは正常です。 //▲================================================================================================▲ ScreenFlip(); } //▲▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▲*/ // ループ while(ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) { // キー入力取得 Key = GetJoypadInputState(DX_INPUT_KEY_PAD1); //ここは実行すれば、あとのデバグ、画像を表示ができません //▼【Debug】▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▼ while(1) { if(CheckHitKey(KEY_INPUT_ESCAPE)) {DxLib_End(); return 0;} ClearDrawScreen(); DrawFormatString(0, 0, GetColor(255, 255, 255), "[Debug]"); //▼================================================================================================▼ DrawGraph(500, 200, PlayerGraph[47], true); //▲================================================================================================▲ ScreenFlip(); } //▲▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▲*/ } DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
メンテ

Page: 1 |

Re: [DxLib v3.19b] ラスト分割画像 ( No.1 )
名前:BayLeaf 日時:2018/04/08 03:11

管理人ではありませんが、多分お答えできそうです。 恐らく分割画像のラストが表示できないということだと思いますが、 int PlayerGraph[47]; → int PlayerGraph[48]; (PlayerIdleGraph[15]も同様に) 上記に変更すれば表示が正常になると思われます。 何故なら、PlayerGraph[47] では47個しか確保できていないためです。 なので、48個目にアクセスすると誤作動を起こしてしまいます。 もし違っていたら済みません。 追記: 中国語で書いたら文字化けを起こしてしまったので該当箇所を削除しました。
メンテ
Re: [DxLib v3.19b] ラスト分割画像が消えました ( No.2 )
名前:AZ 日時:2018/04/08 10:12

to BayLeafさん: ご返信と親切に助けてくれて、とってもありがとうございます、プログラムが正常した。 本来のコードは、一つの画像サイズ 32×32 に設定したら、実行が同じ結果です。 画像サイズの問題ではないかもしれません。 (〒▽〒)< 感動desu.
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存