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

mardi 21 juin 2016

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 !

mercredi 8 juin 2016

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

mardi 24 mai 2016

Arcade Stick 3

J'ai pris un peu de retard sur ce petit récit.
Nous en étions restés au percage (et fissurage) de la plaque de plexi.

J'ai ensuite marqué et creusé les passages correspondants aux clips.


Il a fallut ensuite faire une légère défonce pour que la plaque du stick s'encastre pile sous la plaque de plexi.



La suite a consisté à construire la boite globale.




Oui, tous les moyens sont bon pour caler et fixer au mieux l'ensemble.
Au passage, j'assume toutes mes aneries, je me suis trompé à un des collages mais j'ai pu switcher de pièce assez rapidement.


Un dernier assemblage bien sanglé...


Et on a une base pas trop vilaine et assez robuste.








vendredi 13 mai 2016

Arcade Stick 2

Alors, j'étais resté à vous montrer combien mes trous pour les boutons étaient moches parce que faits à la perceuse.
Et comme c'était une mauvaise idée d'utiliser une défonceuse à main levé sur un établi mal éclairé et avec peu d'espace autour.

Histoire de bien rire, dans le bordel de mon installation bancale j'ai réussi à perdre la mèche plate de 30mm.

Le positif ? (vous allez voir, je suis balaise à ce jeu là)
Je combine le tout, je me rappelle que ma défonceuse peut utiliser une fraise de 30mm, mais comme je suis une faignasse, je ne refait pas ma plaque bois, j'attaque la plaque de plexi blanc.
Pour tout avouer, je préfère terminer cet arcade stick pour apprendre toutes les erreurs possibles avant d'attaquer un bartop.

C'est que j'ai toutes les pièces en attente, pas que ça à faire ;)



Allez, défonceuse Lidl à 30€, en avaaaannnt !



Pour ma prochaine série de trous de 30mm dans le bois, ce sera génial.
Pour le plexi, même en y allant tout doux, ça fond pas mal.
Mais le résultat n'est pas trop vilain si on prend son temps.



Oui, cette plaque est fragile, on va en reparler plus loin.



C'est vraiment trop fragile.
Pour bien faire, j'aurai du percer à 31mm pour éviter toute contrainte sur le plexi qui est trop fin.
Je pense que ça fera l'affaire quand même pour le moment.
Ca me permettra de me pencher sur les possibilités de déco pour cacher les différentes erreurs, ce sera aussi formateur :)

Pour la suite, il faut que je marque les passages des clips des boutons.
Oui, si vous ne faites pas une plaque en métal pour accueillir vos boutons, il vaut mieux prendre des boutons vissables.


Mais on a déjà une plaque qui va pouvoir permettre de tester bientôt les branchements.


Il me reste tout de même à découper le passage du joystick.
Mais ça avance.