ページ 11

ゲーム

Posted: 2017年6月27日(火) 23:18
by cys

コード:


void obj(void)
{
	draw(objx, objy, 20.0f,);
}

void player(void)
{
	draw(playerx, playery, 20.0f,);
}

void hittest(void) {

	    if ((objx < playerx + 20) &&
		(playerx < objx + 20) &&
		(objy < playery + 20) &&
		(playery < objy + 20)) {
		playerx=playerx;
	}

プレイヤーがオブジェクト(ブロック)の上に乗る
プレイヤーを移動してオブジェクトに当たるとプレイヤーは移動できなくなる
上の2つの事をしたいのですがわからないので上記のプログラムを教えてください

Re: ゲーム

Posted: 2017年6月27日(火) 23:35
by purin52002
上記のプログラム、というのはcysさんが張ったソースのことですか?
それとも、
プレイヤーがオブジェクト(ブロック)の上に乗る
プレイヤーを移動してオブジェクトに当たるとプレイヤーは移動できなくなる
という処理を行うプログラム、ということですか?

仮に、張られたソースの内容がわからないという質問であれば、申し訳ないですが私もわからないです^^;

仮に、処理を行うプログラムがわからないという質問であれば、

プレイヤーがオブジェクト(ブロック)の上に乗る
という処理は、プレイヤーのx座標をオブジェクトのx座標に設定し、プレイヤーのy座標をオブジェクトの上面のy座標に設定する、というのはどうでしょう?

プレイヤーを移動してオブジェクトに当たるとプレイヤーは移動できなくなる
という処理は、「移動できるかできないか」のフラグ用変数を用意し、オブジェクトに接触したらフラグ用変数の値を「移動できない」に書き換えてやる、というのはどうでしょう?
前提条件として、「プレイヤーは移動できる」、「プレイヤーは接触を検知できる」、「プレイヤーはフラグ用変数の値によって移動できたりできなかったりする」という機能を実装してあることを仮定しています。