Melkior
13/05/2008, 04h09
Bonjour à tous. :D
Voici mon nouveau problème (j’ai attendu 2 jours pour espacer un peu mes sujets lol). :ninja:
Je ne pense pas qu’il soit très compliqué, et je trouverais certainement une solution seul, mais ça ne sera probablement pas la meilleur (mauvaise optimisation… :ranting:). En plus les réponses sur ce topic aideront aussi les autres utilisateurs d’OSLib. :whst:
Bref voilà. Mon jeu est un jeu de combat (style Mortal Kombat, Street Fighters…). L’espace d’un écran (480 pixels) n’est pas suffisant comme espace maximum entre mes 2 combattants. :chaise:
J’ai donc créé une fonction qui simule l’éloignement de la camera en dé-zoomant tous les objets composant la scène. :roll1:
Donc, en gros je fais ça : :S
• Je calcul la position relative des objets par rapport au début du décor.
• Ensuite je calcul le zoom nécessaire en divisant la distance entre mes personnages et 480 (s’ils sont espacé de 960, alors l’éloignement sera de 2 et donc le stretch de 1/2)
• Je réduis la taille de tous les objets en utilisant le rapport obtenu précédemment.
• Je calcul leur nouvelle position par rapport au décor réduit.
• Je déplace tous les objets de manière à ce que les personnages soient centrés et que le décor ne dépasse pas sur les cotés.
• Je dessine le tout, plus les trucs supplémentaires non zoomés (compteur, barres de vie, nom …etc.)
Voilà tout fonctionne très bien :bave:. Mais je ne pense pas que ça soit fait d’une manière très intelligente. Je réduis tout individuellement, re-calcule les position et dessine. Ça fait beaucoup de calculs inutiles, surtout si le nombre d’objets augmente. :mf_hide:
Il vaudrait mieux que je dessine le tout en buffer et qu’enfin j’applique le stretch. :huh:
Donc je souhaiterais plutôt :
• Dessiner dans une sorte de buffer (l’image en buffer devra atteindre une taille de 960 x 540 quand les personnages seront éloignés au maximum) .
• Ensuite pouvoir travailler dessus avec « Stretch » comme si c’était une simple image (je ne sais même pas si c’est possible).
• Redessiner dessus les éléments manquant (compteur, barres de vie, nom …etc.)
• Pour terminer afficher le dessin final
Je vais chercher si tout ce que je souhaiterais faire est possible, et comment (faut que je me donne du mal, moi aussi lol). :bigouche:
Mais je voudrais savoir si quelqu’un a essayé de le faire, comment, et quel est le meilleur choix. :hmm:
Merci d’avance.
Voici mon nouveau problème (j’ai attendu 2 jours pour espacer un peu mes sujets lol). :ninja:
Je ne pense pas qu’il soit très compliqué, et je trouverais certainement une solution seul, mais ça ne sera probablement pas la meilleur (mauvaise optimisation… :ranting:). En plus les réponses sur ce topic aideront aussi les autres utilisateurs d’OSLib. :whst:
Bref voilà. Mon jeu est un jeu de combat (style Mortal Kombat, Street Fighters…). L’espace d’un écran (480 pixels) n’est pas suffisant comme espace maximum entre mes 2 combattants. :chaise:
J’ai donc créé une fonction qui simule l’éloignement de la camera en dé-zoomant tous les objets composant la scène. :roll1:
Donc, en gros je fais ça : :S
• Je calcul la position relative des objets par rapport au début du décor.
• Ensuite je calcul le zoom nécessaire en divisant la distance entre mes personnages et 480 (s’ils sont espacé de 960, alors l’éloignement sera de 2 et donc le stretch de 1/2)
• Je réduis la taille de tous les objets en utilisant le rapport obtenu précédemment.
• Je calcul leur nouvelle position par rapport au décor réduit.
• Je déplace tous les objets de manière à ce que les personnages soient centrés et que le décor ne dépasse pas sur les cotés.
• Je dessine le tout, plus les trucs supplémentaires non zoomés (compteur, barres de vie, nom …etc.)
Voilà tout fonctionne très bien :bave:. Mais je ne pense pas que ça soit fait d’une manière très intelligente. Je réduis tout individuellement, re-calcule les position et dessine. Ça fait beaucoup de calculs inutiles, surtout si le nombre d’objets augmente. :mf_hide:
Il vaudrait mieux que je dessine le tout en buffer et qu’enfin j’applique le stretch. :huh:
Donc je souhaiterais plutôt :
• Dessiner dans une sorte de buffer (l’image en buffer devra atteindre une taille de 960 x 540 quand les personnages seront éloignés au maximum) .
• Ensuite pouvoir travailler dessus avec « Stretch » comme si c’était une simple image (je ne sais même pas si c’est possible).
• Redessiner dessus les éléments manquant (compteur, barres de vie, nom …etc.)
• Pour terminer afficher le dessin final
Je vais chercher si tout ce que je souhaiterais faire est possible, et comment (faut que je me donne du mal, moi aussi lol). :bigouche:
Mais je voudrais savoir si quelqu’un a essayé de le faire, comment, et quel est le meilleur choix. :hmm:
Merci d’avance.