Faire bouger un objet avec le doigt sur Android

Toutes les questions sur le développement Mobile, y compris la partie script.
LubDen
Messages : 10
Inscription : 02 Mai 2017 17:05

Faire bouger un objet avec le doigt sur Android

Message par LubDen » 02 Mai 2017 17:14

Bonjour à tous,

Je suis actuellement en train d'essayer de faire un jeu (très simple) de "basketball". J'aimerais pouvoir tirer la balle en faisant glisser mon doigt sur l'écran ... Cela fait maintenant 2 jours que je suis en train de regarder sur différents forums comment je peux réussir à bouger mon ballon dans les 3 axes (x,y,z) tout en le faisant avec le tactile d'un téléphone Android.
J'ai regarder de nombreux (vous imaginez pas le nombre) posts, essayer plusieurs codes (c#), faire des modifications dessus mais rien à faire, je n'y arrive pas ! C'est pour cela que je viens demander de l'aide sur ce forum français car l'anglais et moi ça fais deux :oops: .

Merci de vos réponses!

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Faire bouger un objet avec le doigt sur Android

Message par boubouk50 » 02 Mai 2017 17:28

Bonjour LubDen,

Peux-tu nous poster un bout de code, des visuels, bref ce que tu as en cours, histoire qu'on sache comment t'orienter, stp?
Aussi, quel type de gamePlay: un swipe, une flèche avec une force, etc

Techniquement, tu vas devoir récupérer un vecteur 2D (swipe à l'écran -> Post de Drakulo aujourd'hui) et le transformer en vecteur 3D. Il te manque donc un axe: la profondeur. Celui-ci devra être déterminé à l'avance selon ton bon vouloir.
Si tu fais une flèche dont tu dois gérer la force, alors tu prédétermines la profondeur pour que le joueur se cale dessus.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LubDen
Messages : 10
Inscription : 02 Mai 2017 17:05

Re: Faire bouger un objet avec le doigt sur Android

Message par LubDen » 02 Mai 2017 21:07

Salut,
Tout d'abord merci de ta réponse !!
Pour répondre à tes questions, je ne souhaite pas utiliser une flèche de force donc je pars pour un swipe ! Dans ma tête cela ma parait plutôt clair, la façon dont cela marche mais pour y retranscrire en code, ce n'est pas la même !

Je viens d'essayer d'utiliser le code qui provient du lien que tu m'as conseillé. J'ai essayer quelques trucs et voila mon code :

Code : Tout sélectionner

public class Swipe : MonoBehaviour {

	private Vector2 startPosition;
	private Vector2 endPosition; 
	private Vector2 currentPosition; 
	private string text;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		if (Input.touchCount == 1) {
			var touch = Input.touches [0];
			switch (touch.phase) {
			case TouchPhase.Began:
				//On stock le point de départ
				startPosition = touch.position;
				text = "Positon départ : " + startPosition;
				break;
			case TouchPhase.Ended:
				//Stock point de fin
				endPosition = touch.position;
				text = "Positon fin : " + endPosition;
				break;
			case TouchPhase.Moved:
				//Stock point de fin
				currentPosition = touch.position;
				text = "Positon courrante : " + currentPosition;
				break;
			}
				
			transform.position = Camera.main.ScreenToWorldPoint(new Vector3(currentPosition.x, currentPosition.y, 1));
		}
	}

	void OnGUI(){
		GUI.Label (new Rect (10, 10, 500, 200), text);
	}
}
Grace à cela j'arrive à faire bouger mon ballon et à le faire suivre mon doigt mais pas encore à le bouger sur l'axe Z ... J'y travail, j'éditerais mon code en fonction de mes résultats ! En attendant toute aide pour cela est la bien venue !

Merci de votre aide ! a+

LubDen
Messages : 10
Inscription : 02 Mai 2017 17:05

Re: Faire bouger un objet avec le doigt sur Android

Message par LubDen » 03 Mai 2017 15:36

Petit up, j'ai éditée ma précédente réponse :-D

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Faire bouger un objet avec le doigt sur Android

Message par boubouk50 » 03 Mai 2017 15:41

Et?

Dans ton code, déjà ce qui frappe c'est

Code : Tout sélectionner

transform.position = Camera.main.ScreenToWorldPoint(new Vector3(currentPosition.x, currentPosition.y, 1));
Donc ton ballon suivra ton doigt quoi qu'il arrive, il faut déterminer si un shoot a été effectué grâce à tes conditions plus haut, et si c'est le cas, alors le ballon devra suivre la trajectoire déterminée, ton doigt sinon.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LubDen
Messages : 10
Inscription : 02 Mai 2017 17:05

Re: Faire bouger un objet avec le doigt sur Android

Message par LubDen » 03 Mai 2017 19:39

Merci de ta réponse.

En effet dans tout les cas mon ballon suivra mon doigt, et c'est normal ! J'améliore mon code petit à petit, pour le moment le but était juste de réussir à faire suivre la balle en fonction de mon doigt. La suite arrive bientôt !

Bonne soirée.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Faire bouger un objet avec le doigt sur Android

Message par boubouk50 » 04 Mai 2017 09:31

boubouk50 a écrit :Peux-tu nous poster un bout de code, des visuels, bref ce que tu as en cours, histoire qu'on sache comment t'orienter, stp?
Je ne vois absolument pas comment tu programmes ton gamePlay. Une petite explication serait la bienvenue si tu veux de l'aide plus ciblée, et aussi, je suis intrigué.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LubDen
Messages : 10
Inscription : 02 Mai 2017 17:05

Re: Faire bouger un objet avec le doigt sur Android

Message par LubDen » 04 Mai 2017 14:06

Salut,
Je vais expliquer mon idée pour que ça soit plus claire !
Tout d'abord j'aimerais développer un jeu avec Unity pour améliorer mes compétences avec ce dernier (C# ... ). Je me suis donc tourné vers un jeux de Basketball. Un jeux de lancer de ballon de basket plutôt :roll: car j'ai toujours aimé le basket et c'est pour moi une motivation en plus pour développer un petit jeu.
Ce jeu comportera des menus mais cela restera très simple puisque l'objectif est plus le coté "gameplay".
En ce qui concerne le gameplay voici un exemple de ce que j'aimerais faire : https://www.youtube.com/watch?v=aD5NP4M1OdY. PS : La vidéo n'est pas la mienne elle sert d’exemple.
J'aimerais par contre que mon jeu ai plus de possibilités au niveau du ballon : Mettre de l'effet dans un premier temps et pourquoi pas tirer le ballon depuis la droite ou la gauche (sans forcement que ça soit depuis le milieu de l'écran comme sur la vidéo).
Ainsi pour lancer mon ballon j'aimerais utiliser le tactile d'un smartphone. Pour le moment j'arrive à bien gérer le tactile mais c'est plutôt sur les déplacements du ballon que je galère.
Voici le code que j'ai fais dernièrement :

Code : Tout sélectionner

Vector3 mouvement =Camera.main.ScreenToWorldPoint(new Vector3(currentPosition.x, currentPosition.y, 1));
GetComponent<Rigidbody>().AddForce (mouvement * speed * Time.deltaTime);
Avec ce code j'arrive plus ou moins :-/ à faire bouger mon ballon dans tous les axes mais pas encore comme j'aimerais vraiment. Je galère un peu la dessus et je trouve peu de solution sur internet ou grâce aux tests que j'effectue pour voir comment réagit mon ballon. Je vais réfléchir et tester le coté "force" et distance sur l'axe Z en fonction de la vitesse du swipe et de la distance entre le point de départ et celui de fin.

J'espère avoir été plus clair ! Merci, A+.
Je m'excuse des fautes d'orthographe, ça n'à jamais été mon point fort :rougefaché:.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Faire bouger un objet avec le doigt sur Android

Message par boubouk50 » 04 Mai 2017 14:23

Alors oui, ton swipe devra te renvoyer deux choses à la fin de celui-ci:
Le temps écoulé et le vecteur directionnel.
Le temps écoulé et la taille du vecteur te donneront la vitesse de la balle au moment du lancer. Le vecteur directionnel normalisé donnera la trajectoire initiale.
N'ayant pas de profondeur sur le swipe 2D, c'est à toi de le déterminer. Ici tu mets 1, mais peut-être ce n'est pas le bon calibrage, le ballon partira peut-être trop haut ou trop bas. Il faudra le fixer par des tests de jeu.

C'est vraiment tout ce que tu as à faire pour le moment.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »