Commit Graph

48 Commits

Author SHA1 Message Date
Le_dahut 14a654d791 Amélioration de la classe abutton afin de permettre de créer des boutons avec texte et choisir le centrage et le redimensionnement ou non de l'icone. 2014-07-01 22:32:43 +02:00
Le_dahut 7f8b8236a0 -Correction d'un bug d'enregistrement
-Lancement de la classe game lorsqu'un niveau est selectionné.
2014-06-15 23:47:58 +02:00
Le_dahut 0636650edd -Gestion de la modification des conditions de victoire par la molette 2014-06-15 23:30:57 +02:00
Le_dahut 4306452b89 -Regroupement des fonctions de chargment dans la classe io
-Ajout de la classe video qui lance la video au lancement du jeu
-Optimisation du rafraichissement de la fenêtre des mondes
2014-06-15 19:27:05 +02:00
Le_dahut 9c86d9ace9 -Ajout effets sonores dans le menu principal
-Enregistrement des mondes dans le "shelve" dbdata lors du click sur le logo2
-Suppression de l'affichage des évènements lors du monde édition
2014-06-13 18:22:13 +02:00
Le_dahut 1a0b6f9987 -Mise à jour du TODO
-Ajout des icônes qui définissent les conditions de victoire des niveaux dans le menu principal
-Modification de la classe arect pour une gestion de différents modes d'affichage et des couches
-Suspension de la musique en mode édition pour fluidifier
-Retirer le smoothing des lignes afin de fluidifier l'affichage
-Affichage du descriptif des niveaux
2014-06-13 16:54:42 +02:00
Le_dahut eee0cd6aab -Réindentation du code avec pycharm
-Gestion de l'enregistrement des modification faites dans les champs de texte des niveaux en mode edition.
2014-06-12 23:29:07 +02:00
Le_dahut e082379433 -Correction du bogue qui empeche le lien entre plusieurs mondes
-Centrage du nom des niveaux
-Positionnement du point chaud des curseurs.
2014-06-12 20:32:05 +02:00
Le_dahut 4613faa566 Ajout de nouveaux curseurs 2014-06-10 00:48:08 +02:00
Le_dahut e192e4ebd1 Ajout de l'édition des noms de niveaux 2014-06-09 23:04:30 +02:00
Le_dahut cab2e45517 -ajout de la gestion du redimensionnement de la fenetre
-correction de plusieurs bogues
2014-06-09 19:26:39 +02:00
Le_dahut 7b0656de07 Amélioration de l'édition des mondes 2014-06-09 17:23:50 +02:00
Le_dahut b9a993bb99 -Amelioration de l'édition des liens
-Liens debutant et terminant en dehors des images de niveau
2014-06-09 15:29:48 +02:00
Le_dahut 7684f46b39 Ajout d'un mode d'édition disponible depuis le mode debug en cliquant sur le logo
Il est possible de créer des liens entre les niveaux ou de les défaire et de bouger les niveaux ainsi que les suprimer et en créer de nouveaux (limite 10).
2014-06-08 22:06:19 +02:00
Le_dahut f3238217c7 -Ajout des nom de niveau et des éléments
-Gestion de la désactivation des niveau et affichage par le cadena
-Ajout du marquage des mondes spéciaux
2014-06-06 19:13:44 +02:00
Le_dahut 49d19509bc -Ajout de la mobilité du fond
-Tout les boutons passent en surbrillance lors du passage de la souris
-Detection du clic sur les niveaux et coloration de ceux-ci au survol de la souris
-Centralisation du lancement des évènements et gestion du regroupement des évènements
2014-06-05 16:03:33 +02:00
Le_dahut 473764306e -Ajout de deux images de fond
-Affichage du fond a partir de textures tuilées
-Ajout de deux handler mouse_enter et mouse_leave sur la class abutton
-Ajout de la surbrillande du bouton exit
2014-06-05 11:22:41 +02:00
Le_dahut eb6494300b -Correction et ajouts sur la classe abutton
-Reprise de l'interface de wirechem en utilisant les abuttons
2014-06-04 22:26:06 +02:00
Le_dahut cd70c0f236 -Ajout de la classe abutton qui permet de générer un élément de menu depuis une image, une couleur ou une fonction. 2014-06-04 17:02:25 +02:00
Le_dahut 21d978f459 -Creation de deux classes pour les deux fenêtre : menu principal et plateau de jeu.
-Récupération des fonction de lecture et d'écriture de données dans les "shelves".
2014-05-22 20:29:26 +02:00
Le_dahut 107ab3ca56 reprise du code...du début 2014-05-21 23:40:41 +02:00
Le_dahut 2dd99b09a5 -Ajout d'un fond tuilé lors de la création/simulation
-Ajout des évènements "scroll" et "release"
-Reprise de documentation.
2014-05-21 23:28:37 +02:00
Alyn de215327c3 modification des sources liés à l'élaboration du tutoriel. 2014-05-19 22:45:52 +02:00
Le_dahut 19f7015b9c -Ajout d'un icône par monde et d'une couleur, chaque labo devient un monde. Le monde possède le nom de l'élément ultime a réaliser, l'objectif du monde est un niveau qui est marqué d'un symbole biohazard.
-Application de la couleur du monde aux lettres qui sont affichés en surimpression et qui réprésente l'abrégé de l'élément chimique et aux liaisons actives entre les niveaux.
-Suppression de l'affichage du labo.
-Ajout d'un fond glissant de gauche a droite.
2014-05-19 21:11:58 +02:00
Le_dahut 471e78e233 -Ajout de description dans la documentation du langage tuto
-Correction de bogue dans l'execution du langage tuto
-Debut d'un tutoriel pour la paillasse 1
-Ajout de la lecture des paramètres pour avoir le mode debug
2014-05-17 11:50:49 +02:00
Le_dahut bafb591802 -Implémentation de toutes les fonctions du langage 'Tuto'
-Correction d'un bogue lors du lancement d'une paillasse sans tutoriel
-Ajout d'un document au format Markdown qui décrit le langage 'Tuto'
2014-05-15 11:30:14 +02:00
Le_dahut 8977108aa5 Mise en place d'un tutoriel interactif à partir d'un langage de script interprété depuis la variable 'tuto'. 2014-05-14 23:09:51 +02:00
Le_dahut b676b676f8 -Rechargement des 3 premiers mondes pour éviter la perte de l'electron lors d'un stop.
-Correction d'un bogue lors d'un stop par la fonction "reallystop"
-Renommage des fonctions programmée avec le préfixe "prog_" et les fonctions événementielles de menu par "click_", "drag_" et "motion_".
2014-05-14 18:36:02 +02:00
Le_dahut 0749bc11d8 -Généralisation de l'objet menu afin de gérer 3 types d'évènements (DRAG, MOTION & CLICK).
-L'appel des fonctions a réaliser sur chaque élément de menu est traité par la fonction "launch" qui créer un dict "state" avec toutes les informations necessaire au traitement de l'évènement (Type, Coordonnées, modifiers, Boutons..etc).
-Il est possible de faire des évaluation sur les booléens et sur les textes afin de rendre le menu dynamique.
2014-05-13 17:06:34 +02:00
Le_dahut f76847a81f - Création d'un système de gestion de menu centralisé
- Ajout de nouveau icônes
- Suppression de la variable dat et remplacement par une variable unique Menus qui contient une structure décrivant le comportement des menus de jeu.
2014-05-12 15:40:32 +02:00
Le_dahut 2f27ab738d -Remaniement du menu RAZ vers un nouveau menu "ouvrir" qui permet de revenir à la version initiale de la paillaisse ainsi qu'a des versions préalablement enregistrées par le biais du menu "sauver". 2014-05-04 11:44:38 +02:00
Le_dahut 654fc6bccb -Correction d'un bogue dans la fonction Resize qui provoquait des erreur de centrage dans certaines paillasses.
-Suppression d'un gros bogue qui provoquait l'inversion des éléments activables et non activables.
-Encore un bogue supprimé lors du redimensionnement de la fenêtre et que les caddits disponible sont à 0.
- Dans la fonction "reallystop", l'oubli d'un deepcopy provoquait des erreurs de réinitialisation de la variable current depuis le dictionaire persistant qui était lui aussi modifié.
-La fonction invert, boguée, modifiait la charge neutre d'un électron neutre.
2014-05-02 19:08:54 +02:00
Le_dahut 7742aafaaa Mise en mode debug pour test de commit 2014-04-10 16:00:57 +02:00
Le_dahut 75984ef2c3 -Ajout de documentation (README,TODO,CREDITS,LICENSE,CHANGELOG)
-Inclusion de copyright et d'informations dans les sources.
2014-04-10 10:02:37 +02:00
Le_dahut 17d3fbd28f Dépositionnement du mode debug 2014-04-09 18:19:55 +02:00
Le_dahut 699018bbbf Correction d'un bogue important concernant la designation d'une variable 2014-04-09 18:08:43 +02:00
Le_dahut 0c72638f2c Modification profonde du système de stockage des informations de jeu (menu, éléments de jeu, niveaux) avec le système des shelves (dictionnaire persistant).
Stocké dans la base globale "dbdata" du jeu:
-menu dans la variable "dat"
-elements de jeux dans la variable "art"
-pour la définition des niveaux de jeu "worlds"

Stocké dans la base "utilisateur" du jeu situé dans le repertoire personnel de l'utilisateur:
-pour l'enregistrement des parties utilisateurs "Uworlds"
-pour l'enregistrement de l'avancement du jeu "Finished"
2014-03-28 18:16:33 +01:00
Le_dahut 910fd6d5bb Correction de la fonction reference qui permet de rajouter des informations dans le dictionnaire en fonction de leur positionnement dans une liste. 2014-03-08 22:08:40 +01:00
Le_dahut 2c0f386ad2 Modification majeure vers le nouveau format de stockage pour tout les mondes
Reste a convertir les elements et les menus
2014-03-08 20:23:05 +01:00
Le_dahut 3aa87a9c61 -Dans la fonction writepref, suppression des doublons des mondes débloqués.
-Renomage de la fonction drawvictory vers drawcondvictory afin d'être plus explicite.
-Explosion de la fonction drawgrid en drawgrid+drawpopup+drawbigstat+drawgameover+drawvictory afin d'améliorer la clarté du code.
-Blocage de la taille de la fenêtre a un minimum de 1024*768
-Modification de l'implantation de conditions de victoire et des données actuelles dans la barre du haut pour autoriser un redimensionnement de l'interface en fonction de la taille de la fenêtre.
2014-02-13 11:39:45 +01:00
Le_dahut cb9f2e433b -Ajout d'un évènement on resize qui appelle la fonction resize qui permet de centrer et redimensionner la grille par rapport à la fenêtre.
-Le passage en plein écran (screen) appelle la fonction resize.
-initgrid déclenche la fonction resize.
-Rajout de la récupération des valeurs a des fins statistiques dans la variable stat_var au sein de la fonction nextgrid.
-Augmentation des rayons lors de la collision, rayon+1 en collision 2xe+ ou 2xe- et rayon+10 en collision 2e-2e+.
-Modification des éléments canaliseur gauche et droit dans les fonctions isgauche et isdroite.
-Intégration de protons et neutrons dans la fonction infos qui dénombre chacune des catégorie de particules.
-Réinitialisation de la variable statistique stat_var lors des arret de simulation (reallystop).
-Création d'une fonction stater qui permet de modifier la variable seestat qui conditionne l'affichage des statistiques.
-Implémentation de l'affichage des statistique dans la fonction drawgrid.
-Modification de la fonction drawgrid pour permettre le redimensionnement de la barre du bas en fonction de la résolution horizontale de l'écran. Le diagramme de répartition varie en taille voir se subdivise en deux selon la place disponible et les icones tech et cout sont impérativement implanté en bas a droite.
-Correction d'un bogue dans drawgrid : l'affichage de la couleur de fond de l'élement chimique était érroné.
-Ajout dans l'affichage des mondes (drawworld) d'un cadenas sur les grilles non disponibles et du numéro de monde en haut a gauche.
-Modification de la fonction drawstat afin de pouvoir faire des diagrammes de répartitions selon un tableau fournis en paramètre.
-Implémentation des fonctions drawgraph et drawcumulgraph pour dessiner des graphiques et graphiques cumulés.
2014-02-12 14:05:38 +01:00
Le_dahut 7c63488663 - Ajout d'un menu contextuel qui affiche selon le niveau technologique les informations sur les éléments de jeu.
- Mise a zero des objectifs dans la variable victory dans init.
- Force quelque soient les valeurs de zoom, decx et decy le centrage automatique au chargement d'une grille de niveau.
- Debut d'implémentation d'un menu de préférence.
- Ajout de la fonction drawlaser qui est utilisée dans la fonction drawworld en charge de l'affichage du sélecteur de grille (niveau) pour rajouter un effet graphique de liaison entre les niveaux qui ont été débloqués.
- Ajout d'un effet autour des carrés de selection de tâche dans le menu bas.
- Affichage des limite a partir du niveau 5 avec la mention illimité si le nombre de cycle est grand plutot qu'on affichage numérique.
- Recadrage des message de perte ou de victoire en fonction de la taille écran.
- Suppression d'un bug dans la fonction infos qui donnait des informations eronés de victoire.
- Ajout d'un motif de gameover : création d'un neutron ou d'un proton alors que la case située juste en dessous du réacteur est déjà occupée.
- Correction d'un bogue dans la fonction erase qui ne supprimait pas correctement les protons et neutrons.
- Modifie le gameover de telle manière a ce qu'uniquement les collisions entre protons et neutrons soient sanctionnée par un gameover.
- Correction d'un bogue dans la fonction mousepress pour éviter que l'on puisse déclancer l'action au premier clique quand celle-ci est génératrice d'objet (dessin).
2014-02-07 18:08:53 +01:00
Le_dahut 2feaf6445a - Ajout du positionnement en Y de txt_drag et txt_drag2 dans la fonction drawgrid.
- Modification du postionnement du message de victoire et de gameover.
2014-02-04 08:18:15 +01:00
Le_dahut f6329a5b80 - Bug dans drawitdem : création d'un label retiré.
- Rajout du chargement des polices de caractère au lancement puis affectation des polices dans les labels.
- Changement de couleurs des éléments textes et reglages de coordonnées en fonction des nouvelles polices.
- Ajout des fichiers de polices dans le répertoire font.
- Modification de l'image levels2.png afin d'affiner le contraste.
- Modification du fichier worlds.dat afin de repositionner les éléments suite aux changements de police.
- Ajout du positionnement en Y de txt_drag et txt_drag2 dans la fonction drawgrid.
2014-02-04 08:16:23 +01:00
Le_dahut b8d0d1eeb1 - Ajout de la lecture directe de fichiers ressources (préfixe %) dans le dict items par le biais de la fonction loaditems.
- Ajout du calcul automatique des variables decx,decy et zoom afin de faire rentrer automatiquement le plateau de jeu dans la fenêtre de façon optimale lors de l'appel de la fonction readgrid.
- Effacement de l'écran dans la fonction refresh en utilisant clear.
- Ajout dans la fonction drawsquare de la posibilité de dessiner un parallépipède rectangle plein (full=0) avec contour mais sans transparence (full=1) en donnant 2 a l'argument full.
- Modification de l'utilisation des images de façon a les charger une seule fois en début de programme puis de les utiliser par la suite avec la fonction blit.
- Modification de l'utilisation des labels de façon a les créer une seule fois en début de programme puis de les réutiliser en modifiant les propriétés. Cela pourrait regler un problème d'utilisation mémoire important.
- Bug: mauvaise implantation de la fonction return dans la fonction mouse_press provoquant la création d'élément sur le plateau de jeu lors de leur choix.
- Autre bogue dans la fonction mouse_drag provoquant le dessins sur le plateau de jeu de façon non prévue.
- Erreur dans le déclenchement du game over suite à la collision protron-neutron : le mauvais message est affiché, gameover(2) sera remplacé
- Suppression d'un bout de code inutile dans la fonction itsvictory.
- Création d'une fonction stop due à la façon dont la gestion du changement d'icone est réaliser et stocker par le dict items.
- Modification de la fonction setnothing de telle façon que l'on puisse effacer graduellement les éléments des deux couches et d'éviter la suppression des éléments de didactiel donc le niveau technologique est supérieur au niveau de la grille actuelle.
- Modification de la fonction setnothing de telle façon que l'on ne puisse remplacer des éléments de didactiel donc le niveau technologique est supérieur au niveau de la grille actuelle.
- La selection du menu du bas est modifié avec un système plus visible de carré plein avec de la transparence.
- Les informations de cycles sont présentes a partir du niveau technologique 0 et les maximums s'affichent au dela du niveau 5.
- L'affichage des cellules n'est plus réalisé avec drawsquare mais avec plusieures commandes glvertex afin de générer un plateau avec des couleurs dépendantes de la configuration des pistes.
- L'affichage du choix des niveaux grilles s'adapte à la résolution verticale de l'écran.
2014-02-03 18:41:32 +01:00
Le_dahut 0568a288a0 - Adapatation de la taille de la texture à l'écran/fenêtre lors de la diffusion de video sur l'objet player.
- Rajout de la possibilité de changer la transparence en donnant un quatrième argument optionnel à la fonction drawsquare et drawsemisquare.
- Ajout d'une fonction drawtriangles qui dessine des triangles aux quatres coins de éléments activables et suppression du cadre autour des éléments non activables.
- Corrige un bug dans la fonction drawworld, on doit vérifier que la liste des mondes a activer en cas de victoire ne soit pas nulle.
- Ajout d'une fonction unactive et modification de la fonction erase afin de désactiver totalement les éléments lors que l'on stope la simulation.
- BUG: Les senseurs K,L,M et N doivent etre sensibles aux superelectron negatifs et pas positifs.
- Demarrage de l'application par défaut en plein écran.
- Remise a zero de la variable stat et donc de la répartition des particules sur le jeu lors de l'appel de reallystop (stop du jeu).
- Changement du fonctionnemment de gameover et itsvictory afin de figer le jeu lorsque qu'on gagne ou l'on perd une partie. Après une action sur les commandes, on procéde à l'arrêt effectif avec la commande reallystop.
- Ajout du démarrage de la video d'intro par le player au lancement du jeu.
2014-01-30 08:05:11 +01:00
Le_dahut a43a457589 -Ajout de la liste globale adirection qui fait varier le sens de départ de l'électron dans la fonction nextgrid. Dans Swap on décale de 1 vers la gauche les éléments de la liste.
-Ajout de la création automatique du fichier pref.dat et déplacement de celui-ci dans un dossier user.
-Déplacement des données de niveaux personnalisés vers le dossier user.
-Evite le rechargement des niveaux dans la variable items par la fonction readlittlegrid, en vérifiant l'existence de la clé "cout"
2014-01-23 07:40:49 +01:00
Le_dahut 2763399ce2 Version originale, premier suivi de version dans GIT 2014-01-17 00:20:59 +01:00