Code Monkey home page Code Monkey logo

minimonde's Introduction

minimonde

Mini monde simple pour tester la programmation avec sugarCubes.

A la différence d'un programme en asynchrone, ici les objets (au sens des orientés objets) sont réactifs : Ils sont autonomes.

Pour en savoir plus sur SugarCubes : https://github.com/LordManta/SugarCubesJS

J'utilise également une librairie qui permet de coder plus facilement du SugarCubes avec JavaScript : https://github.com/cl4cnam/SugarCubesFacile et SugarCubesDOM.js qui est une machine d'exécution générique.

Explications

Ce mini monde est une petite animation pour montrer les possibilités d'une programmation réactive.

Tout au long du code j'ai inséré des commentaires explicatifs.

Pour voir l'animation : https://vbatcnam.github.io/minimonde/ Attention cette animation est en cours de création, ce lien rique de ne pas toujours marcher.

Cette version comporte une vache qui broute. Lorsqu'on clique sur elle, elle lève la tête un instant puis se remet à brouter.

minimonde's People

Contributors

lordmanta avatar vbatcnam avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

minimonde's Issues

this.evt is undefined

TypeError: [this.evt is undefined
SugarCubes.js:1466:13

L'erreur vient du fait que j'ai écrit dans herbe.js
var eatMe;
if(this.taille == 3){
eatMe = SC.evt("mange moi");
}

//le comportement du cube qui a l'herbe
var progHerbe = SC.par(
SC.generate(eatMe, SC.my("me"), SC.forever)//Si elle est adulte
//, SC.actionOn(jeMange, SC.my("eaten"), undefined, SC.forever)
, SC.generate(drawMe, SC.my("drawer"), SC.forever)//se dessine
);

En fait ma première idée était d’émettre l’événement uniquement si l'herbe avait une taille suffisamment grande pour être mangée.

2e hypothèse :
Peut-être pourrais-je mettre
var eatMe = SC.evt("je suis commestible");
var progHerbe = SC.par(
SC.generate(eatMe, SC.my("me"), SC.forever)//La vache vérifie si elle est adulte avant de la manger
//, SC.actionOn(jeMange, SC.my("eaten"), undefined, SC.forever)
, SC.generate(drawMe, SC.my("drawer"), SC.forever)//se dessine
);

La vache regardera si l'herbe est assez grande pour être mangée.

Cubes dans un cube

Y a-t-il un moyen de mettre des cubes dans un cube ?

Par exemple mon cube prairie qui contient des cubes d'herbe, de fleur...
Je voudrais que la prairie crée des cubes que si elle a de la place.

Peut-on faire une fonction genereHerbe dans le cube priairie qui addProgram(cubeHerbe)

problème getEltSVG()

J'ai un problème avec la fonction getEltSVG() dans herbe.js (le problème sera partout dès que je voudrais avoir accès au svg)

Lorsque j'appelle cette fonction, le svg n'est pas entièrement chargé

si je fais
for(var i = 0; i<5; i++){
let herbe = new Herbe(i+1);
herbe.draw(i+2, i+4);
window.addEventListener("load", function(evt){
var eltSvg = herbe.getEltSVG();
console.log("eltSvg après return de getEltSVG");
console.log(eltSvg);
herbe.getEchelle(eltSvg);
})
}
Est-ce que SC évite de faire window.addEventListene... ?

Peut-être que je dois repenser mes fonctions avec des SC.quelquechose

problème : script chargé avec type MIME non valide

Le lien https://vbatcnam.github.io/minimonde/
donne le problème suivant
Le script à l’adresse « https://vbatcnam.github.io/minimonde/javaScript/SugarCubes.js » a été chargé alors que son type MIME (« text/html ») n’est pas un type MIME JavaScript valide.

Or, le lien https://vbatcnam.github.io/tuto_sugarCubes/miniSweet/
marche très bien.
Quelle est la différence qui fait que l'un marche et l'autre pas ?

Mon investigation :

  • Ce n'es pas à cause du "use strict" que j'utilise dans les script de minimonde et pas dans les autres.
  • Il y a une nouveauté qui n'est pas dans les miniSweets et le casse brique :
    Github à ajouté à l’intérieur des fichier.js
    Jump to definition is still being calculated for this commit. Check back in a bit. Beta
    ou bien
    You're using jump to definition to discover and navigate code. Beta

J'ai donc fait un petit programme simple https://github.com/vbatcnam/hello_world
J'ai le même problème https://vbatcnam.github.io/hello_world/
Le script à l’adresse « https://vbatcnam.github.io/hello_world/hello.js » a été chargé alors que son type MIME (« text/html ») n’est pas un type MIME JavaScript valide

Comment configurer le type MIME des fichiers sur github ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.