2010-08-29 4 views
1

Étant donné 2 fonctions Translate (x, y) et Scale (x), je souhaite que la position de la caméra soit toujours le centre de l'écran. Il y a aussi une variable scalefactor et en la modifiant, elle effectue un zoom avant ou arrière à partir du centre de l'écran. Étant donné que je connais les dimensions de l'écran en pixels, comment pourrais-je y parvenir? MerciAssurez-vous que la position de la caméra est toujours le centre de l'écran?

+0

Cela dépend si vous voulez vraiment redimensionner l'image ou non. Vous pouvez toujours ne pas redimensionner l'image et utiliser la taille de l'image pour la traduire à l'endroit voulu. –

Répondre

0

Quelque chose comme ceci:

screen_coords = (world_coords - camera_world_coords) * camera_zoom + 0.5 * screen_dimension 
+0

Comment cela fonctionne-t-il en termes de Translate() et Scale()? – jmasterx

+1

@Milo: Vous n'obtiendrez pas de code parfaitement fonctionnel ici. SO n'est pas un site "Envoyez-moi du code qui fait X". Lire l'équation tdammers posté et l'implémenter en termes de Translate and Scale. –

+0

Indice: l'opérateur * dans mon exemple est une échelle, les opérateurs + et - sont traduits. Si vous ne pouvez pas le comprendre avec cette information, revenez à la meule. – tdammers

Questions connexes