C#とDXLibでLoadDivGraph関数を使用して分割読み込みできない
Posted: 2013年5月12日(日) 13:39
C#とDXライブラリを使用して,ゲームを作成しているのですが,LoadDivGraphで画像を正しく分割読み込み出来ず困っています.
龍神録のプログラミングの館にて公開されている自機画像0.pngを描画する処理(http://dixq.net/rp/4.html)をC#で行おうと,LoadDivGraphを使用して自機画像0.pngを分割した結果,配列の0番目には正しく画像が格納されているのに対して,1番目~11番目には画像が格納されておらず,正しくアニメーションできませんでした.
確認のため,次のようなプログラムを作成して,自機画像のアニメーションをしてみた結果,やはり,配列GrHandleの0番目は正しく描画されており,1番目から11番目には画像が描画されていませんでした.
同じような問題を抱えている人がいたのですが,自分の場合,0番目には正しく画像の情報が格納されているのに次以降の配列に情報が格納されておらず,どうしてこのような現象になったのかわからなかったので質問させていただきました.
何かご存じでしたら,教えていただきたいです.
------------------------------------------------------------------------------------------------------------------------------
using DxLibDLL;
using System;
class Ryu
{
[STAThread]
static void Main()
{
int[] GrHandle=new int [12];
int GNum = 0;
int loopcnt = 0;
// ウインドウモードで起動
DX.ChangeWindowMode(DX.TRUE);
// 初期化
if (DX.DxLib_Init() == -1) return;
// 画像の読み込み
DX.LoadDivGraph("../dat/img/char/0.png", 12, 4, 3, 73, 73, out GrHandle[0]);
// 描画対象を裏画面に
DX.SetDrawScreen(DX.DX_SCREEN_BACK);
// 閉じられるか、何かキーが押されるまでループ
while (DX.ProcessMessage() == 0 && DX.CheckHitKeyAll() == 0 )
{
loopcnt++;
if (GNum < 11 & loopcnt % 40 == 39)
{
GNum++; //画像ナンバーを変更
}
// 画面の初期化
DX.ClearDrawScreen();
// 画像の描画
DX.DrawGraph(200, 200, GrHandle[GNum], DX.TRUE);
//文字の表示
DX.DrawString(100, 80, "loopcnt = " + loopcnt, DX.GetColor(255, 255, 255));
DX.DrawString(100, 100, "GNum = " + GNum, DX.GetColor(255, 255, 255));
// 裏画面の内容を表画面に反映
DX.ScreenFlip();
}
// 後始末
DX.DxLib_End();
}
}
------------------------------------------------------------------------------------------------------------------------------
使用言語:C#,DXライブラリ
開発環境:Visual Stdio 2008 express edition
龍神録のプログラミングの館にて公開されている自機画像0.pngを描画する処理(http://dixq.net/rp/4.html)をC#で行おうと,LoadDivGraphを使用して自機画像0.pngを分割した結果,配列の0番目には正しく画像が格納されているのに対して,1番目~11番目には画像が格納されておらず,正しくアニメーションできませんでした.
確認のため,次のようなプログラムを作成して,自機画像のアニメーションをしてみた結果,やはり,配列GrHandleの0番目は正しく描画されており,1番目から11番目には画像が描画されていませんでした.
同じような問題を抱えている人がいたのですが,自分の場合,0番目には正しく画像の情報が格納されているのに次以降の配列に情報が格納されておらず,どうしてこのような現象になったのかわからなかったので質問させていただきました.
何かご存じでしたら,教えていただきたいです.
------------------------------------------------------------------------------------------------------------------------------
using DxLibDLL;
using System;
class Ryu
{
[STAThread]
static void Main()
{
int[] GrHandle=new int [12];
int GNum = 0;
int loopcnt = 0;
// ウインドウモードで起動
DX.ChangeWindowMode(DX.TRUE);
// 初期化
if (DX.DxLib_Init() == -1) return;
// 画像の読み込み
DX.LoadDivGraph("../dat/img/char/0.png", 12, 4, 3, 73, 73, out GrHandle[0]);
// 描画対象を裏画面に
DX.SetDrawScreen(DX.DX_SCREEN_BACK);
// 閉じられるか、何かキーが押されるまでループ
while (DX.ProcessMessage() == 0 && DX.CheckHitKeyAll() == 0 )
{
loopcnt++;
if (GNum < 11 & loopcnt % 40 == 39)
{
GNum++; //画像ナンバーを変更
}
// 画面の初期化
DX.ClearDrawScreen();
// 画像の描画
DX.DrawGraph(200, 200, GrHandle[GNum], DX.TRUE);
//文字の表示
DX.DrawString(100, 80, "loopcnt = " + loopcnt, DX.GetColor(255, 255, 255));
DX.DrawString(100, 100, "GNum = " + GNum, DX.GetColor(255, 255, 255));
// 裏画面の内容を表画面に反映
DX.ScreenFlip();
}
// 後始末
DX.DxLib_End();
}
}
------------------------------------------------------------------------------------------------------------------------------
使用言語:C#,DXライブラリ
開発環境:Visual Stdio 2008 express edition