Affichage des articles dont le libellé est FR. Afficher tous les articles
Affichage des articles dont le libellé est FR. Afficher tous les articles

mardi 6 juin 2017

Pico-8 : premiers pas 5

Les vacances approchent, ça se prépare !
Allez, on reprend un peu de Pico-8 ;)

Premier changement, notre objet blob devient un ensemble de blobs.
blobs={{}, {}}
L'idée est de stocker l'ensemble des blobs du plateau de jeu.
On doit donc maintenant créer cet ensemble.
C'est le rôle de la fonction create_blobs.

function createblobs()
  for
li=1,8 do
    blobs[li]={}
    for col=1,8 do
      blobs[
li][col]={}
      blobs[
li][col]=create_blob(li*16-8,col*16-8,8,2,3)
    end
  end
end
Rien de magique ici : l'instruction for permet de gérer une boucle dans notre programme.

L'idée est de répéter les instructions à l'intérieur de cette boucle délimitée par for...end.
Nous gardons la trace de l'itération dans laquelle nous somme dans une variable, ici li, dans la première boucle.

Nous initialisons la ligne i de l'ensemble blobs puis nous lançons la boucle des colonnes (en utilisant col comme compteur).
On appelle alors la fonction create_blob qui contient ce qui est nécessaire à la création d'un blob.

Il ne nous reste plus qu'à afficher les blobs à chaque passage dans draw(), ce qui est le rôle de la fonction drawblobs()

function drawblobs()
  for li=1,8 do
    for col=1,8 do
      blobs[li][col].draw()
    end
  end
end
Nous retrouvons là une double boucle for...end comme dans createblobs() qui nous permet de n'oublier aucun blob.

Toujours rien d'insurmontable.

Il me reste à vous remercier et vous souhaiter une bonne attente pour l'épisode suivant ;) 

En attendant,  vous pouvez me joindre par email et regarder toutes les étapes sur Github

dimanche 25 décembre 2016

Un magnifique skate fait maison !

Alors qu'il aime utiliser des trotinettes depuis des années, mon fils s'est pris de passion pour le skateboard.
Il a d'abord étrangement commencé par un Waveboard, un truc du genre de celui ci :
https://www.decathlon.fr/rip-stik-surf-id_8364645.html

Il a très vite maitrisé la bête et s'est mis à s'en servir même comme moyen de transport.
Mais ce n'est pas ce qui est le plus adapté pour des trajets.

Alors vint la recherche du skateboard. A l'issue d'un voyage de sa sœur, il s'est fait ramener une sorte de Penny board


Le diable est dans les détails dit on, toujours est il qu'une autre passion s'est associé à celle ci : Youtube.
Pour être précis, des Youtubeurs faisant un tas de trucs de dingues sur des trampolines (sport préféré de junior avec le skate maintenant).

Ces gentils dingos ont également parfois le gout du skate : de fil en aiguille, il a fini par trouver des tonnes de vidéos de fous essayant de skater des objets non prévus comme des chariots à plantes ou des caddys recyclés.

Comme j'ai du lâcher un malheureux "ils pourraient au moins travailler une vraie planche en bois" j'ai rapidement constater que la playlist Youtube de la TV avait une belle liste de consultations de bricoleurs de skates DIY.

Ca va, il reste du monde pour suivre la suite ? :)
Parce que du coup, voilà la partie la plus interessante : j'ai donné le feu vert et nous voilà partis pour construire un skate maison.

Comme notre beau pays est devenu une misère pour se fournir en vraies planches (je suis preneur de toute adresse vendant des planches pour des particuliers à des tarifs raisonnables, toute essence de bois confondues) le projet a failli capoter.

Mais visiblement, junior avait une féroce envie de le fabriquer ce skate.
Et j'ai eu droit à une série de tutos pour faire une planche à partir de contreplaqué.

Vu la motivation, j'ai bien du dire GOOOO ! :)

L'ensemble de ce que l'on a fait est consultable sous la forme d'un album et je compléterai avec plus de détails sur ce blog pour ceux qui le souhaitent.





mercredi 14 septembre 2016

Micro:bit et Codebug : les cartes de découverte sont là !

Bonjour à tous !

J'ai fait une petite vidéo avec la carte CodeBug.
J'aime bien sa forme et son environnement est plus abouti pour le moment que celui de la Micro:bit.


J'avais également fait un petit tour en vidéo de la carte Micro:bit



Au final, il y a quand même plus de possibilité avec la Micro:bit de part les composants déjà présents.
L'appui d'un ensemble d'acteur derrière ce projet issu de la volonté du gouvernement anglais devrait jouer en faveur de la Micro:bit

Mais je ferai encore quelques jolis projets avec mes 2 CodeBug, elles sont tellement mignonnes :)

dimanche 28 août 2016

Découvrons le Micro: bit

Le Micro:bit qu'est ce que c'est?

Ce petit carré équipé de leds et de boutons est issu d'un programme éducatif mené par la BBC an Angleterre.
Le partenariat a abouti à cette carte programmable qui sera distribué aux écoliers anglais.

Toutes les informations sont disponibles sur un site dédié
Personnellement, j'ai acheté le mien sur Pihut mais il est disponible par d'autres boutiques et je ne suis affilié à personne ;)


Que faire avec ?

Le Micro:bit est vraiment pour tout âge. La preuve, @k33g_org a même installé de quoi coder directement en Javascript avec Espruino

Mais dès le départ, sans rien avoir d'autre que son ordinateur et la carte micro:bit, vous pouvez coder simplement et en ayant le choix.

Pour ce premier article, je vais vous montrer l'utilisation de Code Kingdoms Javascript.

Codons !

Pour montrer à @k33g_org que nous pouvons faire le même programme que lui, lancez votre navigateur (dans mon cas, Chrome sous Linux) et allez à la page rassemblant les choix pour coder le micro:bit.

Choisissez la première option : Code Kingdoms Javascript.


L'écran que vous allez voir est découpé en 3 zones :
  • la première à gauche rassemble les petits blocs qui vous servirons à coder. Il y a différentes catégories pour accéder aux leds, au valeurs du compas...
  • la partie centrale acceuillera votre programme
  • à droite le simulateur de Micro:bit permettant de voir le résultat avant de l'envoyer à la carte
 Commencez par ajouter un bloc While qui va représenter le fait que nous allons faire toujours la même succession de commandes, encore et encore.


Pour que la boucle soit continue, cliquez sur le mot Test entre parenthèses et choisissez True (vrai en anglais).

Ajouter à l'intérieur de ce bloc While la série de commandes suivantes :


=> Mynumber


=> cliquez sur Update et choisissez Left+Right


=> Mettez accelerationX dans Left et accelerationY dans Right


=> ajouter un bloc Say


=> Cliquez sur Value, choisissez #Number puis cliquez sur Number et choisissez Left+Right


=> Cliquez sur Left et choisissez Number dans la section Globals en bas, puis ajoutez accelerationZ dans Right


=> ajoutez un bloc Wait, cliquez sur Milliseconds et saisissez 500


  Et voilà, je sais que ça ne fais rien de très utile en soit, mais c'était pour l'exemple ;)
Vous pouvez cliquer sur RUN et bouger la souris dans le simulateur.

Si cela ne fonctionne pas et que vous avez un doute sur le code, cliquez tout en bas sur le rond le plus à droite en bas, à côté du logo CK.
Le texte du code doit être le suivant :
// When the BBC micro:bit runs.
function onStart(  ) {
    while (true) {
       
        globals.myNumber = microbit.accelerationX + microbit.accelerationY;
        microbit.say(globals.myNumber + microbit.accelerationZ);
        wait(500);
       
    }
   
   
}

Mais ce n'est pas suffisant.

Branchez votre Micro:bit sur un de vos ports USB.

Cliquez sur COMPILE et sauvegardez votre fichier .hex

Vous n'avez plus qu'à copier ce fichier xxx.hex dans le disque appelé MicroBit qui doit être apparu dans votre navigateur de fichier.

Tadaaamm


et comme on doit finir comme @k33g_org branchons le tout seulement sur une batterie externe ;)


Si ça vous a plu, je peux écrire d'autres articles avec de vrais objectifs à programmer ;)


Petit bonus de dernière minute : le même programme avec Block Editor

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

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.