Skip to content

📝 Blog

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 !

Arcade Stick 4

Je progresse lentement, mais je publie encore plus lentement mes articles, désolé ;)

J'ai voulu, comme un gosse que je suis, câbler et tester au plus vite.
Alors c'est parti !

Rien de complexe, mais pensez à essayer à la pince : je me suis écorché les doigts tellement il y a de cosses à raccorder.

J'ai ensuite testé tout ça avec un programme très pratique que je n'ai trouvé que sous Linux : jstest
Cela m'a permis de voir si tous mes boutons envoyaient bien un signal.

Je dois encore creuser parce que j'ai à cette occasion découvert qu'une des bornes de la carte USB joystick ne répond pas.

Pour éviter que trop de temps ne s'écoule encore entre deux articles, je vais enchainer tout de suite avec ce que j'ai fait le week end dernier.
J'ai mis en place un rabas sur charnière pour fermer l'ensemble.

J'ai au préalable préparé les 2 cales aux bonnes dimensions, plutôt patiemment pour une fois.

Le rendu final n'est pas trop moche (bavures de colle mis à part, mais l'orage menaçait et je suis parfois bêtement fainéant ;) )

La suite bientôt j'espère.
J'ai reçu différents éléments pour mettre en façade les ports HDMI, Usb et audio.
Il restera également à positionner les 3 boutons de plus petit diamètre.

En attendant, ma Raspberry tourne et lance déjà quelques jeux Mame ainsi que Amstrad pour madame :)