Le jeu de labyrinthe fun et gratuit - Retour au site
Modifié sjrd (sep. 21, 2013 22:11:48)
Hors-ligne
unit AAA;
uses
FunLabyBase;
components
MyGrass: TMyGrass;
field TMyGrass
name 'Mon herbe';
image 'GreenGrass';
on message Plank do
var
Map: TMap;
begin
Map := Master.Map['MainMap'];
if Kind = pmkLeaveFrom then
begin
Result := ((Map[Dest].Field is TMyGrass) or (Map[Dest].Field is TGround)) and
(Map[Src].Obstacle = nil) and (Map[Dest].Obstacle = nil);
end;
if Kind = pmkArriveAt then
begin
Result := ((Map[Src].Field is TMyGrass) or (Map[Src].Field is TGround)) and
(Map[Src].Obstacle = nil) and (Map[Dest].Obstacle = nil);
end;
end;
end;
end.
Modifié DerF_44 (sep. 22, 2013 01:37:41)
Hors-ligne
unit AAA;
uses
FunLabyBase;
components
MyWall: TMyWall;
field TMyWall
name 'Mon mur';
image 'Fields/FireWall';
on Entering do
begin
inherited;
Cancel;
end;
end;
end.
Modifié DerF_44 (sep. 22, 2013 13:46:19)
Hors-ligne
on Entering do
begin
inherited;
Player.ShowMessage('Tu n''es pas un fantôme, impossible de traverser ce mur !');
Cancel;
end;
Hors-ligne
if KeyPressed then
Player.ShowMessage('...');
DerF_44Oui, je suis d'accord. FunLabyrinthe 5 a été un énorme progrès par rapport aux versions 1-4, en matière de possibilités. Et les choses qui extrêmement difficiles (mais possibles et faites) à faire ont reçus un support dédié dans FL 5, ce qui les rend assez simples à réaliser.
C'est d'ailleurs un petit paradoxe de FunDelphi :
Avec quelques notions, ce language permet de faire des choses relativement complexes avec du code relativement simple,
mais là, pour le coup, afin de juste supprimer une carctéristique particulière (les fondus entre terrain et eau)
il est nécessaire d'écrire 15 lignes !!!
Hors-ligne
unit AAA;
uses
FunLabyBase;
components
MyWall: TMyWall;
field TMyWall
name 'Mon mur';
image 'Fields/FireWall';
on Entering do
begin
inherited;
if KeyPressed then
Player.ShowMessage('Tu n''es pas un fantôme, impossible de traverser ce mur !');
Cancel;
end;
end;
end.
Hors-ligne
field TMyWall
name 'Mon mur';
image 'Fields/FireWall';
property NbOfTouched: Integer;
on Entering do
begin
inherited;
if KeyPressed then
begin
if NbOfTouched = 0 then
Player.ShowMessage('Tu n''es pas un fantôme, impossible de traverser ce mur !');
NbOfTouched := NbOfTouched + 1;
end;
Cancel;
end;
end;
on Entering do
begin
inherited;
if KeyPressed then
begin
if NbOfTouched = 0 then
Player.ShowMessage('Tu n''es pas un fantôme, impossible de traverser ce mur !');
NbOfTouched := NbOfTouched + 1;
if NbOfTouched = 5 then
NbOfTouched := 0;
end;
Cancel;
end;
if LaCondition then
Une seule ligne de code exécutée si LaCondition est vraie;
if LaCondition then
begin
Plusieurs lignes de code exécutées si LaCondition est vraie;
Plusieurs lignes de code exécutées si LaCondition est vraie;
end;
Modifié DerF_44 (sep. 23, 2013 16:08:54)
Hors-ligne
unit AAA;
uses
FunLabyBase;
components
MagicGrass: TMagicGrass;
field TMagicGrass
name 'Herbe magique';
image 'Fields/Meadow';
on Exited do
begin
Square := Water;
end;
end;
end.
Modifié DerF_44 (sep. 28, 2013 11:31:26)
Hors-ligne
unit AAA;
uses
FunLabyBase;
components
SecretGoldenBlock: TSecretGoldenBlock;
obstacle TSecretGoldenBlock
name 'Bloc or caché';
image 'Fields/Wall';
on AfterConstruction do
begin
inherited;
EditVisualTag := 'or';
end;
on Pushing do
begin
inherited;
if not KeyPressed then
Exit;
Square.Obstacle := nil;
Square.Obstacle := GoldenBlock;
end;
end;
Modifié DerF_44 (oct. 2, 2013 06:46:50)
Hors-ligne
Hors-ligne