begin process at 2012 05 27 19:26:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > STRUCTURE DE JEU 2D

STRUCTURE DE JEU 2D


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :jeu, 2d, asm, graphics, gdi Niveau :Débutant Date de création :04/01/2008 Date de mise à jour :08/01/2008 00:58:04 Vu / téléchargé :4 947 / 356

Auteur : f_l_a_s_h_b_a_c_k

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
simple mais plus rapide que le gdi
pour faire des jeu 2d 800x600 24bit
aucun besoin de direct x ni aucun lib compliquer.

fait en 2 heure j ai pas forcer sur les dessins



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 janvier 2008 00:58:05 :
pour montrer la vrai vitesse de se code...

 Sources du même auteur

Source avec Zip Source avec une capture POISSON D AVRIL (JOKE)
Source avec Zip SUPER MINI MP3 JOUEUR
Source avec Zip CPU INFO MHZ
Source avec Zip KEYLOGGER INVISIBLE
Source avec Zip Source avec une capture TRADUCTION DE MOT AVEC GOOGLE (UN AUTRE)

 Sources de la même categorie

Source avec Zip Source avec une capture JEU DES CARTES par eapaceinfo
PROGRAMME DE JEU DE MPT par KerizGarmm
Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
Source avec Zip STATE MACHINE MODIFICATION MATH BUCKHAM par billybones79

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SNAKE GRAPHIQUE (GDI) - 2 JOUEURS par bbear
Source avec Zip GALAGA JEU par f_l_a_s_h_b_a_c_k
Source avec Zip WELDA 2D GAME par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture VERSION MODIFIÉE DE "JEU DE PIONS CONTRE LE PC" par Foragan
Source avec Zip Source avec une capture [C++/WIN32] JEU DE PIONS CONTRE LE PC par yann_lo_san

Commentaires et avis

Commentaire de BruNews le 05/01/2008 02:31:24 administrateur CS

GetDC() doit se libérer par ReleaseDC().
Gdi() retourne ce qui sort de CreateCompatibleDC(), l'appelant doit appeler DeleteDC().

__fastcall int setpix(int x,int y,color c) {
  UINT add;
  if(x<0 || y<0 || x>=X || y>=Y) return 0;
  add = 3 *((Y - y - 1) * X + x);
  _asm {
    mov edi,VIDEO
    add edi,add
    mov ax,word ptr c
    mov [edi],ax
    mov al,c.r
    mov [edi+2],al
  }
  return 1;
}

Typique ce qu'il ne faut jamais faire, une fonction se fait full asm ou C mais jamais un peu d'asm au milieu. Rien de tel pour empêcher toute optimisation du compilo.
'return xx' met une valeur dans EAX, vu que tu retournes 0 ou !=0, ce que tu as mis dans EDI allait dans EAX et le retour était deja prêt. Utiliser EDI n'est pas gratuit, le compilo mettra du PUSH et POP pour le restaurer, certain que c'était nécessaire ? (je t'assure que non).

avec
#define X 800
#define Y 600

Une struct se passant par adresse, on dira que color est un simple DWORD (ce qu'il faudrait mettre en union dans la struct color) vu que tu ne fais que le lire.
typedef struct _color {
  union _clr {
    struct {
      BYTE b;
      BYTE g;
      BYTE r;
      BYTE a;
    };
    DWORD value;
  } clr;
} color, *LPcolor;

color c;
v = bnSetpix(x, y, c.clr.value);
Ainsi la fonction n'a pas à déréférencer l'adresse pour accéder à la valeur.
On va se dispenser des tests < 0, suffit de regarder x et y en DWORDs.
__declspec(naked) int __fastcall bnSetpix(int x, int y, DWORD c)
{
  __asm {
    xor     eax, eax
    cmp     ecx, X
    jae     short setpixEXIT ;// x >= X
    cmp     edx, Y
    jae     short setpixEXIT ;// y >= Y
    mov     eax, edx
    neg     eax
    add     eax, (Y - 1)
    imul    eax, X
    add     eax, ecx
    mov     dx, word ptr[esp+4]
    lea     eax, [eax+eax*2]
    add     eax, VIDEO
    mov     cl, byte ptr[esp+6]
    mov     word ptr[eax], dx
    mov     byte ptr[eax+2], cl
setpixEXIT:
    ret     4
  }
}

Voici ce qu'il convenait d'écrire, tu constateras qu'il n'y a pas de PUSH ni de POP, les 3 registres généraux suffisaient amplement.
Pour conclure: Si l'ASM reste la voie de l'optimisation maximale, sa mise en oeuvre nécessite de nombreuses heures de pratique. Je t'encourage bien entendu à persévérer mais retiens bien que ce doit être FULL ASM ou FULL C, jamais de mix. C'est à force d'exercices qu'on prend la tournure d'esprit ASM mais il convient de ne pas en insérer dans ses codes tant qu'on n'en a pas une habitude bien rodée, exercices d'abord, en prod ensuite.

Bonne continuation.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pour ,prog c++ et 2D vite [ par arnaudcoutant ] je recherche des personnes, codeurs, graphistes, infographistes ,etc... connaissant le c++ ou opengl pour réaliser un jeu vidéos pc, si cela vous inte besoin d'aide pour un RPG 2D [ par LightningFlik ] Nous sommes une petite équipe qui essaye de créer notre jeu : Asgard Wars. Il s'agira d'un Action-RPG (du genre Secret of Mana) dans un univers médiév allegro / direct x [ par mat74 ] salut a ts ,voila j'ai prog un jeu avec allegro ( en 2d ) , mais il rame ( et il n'est pa encore fini en + ) alors je voulait savoir si je programmai Pour 2d opengl/glut > ddraw ? [ par gimli123 ] Bonjour à tous, j'ai tester les 2, à savoir direct draw et opengl/glut, mais j'aimerai savoir si il y en as un qui est plus performant que l'autre et Recrutement jeu SDL en 2D [ par toun1 ] Bonjours nous recrutons des codeurs C/C++ pour un jeu de shoot 2D en SDL.Lien: http://www.ggame.derniersmots.comJ'en profite pour mettre le lien de mo Projet pour un jeu en 2D en C++ [ par evilblack ] Je cherche un programmeur pour m'aider à programmer un jeu en C++ que j'ai déja commencer intelligence artificielle pour jeu 2d à la mario bros [ par StrikerFred ] bonjour, je fais un jeu 2d mais avec une vue style mario (profil)donc y'aura des ennemis, et j'aimerais qu'ils se dirigent vers le h&#233;ros, cad qu' Jeu 2D [ par skydje ] Je suis débutant en c++, je développe sous dev c++ et cela fait longtemps que je cherche le moyen de développer un petit jeu sous dev sans rien trouve Petit Jeu à programmer [ par LucyUnDemi ] Bonjour à tousJe cherche à faire un petit jeu en 2D pour le moment. Mais je veux que se jeu puisse fonctionne sous Linux, Mac et Windows avec un seul tuto pour création de jeu 2D en c et avec winapi [ par dyroj ] boujour,je souhaite aprendre tous se qu'il y a à savoir sur le monde du 2D.donc si vous avez des tuto sur le mapping,scrolling ... en c et non c++ et


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,624 sec (3)

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