図形を→キーで動かしたいです。

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

図形を→キーで動かしたいです。

#1

投稿記事 by ハナブトオオトカゲ » 15年前

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 ; // ソフトの終了
}

ru

Re:図形を→キーで動かしたいです。

#2

投稿記事 by ru » 15年前

イメージ
#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:図形を→キーで動かしたいです。

#3

投稿記事 by ハナブトオオトカゲ » 15年前

迅速な回答ありがとうございました。
while(ProcessMessage() != -1 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
は次の章を読んでよくわかりました。
勉強の息抜きとしてやっています。
これからもよろしくお願いします。

閉鎖

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