ARME - PIXEL EDITOR
Nous allons maintenant donner à notre Player de quoi se défendre face à ses enemis et créer des armes.
Dans le Pixel Editor :
Sélectionner le "Pixel Editor", puis ouvrir le fichier "GameObjectTiles.bmp" se trouvant dans le dossier "GraphicAssets\<NomDeVotreProjet>" (dans mon cas dans "GraphicAssets\JEU01").
Afficher la grille en appuyant sur le bouton [8]. Et puis, dans un bloc non utilisé, dessiner ce qui sera l'Arme de votre Player.
Pour l'exemple de mon player, je dessiner une petite balle.
Une fois terminé, enregistrer le fichier Tileset.
ARME
Dans l'arborescence de NESMaker, sélectionner maintenant le "Melee" sous "Game Objects".
C'est l'objet correspondant à l'Arme principale du Player.
Commencer par le renommer en "Balle". Cliquer sur le bouton "Save".
Ensuite, vous devriez maintenant avoir l'habitude, sélectionner la taille de votre objet (ici, 1 bloc par 1), puis composer l'Arme en indiquant la tile à utiliser.
Dans mon exemple, je sélectionne ma tile "Balle".
REMARQUE IMPORTANTE : Pour les palettes, TOUS les objets se trouvant sous "Game Objects", utilisent les 2 mêmes palettes: celles du Player !
Peut importe la palette que vous sélectionnerez pour ces game objets (autre que le Player), en définitive, lorsque le jeu se lance, ils utilisent tous les couleurs du Player.
Pour cette raison, il est important de bien choisir les couleurs des 2 sub-palettes du Player (et bien assigner 2 palettes distinctes pour le player).
Remarque faite, sélectionner "Player Pal 1" pour la première palette et "Player Pal 2" pour la seconde. Maintenant choisissez l'une ou l'autre palette pour votre Arme.
Pour mon exemple, je vais choisir la SubPal2. (Si pour ma balle, je souhaitais plutot avoir une couleur rose foncé, je peux retourner dans Pixel Editor et modifié la couleur utilisé pour le dessin de ma balle)
Cliquer sur le bouton "Object Details"…
- Dans l'onglet "Animations", laisser tel quel (il est tout à fait possible de réaliser et assigner des animations à l'Arme, comme montré précédemment avec les animations du Player).
- Dans l'onglet "Détail", commencer par cocher la case "player weapon" (Arme du Player) qui est le type d'objet que nous sommes en train de créer.
Ensuite, pour "Solid Object Reaction" et "Edge Object Reaction", sélectionner "Destroy Me" pour que l'Arme soit détruite lorsqu'il en collision avec un objet solide ou le bord de l'écran.
Indiquer également une vitesse et l'accélération de votre Arme (dans notre exemple, je choisis une vitesse de "100" et une accélération au maximum).
- Dans l'onglet "Actions", laisser tel quel.
- Dans l'onglet "Bounding Box", indiquer une bounding box pour votre Arme.
Appuyer sur le bouton "Close" pour valider. L'Arme est terminée.
Nous allons maintenant voir le positionnement en fonction des directions du Player.
ARME - POSITION
Dans l'arborescence NESMaker, sélectionne l'élément "Game Objects" (pas en dessous, mais bien "Game Objects"), l'écran suivant devrait s'afficher :
Cet écran permet de régler le positionnement des différents armes en fonction des directions du Player.
Dans la première liste déroulante en haut, sélectionner "Down" (= lorsque le Player est dirigé vers le bas).
Pour la seconde liste déroulante, sélectionner "Melee". Et modifier les "X Offset" et "Y offeset" pour positionner correctement l'arme sur le Player (garder en tête que le noir est transparent).
Ensuite, faire de même pour le positionnement de l'Arme lorsque "Up", "Left", "Right". (les autres directions ne sont pas utilisées dans notre projet).
Il ne reste plus qu'à assigner un script pour déclencer notre Arme sur l'appui d'un bouton.
ARME - INPUTS SCRIPTS
Pour pouvoir déclencer notre Arme, nous devons ajouter 1 script à notre projet.
Il n'est pas livré avec la version 4.0.0 de NESMaker (il provient de la beta), nous allons donc le créer.
Dans l'arborescence de NESMaker, sous "Scripts" et sélectionner "Inputs scripts".
Cliquer sur le bouton "Create", se déplacer jusqu'au dossier "UserScripts\BasicScripts\InputScripts" et saisir "CreateSimpleProjectileWithMotion" pour nom de fichier. Valider en calquant sur "Enregistrer".
Ensuite, dans la liste de droite, se déplacer jusqu'au dossier "UserScripts\BasicScripts\MovementScripts" et et double-cliquer sur les fichiers "CreateSimpleProjectileWithMotion.ASM"
Enfin, sous "Scripts > Input Scripts", sélectionner "CreateSimpleProjectileWithMotion.ASM" et y coller, le script ci-dessous (cliquer sur le bouton "SELECT ALL" puis faire CTLR+C pour copier le texte):
Code:
CreateSimpleProjectileWithMotion:
LDY player1_object
CPY #$FF ;; if the player object is set to ff, he's dead.
BNE playerCanCreateProjectile
RTS
playerCanCreateProjectile:
;; get offset
;; in a later version, we will use user defined offsets.
;; for now, we'll place projectile creation at center of object
LDA Object_movement,y
AND #%00000111
TAX
LDA weaponOffsetTableX,x
;;; now we have the offset
CLC
ADC Object_x_hi,y
STA temp1
LDA weaponOffsetTableY,x
CLC
ADC Object_y_hi,y
STA temp2
CreateObject temp1, temp2, #$01, #$00 ;; <<== Create a Game Object 01 (=Melee)
LDA Object_movement,y
AND #%00000111
STA temp
TAY
LDA DirectionMovementTable,y
ORA temp
STA Object_movement,x
;; add object size offset.
LDA Object_x_hi,x
SEC
SBC #$08 ;; half of the width of the intended projectile
STA Object_x_hi,x
LDA Object_y_hi,x
SEC
SBC #$08 ;; half of the height of the intended projectile
STA Object_y_hi,x
;;PlaySound #$00, #$00
RTS
Ce script créer un objet 01 (=Arme principale) à coté du Player.
Cliquer sur le bouton "Save"
Note: ce script (ou script équivalent) sera fourni avec les pachaines version de NESMaker.
ARME - INPUT EDITOR
Se rendre maintenant dans "Input Editor".
Dans la liste déroulante "Game State", sélectionner "MainGame" (c'est à dire en cours de jeu). Dans "Target", sélectionner "NULL" (toujours choisir NULL pour tous les scripts, car actuellement ce paramètre n'est pas géré).
Dans "script to run", sélectionner le script "CreateSimpleProjectileWithMotion.asm", sélectionner (à l'aide de la souris) le bouton concerné sur la manette, par exemple "B"
Cliquer ensuite sur le bouton "Press-Hold-Release" pour qu'il affiche "Press".
Enfin, "Add Script" pour associer le script (lorsqu'on appuie sur le bouton).
La ligne correspondante apparaît dans la liste des commandes de contrôles assignées.
Il n'y a plus qu'à tester... via le menu "Test > Export & Test".
Voilà, votre player devrait maintenant pouvoir se défendre.
Note: le script fourni ici crée le game object 01 (=Arme principale), mais on pourrait très bien modifier ou dupliquer ce script pour créer un autre game object (02 pour "projectile source", 03 pour "projectile", ...)
>> La suite, "HUD - ITEMS COLLECTABLES", ici : http://nesmakers.com/viewtopic.php?p=4323#p4323