DXライブラリを昨日始めた中学2年です。
13. 裏画面処理をして画像を動かす。
までやってみて、それまでのやり方などを使って、円を右矢印と左矢印のキーを押したら左右に動くようなものを作ってみたいのですが、うまくいきません。(イメージとしてはウィンベーダーゲーム)
うまくいかないというのを具体的に書くと、左キーがうまく動作しません。
なぜか教えてください。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
SetDrawScreen(DX_SCREEN_BACK);
int i=100,j=100;
int mugen;
int White,x;
White=GetColor(255,255,255);
while(CheckHitKey(KEY_INPUT_RIGHT)==0&&CheckHitKey(KEY_INPUT_LEFT)==0){
if( ProcessMessage() == -1 )
break ; // エラーが発生したらループを抜ける
}
while(CheckHitKey(KEY_INPUT_RIGHT)==1){
ClearDrawScreen();
if( ProcessMessage() == -1 )
break ; // エラーが発生したらループを抜ける
for(x=0;x<640;x+=20){
ClearDrawScreen();
DrawCircle(x,100,50,White,TRUE);
ScreenFlip();
if( ProcessMessage() == -1 )
break ;
}
}
while(CheckHitKey(KEY_INPUT_LEFT)==1){
ClearDrawScreen();
if( ProcessMessage() == -1 )
break ; // エラーが発生したらループを抜ける
int y;
for(y=0;y>0||y<640;y-=20){
ClearDrawScreen();
DrawCircle(y,100,50,White,TRUE);
ScreenFlip();
if( ProcessMessage() == -1 )
break ;
}
}
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
図形を→キーで動かしたいです。
Re:図形を→キーで動かしたいです。
イメージ
#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode( TRUE ) ; // ウインドウモードに変更 if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了 SetDrawScreen(DX_SCREEN_BACK); int x = 320; int White = GetColor(255, 255, 255); while(ProcessMessage() != -1 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) { ClearDrawScreen(); if(CheckHitKey(KEY_INPUT_RIGHT)) x += 20; if(CheckHitKey(KEY_INPUT_LEFT)) x -= 20; if(x < 0) x = 0; if(x > 640) x = 640; DrawCircle(x, 100, 50, White, TRUE); ScreenFlip(); } DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
Re:図形を→キーで動かしたいです。
迅速な回答ありがとうございました。
while(ProcessMessage() != -1 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
は次の章を読んでよくわかりました。
勉強の息抜きとしてやっています。
これからもよろしくお願いします。
while(ProcessMessage() != -1 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
は次の章を読んでよくわかりました。
勉強の息抜きとしてやっています。
これからもよろしくお願いします。