Le jeu de labyrinthe fun et gratuit - Retour au site
 
							 
							
						 14
  14   
								
								DerF_44Cancel est en effet la bonne méthode.
Et ça fonctionne parfaitement : Le joueur ne peut franchir l'obstacle !… (ce que je voulais pour cet exemple)
DerF_44Exit termine le on..do courant (la procédure courante en fait). Donc c'est comme si tu faisais en “goto Fin;” et que tu mettais un label “Fin” juste avant le end du on..do.
Et, ma question : Quelle est la différence entre “Exit” et “Cancel” ?..
DerF_44Non, il y a des procédures, des while et même des for, mais pas de goto. Le goto est un concept très ancien, dépassé et obsolète dans les langages de programmation modernes, car il casse la structure des codes, et donc les rend moins lisibles.
N'y a t-il pas en FunDelphi la possibilité de poser des Labels et des Goto comme en Basic ?!..
DerF_44
Et donc maintenant je voudrais savoir comment (et où !) placer une procedure (valable pour d'autres vilaines bêtes !) qui affichera le message “Il te reste %d points de vie…” et un message en fonction du nb de pts de vie du joueur… (si pts <10 alors avertissement)… Ainsi que la condition si Pts de Vie = 0 alors le joueur perd..
unit TestLifePointsCounter;
uses
FunLabyBase, TLifePointsCounter;
components
BadSpider : TBadSpider;
LifePoints: TLifePoints;
object TLifePoints
name 'Points de vie';
image 'BodyParts/Heart';
end;
procedure InfoAboutLife(Player: TPlayer);
var
Master: TMaster;
begin
Master := Player.Master; // nécessaire pour Player.LifePoints
Player.ShowMessage (Format(
'Il te reste %d points de vie..',[Player.LifePoints]));
// peut être étdendu comme tu veux.
end;
obstacle TBadSpider
name 'araignée mortelle';
image 'araignee';
property LostLifePoints : Integer;
on Pushing do
begin
if Player can Marteler then
begin
Square.Obstacle := nil;
Exit;
end else
Player.LifePoints := Player.LifePoints + LostLifePoints;
Player.ShowMessage (Format(
'Oups !.. %d points de vie !.. ',[LostLifePoints]));
InfoAboutLife(Player);
Cancel;
end;
end;
end.
Hors-ligne
 
							 
							
						 0
  0   
								
								

 Yesss !! Ça le fait carrément !
 Yesss !! Ça le fait carrément !

Hors-ligne
 
							 
							
						 0
  0   
								
								 Ok, j'ai presque terminé l'unité LifePointsCounter avec possibilité d'affichage permanent du nombre de points, une vilaine bête, une potion de vie, et un effet configurable unique ou permanent…
 Ok, j'ai presque terminé l'unité LifePointsCounter avec possibilité d'affichage permanent du nombre de points, une vilaine bête, une potion de vie, et un effet configurable unique ou permanent…



Hors-ligne
 
							 
							
						 14
  14   
								
								uses
KeyStrokes;
components
LifePointsDisplayEnablePlugin: TLifePointsDisplayEnablePlugin;
plugin TLifePointsDisplayEnablePlugin(TKeyStrokePlugin)
hint 'Active ou désactive l''affichage des points de vie';
on SetupKeyStroke do
begin
KeyStroke.Key := Ord('V');
end;
on KeyStrokeTriggered do
begin
if Player.HasPlugin(LifePointsDisplayEnablePlugin) then
Player.RemovePlugin(LifePointsDisplayEnablePlugin)
else
Player.AddPlugin(LifePointsDisplayEnablePlugin);
end;
end;
Hors-ligne
 
							 
							
						 0
  0   
								
								 Merci, merci et encore merci sjrd !!.
 Merci, merci et encore merci sjrd !!.
 
					
						
						Hors-ligne
 
							 
							
						 0
  0   
								
								 Juste une petite vérification….
 Juste une petite vérification….
obstacle TBadSpider
name 'araignée mortelle';
image 'araignee';
property LifePointsCount : Integer;
on AfterConstruction do
begin
inherited;
LifePointsCount := -8;
end;
on Pushing do
begin
Blabla....
Blabla...
Modifié DerF_44 (déc. 11, 2011 16:35:49)
Hors-ligne
 
							 
							
						 14
  14   
								
								Hors-ligne
 
							 
							
						 0
  0   
								
								 Ok d'ac…
 Ok d'ac… 
object TLifePoints
name 'Pts de vie';
image 'BodyParts/Heart';
 
					
						
						Hors-ligne
 
							 
							
						 0
  0   
								
								
 Ok, je crois que j'ai finalement trouvé !!.. (ce fut pas sans mal !..)
 Ok, je crois que j'ai finalement trouvé !!.. (ce fut pas sans mal !..)
on SetCount do
begin
Player receives 100 LifePoints;
end;
 
					
						
						Hors-ligne
 
							 
							
						 0
  0   
								
								 Ben non, ça ne marche pas !…
 Ben non, ça ne marche pas !… 

 Ça y est : Ça m'énerve !!..
 Ça y est : Ça m'énerve !!..
tool TSword
name 'Epée';
image 'Weapons/Sword';
on Find do
begin
Player.ShowMessage ('Super : Tu peux tuer les araignées avec cette épée !.');
end;
 
					
						
						Modifié DerF_44 (déc. 11, 2011 21:11:28)
Hors-ligne