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

Graphisme dans un jeu

Shakaan
Shakaan
Niveau 10
23 décembre 2008 à 01:14:58

ben nan, t'a un grand tableau avec des cases qui contiennent un numero, pis une fonction qui parcourt les lignes les une après les autres en affichant les tuiles selon le numero qu'elle rencontre dans le tableau, quoi.. genre,t'a un tableau qui fait 64x64 et qui contient soit 0 (noir), soit 1 (blanc) et des tuiles qui font 16x16 pixels. Ca te fait:

for (int i=0; i< 64; i++){
for (int j=0; j< 64; j++){
if (tableau[i][j]= 0) dessine (noir, i*16, j*16);
if (tableau[i][j]= 1) dessine (blanc, i*16, j*16);
}
}

en gros... le premier for parcourt les colonnes, a chacune de ses boucle le second for parcourt une ligne et les deux if servent a déterminer ce que tu positionne, et le i*16, j*16 sert a transformer les coordonnées sur le tableau en coordonnée sur l'image.. t'a qu'a imaginer le tableau posé sur l'image avec chacune de ses case qui mesure 16x16 pixels quoi..

nbatteur
nbatteur
Niveau 8
23 décembre 2008 à 01:20:17

ouai ca me parrait assez compliquer comme ca et assez lourd si jamais tu as beaucoup de tuiles non ? :ouch2:
Bref je vais voir et si jamais j'ai un probleme, je viendrais voir ici.

Merci à tous

Shakaan
Shakaan
Niveau 10
23 décembre 2008 à 01:38:26

oui, c'est pas mal lourd :peur: d'un autre coté pour calculer des collisions, c'est super simple, pareil pour résoudre des bugs vu que ce qui est affiché dépend de ce qu'il est censé se passer..

nbatteur
nbatteur
Niveau 8
23 décembre 2008 à 01:45:23

effectivement ca a des avantages aussi. Bon ba je vais voir comme je le sent. Si j'ai des questions, je repasserais ici. de toute facon il faut deja que je commence à creer perso, batiments...

pilo1488
pilo1488
Niveau 10
23 décembre 2008 à 11:39:32

for (int i=0; i< 64; i++){
for (int j=0; j< 64; j++){
if (tableau[i][j]= 0) dessine (noir, i*16, j*16);
if (tableau[i][j]= 1) dessine (blanc, i*16, j*16);
}
}

OUCH!!!!!!

la c'est quand meme assez naif comme implémentation.
Tu peux faire beaucoup mieux en calculant deja les index de départ en fonction de ton écran et en connaissant le nombre max sur chaque ligne et chaque colone de mosaique, n'afficher que ce qui sera reelement affiché sur l'écran :)

int start_i = screen_x / 16 // pour une mosaique de 16x16, et les coordonné de l'ecran en pixel
int start_j = screen_y / 16

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

// gerer le cas si start_i + i est > au nombre max de tile dans la map

if (tableau[start_i + i][start_j + j]= 0) dessine (noir, i*16, j*16);
if (tableau[start_i + i][start_j + j]= 1) dessine (blanc, i*16, j*16);
}
}

Shakaan
Shakaan
Niveau 10
23 décembre 2008 à 17:34:30

way mais dans mon jeu, l'ecran est fixe, tout est affiché :noel: après c'est clair qu'il faut faire comme tu dis, pas de probleme, prendre juste une petite partie du tableau..

final-hearts
final-hearts
Niveau 10
23 décembre 2008 à 18:51:04

Pour les maps tu peux mettre au point un mappeur, j'en avez fait un mais jue sais plus où je l'a

final-hearts
final-hearts
Niveau 10
23 décembre 2008 à 18:51:43

Pour les maps tu peux mettre au point un mappeur, j'en avais fait un mais je sais plus où je l'ai mis, si je le retrouve je te l'enverrai.

nbatteur
nbatteur
Niveau 8
23 décembre 2008 à 18:59:02

t'embète pas, c'est pas grave je vais essayer. J'aime bien la satisfaction de faire des choses entièrement personnelles (c'est pour ca d'ailleur que je cherche pas un graphiste mais que je les faits.)

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