Forum FunLabyrinthe

Le jeu de labyrinthe fun et gratuit - Retour au site

  • Vous n'êtes pas connecté.

#1 fév. 27, 2011 10:04:42

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Cache-cache avec les composants

J'aimerai parler d'un problème qui ne doit pas m'embêter tout seul : et je sais que c'est un inconvénient des quatre composantes d'une case, mais j'aimerai savoir si on pourrait arranger le problème.
Je prends un exemple car je ne saurai décrire mon problème : mettons qu'un créateur de labyrinthes fasse une sorte de petit marché, avec des produits sur la table (qui sont donc soit des effets, soit des outils), la table étant un obstacle. La table cache les produits, et le joueur ne les voit pas, ce qui assez embêtant. Je demande donc : pourrait-t-on faire pour chaque types de composant (sauf pour les terrains) deux nouvelles propriétés, que le créateur règlent lui-même, par exemple : HideEffects, HideObjects et HideObstacles ?
Si le créateur décide qu'un obstacle ne cache pas l'effet en-dessous de lui, il règle un peu la propriété HideEffects, et voilà. Et s'il veut que le même obstacle ne cache pas les outils en-dessous de lui, il va aller voir la propriété HideObjects.
Je ne sais pas si c'est possible, par contre.

Modifié Xaumina (fév. 27, 2011 21:25:21)

Hors-ligne

#2 fév. 27, 2011 13:20:01

intello
De : Yvelines
Enregistré : 2010-07-25
Messages : 167
Réputation: +  9  -
Profil  

Cache-cache avec les composants

Edit : sjrd : désolé j'ai fait une fausse manip et j'ai perdu le texte de ce message. Voici le code que intello proposait :
uses
  FunLabyBase;

components
  Table: TTable;

obstacle TTable(TBlock)
  name 'Table';
  image 'Furniture/Table';

  on AfterConstruction do
  begin
    inherited;

    HideEffectAndTool := False;
  end;

  on Pushing do
  begin
    inherited;

    if Square.Tool <> nil then
      Square.Tool.Find(Context)
    else
      Player.ShowMessage('Il n''y a rien sur cette table.');
  end;
end;

end.


========================================
Pas, Flèches rapides, Flèches masquées, Impossible par Maxime, Elévateurs & Terrains vides,
Jeu de boutons

Admirez mes jeux de flèches, de téléporteurs , d'escaliers , de pas ou de boutons !


Notez ces labyrinthes

Modifié sjrd (fév. 27, 2011 14:51:05)

Hors-ligne

#3 fév. 27, 2011 14:50:16

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

Cache-cache avec les composants

Je crois que c'est justement ce que Xaumina voulait : avoir les outils au-dessus de la table.

Voilà une idée possible :
uses
  FunLabyBase;

components
  Table: TTable;

obstacle TTable(TBlock)
  name 'Table';
  image 'Furniture/Table';

  on AfterConstruction do
  begin
    inherited;

    HideEffectAndTool := True;
  end;

  on DoDraw do
  begin
    inherited;

    if Map[Position].Tool <> nil then
      Map[Position].Tool.Draw(Context);
  end;

  on Pushing do
  begin
    inherited;

    if Square.Tool <> nil then
      Square.Tool.Find(Context)
    else
      Player.ShowMessage('Il n''y a rien sur cette table.');
  end;
end;

end.


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#4 fév. 27, 2011 21:25:58

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Cache-cache avec les composants

Merci, c'est ce que je voulais. mais la formule ne marche pas, le compilateur m'indique qu'il ne trouve pas l'indentificateur Position.

Modifié Xaumina (fév. 27, 2011 21:59:14)

Hors-ligne

#5 fév. 28, 2011 00:07:20

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

Cache-cache avec les composants

C'est c'est Pos à la place de Position.


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#6 fév. 28, 2011 17:44:42

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Cache-cache avec les composants

Merci encore (pour avoir fait LifeAndMonsters et MovingMonsters aussi).
Mais cette fois c'est mieux encore : l'ordinateur ne trouve plus Jouer à Funlabyrinthe.Ink et ne veut plus m'ouvrir mon labyrinthe.
C'est arrivé comme ça : j'ai modifié Position par Pos, et ensuite mis un point entre Square et Tool. Puis j'ai compilé, et il m'a fermé mon labyrinthe avec le message : "An error occurred in the application."
J'ai envoyé mon labyrinthe mais, maintenant que j'y pense, j'aurais surtout dû envoyer ma source.

Modifié Xaumina (fév. 28, 2011 17:58:20)

Hors-ligne

#7 fév. 28, 2011 19:01:14

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

Cache-cache avec les composants

Je crois que ça correspond à un bug que j'ai corrigé déjà, dans ma version de travail.
Mais il n'est pas bloquant : as-tu essayé de simplement cliquer sur Continuer puis utiliser le Ouvrir récent pour rouvrir ton labyrinthe ?
Ou encore relancer l'éditeur et ouvrir ton labyrinthe ?

Parce que ce bug n'apparaît que quand on utiliser le bouton Recharger tout (Ctrl+Maj+F9).

Edit : sinon oui je veux bien la source aussi, ça m'aidera à résoudre le problème, si ce n'est pas ça.


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Modifié sjrd (fév. 28, 2011 19:03:06)

Hors-ligne

#8 fév. 28, 2011 22:08:28

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Cache-cache avec les composants

Je la poste ici.

Pièces jointes :
attachment Namini.fnd (1,1 KB)

Hors-ligne

#9 mars 1, 2011 00:43:30

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

Cache-cache avec les composants

Voici l'unité corrigée.

Pour info j'ai changé :
  on DoDraw do
  begin
    inherited;

    if Map[Pos].Tool <> nil then
      Map[Pos].Tool.Draw(Context);
  end;

en :
  on DoDraw do
  begin
    inherited;

    if (Map <> nil) and (Map[Pos].Tool <> nil) then
      Map[Pos].Tool.Draw(Context);
  end;

Donc c'était de ma faute, dans le code que je te proposais.

Il te suffit d'écraser ton source Namini.fnd, puis de faire Fichier|Tour recompiler, et tu pourras rouvrir ton labyrinthe.


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Pièces jointes :
attachment Namini.fnd (1,1 KB)

Hors-ligne

#10 mars 1, 2011 18:05:49

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Cache-cache avec les composants

sjrd
Il te suffit d'écraser ton source Namini.fnd, puis...

L'ecraser ? Le supprimer ?
J'ai bien tout recompilé, mais le même message s'affiche.

Modifié Xaumina (mars 1, 2011 18:10:03)

Hors-ligne

Pied de page

Modération

Powered by DjangoBB

Lo-Fi Version