// ジャンプ
#define migi 0
#define hidari 1
#include "DxLib.h"
int PlayerX , PlayerY , Player2X , Player2Y;
double JumpPower ,JumpPower2;
int PlayerGraph,PlayerGraph2;
int Key[256];
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
else GetHitKeyStateAll_InputKey[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
SetGraphMode( 800 , 600 , 16 ) ;
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
PlayerGraph2 = LoadGraph( "teki.png" ) ;
PlayerGraph = LoadGraph( "images/hito.png" ) ;
//自分の初期データをセット
Player2X = 50 ;
Player2Y = 100 ;
JumpPower2 = 0 ;
// キャラクターの初期データをセット
PlayerX = 0 ;
PlayerY = 568 ;
JumpPower = 0 ;
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
// キー入力取得
Key[256] = GetJoypadInputState( DX_INPUT_KEY_PAD1 ) ;
if( Key[ KEY_INPUT_UP ] >= 1) Player2Y -= 20 ; // 上を押していたら上に進む
if( Key[ KEY_INPUT_DOWN ] >= 1 ) Player2Y += 3 ; // 下を押していたら下に進む
if( Key[ KEY_INPUT_RIGHT ] >= 1 ) Player2X += 3 ; // 右を押していたら右に進む
if( Key[ KEY_INPUT_LEFT ] >= 1 ) Player2X -= 3 ; // 左を押していたら左に進む
// 落下処理
Player2Y -= JumpPower ;
// 落下加速度を加える
JumpPower2-= 0.5;
// 落下処理
PlayerY -= JumpPower ;
// 落下加速度を加える
JumpPower -= 0.5;
// もし地面についていたら止まる
if( Player2Y > 568 )
{
Player2Y = 568 ;
JumpPower2 = 0 ;
}
// もし地面についていたら止まる
if( PlayerY > 568 )
{
PlayerY = 568 ;
JumpPower = 0 ;
}
int flag; //一度のみ宣言
if (PlayerX==0)
flag=migi;
if(PlayerX==800-32)
flag=hidari;
if (flag==hidari)
PlayerX-=8;
else
PlayerX+=8;
// 画面を初期化する
ClearDrawScreen() ;
// プレイヤーを描画する
DrawGraph( Player2X , Player2Y , PlayerGraph2 , TRUE ) ;
// プレイヤーを描画する
DrawGraph( PlayerX , PlayerY , PlayerGraph , TRUE ) ;
ScreenFlip();
}
DxLib_End();
return 0;
}
DXlib 二つの画像表示
DXlib 二つの画像表示
DXlibを使用して、二つの画像を表示させたいのですができません、どうすればいいですか?
Re: DXlib 二つの画像表示
まず、 という配列の確保された範囲外にアクセスする危険なコードを消すかコメントアウトしてください。よういち さんが書きました:どうすればいいですか?
その後、Log.txtを見たり、DrawFormatString関数などで変数や式の値を表示したりしながら原因の調査とデバッグをすればいいでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: DXlib 二つの画像表示
まず、ClearDrawScreen()を2か所に書いてはいけません。
http://dixq.net/g/h_11.html
これを参考にしてください。
後肝心の質問の内容が分かりません。
画像を2つ表示するだけなら
DrawGraphを2つ書けばできます。
具体的な質問をお願いします。
また、
http://dixq.net/g/
こちらを一通り読んでいただけるときれいなプログラムが書けるようになると思います。
http://dixq.net/g/h_11.html
これを参考にしてください。
後肝心の質問の内容が分かりません。
画像を2つ表示するだけなら
DrawGraphを2つ書けばできます。
具体的な質問をお願いします。
また、
http://dixq.net/g/
こちらを一通り読んでいただけるときれいなプログラムが書けるようになると思います。