AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

カードゲームを作ろう(3)

f:id:yasu9780:20150524192151p:plain

カードをシャッフルして10枚をユーザーに配り
クリックしたカードを場に捨てる

までできました。

シャフル。スワップを20回程度

for(i=0;i<=20;i++)
{
	int c1=Random.Range (1, 52);
	int c2=Random.Range (1, 52);
	int tmp = cardNo[c1];
	cardNo[c1]=cardNo[c2];
	cardNo[c2]=tmp;
}

クリックしたカードを場に動かす。
マウスのX座標で判定してもいいんですが、タワーディフェンスでやっていた光線飛ばしてObject特定でやってみました。これなら、カメラ移動をしてもカード選択ができます。
場にはbaというObjcet置いてるので、そこに移動します。
大富豪なら、場の最上面より強いカードしか捨てられないので、そこにロジックを入れることになります。

void Update () {
	if (Input.GetMouseButtonDown(0) )
	{
		Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
		RaycastHit hit = new RaycastHit();
		Physics.Raycast(ray, out hit);
		if (Physics.Raycast(ray, out hit)) {
			Debug.Log("hit card");
			mycard = hit.collider.gameObject;
		}
	}
	if(mycard)
	{
		Vector3 pos = mycard.transform.position;
		pos.x -= speed * Time.deltaTime * (mycard.transform.position.x-ba.transform.position.x);
		pos.y -= speed * Time.deltaTime * (mycard.transform.position.y-ba.transform.position.y);
		mycard.transform.position = pos;
	}
}