C言語 入門 ブロック崩しの作り方

三日目 ボールを反射

入門プログラムの定番のブロック崩しになります!

HOME/ブロック崩しの作り方 目次/三日目 ボールを反射/

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

ボールの移動

まずはボールを移動させてみましょう。

#include "DxLib.h"

int my_get_key(void);

int key[256];
int gamecount;

int Color_White = GetColor(255,255,255);

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
	ChangeWindowMode(TRUE);
	DxLib_Init();
	SetDrawScreen(DX_SCREEN_BACK);

	int ball_x = 0;
	int ball_y = 0;

	while (ScreenFlip()==0 && ProcessMessage()==0
		 && ClearDrawScreen()==0 && my_get_key()==0){

		DrawCircle(ball_x,ball_y,10,Color_White,true);
	
		ball_x++;
		ball_y++;
		
	}
	DxLib_End();
	return 0;
}
	
int my_get_key(){
	char keys[256];
	GetHitKeyStateAll(keys);
	for (int i = 0; i < 256; i++){
		if (keys[i] != 0){
			key[i]++;
		}
		else{
			key[i] = 0;
		}
	}
	return 0;
}

■実行結果■

画像(b-3-1)

ボールの「x,y」座標の変数「ball_x,ball_y」を用意してそれぞれインクリメントしてるだけのプログラムになります。

まず変数などの宣言はメインの「while」ループの中でやってしまうと何回も宣言してしまいエラーになるので必ず「while」ループの手前で行います。

ボールの描画には

DrawCircle(x座標,y座標,半径,色,塗りつぶすかどうか);

この円を描く関数「DrawCircle()」を使っております。

見たままなので説明は省略します。

最後の塗りつぶしの指定は「true」で塗りつぶす、「false」で塗りつぶさないとなります。

あとはインクリメントしてるだけですね。

ball_x++;
ball_y++;

前回も説明しましたが同じように増加するので斜めにボールは飛んでいきます。

ボールの反射

それではボールを反射させてみます。

まず反射の条件ですが、今回はこのウィンドウのフチで反射させたいのでそれぞれのフチの座標

「x=0,x=640,y=0,y=480」

こちらを反射の条件にしたいと思います。

そして条件式はこの座標を超えた場合なので単純に

if(ball_x >= 640){
}

以上になった場合という条件式でいきたいと思います。

ここに「x,y」の増加の方向を変える処理を書くワケです。

ではボールの方向を考えましょう。

今「x,y」それぞれは増加しているのか、減少しているのかという方向です。

まず方向を表す変数

int x_direction = 0;
int y_direction = 0;

こちらを用意します。

これを増加・減少のフラグとして使います。

「x_direction = 0」・・・増加

「x_direction = 1」・・・減少

といった感じです。

これを条件式にすればいいので

if(x_direction == 0){
	ball_x++;
}
else{
	ball_x--;
}

こんな感じですね。

これで増加・減少方向を変える事ができるので先ほどの条件式に方向を変える処理を書けばいいワケです。

if(ball_x >= 640){
	x_direction = 1;
}
if(ball_x <= 0){
	x_direction = 0;
}

それぞれの壁がどちらに跳ね返るのかに注意しましょう!

画像(b-3-2)

跳ね返りました!

ここまでの中間ソースになります。

中間ソース2

中間ソースのボールのスピードは少し速くなっております。

では次回は自機バーを表示、移動させたいと思います。

次回

四日目 自機バーを表示

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本

□ページの先頭へ□

□HOME□