void TouchController::update(float dt){ resetTouchController(); if (_tap.x<0||_tap.y<0) return; Point tap = _tap; //donde esta posicionado el objeto al que se vincula el controlador //en este caso a la poicion del objeto player le restamos la mitad de su alto y la mitad de su ancho //para obtener la esquina inferior izquierda auto originX = getParent()->getPositionX() - getParent()->getBoundingBox().size.width*0.5; auto originY = getParent()->getPositionY() - getParent()->getBoundingBox().size.height*0.5; auto playerX = originX + getParent()->getBoundingBox().size.width; auto playerY = originY + getParent()->getBoundingBox().size.height; //en funcion de la posicion del player y de donde toque el usuario, //actualizamos hacia donde debe ir el sprite. if (tap.x > playerX && tap.y > playerY){ _controller.upRight = true; } else if (tap.x < originX && tap.y> playerY){ _controller.upLeft = true; } else if (tap.x > playerX && tap.y < originY){ _controller.downRight = true; } else if (tap.x < originX && tap.y < originY){ _controller.downLeft = true; } else if (tap.x < originX){ _controller.left = true; } else if (tap.x > playerX){ _controller.right = true; } else if (tap.y < originY){ _controller.down = true; } else if (tap.y > playerY){ _controller.up = true; } }