Skip to content

📝 Blog

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

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 : tontoncodeur@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 ;)

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 ;)

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 ?

Arcade Stick 5

Toujours aussi vif, ce blog a un rythme que l'on peu qualifier de charmant si l'on a une nette préférence pour les trains à vapeurs dans un monde de TGV ;)

J'ai rajouté les boutons de façade et arrière, même si tous ces assemblages de boutons auraient du se faire une fois la peinture finie.

Encore une impatience de ma part, alors que j'étais bien parti en préparant et protégeant les différentes pièces.

J'y suis allé comme un bourrin en bombant tout ce que j'avais de visible par peur de l'orage menaçant.
Du coup, cette première couche a plein de coulures bien dégeux alors que c'est pourtant simple d'y aller calmement, face par face, toujours à plat et par touches modérées.

Tant pis, quand tu es en mode "bricoletoimeme", il faut considérer ça quand même comme un progrès :)

Ce qui ne se voit pas c'est que j'ai par ailleurs acheté les différents cables.
La plupart sont trop long, mais je n'étais pas super chaud pour payer 2 ou 3 fois le prix pour des cables de 10 ou 20 cm.
Pour cette version arcade stick, je pense que cela reste acceptable.

Il est probable que je ponce un peu toutes ces coulures et que je refasse une couche plus propre.
Ou alors, j'en profite pour expérimenter différentes façons de couvrir les faces.

Il faut aussi que je me trompe sur ces aspects là pour réduire le coût d'éventuelles erreurs sur les futurs modèles plus gros comme le bartop.

Allez, la bise !