Forum FunLabyrinthe

Le jeu de labyrinthe fun et gratuit - Retour au site

  • Vous n'êtes pas connecté.

#1 juin 8, 2012 17:16:25

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Débutants

Ah… Ok..
En fait je ne saisis pas trop la différence entre :
until (Map53[Point3D(Esc53X, Esc53Y, 1)].Field is TGround);
Et :
until Map53[Point3D(Esc53X, Esc53Y, 1)].Field = Grass;



(°!°) DerF

Hors-ligne

#2 juin 8, 2012 17:44:19

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Débutants

Le second n'est valable que si c'est exactement l'unique composant qui a l'ID Grass.
Le premier est valable pour n'importe quel terrain qui hérite de TGround - et donc entre autres les copies éventuelles de l'herbe.


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#3 juin 9, 2012 02:04:24

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Débutants

Oui oui, ok !..
C'est quand même assez abstrait et mystérieux pour moi ces histoires de classes et d'héritages !
(Exemple lorsque j'ai créé “TIndestructibleWall” où le joueur pouvait se déplacer dessus avant que je ne rajoute “(TWall)” !.. Cela signifie que par défaut tous les terrains créés sont praticables !?..)
Donc on a Grass(TGround), Wall(TWall), Water(TWater), Hole(THole) etc..??
Si je crée un terrain MonTerrain(TWater) je pourrais le pratiquer uniquement avec une bouée ou une barque !?.
En fait ma question : Mais quelles sont donc les “grandes” classes de base !!???

Par exemple dans mon histoire de poser un escalier à un endroit aléatoire mais, évidemment pas dans l'eau ou dans un mur, pourrais-je spécifier n'importe où sur un terrain praticable (créé en .ssq), englober tous les terrains où le joueur est autorisé à venir ?.. Ces terrains proviennent-ils d'une même classe ??..



(Apparemment ceci est le 1000 ème message !!.. J'ai gagné quelque chose ?!.. Je veux bien une notice de 800 pages sur le FunDelphi !!!!!!!!! )


(°!°) DerF

Modifié DerF_44 (juin 9, 2012 10:26:36)

Hors-ligne

#4 juin 9, 2012 19:52:52

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Débutants

Les terrains sont par défaut “praticables” (bien qu'on ne puisse prendre appui sur eux avec la planche).
DerF_44
Si je crée un terrain MonTerrain(TWater) je pourrais le pratiquer uniquement avec une bouée ou une barque !?.
Oui.
DerF_44
En fait ma question : Mais quelles sont donc les “grandes” classes de base !!???
Pour les terrains il n'y a que ceci (dans FunLabyBase) :
TGround ajoute la possibilité d'utiliser la planche
TWall empêche de venir dessus
TWater et THole sont les classes de l'eau et du trou respectivement.
TSky pour le ciel
TOutside est le terrain blanc qui se trouve par défaut à l'extérieur du labyrinthe.

Sinon en général tu peux trouver le code de FunLabyBase ici [github.com]. Si tu parcours les fichiers .pas dans ce dossier, tu pourras au moins repérer toutes les classes qui y sont définies. Elles sont toujours surmontées d'un petit commentaire qui dit à quoi ça correspond dans le jeu.


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#5 juin 9, 2012 20:44:53

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Débutants

Ok, Merci sjrd !
Avec le lien de github, en ayant jeté un petit coup d'œil, je me rends un peu plus compte de ce que j'imaginais déjà : C'est un boulot de titan qui a été nécessaire pour concevoir ce fantastique logiciel qu'est FunLabyrinthe !!!!!!
En dehors de cette constatation, effectivement, il est possible que je puisse y découvrir quelques pistes ou trouvailles intéressantes !!


(°!°) DerF

Modifié DerF_44 (juin 9, 2012 20:47:10)

Hors-ligne

#6 juin 11, 2012 21:54:14

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Débutants

Bon, encore un truc tout bête que je cherche sur le Net sans résultats probants :
Je voudrais obtenir avec la fonction Random un nombre compris entre 39 et 55 (les 2 limites incluses)..

MachinTruc := Random(39)+16;
Est-ce correct !?…
Merci d'y porter attention.


(°!°) DerF

Hors-ligne

#7 juin 11, 2012 22:58:22

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Débutants

Pour obtenir un nombre aléatoire entre A et B inclus, la formule générale est
Random(B-A+1) + A
donc ici c'est
Random(55-39+1) + 39


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#8 juin 11, 2012 23:23:07

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Débutants

Hoùùlàà là !!!?…
J'ai bien fait de te demander !!!!!!!

Merci beaucoup !!



(°!°) DerF

Hors-ligne

#9 juin 12, 2012 13:54:55

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Débutants

Encore (encore !) besoin d'une petite précision !..
À propos de la recherche d'un couple (X, Y) aléatoire afin d'y poser une clé :

repeat
CleX := Random(36-20+1)+20;
CleY := Random(74-58+1)+58;
until Map[Point3D(CleX, CleY, 0)].Field is TGround;

Map[Point3D(CleX, CleY, 0)].Tool := WhiteKeyTool;
Je voudrais savoir si dans la description Field is TGround il s'agit bien d'un terrain (hérité de Grass, ok) vide de tout obstacles, effets, outils !!????.

Merci.



(°!°) DerF

Hors-ligne

#10 juin 12, 2012 15:33:55

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Débutants

Alors le mieux est de faire d'abord une petite fonction annexe :
function IsValidForKey(Square: TSquare): Boolean private;
begin
Result := (Square.Field is TGround) and (Square.Effect = nil) and
(Square.Tool = nil) and (Square.Obstacle = nil);
end;
que tu mets par exemple juste en dessous de la section components.

Puis tu fais :
until IsValidForKey(Map[Point3D(CleX, CleY, 0)]);


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

Pied de page

Modération

Powered by DjangoBB

Lo-Fi Version