CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[c++/SDL] animation par carré d'image

BigGamer95
BigGamer95
Niveau 10
26 juillet 2006 à 02:29:47

:salut:

j´ai commencé l´animation de combat de mon jeu ^^
j´ai commencé par decoupé une image en carré de 96, et de les affiché un par un

"firstscreen = SDL_LoadBMP("misc3.bmp");
int w = firstscreen->w/96;
int h = firstscreen->h/96;
SDL_Rect rectanim[w][h];

for (int i=0;i<h;i++) {
for(int j=0;j<w;j++) {
rectanim[j][i].x=96*j;
rectanim[j][i].y=96*i;
rectanim[j][i].w=96;
rectanim[j][i].h=96;
}
}

for (int i=0;i<h;i++) {
for (int j=0;j<w;j++) {

SDL_BlitSurface(firstscreen,&rectanim[j][i],screen
,&rect1);
SDL_Flip(screen);
}
} "

ca marche, mais 2 problemes :

1) trop rapide lol

2) le principal probleme, je souhaite faire que l´utilisateur puisse precisé facilement a partir de quel carré commencé, puis dans l´ordre jusqu´a tel carré
mais comment faire?

j´ai reussi a faire demandé une ligne entiere, ou une collone, mais pas par exemple la fin d´une ligne, puis la ligne suivante puis le debut de celle d´apres :s

quelqu´un sait il comment je doi m´y prendre svp?

:merci:

:bye:

_Xaar
_Xaar
Niveau 10
26 juillet 2006 à 03:06:49

Pour la rapidité à mon avis tu dois limiter le framerate qui là doit tourner à fond.

Pour l´histoire des carrés je vois vaguement ce que tu veut dire mais si tu mettais un lien vers misc3.bmp ce serait encore plus clair pour que je sois sûr :)

Néanmoins pour quand même expliquer parce que cà à l´air de ressembler à comment je gère parfois les tiles je gère les carrés non pas par ligne et par colonne mais par numéro, par exemple 3 lignes de 10 tiles cà fait un truc sur 29 (puisque le 1er est zéro), et avant de les afficher je divise le nombre sur 10, j´arrondi au nombre inférieur --> j´obtiens la rangée y, puis je retire le nombre obtenu fois 10 du total pour obtenir la colonne x.

En python comme d´hab:

carré=15
y=int(floor(carré/10))
x=carré-y*10

Tu a juste besoin de faire une boucle sur quelque chose dans ce genre en commencant par un carré égal à celui par lequel commencé et en terminant par celui par lequel finir.

BigGamer95
BigGamer95
Niveau 10
26 juillet 2006 à 03:42:23

si je comprend bien, au lieu de faire
rectanim[j][i] a chaque fois, je peux attribué a chacun un nombre pour que ca soit plus simple
du genre
rect[i].x = rectanim[j][i].x dans une double boucle (i et j)
donnant ainsi rect[0].x = rectanim[0][0]
etc.
et donc avoir plus facilement leur ordre

c´est ca que tu veux dire? dans un sens c´est moins compliqué ^^

BigGamer95
BigGamer95
Niveau 10
26 juillet 2006 à 03:42:53

ah oui

http://img113.imageshack.k.us/my.php?image=misc3yx7.png

et pour la boucle, je vais re-essayé

BigGamer95
BigGamer95
Niveau 10
26 juillet 2006 à 03:53:33

(dsl du triple post)

int k=0;
for (int i=0;i<h;i++) {
for(int j=0;j<w;j++) {
rectanim1[k].x = rectanim[j][i].x;
rectanim1[k].y = rectanim[j][i].y;
rectanim1[k].w = rectanim[j][i].w;
rectanim1[k].h = rectanim[j][i].h;
k++;
}
}

int i = 0;
int a = 2;
for (i=i;i<=a;i++) {

SDL_BlitSurface(firstscreen,&rectanim1[i],screen,&
rect1);
SDL_Flip(screen);
}

---------

ca marche, merci pour l´idée ^^
me reste plus qu´a diminué la vitesse, l´adapté a mon jeu, faire les position en fonction de l´attaquant, etudié le thread je crois pour faire le son en meme temps que l´anim, suivi des degat, etc.
et l´animation de combat sera fini XD

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment