Re: 起動してないけれど起動扱い ( No.1 ) |
- 名前:紙袋 日時:2014/02/05 23:20
起動しないことに関係するか分かりませんが、
・WaitTimer関数はDxLib_Init関数の後でないと呼べないと思います。
・描画する画像の配列番号の指定に使用している変数、i、EnemyPageでEnemyPageを初期化していないのが気になります。(場合によっては不明な値が入る可能性があるので・・・)
・whileループの頭にClearDrawScreen関数を追加したほうがいいです。(前に描画したものが残ってしまいます)
以上の事を修正してみてください。
>>追記
WaitTimer関数をDxLib_Init関数の前で使用したプログラムを実行してみたら、
表示されずにプロセスに残る状態になることが確認出来ました。
なので、WaitTimer関数はDxLib_Init関数の後に使うようにしてください。
|
Re:Re: 起動してないけれど起動扱い ( No.2 ) |
- 名前:Hazardix_T 日時:2014/02/07 16:21
返信ありがとうございます。
とりあえず、紙袋さんの言った通り
WaitTimerをDxLib_Initの後ろに置いておきました。
EnemyPageの初期化できてないのは打ち間違えです。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
int GHandle[15];
int i;
int Enemy[15];
int EnemyFlame;
int EnemyPage;
if(DxLib_Init()==-1)
{
return -1;
}
EnemyFlame=WaitTimer(40);
LoadDivGraph("D:/source_1/待機.png",7,7,1,320,240,GHandle);
LoadDivGraph("D:/source_1/ふるえるなにか.png",15,8,7,320,240,Enemy);
i=0;
EnemyPage=0;
while(CheckHitKeyAll()==0)
{
ClearDrawScreen();
DrawGraph(0,120,Enemy[EnemyPage],TRUE);
EnemyPage++;
if(EnemyPage==15)EnemyPage=0;
EnemyFlame;
DrawGraph(320,120,GHandle[i],TRUE);
i++;
if(i==7)i=0;
WaitTimer(80);
if(ProcessMessage()==-1)
{
break;
}
}
DxLib_End();
return 0;
}
そんなわけで、このように修正してみましたが、
今度はEnemyに読み込んである敵が変に消えてる、というか不規則に点滅してしまいます。
それと、出来ればでよろしいのですが
最初に言った「主人公キャラと敵キャラを別々の描写速度で同時に待機アニメーションを表示させる」ようにするにはどうすれば良いのでしょうか、
指摘してくれれば幸いです。
|
Re: 起動してないけれど起動扱い ( No.3 ) |
- 名前:紙袋 日時:2014/02/07 18:14
とりあえず、Enemyの各配列に画像が読み込まれているか確認してください。
リファレンスにあるLoadDivGraph関数の説明を読むと分かるのですが、
画像の左上から順番に
1,2,3
4,5,6
7,8,9
のように指定されたサイズで配列に格納されます。
※EnemyのLoadDivGraoh部分を見て思ったのですが、
横8分割、縦7分割で系56分割の中から最初の15枚となっていますがこれは問題ないのでしょうか?
アニメーションの管理ですが、各コマごとに描画する時間を制御してあげれば出来ます。昔、ここの掲示板で同じような質問に回答した時に使ったコードがあるので
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=2896
のURLを参照してみてください。
※C++を使用出来て、管理をしやすいものにしたいのでしたら<map>を使った連想配列を利用するという手法もあります。
|
Re: 起動してないけれど起動扱い ( No.4 ) |
- 名前:Hazaedix_T 日時:2014/02/10 17:16
Enemyの配列ですが、
左上から順に
[1],[2],[3],[4],[5],[6],[7],[8]
[9],[10],[11],[12],[13],[14],[15]
といったなんともまぁ変な配列にしてしまっています。
ひょっとしたら、これが要因の一つなのでしょうね。
とりあえず、アニメーションの管理の件は参考にしてみます。
|
|