vendredi 29 juillet 2016

Pico-8 : premiers pas 4

Passons à la quatrième étape de ce petit tour de Pico-8.

Nous allons aujourd'hui faire en sorte que le Blob ait sa fonction create_blob qui retourne un objet blob lui même.
L'idée est de pouvoir créer à la chaîne des Blob.

Du coup, l'initialisation se fera de cette façon :

function _init()
    cls()
    blob=create_blob(60,60,20,8,3)
end

Et la fonction modifiée sera maintenant :

function create_blob(x,y,max,r,color)
    baby={}
    baby.x=x
    baby.y=y
    baby.max=max
    baby.r=r
    baby.color=color
    baby.draw=function()
        circ(baby.x,baby.y,baby.max,baby.color)
        circfill(baby.x,baby.y,baby.r,baby.color)
    end
    return baby
end

Nous y créons un objet baby que nous construisons puis à l'aide du mot clé return, nous renvoyons cet objet à celui qui nous a appellé.

Rien de sorcier non ?
Je suis sûr qu'on va continuer comme ça.
La prochaine étape sera un peu plus conséquente.

jeudi 28 juillet 2016

Pico-8 : premiers pas 3

Toujours là ?
Bien, aujourd'hui, nous allons ajouter quelque chose de bien pratique à notre Blob.
On va lui donner une fonction qui saura comment il se dessinera.

Pour cela, nous modifions la fonction create_blob

function create_blob(x,y,max,r,color)
    blob.x=x
    blob.y=y
    blob.max=max
    blob.r=r
    blob.color=color
    blob.draw=function()
        circ(blob.x,blob.y,blob.max,blob.color);
        circfill(blob.x,blob.y,blob.r,blob.color);
    end

De la même manière que nous avions ajouté par exemple les coordonnées x et y, nous ajoutons la fonction draw qui dessinera le Blob.

Il suffit alors d'utiliser cette fonction dans la fonction _draw()

function _draw()
    blob.draw()
end

Simplissime non ?
Comme toujours, vous pouvez m'écrire ou laisser des commentaires ici.

Le code est toujours disponible sur le Github Blobwars

mercredi 27 juillet 2016

Pico-8 : premiers pas 2

Je ne sais pas vous, mais pour moi le soleil de Toscane brille et j'écris ces lignes avec le doux son des cigales.
Normalement, si j'étais organisé et méthodique, je devrais vous expliquer ce que je cherche à créer comme jeu.
Mais bon... :)

Voyons ce qu'on peut écrire aujourd'hui.
Commençons par déclarer l'objet qui sera un Blob.

blob={}

Puis, initialisons le avec les valeurs qui nous conviennent, au sein de la fonction _init() vue précédemment.

function _init()
    cls();
    create_blob(60,60,20,8,3);
end

Nous verrons le contenu de cette fonction de création plus bas.
Enchainons avec un _update() des plus simples ;)

function _update()

end

Et la fonction _draw() qui utilise des informations de notre Blob.

function _draw()
    circ(blob.x,blob.y,blob.max,blob.color);
    circfill(blob.x,blob.y,blob.r,blob.color);
end

Pour finir, la fonction de création de notre Blob.

function create_blob(x,y,max,r,color)
    blob.x=x
    blob.y=y
    blob.max=max
    blob.r=r
    blob.color=color
end

Rien de bien méchant non ?
Pourtant, nous avons là la base de travail suffisamment évoluée pour toute la suite.
L'objet blob possède à présent des coordonnées x et y, une couleur color et un rayon courant r qui sera maximisé par max.

Écrivez moi si vous avez des questions : titimoby@gmail.com

Pour les codes complets, je met tout dans un repository Github
Et si vous lisez les étapes suivantes, vous devrez néanmoins attendre mes articles pour avoir les explications ;)

lundi 25 juillet 2016

Pico-8 : premiers pas 1

Entrons dans le vif du sujet, c'est ce qu'il y a de mieux pour apprendre.

function _init()
    cls();
end

function _update()

end

function _draw()
    circ(30,30,10,2);
    circfill(60,60,10,4);
end

Ce programme Pico-8 va nous permettre de voir le minimum pour démarrer.

Voyez d'abord les trois blocs qui commencent par function et finissent par end.
C'est le moyen en Pico-8 de définir des fonctions. Pour être exact, c'est la façon définie par le langage LUA sur lequel est basé Pico-8.

Ces 3 fonctions ne sont pas nommées au hasard.

La première est celle qui sera appelée au lancement du programme, et elle le sera une seule fois.
Pour le moment, on se contente d'effacer l'écran avec la commande cls()

La seconde fonction est appelée update().
Elle est appelée à chaque cycle, 25 fois par seconde.
Pour le moment, nous n'effectuons pas de calculs.

La dernière se nomme draw()
Elle est également appelée 25 fois par seconde, juste après update()
Nous utilisons ici 2 fonctions de Pico-8 :
  • circ qui trace un cercle
  • circfill qui trace un disque

Facile non ?

Pico-8 : En Avant !

Suite à un Tweet de mon ami @k33g_org j'ai craqué et commandé un PocketChip
Ce qui m'a le plus marqué, c'est la présence d'un petit quelque chose appelé Pico-8

Ça m'a tout de suite accroché : un esprit à l'ancienne, devoir coder dans un environnement limité...
Bon, c'est clair qu'il y est allé un peu fort avec ces 128x128 de résolution, mais pourquoi pas.

Comme le PocketChip n'arrive qu'en Juillet et que de toute façon, on ne peut pas développer sur desktop avec la licence incluse, j'ai acheté le pack Pico8 et Voxtron.

A partir de là, puisque j'en suis à redécouvrir LUA et l'environnement de Pico-8, autant vous en faire profiter dans une série de petits articles qui suivront le déroulement du développement d'un mini jeu.

Edit: Raaahhhhhh, il y a un petit retard à l'allumage chez PocketChip et je ne serais livré qu'en septembre. Je vais donc être obligé de rédiger tout le petit tuto en attendant ;)