ページ 11

invader

Posted: 2016年8月05日(金) 17:18
by ckey

コード:

void tama() { //弾描画関数

	if (GetKeyboardTrigger(DIK_X)) {
		for (int i = 0; i < 5; i++)
		{
			shot_flg[i] = 1;
			if (shot_flg[i] == 0)
			{
				shot_x[i] = input_lr + 21.0f;
				shot_y[i] = input_ud - 100.0f;
				break;
			}
		}
	}

	for (int i = 0; i<5; i++)
	{
		if (shot_flg[i] == 1)
		{
			shot_y[i] += dspeed;
		}
		if (shot_y[i]>480.0f)
		{
			shot_flg[i] = 0;
			shot_x[i] = input_lr + 21.0f;	//input_lr 自機x座標 input_ud自機y座標
			shot_y[i] = input_ud - 10.0f;
		}
	}

	typedef struct {
		float x, y, z;
		float rhw;
		D3DCOLOR cor;
		float tex_u, tex_v;
	}VERTEX_2D;

	//データの値を設定 
	VERTEX_2D vertex[4];

	//弾
	for (int i = 0; i < 5; i++)
	{
		if (shot_flg[i] == 1)
		{
			vertex[0].x = shot_x[i];
			vertex[0].y = shot_y[i];
			vertex[0].z = 0.0f;

			vertex[1].x = shot_x[i] + 30.0f;
			vertex[1].y = shot_y[i];
			vertex[1].z = 0.0f;

			vertex[2].x = shot_x[i] + 30.0f;
			vertex[2].y = shot_y[i] + 30.0f;
			vertex[2].z = 0.0f;

			vertex[3].x = shot_x[i];
			vertex[3].y = shot_y[i] + 30.0f;
			vertex[3].z = 0.0f;

			vertex[0].rhw = 1.0f;
			vertex[1].rhw = 1.0f;
			vertex[2].rhw = 1.0f;
			vertex[3].rhw = 1.0f;

			vertex[0].cor = D3DCOLOR_XRGB(255, 255, 255);
			vertex[1].cor = D3DCOLOR_XRGB(255, 255, 255);
			vertex[2].cor = D3DCOLOR_XRGB(255, 255, 255);
			vertex[3].cor = D3DCOLOR_XRGB(255, 255, 255);

			vertex[0].tex_u = 0.0f;
			vertex[0].tex_v = 0.0f;
			vertex[1].tex_u = 1.0f;
			vertex[1].tex_v = 0.0f;
			vertex[2].tex_u = 1.0f;
			vertex[2].tex_v = 1.0f;
			vertex[3].tex_u = 0.0f;
			vertex[3].tex_v = 1.0f;
		}
		g_pd3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, vertex, sizeof(VERTEX_2D));
	}
}

自機から下に弾が出てしまいます。自機から上に弾を出したいのですが分からないので教えてください

Re: invader

Posted: 2016年8月05日(金) 21:19
by milla
dspeedっていう変数に正の値入ってそうだから負の値いれてみて?