Wumbaloo Posted June 27, 2017 Share Posted June 27, 2017 Bonsoir, Un nouveau problème se pose à moi, je travaille à sa résolution depuis déjà plusieurs heures et j'essaye d'y voir plus clair c'est pourquoi je poste ici. En faite, je réalise un système qui permettrait au joueur de déplacer un objet via la souris, jusqu'ici, pas de soucis, je sais faire ça. Seulement, je n'arrive pas à établir l'algorithme de "Depth" pour la fonction getWorldFromScreenPosition étant donné que ma caméra est en vue de plongée. function move() local cursorX, cursorY = getCursorPosition() if (cursorX and cursorY and isElement(clickedElement)) then local _, _, posCameraZ = getCameraMatrix() local rotX, _, _ = getElementRotation(getCamera()) local depth = posCameraZ local posElementX, posElementY, posElementZ = getWorldFromScreenPosition(cursorX*screenX, cursorY*screenY, depth) local posBusZ = getGroundPosition(posElementX, posElementY, posElementZ) + getElementDistanceFromCentreOfMassToBaseOfModel(clickedElement) * 2 outputDebugString("Depth: "..tostring(depth)) setElementPosition(clickedElement, posElementX, posElementY, posElementZ) end end En jeu ma vue c'est celle-ci: Merci à vous pour l'aide que vous apporterez! Link to comment
Moderators Citizen Posted June 27, 2017 Moderators Share Posted June 27, 2017 J'ai pas compris ton soucis. Qu'est-ce que depth, et a quoi doit il te servir dans ton script ? Link to comment
Wumbaloo Posted June 28, 2017 Author Share Posted June 28, 2017 Le depth c'est la profondeur pour la fonction getWorldFromScreenPosition, parce que tu renseigne le X, et Y mais il faut renseigner la profondeur de la caméra vers le sol, cependant, ma caméra est inclinée ce qui fait que le sol n'a pas la même profondeur sur tout l'écran, genre en bas de l'écran, la profondeur (depth) vas être de 12 admettons et tout en haut de 32 car ma caméra n'est pas droite. ça me servirait à aligner l'objet avec la souris car actuellement il fait des trucs chelou à cause du depth qui n'est pas bien renseigné. Link to comment
Moderators Citizen Posted June 30, 2017 Moderators Share Posted June 30, 2017 (edited) Tu hardcodes la valeur depth à 999 puis tu utilises processLineOfSight entre la caméra x, y, z et le x, y, z de ce que t'a retourné getWorldFromScreenPosition. Les valeurs hitX, hitY, hitZ retourné par processLineOfSight représenteront le point d'impact avec le sol, objet ou autre (tu peux régler ce que tu dois prendre en compte pour le point d'impact. Par défaut: tout). Edited June 30, 2017 by Citizen Link to comment
Wumbaloo Posted June 30, 2017 Author Share Posted June 30, 2017 (edited) ça résous rien à mon problème, en faite ce que j'ai comme problème c'est que c'est les mauvaises positions que je récupère lorsque mon curseur est pointé par rapport au depth. J'ai essayé ce que tu m'as dis mais ça m'avance en rien. Quand je met la caméra en vue du dessus donc en 2D quoi, là j'ai aucun problème ma fonction marche. Mais quand je penche la caméra, ça déraille. Edited June 30, 2017 by Wumbaloo Explications ajoutés Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now