三つの画像移動

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
trx

三つの画像移動

#1

投稿記事 by trx » 16年前

http://dixq.net/g/#30 にある、30番の所では、二つの画像を動かしていますがもし三つや、四つの画像を動かす時には、今、自分なりやって見たのじゃ動きませんどうしてですか。回答よろしくお願いします。

trx

Re:三つの画像移動

#2

投稿記事 by trx » 16年前

データ間違えました。

kazuoni

Re:三つの画像移動

#3

投稿記事 by kazuoni » 16年前

まずコンパイルが通らないということですか?
x3=600,image[16];
として再度動作を確認してください。

trx

Re:三つの画像移動

#4

投稿記事 by trx » 16年前

コンパイルが通らなかったのですが通りました。ありがとうございます。

ついでにもう一つ質問したいのですが、この三つのファイルをまとめて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 ;// ソフトの終了
}

kazuoni

Re:三つの画像移動

#5

投稿記事 by kazuoni » 16年前

まず、規約を読んでください。
今からでもよいので、プレタグを使ってください。
また、字下げも適宜入れるようにしてください。

>この三つのファイルをまとめて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()
はループ毎に一度だけ呼び出すようにしてください。

trx

Re:三つの画像移動

#6

投稿記事 by trx » 16年前

プレタグて何ですか?

関数、分割ファイル、グローバル変数等をhttp://dixq.net/g/#8で検索したら色々出てきてなんだか良く解りません。すみません。

また、ScreenFlip(),DxLib_End(),ChangeWindowMode(TRUE),SetDrawScreen( DX_SCREEN_BACK ),DxLib_Init()
はループ毎に一度だけ呼び出すようにしてください。と言われても解りません。本当に、すみません、何も解っていないと思うので。

それともう一つ質問なのですか、char.pngの所に○○.bmpや××.jpegなどは、使えるのですか?

toyo

Re:三つの画像移動

#7

投稿記事 by toyo » 16年前

>プレタグて何ですか?
規約に書いてあるこれですよ

trx

Re:三つの画像移動

#8

投稿記事 by trx » 16年前

解りました

御津凪

Re:三つの画像移動

#9

投稿記事 by 御津凪 » 16年前

> また、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に対応形式が載っています。

# 細かいことですが、名前が全角文字名の時と半角文字名の時とで表記が揺れています。
# 出来れば統一した方がいいかもしれませんよ。

trx

Re:三つの画像移動

#10

投稿記事 by trx » 16年前

何とかできたと思います

閉鎖

“C言語何でも質問掲示板” へ戻る