begin process at 2012 02 08 16:34:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > JEU SHOOT LE CANARD

JEU SHOOT LE CANARD


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :jeux, duck, hunt, nes, sprite Niveau :Débutant Date de création :26/02/2009 Date de mise à jour :02/03/2009 16:18:40 Vu / téléchargé :7 208 / 448

Auteur : Nicolas___

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (44)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Remake du célèbre Duck Hunt sur Nes mais en Delphi et avec la souris ;)

Utilisation de ma source précédente pour la réalisation de ce jeu

(http://www.delphifr.com/codes/SPRITE-ENGINE-2D- FACILEMENT_49176.aspx
La librairie sera MAJ d'ici peut mais les exemples sont à compléter )


Utilisation de BASS pour la partie sonore (plus nouvelle unité uBass et uStream % source précédente )

le jeux est plus ou moins commenté ... j'y retravaillerais certainement (pour moi déjà ;) )

Il y a un menu , un jeu , du score (pas encore de top score dans un fichier , mais ce n'est pas la partie la plus difficile à réaliser) , un game over ...

Les collisions sont parfois approximatives (collision par Rectangle ) , faites F3 pendant l'exécution pour mieux comprendre...

F1 : montre les FPS
f2 : active, désactive la transparence (c'est juste la à titre informatif ! )
f3 : montre le rectangle qui définit chaque image d'un sprite

Le jeu à été développé sous D7 et achevé sous Turbo Delphi
Testé sous Windows XP Sp3 et Vista Sp1

La résolution minimale pour faire tourner correctement le jeu est 640x480
(le jeu s'adapte en fonction de la résolution de votre écran )

j'ai un FPS > 50 dans toutes les conditions (normalement il ne devrait pas avoir de problèmes , sauf pour Bacterius ;) lol )

Enjoy !

NB : seul l'unité bass.pas et bass.dll ne sont pas de moi (à télécharger sur www.un4seen.com)

PS : sur la capture d'écran , le jeu tourne en 640x480 (il y a évidement plusieurs captures dans la capture ! )

- Duck Hunt est une marque déposée par Nintendo -


 Conclusion

Je me suis bien amusé à le faire , le code n'est pas toujours très beau mais j'avoue ne pas avoir trop réfléchi avant de le faire

C'est quand même de la POO (on peut donc imaginer placer 500 canards dans le jeu , ça sera aussi facile à gérer que 1 ou 2 ... )

 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

26 février 2009 01:23:48 :
Orthographe...
26 février 2009 01:39:01 :
zip , dossier caché supprimé
26 février 2009 01:51:54 :
fichier dpr ...
26 février 2009 09:04:03 :
description
26 février 2009 09:06:45 :
description
26 février 2009 13:52:25 :
changé le titre , peut être que des gens ne connaissent pas duck hunt ...
26 février 2009 20:50:41 :
Violation segment... Problème relevé par Debiars normalement résolu
26 février 2009 20:54:58 :
Résolution (normalement) de l'erreur soulevé par Debiars
28 février 2009 17:33:38 :
Unité non utilisé oublié uAudioEngine(jamais terminé) Image Jpeg inutile Choix de résolution (la courante ou 640x480 , Attention de bien vérifier que votre matériel supporte cette résolution )
02 mars 2009 16:18:00 :
voir commentaire 02 / 03 / 09
02 mars 2009 16:18:40 :
voir commentaire 02 / 03 / 09

 Sources du même auteur

Source avec Zip Source avec une capture SYNTHÉTISEUR [BASS]
Source avec Zip Source avec une capture SCAN THREAD : BASS
Source avec Zip Source avec une capture PEDALE MULTI EFFETS [BASS ASIO]
Source avec Zip Source avec une capture SPRITE ENGINE : DE LA 2D FACILEMENT
Source avec Zip Source avec une capture BASSVIDEO : LECTEUR VIDEO AVEC BASS

 Sources de la même categorie

Source avec Zip JEU DE MOT MOTUS par philouchess
Source avec Zip Source avec une capture [LAZARUS] JEUX/LABYRINTHE : GENERATION ET RÉSOLUTION par timmalos
Source avec Zip Source avec une capture RUBIK'S CUBE par barbichette
Source avec Zip RUMMIKUB DES CHIFFRES CONTRE ORDINATEUR par Toidil
Source avec Zip Source avec une capture JEU D'ÉCHEC MAZETTE par ADMR

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture KINECT TEST V3 JOEUR A ALEX KIDD AVEC VOTRE KINECT par FFCAST
Source avec Zip DÉPLACER UN SPRITE SUR UN FOND EN UTILISANT MASKBLT (AVEC GE... par Laskar
Source avec Zip Source avec une capture A PROPOS DE LABYRINTHE 2 par Debiars
Source avec Zip A PROPOS DE LABYRINTHE par Debiars
Source avec Zip Source avec une capture PETIT JEU "D'AVION" par flagada

Commentaires et avis

Commentaire de Nicolas___ le 26/02/2009 01:26:32

Pourquoi mon code est desactivé ?
les sprites sont telechargés sur internet !

Commentaire de Bacterius le 26/02/2009 01:26:47

T'as pas mis uSprite : pas grave je vais le pomper sur ta précédente source.
Je teste et je te dis.

Cordialement, Bacterius !

Commentaire de Nicolas___ le 26/02/2009 01:27:37

si uSprite est dans le dossier LIB ... si tu prends celui de l'ancienne source , ca ne compilera pas !

Commentaire de Bacterius le 26/02/2009 01:29:58

Ah ok, je vais voir tout ça.

Cordialement, Bacterius !

Commentaire de Bacterius le 26/02/2009 01:31:36

Ca ne marche tjrs pas, il ne reconnait pas TBassStream ...

Cordialement, Bacterius !

Commentaire de Nicolas___ le 26/02/2009 01:35:08

avis au modo du site , je ne sais pas c quoi le dossier _history dans mon zip  

edit : dossier caché de turbo delphi a mon avis ... je vire

@ bacterius : il fait lire la description avant de râler ;)  lol

Commentaire de Nicolas___ le 26/02/2009 01:41:17

a mon avis , c'est le fichier dpr qui ne sait pas bien fait (vu que moi je copie dans le dossier LIB de borland , attend je regarde a ca ... j'ai pas l'habitude avec Turbo delphi (d'ailleurs j'aime pas de trop ! )

copie le dans lib en attendant , je resous ce problème

(que de commentaires après si peu de temps ! désolé mais 'vous jure , il compile ! )

Commentaire de Nicolas___ le 26/02/2009 01:52:46

voila , ca devrait fonctionné maintenant , sinon je regarderais à ca demain , suis crevé !

Commentaire de Nicolas___ le 26/02/2009 13:00:50

Est ce que quelqu'un peut me confirmer que le projet compile ?
Merci

Commentaire de Debiars le 26/02/2009 14:07:18

Pas de problème, je compile sous Delphi 7.
Mais la musique...quelle violence!!!
De temps en temps un bug type violation à l'adresse untel...
Mon p'tit fils va se régaler !

Cordialement :)

Commentaire de cantador le 26/02/2009 14:48:30 administrateur CS

pas de souci tout compile..
juste un truc que je pige pas :
sur le Oncreate il passe sur :
  // ajout de l'image du menu
Choix := TSpriteXY.Create(OPTION_GFX, OPTION_WIDTH, OPTION_HEIGHT, tHORIZONTAL, SpriteEngine.ClientRect.Right div 2 - OPTION_WIDTH, SpriteEngine.ClientRect.Bottom - OPTION_HEIGHT - OPTION_HEIGHT div 4, OPTION_WIDTH, 1);

et il se branche sur :
constructor TSpriteXY.Create(AFileName: string; Width, Height: integer; ATypeDeplacement: TTypeDeplacement; X: Integer; Y: Integer; ADelta: Integer; AVitesse: Integer);

Comment fait-il pour trouver la valeur de Avitesse puisqu'à ce moment là 7 paramètres sont transmis et pas 8 ?
et il ne passe pas avant sur l'autre create à 7 params ?

Commentaire de Nicolas___ le 26/02/2009 14:49:18

oui c'est vrai que ça va fort ! j'ai plus fait gaffe parce que je testais en mute ...ou je mettais très bas le son !

Pour résoudre ça , tu peux placer dans l'init
SpriteEngine.BASS.VolumeStream := 100; //valeur de 0->1000


Bizarre les erreurs ... pr une fois j'étais content, j'en avais encore pas eu !
en même temps j'ai pas D7 ici...
Tu peux me dire quand ça se produit (ma s½ur y a joué 1/2h et no problems)

Si tu as des remarques vis à vis du code , ou du jeu , elles sont les bienvenues ;)



Commentaire de Nicolas___ le 26/02/2009 14:52:59

@ cantador , croisement de post ;)

euh... a moins que je sois fou , je vois bien 8 paramètres de transmis... sinon Speed:=5 quand on n'utilise pas AVitesse

Commentaire de Nicolas___ le 26/02/2009 15:05:42

@ cantador : ok , je pense que je viens de comprendre ce que tu me demande ...

dans uSpriteXY (j'avoue , cette classe à été fait à la va vite, qqun voulait un menu mouvant et pas une bette image )

les constructeurs qui s'appellent ici ne sert à rien !

tu as remarqué , dans le 2 ème constructeur , j'appelle le premier puis je répète une portion de code existant dans le premier pour que ça fonctionne (ce qui est très nul )

Dans ce cas , j'aurais encore mieux faire de faire 2 constructeurs bien distincts

C'est parce que après je fais ça (ds le 2ème) , que ça fonctionne :
  fVitesse := AVitesse;
  SetDeplacement(ATypeDeplacement);

est ce que j'ai plus ou moins compris ce que tu voulais ?

Commentaire de cantador le 26/02/2009 15:15:54 administrateur CS

A l'ouverture un point d'arrêt sur le TSpriteXY.Create donne AVitesse = 1..

Commentaire de cantador le 26/02/2009 15:21:05 administrateur CS

ouf croisement de post..
c'est tout à fait ça  Nicolas___
merci pour l'explication mais
cela n'affecte en rien les canards !
c'est très amusant surtout pour les plus jeunes
bravo !

Commentaire de cantador le 26/02/2009 15:24:53 administrateur CS 10/10

10/10

Commentaire de Nicolas___ le 26/02/2009 15:39:07

moi je suis un grand jeune , ça m'amuse toujours autant ;)
c'est grave docteur ?!

Nico

Commentaire de EBArtSoft le 26/02/2009 16:06:35 administrateur CS

j'aime bien

Commentaire de Bacterius le 26/02/2009 16:56:16

Une violation d'accès de temps en temps, peut-être écrire les miniscores (quand on shoot un canard, ya un petit libellé "40", "50" qui indique les points) en mode non opaque (le fond blanc dans le rectangle du texte, bon ...).

Cordialement, Bacterius !

Commentaire de JulioDelphi le 26/02/2009 17:06:07 administrateur CS

(Désolé j'ai dû renommer le jeu pour éviter un soucis de License avec Nintendo. Ton jeu s'apelle Shoot le canard et non plus D**K H**T qui est deja déposé.)

Commentaire de Nicolas___ le 26/02/2009 17:33:43

@bacterius : dans uDuck
dans le constructeur :
remplace
SpritePtText := TSpriteText.Create('X000X',0,0,RGB(255,255,255));
par  
SpritePtText := TSpriteText.Create('X000X',0,0,DEFAULT_TRANSPARENT_COLOR);
// sous Xp sur mon pc il n'y a pas de problème , mais ici sous Vista , j'ai des petits problèmes d'affichages avec cette technique, c'est pour ça que je ne l'ai pas mise dans le jeu ...

Je pige pas les erreurs , j'ai encore testé et je n'ai rien , mais à mon avis ça doit être SpriteEngine.clear qui pose problème
(libération d'objets qui sont utilisés...)


@JulioDelphi : Dsl ! faut-il aussi que je change le nom du projet ds le zip ?
Plusieurs remakes existent sur CS et ils portent les noms originaux...

Commentaire de JulioDelphi le 26/02/2009 17:34:37 administrateur CS

File moi les liens en MP, je m'occupe de ça :]

Commentaire de Debiars le 26/02/2009 19:50:49

Une piste : la violation d'accès seproduit quand je clique deux fois de suite sur le canard déjaà touché par le premier coup !?!?

lucky debiars qui clique plus vite que...

Commentaire de Nicolas___ le 26/02/2009 20:03:58

Oui je viens de tester , c'est exactement ça ...
Il ne mérite quand même pas autant de haine ce pauvre canard !
Retirer dessus alors qu'il est déjà touché !
lol

En tout cas merci (ca explique prq je n'ai jamais eu ce problème) , je vais regarder au pourquoi du problème.
Je dirais que ca vient du TSpriteText mais pas sur (c'est la dernière chose que j'ai ajouté, sans réellement bien tester )

Commentaire de Nicolas___ le 26/02/2009 20:13:05

Bingo , je pense que c'est ça (ou alors c'est un parmi tant d'autres mais normalement résolut )

dans uDuck.Collide
if isCollide(uMain.fCursor) and (uMain.fCursor.KillShoot) then begin
//Cette ligne a ajouter
if (fTypeAnimation = DEAD_RIGHT) or (fTypeAnimation = DEAD_LEFT) or (fTypeAnimation = FALLING) then exit;
...
end;
...
end;

ou faire un test si fTypeAnimation<>DEAD_RIGHT ... revient au même ...

Je pense que le problème est résolu de cette façon
(Veux tu bien tester avant que je fasse la MAJ , parce que je suis en internet bas débit et ma source fait presque 1mo , c'est une pure horreur ... )


Commentaire de Nicolas___ le 26/02/2009 20:58:04

Voila MAJ, je n'ai plus eu ce problème... il a fallu que je me trompe de zip en plus :(

Ça y est, tu pourras t'acharner dessus, il ne doit plus avoir de problèmes maintenant ;)

Commentaire de Caribensila le 26/02/2009 21:39:05

   AVIS A TOUS !

'va y avoir du canard à la chevrotine chez l'ami Debiars, dimanche...

Commentaire de cantador le 27/02/2009 09:52:40 administrateur CS

@Caribensila:
Est-ce bien raisonnable de lui donner tout de suite la recette du canard au whisky ?

Commentaire de Debiars le 27/02/2009 10:14:21

Rigolez pas... j'ai dû passer le nombre de cartouche à 10 !
ca arrête pas de bouger, ces bestiaux là.

Quand à la recette du caviar au biscuit, pardon, du... comme y dit Matador, hips!, je... déjà donné.

Commentaire de Caribensila le 28/02/2009 02:28:10

   RECTIFICATIF !
Y'aura p'têt du canard dans les chevrotines...


PS:  Pardon Nico :s

Commentaire de Nicolas___ le 28/02/2009 09:11:24

@cari : pas de prob ;)

Personne n'a des problèmes de lenteur ?
J'aimerais bien connaitre vos FPS (F1 pdt le jeu )
Parce que j'ai fini le programme sur un autre ordi que le miens, et j'ai tjs 1 FPS>50 mais sur mon ordinateur , je tombe à 30, 35 !

Sur mon pc, j'ai découvert(et je le savais déjà) le problème : la fonction stretchdraw ralentit considérablement le jeu (cette fonction est utilisé pour dessiner le background )

C'est du à quoi ? l'affichage n'est pas géré par la carte graphique ici,si ?
c'est donc le processeur ? ou ce n'est pas si simple ?

Merci

Commentaire de Debiars le 28/02/2009 12:00:05

FPS à 35 itou. Me demande pas pourquoi...

Commentaire de Nicolas___ le 28/02/2009 17:36:21

Il y a possibilité de passer en 640x480 au démarrage du jeu (c'est moins beau mais plus rapide )
Nico

(sur mon pc , en 640x480 , 65 FPS )

Commentaire de Bacterius le 28/02/2009 21:13:34

Moi, sans changer la résolution (chuis en 1280x800 dans le système), je stagne à 32-33 FPS. Héhé mon PC n'a rien à envier à celui de Débiars ^^.

Cordialement, Bacterius !

Commentaire de Nicolas___ le 28/02/2009 21:41:03

et en passant en 640x480 (si ton écran le permet vu que t'es en 16/9)?
As tu pris le dernier zip que j'ai posté ?

Malheureusement (en 1280x1024) moi aussi je stagne à 30 - 35 , dans le menu je suis à 49 ...

Commentaire de Nicolas___ le 02/03/2009 16:24:05

Voila , j'ai eu une idée pour résoudre le problème de lenteur
j'ai affecter un bitmap à la procedure SetBackground (ce qui était prévu par ma lib), ce bitmap faisant la taille de votre écran ... donc plus de stretch , et c'est beaucoup plus rapide

je reste toujours au dessus de 60 FPS (62-63)
Le jeu est quand même plus marrant à cette vitesse...

Il y a un TopScore (c'était un petit cadeau :) )

NB : pour les tricheurs , il suffit d'éditer le fichier ini dans Media\Data\conf.ini ;)

Commentaire de Caribensila le 02/03/2009 17:46:07

Il faut aussi savoir que la transparence ralentit considérablement.
Peut-être que les Regions Windows seraient une voie à explorer... Mais je ne suis pas sûr car j'ai jamais testé.

Commentaire de Nicolas___ le 02/03/2009 18:01:36

j'avais essayé de travailler avec InvalidateRect mais j'ai vite abandonné (c'est pour devenir cinglé ce truc ... )

je ne sais pas si tu as testé ici mais je n'ai plus trop de problème
(et dans ce jeu , je n'utilise quasiment pas la transparence )

De toute façon tout ceci sera un jour en openGl ou DirectX, et la , plus question de ramer avec 65 FPS ;)

Commentaire de Debiars le 03/03/2009 08:51:43

Il faut modifier la procedure SetSize, car en cas de changement de résolution d'écran, la forme se trouve décalée, sa position étant calculée avec l'ancienne résolution...

procedure TDuckForm.SetSize(AWidth , AHeight  : integer);
   begin
     Width := AWidth;
     Height := AHeight;
+---------
|   if (Screen.Width<>AWidth) or (Screen.Height<>AHeight) then begin
|     sSaveWidthScreen:=Screen.Width;
|     fSaveHeightScreen:=Screen.Height;
|     ChangeResolution(AWidth,AHeight);
|   end;
+-> Top := Screen.Height div 2 - Height div 2;
     Left := Screen.Width div 2 - Width div 2;
   end;

On peut aussi mettre Top et Left tout simplement à zéro puisque maintenant, la forme a toujours la même taille que l'écran...

Commentaire de Nicolas___ le 03/03/2009 10:57:50

Oups ... c'est 1 vieux bidule qui traine , je change ça quand je rentre ;)

Commentaire de Francky23012301 le 07/03/2009 20:15:53 10/10

@Cari  : c'est pas un canard au whisky mais aux pruneaux    lol.

@Nico : il y a eu un sacré boulot et le résultat est bleuffant. Coté code : Rien à redire à part te féliciter. Et en plus tu n'es pas avare de commentaire : allez hop 10/10.

Perso je plane à 35 FPS.

@Jean-Pierre : va avoir de la concurrence sur delphifr si ca continue ;). T'aurais du déposer un copyright ;).

Commentaire de Nicolas___ le 08/03/2009 00:21:53

@francky : merci , ça fait plaisir ;)
je t'avoue que j'ai pas mal bossé pour rendre un truc pas trop mauvais comme jeux (ce qui est d'ailleurs est vachement dur !)
dommage pour les FPS , ton jeux doit être 1 peu lent ... tu peux tjs le faire tourner en réso plus petite (comme 640x480) , tu changes le SetSize dans la procedure Init ... en même temps , tout dépends du processeur, d'ailleurs c'est quoi le tiens ?

@ Debiars: j'ai toujours pas changé le prob % à la fenêtre , mais je suis en plein projet cobol , j'ai pas la tête à ça pour l'instant :( dommage !


Coin coin :)

Commentaire de Debiars le 08/03/2009 09:40:09

Pas de problème pour la fenêtre, je rectifie au cas par cas ;)

Ca existe encore le cobol ? J'ai pratiqué pendant 16 ans... alors courage.

Quelqu'un connaitrait-il le cri du lapin crétin ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Jeux du type serpent... [ par g0belin ] Ben voila, je souhaiterai faire un jeu comme le serpent du Nokia (principe simple bouffe souris=grandis)mais je ne sais pas comment faire le serpent e Debugger et jeux récent! [ par Don0Choa ] Bonjour, voila j'ai voulu installer 2 jeux tres réssent(Mafia et Age OfEmpre qui ne sort que le mois prochain) , mais apres l'installation, lorsque je Conseil pour Moteur 3D [ par dami ] Bonjour a tous .Je développe actuellement un jeux de stratégie 3D temps réel. J'ai décidé d'importer les objects via un loader 3ds que j'ai fais, je l Saut, jeux [ par lan0sic ] Bonjour,J'aimerait fair bouger une image, comme si c'etait un type qui saute. (donc l'image doit monter et redecendre). Eseque quelqu'un pourrait m'ai Scanner serveurs de jeux [ par Tagada ] Bonjour,je souhaiterai réaliser un scanner de serveurs de jeux online, plus particulièrement pour quake3. Je n'ai malheureusement rien trouvé d'intere jeux de voiture [ par DJFBY ] Bonjour à tous,Je cherche quelqu'un qui puisse m'expliquer comment gérer le son d'une accélération de voiture par un petit programme en C pour un jeux gestion souris, clavier, dans des jeux PC [ par juda13 ] salutje suis une vrai noob en delphi, mais la gestion des periph avait l'air simple alor sje m'y met :)je voudrait simuler des click souris et clavier animation sprite sous delphi [ par cyssou42 ] Bien le bonjour,Je suis actuellement en train de bucher sur un jeux de plateforme type Mario Bros sous Delphi.J'aurais aimé savoir comment faire pour JEUX : controle de la caméra [ par fryser_d ] Bonjour !Je suis présentement dans un projet de jeu video 2d, programmé en Delphi/Pascal. Mais j'ai un petit probleme: je sais pas quelles approches f vendre un logiciel [ par djfeeler2 ] Je voudrais cr&#233;er un jeux sous delhi. Si ce jeux pla&#238;t est-ce j'aurais le droit de le vendre ???


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,170 sec (3)

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