Pacmummy : jeu dans un labyrinthe

Soyez le premier à donner votre avis sur cette source.

Vue 5 444 fois - Téléchargée 640 fois

Description

Beta jeu utilisant abusivement les bitmaps

Conclusion :


Voici mon 2ème programme en Delphi.
Je crois que le code ressemble plus à du Turbo Pascal.
C'est pourquoi, j'aimerais avoir vos avis sur ce qu'il aurait fallu faire.
Etant donné que ce petit jeu sert avant tout à utiliser des bitmaps, j'ai laissé les commandes qui m'ont servis à la mise au point.

Il y a trois choses que je n'ai pas su gérer comme je le voulais :

1/ Faire disparaître le pointeur de la souris. J'ai bien essayé « ShowCursor » mais je n'ai pas trouvé d'endroit approprié (avec tous ces événements, je m'y perds). J'ai donc créé un pointeur vide et forcément il donne l'impression d'avoir disparu.

2/ Idem pour le clavier. J'ai essayé l'événement « OnKeyPress » et « OnKeyDown » mais il faut se trouver au bon endroit sur la fiche pour qu'il fonctionne. J'ai donc utilisé un « GetAsyncKeyState » dans en Timer. Le problème c'est qu'il reste toujours actif lorsqu'une autre application passe devant.

3/ La position de la souris, « GetCursorPos » me donne les coordonnées par rapport à l'écran. Ce qui m'oblige à calculer sa position sur la fiche.

J'attends vos critiques constructives car j'ai d'autres projets en tête et j'aimerais bien progresser.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

EddiTheHead
Messages postés
58
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2006

WhiteHippo,

C'est exactement ce que je cherchais. Les touches sont moins sensibles si qui rend les déplacement plus faciles.

La source a été mise à jour.

Vu la quantité de fichiers utilisés, je crois que je vais étudier de près l'utilisation du fichier ressource.

Merci.
WhiteHippo
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012

Pour le curseur :
tu supprimes ces 2 lignes
Screen.Cursors[CrMouseOff] := LoadCursorFromFile('MouseOff.CUR');
PaintBox1.Cursor := crMouseOff;
que tu remplaces par
PaintBox1.Cursor := crNone ;

Pour le clavier, 3 choses à faire :
- Dans les propriétés de ta fiche mettre le KeyPreview à la valeur TRUE.
- Supprimer ton TimerClavier et son code
- Ajouter le code suivant dans OnKeyDown de ta fiche :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_NUMPAD4 : DeplacementJoueurGauche ;
VK_NUMPAD5 : DeplacementJoueurBas ;
VK_NUMPAD6 : DeplacementJoueurDroite ;
VK_NUMPAD7 : DeplacementJoueurPivoterGauche ;
VK_NUMPAD8 : DeplacementJoueurHaut ;
VK_NUMPAD9 : DeplacementJoueurPivoterDroite ;
end ;
end;

Pour les coordonnées du curseur souris
Tu supprimes le code suivant :
GetCursorPos(TCoordSouris); // Coordonnée de la souris par rapport à l'écran
TCoordSouris.X := TCoordSouris.X - Left - 24; // Positionnement sur la fenêtre de jeu
TCoordSouris.Y := TCoordSouris.Y - Top - 49;

Tu ajoutes un evenement OnMouseMove au PaintBox1 avec le code suivant :
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
TCoordSouris := Point( X, Y ) ;
end;

Quand aux critiques constructives, désolé mais là j'ai plus le temps d'éplucher ton code (je pense que d'autres se chargeront volontier de le commenter)

Cordialement.

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.