Jeu shoot le canard

Soyez le premier à donner votre avis sur cette source.

Vue 11 602 fois - Téléchargée 844 fois

Description

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 -

Source / Exemple :


{
    -> ZIP
}

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 ... )

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Debiars
Messages postés
285
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
11 février 2018

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 ?
Nicolas___
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
@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 :)
Francky23012301
Messages postés
400
Date d'inscription
samedi 6 août 2005
Statut
Membre
Dernière intervention
11 février 2016
1
@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 ;).
Nicolas___
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Oups ... c'est 1 vieux bidule qui traine , je change ça quand je rentre ;)
Debiars
Messages postés
285
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
11 février 2018

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...

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.