三つの画像移動
Re:三つの画像移動
コンパイルが通らなかったのですが通りました。ありがとうございます。
ついでにもう一つ質問したいのですが、この三つのファイルをまとめてdxtest2.cppのmain.bmpと音がでてdxtest3.cppのchar.pngが出るようにするにはどうすれば良いのでしょうか?回答よろしくお願いします。
dxtest.h ↓
#include "DxLib.h"
dxtest2.cpp ↓
#include "Dxtest.h"
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
int Sound1 ;
int Sound2;
int Sound3;
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
Sound1 = LoadSoundMem( "THE NEXT DOOR.wav" );
Sound2 = LoadSoundMem( "don.wav" );
Sound3 = LoadSoundMem( "ka.wav" );
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_Q]);//エンター入力カウント
if(Key[KEY_INPUT_Q]==1)//今の瞬間押されたら
PlaySoundMem( Sound1 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_X]);
if(Key[KEY_INPUT_X]==1)
PlaySoundMem( Sound2 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_SLASH]);
if(Key[KEY_INPUT_SLASH]==1)
PlaySoundMem( Sound2 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_LSHIFT]);
if(Key[KEY_INPUT_LSHIFT]==1)
PlaySoundMem( Sound3 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_RSHIFT]);
if(Key[KEY_INPUT_RSHIFT]==1)
PlaySoundMem( Sound3 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
LoadGraphScreen( 0 , 150 , "main.bmp" , FALSE ) ;
ScreenFlip();
}
DxLib_End();
return 0;
}
dxtest3.cpp
#include "Dxtest.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; //DXライブラリ初期化 エラーが起きたら終了
int x1=700-24,x2=800,x3=600,image[16];
SetDrawScreen( DX_SCREEN_BACK ) ;//描画先を裏画面に設定
LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ;//画像を分割してimage配列に保存
while(1){
ClearDrawScreen(); //裏画面のデータを全て削除
if( ProcessMessage() == -1 ) break ; //異常がおきたら終了
x1-=5;
x2-=5;
x3-=5;
DrawGraph(x1,150,image[4] ,TRUE); //左向き画像の描画
DrawGraph(x2,150,image[12] ,TRUE);
DrawGraph(x3,150,image[12] ,TRUE); //右向き画像の描画
if(x1<0) break; //画像1のx座標が0未満になれば終了
ScreenFlip() ;//裏画面データを表画面へ反映
}
DxLib_End() ;// DXライブラリ使用の終了処理
return 0 ;// ソフトの終了
}
ついでにもう一つ質問したいのですが、この三つのファイルをまとめてdxtest2.cppのmain.bmpと音がでてdxtest3.cppのchar.pngが出るようにするにはどうすれば良いのでしょうか?回答よろしくお願いします。
dxtest.h ↓
#include "DxLib.h"
dxtest2.cpp ↓
#include "Dxtest.h"
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
int Sound1 ;
int Sound2;
int Sound3;
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
Sound1 = LoadSoundMem( "THE NEXT DOOR.wav" );
Sound2 = LoadSoundMem( "don.wav" );
Sound3 = LoadSoundMem( "ka.wav" );
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_Q]);//エンター入力カウント
if(Key[KEY_INPUT_Q]==1)//今の瞬間押されたら
PlaySoundMem( Sound1 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_X]);
if(Key[KEY_INPUT_X]==1)
PlaySoundMem( Sound2 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_SLASH]);
if(Key[KEY_INPUT_SLASH]==1)
PlaySoundMem( Sound2 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_LSHIFT]);
if(Key[KEY_INPUT_LSHIFT]==1)
PlaySoundMem( Sound3 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_RSHIFT]);
if(Key[KEY_INPUT_RSHIFT]==1)
PlaySoundMem( Sound3 , DX_PLAYTYPE_BACK );//画面全体を白い四角で表示
LoadGraphScreen( 0 , 150 , "main.bmp" , FALSE ) ;
ScreenFlip();
}
DxLib_End();
return 0;
}
dxtest3.cpp
#include "Dxtest.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; //DXライブラリ初期化 エラーが起きたら終了
int x1=700-24,x2=800,x3=600,image[16];
SetDrawScreen( DX_SCREEN_BACK ) ;//描画先を裏画面に設定
LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ;//画像を分割してimage配列に保存
while(1){
ClearDrawScreen(); //裏画面のデータを全て削除
if( ProcessMessage() == -1 ) break ; //異常がおきたら終了
x1-=5;
x2-=5;
x3-=5;
DrawGraph(x1,150,image[4] ,TRUE); //左向き画像の描画
DrawGraph(x2,150,image[12] ,TRUE);
DrawGraph(x3,150,image[12] ,TRUE); //右向き画像の描画
if(x1<0) break; //画像1のx座標が0未満になれば終了
ScreenFlip() ;//裏画面データを表画面へ反映
}
DxLib_End() ;// DXライブラリ使用の終了処理
return 0 ;// ソフトの終了
}
Re:三つの画像移動
まず、規約を読んでください。
今からでもよいので、プレタグを使ってください。
また、字下げも適宜入れるようにしてください。
>この三つのファイルをまとめてdxtest2.cppのmain.bmpと音がでてdxtest3.cppのchar.pngが出るようにする
main関数は一つのプログラムに一つが原則です。
dxtest2.cppを関数化した関数をfunction()とし、
dxtest3.cppのmain関数でfunction()を呼び出してください。
言ってる意味がよくわからなければ、入門ページでちょこちょこ勉強をしてください。
関数、分割ファイル、グローバル変数等で検索すれば今回の件は解決できます。
また、ScreenFlip(),DxLib_End(),ChangeWindowMode(TRUE),SetDrawScreen( DX_SCREEN_BACK ),DxLib_Init()
はループ毎に一度だけ呼び出すようにしてください。
今からでもよいので、プレタグを使ってください。
また、字下げも適宜入れるようにしてください。
>この三つのファイルをまとめてdxtest2.cppのmain.bmpと音がでてdxtest3.cppのchar.pngが出るようにする
main関数は一つのプログラムに一つが原則です。
dxtest2.cppを関数化した関数をfunction()とし、
dxtest3.cppのmain関数でfunction()を呼び出してください。
言ってる意味がよくわからなければ、入門ページでちょこちょこ勉強をしてください。
関数、分割ファイル、グローバル変数等で検索すれば今回の件は解決できます。
また、ScreenFlip(),DxLib_End(),ChangeWindowMode(TRUE),SetDrawScreen( DX_SCREEN_BACK ),DxLib_Init()
はループ毎に一度だけ呼び出すようにしてください。
Re:三つの画像移動
プレタグて何ですか?
関数、分割ファイル、グローバル変数等をhttp://dixq.net/g/#8で検索したら色々出てきてなんだか良く解りません。すみません。
また、ScreenFlip(),DxLib_End(),ChangeWindowMode(TRUE),SetDrawScreen( DX_SCREEN_BACK ),DxLib_Init()
はループ毎に一度だけ呼び出すようにしてください。と言われても解りません。本当に、すみません、何も解っていないと思うので。
それともう一つ質問なのですか、char.pngの所に○○.bmpや××.jpegなどは、使えるのですか?
関数、分割ファイル、グローバル変数等をhttp://dixq.net/g/#8で検索したら色々出てきてなんだか良く解りません。すみません。
また、ScreenFlip(),DxLib_End(),ChangeWindowMode(TRUE),SetDrawScreen( DX_SCREEN_BACK ),DxLib_Init()
はループ毎に一度だけ呼び出すようにしてください。と言われても解りません。本当に、すみません、何も解っていないと思うので。
それともう一つ質問なのですか、char.pngの所に○○.bmpや××.jpegなどは、使えるのですか?
Re:三つの画像移動
> また、ScreenFlip(),DxLib_End(),ChangeWindowMode(TRUE),SetDrawScreen( DX_SCREEN_BACK ),DxLib_Init()
> はループ毎に一度だけ呼び出すようにしてください。と言われても解りません。本当に、すみません、何も解っていないと思うので。
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.htmlでそれぞれの関数を調べれば理由が分かるはずです。
> それともう一つ質問なのですか、char.pngの所に○○.bmpや××.jpegなどは、使えるのですか?
こちらもhttp://homepage2.nifty.com/natupaji/DxL ... .html#R3N3に対応形式が載っています。
# 細かいことですが、名前が全角文字名の時と半角文字名の時とで表記が揺れています。
# 出来れば統一した方がいいかもしれませんよ。
> はループ毎に一度だけ呼び出すようにしてください。と言われても解りません。本当に、すみません、何も解っていないと思うので。
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.htmlでそれぞれの関数を調べれば理由が分かるはずです。
> それともう一つ質問なのですか、char.pngの所に○○.bmpや××.jpegなどは、使えるのですか?
こちらもhttp://homepage2.nifty.com/natupaji/DxL ... .html#R3N3に対応形式が載っています。
# 細かいことですが、名前が全角文字名の時と半角文字名の時とで表記が揺れています。
# 出来れば統一した方がいいかもしれませんよ。