Syntaxe
Attache une famille de commandes à une variable : s.position(100, 200) appelle alors SpritePosition(s, 100, 200) et s.x lit SpriteX(s), partout dans le programme.
<var> = Create<Family>(…)
<var> AS <Family>
<var>.<property>(<arguments>)
<var>.<property> = <value>
… <var>.<property> …S’écrit aussi : s.position(x, y)
Les éléments
| <var> | Une variable qui contient l’identifiant d’un objet. |
|---|---|
| <Family> | La famille de commandes : déduite de Create<Family>(, Load<Family>( ou Clone<Family>( quand c’est tout le membre de droite, ou déclarée avec AS Sprite, AS Object, AS Camera… |
| <property> | La fin d’un nom de commande du catalogue de cette famille : position, x, visible… |
| <arguments> | Les autres arguments de la commande. Les lectures qu’ils contiennent sont réécrites aussi. |
| <value> | La valeur à écrire. Elle est recopiée telle quelle, sans réécriture. |
À savoir
- L’écriture avec
=ne réécrit pas son membre de droite. Danss.angle = s.angle + 5, les.anglede droite reste tel quel et le sprite reçoit autre chose qu’un nombre, sans erreur. Utilisez la forme appel :s.angle(s.angle + 5). - L’écriture avec
=doit être une instruction entière. AprèsTHENdans unIFsur une ligne, utilisez la forme appel :IF s.visible = 0 THEN s.visible(1). - CreateObjectBox(), CreatePointLight() et les autres noms de création qui portent plus que la famille n’en donnent aucune : déclarez d’abord
box AS Object. CreateObjectSphere() donne une mauvaise famille qui l’emporte surAS Object: utilisez sa forme qui prend un identifiant. - Une famille n’est pas un type de paramètre :
FUNCTION Move(s AS Sprite)est refusé (« Unknown BASIC parameter type »). Prenez le paramètre sans type et écrivezs AS Spriteà la première ligne du corps. - Une propriété inconnue est une erreur de compilation : « Unknown property on sprite: .positon ». Seulement des propriétés :
s.delete()est refusé, écrivez DeleteSprite(s). - Restent intacts : les variables sans famille, les champs d’enregistrement (
hero.health), les membres de liste ou de map,SELF.fielddans une méthode, et l’intérieur des chaînes.
Exemple
img = LoadImage("hero.png")s = CreateSprite(img)s.position(100, 200)s.visible = 1s.x(s.x + 10)Console(Str(s.x) + " " + Str(s.visible)) ' 110 1Dans le manuel : Raccourcis