Go Down

Topic: schéma de déverrouillage sur écran tactile (Read 124 times) previous topic - next topic

ababi

Bonjour :)

Dans le cadre d'un jeu, je cherche à déverrouiller une porte à l'aide d'un schéma à tracer sur un écran tactile, un peu comme on peut trouver pour déverrouiller son smartphone, avec un système de points à relier, et un trait qui "suit" le doigt, jusqu'à se faire attraper par le magnétisme des points.

J'ai commencé à regarder rapidement comment faire fonctionner ça, mais ça me semble un peu "compliqué", et du coup, je voulais savoir si je partais dans la bonne direction, ou s'il y a moyen de faire plus simple, quitte à ce que ce soit avec autre chose que de l'arduino si nécessaire.

Dans mon esprit, j'imagine devoir coder les cercles des "points", surveiller quand le doigt s'approche suffisamment d'un autre point pour s'y "accrocher", tracer un trait entre mon dernier point d'accroche et le doigt qui bouge, et bien sûr vérifier que les points ont été accrochés dans le bon ordre.

Ça me semble être assez fastidieux...

savoriano

#1
Sep 22, 2019, 08:51 am Last Edit: Sep 22, 2019, 09:35 am by savoriano
Bonjour,
tu peux utiliser la technique des tiles: subdiviser ton écran en boxs et avec une formule simple tu peux savoir dans quel tile ton doigt il est en train d'appuyer.
Dans mon thermostat (message nr #29) j'utilise cette technique.

Code: [Select]
  int8_t Tile = (p.x / BOXSIZE * 5)  + (p.y / BOXSIZE);// Quale tile ho cliccato?

P contient les coordonnées ou j'ai appuyé.
BOXSIZE est la dimension de mon tile (mon cas BOXSIZE = 36)
5 est le nombre de tiles dans une colonne (mon ecran est un 240*180    180/36=5)
si par exemple mes coordonnées sont x=100   y=90.
TILE = (100/36*5) + (90/36)
Tile  = (10) + (2) = 12
donc j'ai appuyé sur le tile #12 (le 3me de la 3me colonne)

Avec cette technique tu peux aussi dessiner dans ton écran tes points facilement et proprement.
Pardonnez moi pour mon français, ce n'ai pas ma langue maternelle.

ababi

Merci Savoriano !
ça me paraît en effet déjà plus simple :)
je vais travailler dans ce sens

Go Up