begin process at 2012 05 30 02:23:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

vendredi 4 juin 2010 à 20:12:38 | Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

gregroar

Voici mon problème:
Je sais dessiner dans une fenêtre en api win32 des points, lignes, rectangles ou autres.
Mon idée serait d avoir un monde de 1920 par 1200 px (ou taille variable en fonction de l'écran)
le décor serait mouvant, donc chaque pixel bougerait en fonction de différents parametres.
il pourrait être détériore comme dans worms àrmageddon, il serait composé de différents éléments qui bougent indépendament les uns des autres, mais les joueurs qui s' y affronteraient en temps réel, en meme temps pouraient sauter d'un élément du décor à l autre, se protéger derriere un tas de pixels...
donc ils se tirent dessus et chaque joueur controle un personnage avec un bout du clavier(wasd/espace/zghj...haut bas gauche droit/ctrl/numpad)
voir un troisieme joueur qui jouerait avec la manette de xbox 360 ou autre, mais alors la je sais pas dutout comment on fait pour recevoir les vk_ de la manette... :<(
Bref je débute ce prog et j aimerais des exemples de jeux 2d a la worms et savoir si c est possible de créer une matrice de pixels qui se raffraichit a chaque fois que le décor bouge et que les armes explosent ou se déplacent, qu un joueur bouge...
Quelle méthode serait la plus simple et rapide, sachant que je ne veux ni utiliser opengl ou direct x ou toute autre librairie dont je ne connais rien.
J aimerais n utiliser que du c++ en api win 32.
créer un bitmap en mémoire, avec pour chaque pixel 0/1 ou 256 couleurs et jouer sur ces pixels en fonction de leur propriété.
[1920][1200][0/1][transparence][couleur]...???
Du coup ca me permettrait de tester à chaque déplacement des missiles ou lazer... envoyés, avec getpixel si un pixel du décor s ' y trouve, si il y a un joueur, ou un autre missile...
Et pareil pour le déplacement des joueurs, je saurais s'il doit continuer à tomber, ou s'il a du décor sous lui, s'il est sur de l'eau ou du dur...
Voilà c'est à peu pres tout.
J'avais fait un truc du genre en tres bazic sur ti82+ ou chacun leur tour deux joueurs s'envoyaient un pixel en parabole avec du vent et la gravité dans un décor aléatoire j aimerais refaire ca en mieux sur pc...
Merci pour toute aide j espère que vous aurez compris mon problème, je ne sais pas par ou commencer. je ne sais pas quelles fonctions appeler, j ai une bonne idée des algo, mais aucune du code.
le pire c est pour la retranscription du monde en pixels sur l ecran, j ai peur de faire un truc trop lent, bien que j aie un i7^^
Merciiiiiiiiiiii
vendredi 4 juin 2010 à 20:51:15 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

gregroar

En gros ca ressemblerait à ca:
lundi 7 juin 2010 à 13:28:18 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

gregroar

Bonjour les mentors.
bon ba voila. J'ai fait une ptite fonction de deux lignes qui me remplit pixel par pixel tout mon écran.
Eh ba ca prend vachement de temps.
Alors je me dis que j'ai encore beaucoup à apprendre.
Aussi j'aimerais savoir quoi.
Comment se fait t il qu'un ordi puisse afficher un fps a 60 frames par seconde et que mon jeu 2d ne parvienne pas a
dessiner tout l'écran en 1 minute.
Je comprends donc que je dois d'abord calculer toute mon image, puis l'afficher.
Mais comment on faiiiiiiiiiiiiiiittttt??????
Exemples?
SVP.
Aide?
Tutoriel?
AMIS?
hep!
Ca vous dit pas d jouer a mon jeu?
Avouez qu ca a l air pas mal non?
Si vous avez aimé worms, vous allez kiffer Balls
lundi 7 juin 2010 à 22:02:38 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

Arnaud16022

Membre Club

Avec SetPixel ? C'est l'une des fonctions les plus lentes de l'API win32.
Cherche sur ce site un truc genre "win32 double buffering"
grosso modo tu remplis un tableau qui est en fait ton image, et tu transfères tout d'un coup à l'affichage.
MP si problème

_______________________
Omnia vincit labor improbus
http://calvin-studio.fr
mercredi 9 juin 2010 à 20:13:05 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

Arnaud16022

Membre Club
Réponse acceptée !

http://www.cppfrance.com/codes/BASE-UTILISATION-GDI-API-WINDOWS_46504.aspx

connais pas trop l'api, mais vu msdn, tu devrais avoir moyen d'obtenir le buffer directement.

Juste après
if ( ... CreateDIBSection (...)...){...} , le pointeur 'tmp' doit pointer sur ton buffer de [width]x[height]x[3 couleurs]

Sors ce pointeur de la fonction, mets le en global en attendant. Et change le en unsigned char * , d'ailleurs.
Dans le case:WM_PAINT, essaye de faire tmp[0] = 255. Si le pixel en haut à droite devient rouge, t'as gagné.

_______________________
Omnia vincit labor improbus
http://calvin-studio.fr
mercredi 9 juin 2010 à 22:35:04 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

gregroar

Merci bocouuuuu
dimanche 13 juin 2010 à 16:56:33 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

gregroar

j'ai resolu le probleme de conversion invalide de void to HBRUSH avec dev c++ en supprimant certaines lignes, mais pourquoi ca marche pas?
C'est quoi ce probleme de conversion invalide?
il fo que je fasse quoi pour que ca marche?
hOldBrush = SelectObject (hMDC, hBrush);
In function `LRESULT WndProc(HWND__*, UINT, WPARAM, LPARAM)':
invalid conversion from `void*' to `HBRUSH__*'
dimanche 13 juin 2010 à 18:50:06 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

Arnaud1602

Encore une fois, ce ne sont que des suppositions (je ne connais ni l'API ni ton code), mais je pense que :
- tu ne devrais pas toucher à hBrush
- c'est 'tmp' qu'il faudrait passer de void * à unsigned char *
mercredi 16 juin 2010 à 11:38:51 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

gregroar


ok mais comment je l ecris mon buffer decor?
couleur[][][];
decor[1920][1200][couleur];
ou
decor[1920][1200][r,v,b];
ou
decor[1920][1200][ffffff];

cela pourait il etre bien de creer une structure ou je ne sais trop quoi d autre? inutile?
et puis je ajouter à mon tableau décor des propriétés en plus?
genre:
decor[1920][1200][couleur][matiere][pression][temperature][vecteur];
et est il possible de faire hwnd=decor ou un truc du genre hwnd=createcompatibledc(decor)
et est il possible de n envoyer que les 3 premieres dimensions d un tableau dans un autre?
qu est ce qui est le plus rabide? a=b ou *b

merci encore et bonne prog.
en espérant toujours trouver quelqu un pour m aider dans ce projet. Etudiant ou autre.
Je galère.
mercredi 16 juin 2010 à 17:40:38 | Re : Jeu 2D dessin pixel par pixel? tableau matrice? [1920][1200] trop lent? meilleure méthode?

Arnaud16022

Membre Club
ok mais comment je l ecris mon buffer decor?

->
decor[3*(x+largeur*y)+0] = r
decor[3*(x+largeur*y)+1] = g
decor[3*(x+largeur*y)+2] = b

cela pourait il etre bien de creer une structure ou je ne sais trop quoi d autre? inutile?
-> tant que t'auras pas trouvé comment dessiner un pixel, ça te servira à rien.

et puis je ajouter à mon tableau décor des propriétés en plus?

-> pas ce tableau-ci. Crée-en un autre pour chaque propriété, genre Matiere mat[1900][1200];

et est il possible de n envoyer que les 3 premieres dimensions d un tableau dans un autre?

->non, d'où ma réponse précédente

et est il possible de faire hwnd=decor ou un truc du genre hwnd=createcompatibledc(decor)

-> pas la moindre idée, lis la doc.

qu est ce qui est le plus rabide? a=b ou *b

-> ???



_______________________
Omnia vincit labor improbus
http://calvin-studio.fr

1 2

Cette discussion est classée dans : pixel, pixels, joueur, 2d, décor


Répondre à ce message

Sujets en rapport avec ce message

Je cherche un moyen de contrôler les pixels en C/C++ [ par EnjeeDenton ] J'aimerai bien pouvoir contrôler l'affichage pixel par pixel sous console (enfin si c'est possible !).Merci.Enjee Denton SUBDIVISION DE PIXELS AVEC ANTIALIASING [ par jfk20004 ] Probleme :l'anti aliasing utilise la subdivision d'un pixel pour faireune moyenne des intensités:correct????J'ai toujours pensé qu'un pixel etait le p Pixel Shader [ par NoRabbit ] Hello,j'ai testé quelques tutoriaux sur les pixels shader avec opengl mais ça ne veut pas fonctionner. En fait, ma carte (ou mes drivers ? j'ai téléch Gestion de collision 2d [ par norton ] Bonsoir, j'ai commencé un jeu en openGl genre space impact...bref j'ai pas inventé la poudre ;) Par contre je sait pas comment gérer efficacemment les Je sèche : types et pointeurs [ par benlustr ] Bonjour à tous, je galère depuis quelques temps pour essayer de comprendre un programme que je suis en train de revoir et d'améliorer. Actuellement, Histoire de pixels et de points [ par elflink ] Jamais les pixels n'ont connu de tels points.car les pixels sont des pixels,et les points des points.Mais à connaitre la couleur d'un points, autant c Accéder aux pixels d'une image [ par bikini42 ] Bonjour, je vous écris car j'ai un souci! J'utilise une classe CPicture pour gérer mes images et je voudrais pouvoir accéder à chaque pixel pour pouvo transformation de hough pour detecter les droites [ par djsarah ] Aidez-moi s'il vous plaît.....j'ai écrit l'algorithme de detection des lignes par méthode de transformation de hough mais il ne me donné pas aucun rés traitement d'image [ par bobob ] Bonsoir j'espere que quelqu'un pourra m'aider à résoudre mon problème qui me bloque depuis des jours :( je programme en C , j'ai chargé mon image a générer une image à partir des valeurs d'un tableau 2d [ par omarbenazzouz ] bonjours, Alors voilà, je programme en c pour mes études et j'ai eu un problème j'Upload des fichiers dans le programme que j'ai fait sous forme de ta


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,245 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales