Partage
  • Partager sur Facebook
  • Partager sur Twitter

Algorithme pour trouver des cases autour d'une pos

C# Unity

    9 décembre 2014 à 2:10:56

    Bonjour,

    je suis actuellement en train de developper un petit jeu de plateau a deplacement case par case et je souhaiterai mettre en evidence les cases accessibles par le joueur a chaque tour (cases autour de la position du joueur dont la distance est inferieure ou egale a un entier).

    Pour cela j'utilise donc les raycast d'Unity, j'ai donc reussi a imaginer une partie d'algo qui me permet pour l'instant de trouver les cases autours du joueur mais sulement pour un quart du cercle et je fais donc appelle a votre aide pour m'aider a generaliser cet algo pour qu'il fasse un tour complet.

    		Vector3 targetRay = new Vector3();
    		Vector3 directionRay = new Vector3();
    
    		//build a ray with the origin equals to the current node and direction equals to one of the basic vectors
    		for(int j = currentPm; j > 0; j--)
    		{
    			for(int i = 0; i < j + 1; i++)
    			{
    				//create a ray from the camera to a position on the ground which is reachable for the player
    				targetRay = new Vector3(players[tour%nbPlayer].transform.position.x, -0.15f, players[tour%2].transform.position.z);
    				directionRay = (j - i) * movement[0] + i * movement[3];
    				targetRay += directionRay;
    				Debug.Log(targetRay);
    				targetRay = Camera.main.WorldToScreenPoint(targetRay);
    				ray = Camera.main.ScreenPointToRay (targetRay);
    				//store the index of the layer we want to cast the ray on
    				int layerMask = 1 << 8;
    				//if the ray hits something in the given layer
    				if (Physics.Raycast(ray, out hit, 100, layerMask))
    				{
    					Debug.Log("hit");
    					//if the ray touch the ground
    					if (hit.collider.tag == "Ground") 
    					{
    					Debug.Log ("Ground");
    						//set the material of this case to the hilight material
    						GameObject caseHitted = hit.collider.gameObject;
    						caseHitted.renderer.material = newMaterial;
    					}
    				}
    			}
    		}



    -
    Edité par Zboubz 9 décembre 2014 à 2:12:55

    • Partager sur Facebook
    • Partager sur Twitter
    https://github.com/Zboub

    Algorithme pour trouver des cases autour d'une pos

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown