WITH <family>

Instruction

Syntaxe

Ouvre un bloc où \property appelle la commande du catalogue <Family><Property> sur un objet, pour n’écrire qu’une fois son identifiant et le nom de la famille.

WITH <FAMILY> <expression>
  \<property> [<arguments>]
  … \<property> …
ENDWITH
END WITH

S’écrit aussi : WITH SPRITE

Les éléments

<FAMILY>Un mot qui commence des noms de commandes du catalogue : SPRITE, TEXT, OBJECT, CAMERA, PARTICLES, IMAGE, MUSIC, MEMBLOCK…
<expression>L’identifiant de l’objet, passé en premier argument : une variable, ships[3], un nombre comme 1.
<property>La fin du nom de commande : \position avec SPRITE appelle SpritePosition().
<arguments>Les autres arguments d’une écriture, séparés par des virgules, sans parenthèses.

À savoir

  • La place décide du sens. En tête d’instruction, \prop écrit : \x 50 vaut SpriteX(s, 50). Partout ailleurs, il lit : x# = \x vaut SpriteX(s).
  • Une écriture n’a pas de =. \x = 50 n’est pas refusé, mais le programme produit ne démarre pas.
  • Une écriture doit ouvrir l’instruction. Dans IF … THEN \visible 1, le \visible est pris pour une lecture et le programme ne démarre pas. Utilisez un IF en bloc, comme dans l’exemple.
  • Une propriété absente du catalogue est une erreur de compilation : « Unknown property in WITH SPRITE: \positon ».
  • Les lignes qui ne commencent pas par \ sont des instructions ordinaires. Pas d’imbrication : un WITH dans un WITH est refusé.
  • Les noms d’AGK comme SetSpritePosition ou GetSpriteX n’existent pas : l’objet d’abord, la propriété ensuite, sans Set ni Get.

Exemple

s = CreateSprite(0)WITH SPRITE s  \position 100, 200  \size 64, 64  \x 50  x# = \x  IF \visible = 0    \visible 1  ENDIFENDWITHConsole(Str(x#) + " " + Str(SpriteY(s)))   ' 50 200
Dans le manuel : Raccourcis