Chiracworld (vc++ 5.0)

0/5 (13 avis)

Vue 10 397 fois - Téléchargée 664 fois

Description

voila un petit jeu bien sympathique et qui va pas faire plaisir a chirac :)
ce jeu n'est pas fait pour critiquer la politique, c juste pasque je savais pas quoi programmer !

le but de se jeu est extremement simple : il faut choper les billets et eviter les cassettes mery !
avec les fleches gauche et droite on se deplace et avec la fleche du haut on fait lever les mains de chirac.
pour choper des billets ou des cassettes mery, il faut lever les mains.

le plus dur dans ce jeu ça à été de trouver, modifier et faires les images !

le code source est horrible, y'as aucun commentaire, et en plus je fait un gros mix prog objet / prog structuré , bref vous allez adorer...
de plus les quelques commentaire sont en fait des parties de source que j'ai desactivé ou alors des bout de source qui correspondent à plus rien pasque la source a trop changer !
j'essayerai lors des prochaines mise a jour de faire un petit effort !

voici un petit bout du code source (chirac.cpp), le reste est dans le zip !
j'ai du virer l'image de fond pasque sinon le zip fesait plus de 200 ko et ne passait pas !
donc pour pouvoir jouer il faut creer un fichier bitmap non compressé nommé : fond.bmp
désolé !

Source / Exemple :


#include <windows.h>
#include <time.h>
#include <stdio.h>

#include "Graphique.h"
#include "Entree.h"
#include "Gest_Media.h"
#include "pepere.h"
#include "billet.h"
#include "cassette.h"

struct position{
	double x,y;
};
#define UPDATE_FRAME_RATE	32

Entree		*LPEntree;
//LPDIRECTSOUND	LPDirectSound;

//STR_joueur	Joueur;

// Pour le thread principal :
HICON	hIcon;
HCURSOR	hCursor;
HWND	HFenetre_principale;
DWORD	LastGetTick, NewGetTick;
DWORD	Images_par_seconde;
double	DBLTemp;
bool Alerte,btn[3],En_Jeu;
int Vitesse_du_jeu, tempus = 0,tbl_dbg[1000],tbl_dbg_i,x,y,OldCase;
char kbd[256];
position souris;
int Score;
pepere Chirac;
billet Billet,*B;
cassette Cassette,*C;

bonus **Obj;

/////////// FUNCTIONS ///////////

LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);

int Update_Frame();
int Update_Frame_Jeu();
int Update_Frame_Start();

/////////// FUNCTIONS => WinMain ///////////

int WINAPI WinMain(HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil){
	HWND		hwnd;
	MSG			msg;
	WNDCLASSEX	wincl;
	int i;

	srand( (unsigned)time( NULL ) );
	wincl.hInstance = hThisInstance;
	wincl.lpszClassName = "Chirac";
	wincl.lpfnWndProc = WindowProcedure;
	wincl.style = CS_HREDRAW|CS_VREDRAW|CS_BYTEALIGNWINDOW;
	wincl.cbSize = sizeof(WNDCLASSEX);
	hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wincl.hIcon = hIcon;
	wincl.hIconSm = hIcon;
	hCursor = LoadCursor(NULL, NULL);
	wincl.hCursor = hCursor;
	wincl.lpszMenuName = NULL;
	wincl.cbClsExtra = 0;
	wincl.cbWndExtra = 0;
	wincl.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);
	if(!RegisterClassEx(&wincl)) return 0;
	hwnd = CreateWindowEx(0,"Chirac","Chirac World",WS_POPUP,0,0,GetSystemMetrics(SM_CXSCREEN)/2,GetSystemMetrics(SM_CYSCREEN)/2,NULL,NULL,hThisInstance,NULL);

	HFenetre_principale = hwnd;
	ShowWindow(hwnd, nFunsterStil);
	UpdateWindow(hwnd);

	//if(DirectSoundCreate(NULL, &LPDirectSound, NULL)!=DS_OK)  exit(1);
    //if(LPDirectSound->SetCooperativeLevel(hwnd, DSSCL_PRIORITY)!=DS_OK) exit(1);
	
	//if((i=Init_Media(hwnd))!=1) exit(i);
	if(Init_Media(hwnd)!=1) exit(0);

	Chirac.SetGraphClass(LPGraph);
	Chirac.SetSpriteGDHB(Media.pDDSChirac[0],Media.pDDSChirac[2],Media.pDDSChirac[3],Media.pDDSChirac[1],0,0,0,0,0);
	Chirac.SetXY(280,380);
	Chirac.Set_ZS(2,97,48,98);

	Cassette.SetGraphClass(LPGraph);
	Cassette.SetSpriteGDHB(
		Media.pDDSCassette[0],
		Media.pDDSCassette[0],
		Media.pDDSCassette[1],
		Media.pDDSCassette[2],
		Media.pDDSCassette[3],0,0,0,0);
	Cassette.ZS_Egal_Taille_Img();
	Cassette.SetXY(100,-50);
	
	Billet.SetGraphClass(LPGraph);
	Billet.SetSpriteGDHB(
		Media.pDDSBillet[0],
		Media.pDDSBillet[0],
		Media.pDDSBillet[1],
		Media.pDDSBillet[2],
		Media.pDDSBillet[3],0,0,0,0);
	Billet.ZS_Egal_Taille_Img();
	Billet.SetXY(100,-50);
	Obj = (bonus**) malloc(sizeof(bonus*)*10);

	for(i = 0;i < 10;i++){
		B = new billet(Billet);
		B->SetXY(rand()%590,-50*(i+1));
		Obj[i] = B;
	}
	
	

	LPEntree = new Entree;
	LPEntree->initialise(hwnd, hThisInstance);

	NewGetTick = GetTickCount();
	
	while(true)
		if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) ){
			if( !GetMessage( &msg, NULL, 0, 0 ) ) return msg.wParam;
			TranslateMessage(&msg); 
			DispatchMessage(&msg);
		}else{
			NewGetTick = GetTickCount();
			if((NewGetTick-LastGetTick)>UPDATE_FRAME_RATE){
				LastGetTick = NewGetTick;
				Update_Frame();
			}
		}
}

/////////// FUNCTIONS => WindowProcedure ///////////
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
	int i;
	switch(message){
		case WM_SETCURSOR:
			SetCursor(hCursor);
			return TRUE;
		break;
		case WM_DESTROY:
			
			for(i = 0;i < 10;i++){
				delete Obj[i];
			}
			free(Obj);
			
			Free_Media();
			//LPDirectSound->Release();
			delete LPEntree;
			DestroyIcon(hIcon); 
			DestroyCursor(hCursor);
			PostQuitMessage(1);
		break;
		default:
			return DefWindowProc(hwnd, message, wParam, lParam);
	}
	return 0;
}

/////////// FUNCTIONS => Update_Frame ///////////

int Update_Frame(void){
	tempus++;
	
	LPEntree->GetEtatTouch((char *)&kbd);
	LPEntree->Getposrel(&x,&y,(bool *)&btn);
	
	Update_Frame_Jeu();
	LPGraph->flip();
	return 1;
}

void NouveauBonus(int i){
	delete Obj[i];
	switch(rand()%100){
		case 0:case 1:case 2:case 3:case 4:case 5:
		case 6:case 7:case 8:case 9:case 10:
			C = new cassette(Cassette);
			Obj[i] = C;
		break;
		default:
			B = new billet(Billet);
			Obj[i] = B;
	}
	Obj[i]->SetXY(rand()%590,-50*(i+1));
}

int Update_Frame_Jeu(){
	char texte[512];
	int i;
		
	LPGraph->Dessine(Media.pDDSFond,0,0);

	if(kbd[DIK_LEFT])	Chirac.DeplacementRelatif(-5,0);
	if(kbd[DIK_RIGHT])	Chirac.DeplacementRelatif(5,0);
	if(kbd[DIK_UP])		Chirac.DeplacementRelatif(0,-5);
	Chirac.Bouge(1);
	Chirac.Dessine();
	
	for(i = 0;i < 10;i++){
		if(!Obj[i]->Bouge(1)) NouveauBonus(i);
		Obj[i]->Dessine();
		if(Chirac.Touch(*Obj[i])){
			Score += Obj[i]->Score();
			NouveauBonus(i);
		}
	}
	sprintf(texte,"Score : %d",Score);
	LPGraph->ecrire(10,10,texte,RGB(255,0,0),1);
	if(kbd[DIK_ESCAPE]||kbd[DIK_F12]){
		PostMessage(HFenetre_principale, WM_CLOSE, 0, 0);
	}
	return true;
}

Conclusion :


désoler pour ceux qui sont de droite ... et les profs qui aiment les programmes bien structuré et commenté :) je prone l'anarchie dans les codes sources !!!
j'essayerai de faire un mise a jour avec un code un peu plus "correct" :)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
mastave Messages postés 53 Date d'inscription samedi 24 novembre 2001 Statut Membre Dernière intervention 25 janvier 2003
1 févr. 2002 à 17:14
Il faut avouer que le jeu en lui même est pas mal du tout.
MAIS J'ESPERE QUE TU ES EFFECTIVEMENT BIEN DESOLE POUR CEUX QUI SONT DE DROITE!!!(je sens que je vais bientôt faire un petit jeu avec lionel jospin!)...
Mais j'avoue, que même moi je me suis bien pris a ce jeu.
Bon courage(ta prochaine cible, ce sera madelin??)
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
1 févr. 2002 à 22:06
en fait c sur ce "pauvre" chirac que j'ai trouver le plus de photo (sur le site de l'elysee pour etre precis :) ) mais si qq1 à des photos d'autre homme politique pas de probleme je suis prés a attaque les autres :)
on pourrai meme faire une compil ou on choisi le personnage que l'on veut incarné !
cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005
23 mars 2002 à 11:45
une belle réalisation technologique.
par contre je c pas si ca ne le fait ke chez moi mais ya pas de clear enfin je peu dire ke toutes les images laissent des trainées
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
23 avril 2002 à 11:49
c'est pasque tu n'as pas mis d'image de fond, je le precise dans l'intro :
"j'ai du virer l'image de fond pasque sinon le zip fesait plus de 200 ko et ne passait pas !
donc pour pouvoir jouer il faut creer un fichier bitmap non compressé nommé : fond.bmp
désolé ! "
voila mais surtout faut pas oublier de voter chirac car il est quand meme moin pourri que lepen (qui va pas tarder a avoir un jeu a son nom egalement) !
moi qui suit de gauche je vais devoir voter pour chirac :(
ertjrtjrtj Messages postés 9 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 26 juillet 2004
6 mars 2003 à 03:53
moi je suis ebidex

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.