PDA

Voir la version complète : [PSP][Aide] Zoom caméra


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.

daaa57150
13/05/2008, 12h21
Est ce que ca fait ramer ta psp pendant le zoom? parce que je pense qu'une image de 960*540 ca ne marche pas, tout simplement... la psp est limitée à 512*512.
Je pense que ta technique est la bonne, de toute facon ces calculs de ratio + repositionnement ne sont faits qu'une seule fois pendant le zoom, ensuite ben tout est a sa place avec le bon stretch donc ca roule.
Et puis à mon avis t'as de la marge niveau calculs, tu ne fais pas grand chose, t'as pas tellement d'objets à l'ecran quand même.. Sérieux, j'ai programmé des générateurs de particules, avec calculs de rotation+agrandissement+changement de teinte (à chaque frame), et ca rame (fps<60) à partir de 300 particules si elles sont grosses. t'enlèves l'application de la teinte et ca rame à +de 700.
A mon avis tu dois en être loin non? Ajoute dans ton code les fonctions de bench pour avoir une indication, ca rame quand le chiffre atteint 16.2 ou 16.3..
Et sinon, t'as pas une beta à nous proposer qu'on puisse voir ca :bave: ?

Melkior
13/05/2008, 17h44
Merci daaa57150. :emoticon_

Non, ça va le programme marche bien. Si j’ai demandé ça c’est parce que, tant qu’à apprendre à programmer sur PSP, autant le faire de façon efficace. :graduated

960*540 c’est le décor une fois étiré. Bien sur une seule portion (centrée sur les combattants) est affichée. :ninja:

Encore une fois, je trouve que ça ferait plus propre si je pouvais faire le zoom final sur une image constituée de tous les objets. Ca permet de dégager tous les stretch individuels et les repositionnement (bon même si ça marche ,.. Ok je suis un peu maniaque :wallbash:) :hmm:

Ca m’a l’air intéressant ce générateur de particule. C’est quoi exactement ? :bounce:

A part ça, je n’ai pas encore commencé réellement le jeu sur PSP. Ce jeu de combat je l’ai déjà fait sur DS. Là j’en suis à créer des petits programmes individuels de manière à voir ce que je peux ou ne peux pas faire sur la console (franchement on peut beaucoup de choses sur cette console par rapport à la DS… South Park a sans doute raison, c’est dieu qui l’a créé). :roll1:

C’est un jeu de combat regroupant les membres de ma famille et réalisé à la manière d’un Mortal Kombat mais avec un gameplay plus proche d’un Street Fighter ou d’un Bleach (PSP, mais en 2D). :brucelee:

Le problème c’est qu’il y des gens qui ne voudront pas voir leur image utilisée sur internet. Donc, pourquoi pas mais avec une version allégée (les membres qui voudront ). :dblthumb:

daaa57150
13/05/2008, 17h59
960*540 c’est le décor une fois étiré. Bien sur une seule portion (centrée sur les combattants) est affichée. :ninja:
ca je me doute bien :) le hic c que en hardware la PSP te limite a utiliser des images au max 512*512, si tu en crées une + grande ca devrait pas marcher, même si tu l'affiches pas.

Ca m’a l’air intéressant ce générateur de particule. C’est quoi exactement ? :bounce:ca génère des particules :p les particules en général c'est des images et le générateur les créé au fur et à mesure, leur donne une vitesse, une rotation, une couleur ou ce que tu veux comme effet, et s'occupe de les nettoyer en fin de vie. ca sert à faire du brouillard, de la pluie, de la poussière, de la neige etc... si t'essayes mon jeu "Mega Drops" le niveau "frozen" a un générateur pour faire tomber de la neige.

Ce jeu de combat je l’ai déjà fait sur DS.dispo?

Le problème c’est qu’il y des gens qui ne voudront pas voir leur image utilisée sur internet. Donc, pourquoi pas mais avec une version allégée (les membres qui voudront ). :dblthumb:
ou une private beta :whst:

Melkior
13/05/2008, 20h28
Je suis content daaa57150. :biggrinth

Maintenant, je sais qu’on ne peut pas utiliser une image de plus 512x512, et ça même sans la dessiner. Je vais pouvoir continuer sur ma lancer sans culpabiliser. :bravo:

Excellent pour ton générateur de particule. J’ai failli dire que ça pouvait être pratique pour la générer une chute de neige, mais j’avais peur d’être complètement à l’ouest. :S
C’est dans un environnement 2D ou 3D ? :notworthy

Ca pourrait m’être pratique pour calculer les trajectoires et la vitesse des personnages après avoir été frappé. Ceci dit, la plupart des coups suivent une trajectoire parallèle au sol (je ne sais pas si je suis clair). Mais ça devrait rendre bien quand ils sont frappé en plein vol (changement de trajectoire en pleins saut, rebond sur le sol, accélération et décélération… faut que je revois mes cours de physique :blink:) . :cat:

Le jeu sur DS est comme sur PSP, donc non dispo (faut voir en mp,… si elle n’est pas distribuée, … mais le mieux, ça reste de rentrer dans ma famille :devil:).

Ceci dit pour la version PSP, je suis certain que je vais en convaincre quelques un d’être « publié ». Pour le moment il n’y a vraiment rien de montrable. :construct

J’ai juste fait les programmes de test de :
- Zoom automatique et recentrage des personnages en fonction de leurs déplacement horizontal et vertical.
- Effets de lumières pour les attaques et les barres de vie (merci les PNG 24bits)
- Ombres plus ou moins dynamique (prochain Topic d’aide lol)
- Attaques distantes …

Le reste sera comme sur DS, donc je vois comment faire :whst:

Bon, c’est pas tout ça mais il faut que je me concentre sur mon prochain topic de demande d’aide. :biggrinth

archipel
13/05/2008, 20h48
Le jeu sur DS est comme sur PSP, donc non dispo (faut voir en mp,… si elle n’est pas distribuée, … mais le mieux, ça reste de rentrer dans ma famille :devil:).


ou alors que tu telecharge ca : ?????????? :)

daaa57150
15/05/2008, 10h23
C’est dans un environnement 2D ou 3D ? :notworthyle mien c'est en 2D.

Ca pourrait m’être pratique pour calculer les trajectoires et la vitesse des personnages après avoir été frappé. Ceci dit, la plupart des coups suivent une trajectoire parallèle au sol (je ne sais pas si je suis clair). Mais ça devrait rendre bien quand ils sont frappé en plein vol (changement de trajectoire en pleins saut, rebond sur le sol, accélération et décélération… faut que je revois mes cours de physique :blink:) . :cat:alors là je vois pas en quoi un générateur de particules peut t'aider pour ca... ca peut par contre t'aider a avoir des beaux effets lors d'un impact par exemple

Le jeu sur DS est comme sur PSP, donc non dispo (faut voir en mp,… si elle n’est pas distribuée, … mais le mieux, ça reste de rentrer dans ma famille :devil:).mmm.. t'as une soeur :fleur:?

Bonne continuation.