Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

426 connectés actuellement

29372534 visiteurs
depuis l'ouverture

1900 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Temple de Valor

ConsoleFun

RPG Maker - La Communauté

Zarok

Lumen

Tous nos partenaires

Devenir
partenaire



Messages postés par xvw
Nombre de messages référencés sur Oniromancie (non supprimés): 721

Aller à la page: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Posté dans Tutoriels - Pourcentages dans RPG Maker 2003

xvw - posté le 08/06/2020 à 14:20:53. (733 messages postés)

On a une version simplifiée avec RME, si ça vous intéresse :
https://github.com/RMEx/RME/wiki/Cr%C3%A9er-des-jauges-simples

RME étant un script rajoutant des commandes par appel de script pour VX Ace, il est inutilisable sur RM2003.

https://xvw.lol

Posté dans Forum - [sondage pour le fun] Votre RPG Maker préféré !

xvw - posté le 31/05/2020 à 01:36:47. (733 messages postés)

Citation:

Mais je me suis toujours dit que, si le scipts cause des bugs au reste du jeu, etc. N'est pas difficile d'ensuite le modifier si on n'a pas les bases pour ? :0


Moins difficile que quand il y a un bug dans le logiciel... (ce qui arrive assez souvent, depuis MV).

Nemau, tu n'as pas compté Brikou dans la liste VXAce :(

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 29/05/2020 à 11:40:26. (733 messages postés)

Oui beaucoup d'équipes arrivent à cette conclusion.
Je pense que si je devais faire une application mobile, je passerai surement par RN... ou alors Xamarin et Fsharp. (Parce que j'aime bien Fsharp)

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 29/05/2020 à 11:11:36. (733 messages postés)

Pour le mobile, c'est honnêtement compliqué de se passer de Kotlin ou Swift (pour IOs). Par contre, en fonction de l'ambition de ton projet, j'ai l'impression que le web ou le simili-web (React-native par exemple) peut largement faire l'affaire.

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 28/05/2020 à 16:01:09. (733 messages postés)

Je fais du Kotlin quotidiennement, au travail.
C'est un meilleur Java... ce qui n'était pas très compliqué parce que Java c'est quand même un bon gros langage de merde. Le langage est "un peu agréable à utiliser". Le problème, c'est que pour qu'il soit vraiment "bien" il faut passer par la bibliothèque Arrow (https://arrow-kt.io/). Sinon, c'est un "Scala pour enfant". Relativement facile à apprendre, mais assez frustrant.

J'ai écrit, le mois passé, un petit article sur Kotlin : https://xvw.github.io/longs/kotlin_extensions.html

Si jamais tu veux apprendre un langage intéressant, passe ton chemin, il y a clairement mieux. Si par contre, c'est comme substitut a Java... c'est un bon choix.

@Roi > C'est "plusse multiplatforme" que Java parce que tu peux aussi compiler vers le web (sans passer par Rihno qui marchait presque jamais). Et tu peux aussi compiler en Native (sans nécéssite de la JVM).

https://xvw.lol

Posté dans Forum - [sondage pour le fun] Votre RPG Maker préféré !

xvw - posté le 27/05/2020 à 01:48:31. (733 messages postés)

Un éditeur de script... c'est une "ouverture fournie nativement".

https://xvw.lol

Posté dans Forum - [sondage pour le fun] Votre RPG Maker préféré !

xvw - posté le 26/05/2020 à 15:37:05. (733 messages postés)

VXAce, mais je parle vraiment "du logiciel". En faisant abstraction qu'il est "mal multiplatforme".

Raisons:
- Meilleur "RGSS"
- Je préfère Ruby que javascript
- Contrairement à beaucoup, j'aime bien son RTP
- C'est celui que je connais le mieux.

Cependant, j'ai longuement hésité avec MV.

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 26/05/2020 à 15:35:05. (733 messages postés)

Oui, c'est pour ça que j'ai dit que le dernier point était de l'ordre du détail. Je trouve que les points précédents sont, eux, vraiment plus important :)

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 26/05/2020 à 14:24:27. (733 messages postés)

Le script est vraiment mieux. Quelques petits points "stylistiques".

- Je n'utiliserais pas "old" comme préfixe pour l'alias... parce que c'est une habitude prise par beaucoup de scripteur, donc ça peut engendrer des soucis. Que dirais tu de `gif_rotate_pictures_`.

- Même si ce n'est pas dramatique, c'est assez peu standard de voir des variables avec des majuscules en Ruby. Donc `origin_x` me semble plus adéquat que `origin_X`(par exemple).

- Je localiserai toutes l'update de la rotation dans une méthode spécifique que j'appellerais dans update.

- comme en Ruby, le if est une expression (ce qui est assez rare dans d'autres langages et vraiment domage!) j'utiliserais la forme `x = if` plutot que `if ... x =` ça permettra d'éviter la répétition de angle_offset (et c'est moins chiant si un jour tu veux changer le nom de la variable par exemple).

- Le dernier point est de l'ordre du détail mais en fait : 2 * Math::PI / 360.0 est en fait égal à `Math::PI / 180.0` mais en fait ça donne une réponse vraiment très très précise pour ... "un monde de pixel". Donc tu peux te contenter de multiplier par 57.3.

https://xvw.lol

Posté dans Forum - Inexistence Rebirth

xvw - posté le 22/05/2020 à 19:55:59. (733 messages postés)

Bravo !
Est-ce que tu sais s'il y aura une version Mac/Linux un jour ?
En tout cas, l'amélioration est vraiment observable. Bien joué.

https://xvw.lol

Posté dans Forum - [RPG Maker MV] Supprimer des options dans le menu de départ

xvw - posté le 21/05/2020 à 23:40:35. (733 messages postés)

Le projet a reçu pas mal de publicité de Oniromancie (2 news il me semble). Et quoi qu'il en soit, il est actuellement archivé, donc sa discrétion est plutôt positif.

Citation:

je connaissais l'event extender



Ça n'a pas grand chose à voir, l'Event Extender ajoute des commandes, cependant, la confusion est compréhensible parce que le projet s'appelle RMEBuilder, et l'Event Extender a été continué sous le nom "RME". C'est principalement parce que historiquement, RMEBuilder servait à construire RME. On a rajouté la fonctionnalité des paquets distants plus tard.

Citation:

mais préfèrerait peut-être développer ses propres scripts à part ?


Justement, ça ne change pas la manière dont on développe ses scripts, ça change juste la manière dont on les distribues.

Mais bon, c'était surtout un aparté pour dire que VXace rivalise potentiellement largement avec MV pour la gestion des plugins... c'est juste que l'outil qu'on a développé (quelques années avant MV) pour la distribution de script n'a pas pris :)
Maintenant RMEBuilder n'est plus maintenu et donc il faut copier/coller ses scripts à la main :/

https://xvw.lol

Posté dans Forum - [RPG Maker MV] Supprimer des options dans le menu de départ

xvw - posté le 21/05/2020 à 19:04:43. (733 messages postés)

C'est en partie pour le côté ennuyant des ajout/suppression de script qu'on avait écrit http://rmex.github.io/RMEBuilder/ (bien avant la sortie de MV) qui permettait d'avoir des scripts depuis des serveurs distants et de faciliter l'activation, désactivation. Malheureusement, ça n'a jamais pris :/

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 20/05/2020 à 10:12:24. (733 messages postés)

Non, ça n'existe pas. Tu as peut être vu ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
 
class A 
  alias new_method old_method
  def old_method 
    ...
  end
end
 



Qui est, en terme de fonctionnement, identique à l'utilisation d'alias_method. Mais je privilégie toujours les méthodes plutôt que les instructions un peu magique (each au lieu de for par exemple). La seule exception que je fais, c'est l'utilisation de begin/rescue, if/else/etc et while/do while parce qu'on a rarement le choix.

https://xvw.lol

Posté dans Forum - [RMXP] Nombre de caractères maximal dans un Choix

xvw - posté le 19/05/2020 à 15:12:49. (733 messages postés)

Si pourquoi ?

https://xvw.lol

Posté dans Forum - [RMXP] Nombre de caractères maximal dans un Choix

xvw - posté le 19/05/2020 à 14:29:46. (733 messages postés)

Il n 'y a aucune raison que @game_variables[x] fonctionne.

Si tu es sur VXace, RME permet de construire ton propre système de choix à la main (et te permet de faire des choix illimités, ce qui peut avoir un rendu horrible) parce qu'il ne te limite par l'interface de script :

https://github.com/RMEx/RME/wiki

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 19/05/2020 à 10:14:29. (733 messages postés)

Tu fais référence aux tutoriels que j'ai posté en bas de message ?
Parce que les alias fonctionnent sur tout les RGSS.

https://xvw.lol

Posté dans Forum - [FILM] Série d'une Lettre Informe [projet de long-métrage animé]

xvw - posté le 18/05/2020 à 12:00:34. (733 messages postés)

Citation:


@xvw :

Pfffffff :triste2 C'est tout ce que tu en as retiré ?



Ce que j'en retire, c'est que c'est un projet ambitieux et que j'espère de tout coeur que ça va marcher pour toi.

Mais que dès lors que tu présentes quelque chose et que quelqu'un te donnes conseil, tu montes sur tes grand chevaux. Je pense que dorénavant, tu ferais mieux de terminer tes messages de présentations par "Au fait, j'aimerais qu'on ne me donne pas de conseilles". Je t'assure que tu serais largement moins exaspérant :P

https://xvw.lol

Posté dans Forum - [VX Ace] Train (Jeu complet disponible)

xvw - posté le 18/05/2020 à 11:39:37. (733 messages postés)

Super jeu et très très propres les sytèmes. Tu as utilisé des scripts ou tu as tout fait en événement?

https://xvw.lol

Posté dans Forum - [FILM] Série d'une Lettre Informe [projet de long-métrage animé]

xvw - posté le 18/05/2020 à 11:36:19. (733 messages postés)

Si on me dit que "montrer ma bite pour avoir de l'argent" n'est pas pertinent pour la campagne de mon Kickstarter pour le jeu que je prépare", je saurai quoi répondre la prochaine fois: "vous n'avez pas compris ma démarche !"

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 18/05/2020 à 04:08:45. (733 messages postés)

Ruby est un langage "ouvert", ça veut dire que tu peux modifier n'importe quelle classe en "ajoutant" des méthodes. Par exemple, imaginons qu'on ait cette classe :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 
class Foo
  def bar
     p "Bar"
  end
end
 



Tu peux ajouter une méthode à la classe Foo dans un nouveau script :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 
class Foo
  def foobar
     p "FooBar"
  end
end
 



Maintenant, la classe Foo a deux methodes (en plus du initialize/new). Ce qui veut dire que tu peux écraser une méthode qui existe déja :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 
class Foo
  def bar
     p "Nouveau bar"
  end
end
 



Dorénavant quand tu appelleras :

Portion de code : Tout sélectionner

1
2
3
 
Foo.new.bar
 



Ça affichera (dans la console) "Nouveau bar".
Tout ça pourrait passer pour très dangereux (ce qui est d'ailleurs le cas) mais Ruby offre un mécanisme d'extension basé sur les alias.
Par exemple :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
 
class Foo
  alias_method :ancien_bar, :bar
  def bar
     p "J'appelle bar"
     ancien_bar
     p "J'ai appelé bar"
  end
end
 



Concrètement, la méthode `alias_method` permet de créer une copie d'une méthode en lui donnant un nouveau nom. De ce fait, il devient possible de l'appeler dans l'écrasement de l'ancienne méthode.

C'est primordiale quand on écrit un script parce que si on n'avait pas ce mécanisme d'alias, chaque personne modifiant un script rendrait l'ensemble des autres scripts incompatibles.
Ici, dans le script de Gif, si un Script avait été ajouté avant qui modifiait, par exemple, l'update de Game_picture (ce qui est le cas de RME par exemple), le script de Gif supprimerait toutes les modifications d'avant... ce qui est balot.

Donc concrètement, ça permet d'écrire du code "avant" et "après" une autre méthode. Pas "au milieu", cependant, le RGSS est suffisament bien découpé pour qu'il soit possible d'injecter du code à peu près où l'on veut.

Pour comprendre comment construire des scripts, je t'invite, si ça t'intéresse, à lire ces deux tutoriels (qui sont relativement accessibles) :

https://www.biloucorp.com/creation-dun-shifumi-avec-le-rgss3-16
https://www.biloucorp.com/creer-son-propre-systeme-de-quetes-partie-12-17

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 17/05/2020 à 23:13:36. (733 messages postés)

C'est beaucoup mieux !
Par contre plusieurs points :
- je pense que le code ne devrait pas être un mélange entre Anglais et Français. (Et je dropperai les commentaires en Français, quitte à décrire les étapes en complément)
- ton code devrait utiliser des Alias pour ne pas répéter le code déjà existant. Déjà, ça réduira fortement ton code et en plus ça maximisera la comptabilité avec d'autres scripts.

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 17/05/2020 à 15:31:25. (733 messages postés)

Le fait de passer par une boucle est assez ennuyant. Est-ce que tu ne penses pas que ce serait mieux de t'inspirer de ce qui est fait pour la rotation (normale) (ou les changements de teintes) histoire de pouvoir l'activer/désactiver à la demande.

https://xvw.lol

Posté dans Forum - [RMXP] Un moyen de libérer la mémoire ?

xvw - posté le 15/05/2020 à 12:02:25. (733 messages postés)

Excuse moi, j'ai effectivement fait une erreur :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
class Spriteset_Map
  def purge_character(id)
     @character_sprites.delete(id)
  end
end
 
class Game_Map
   def purge_event(id)
      @events[id].erase
      $scene.spriteset.purge_character(id)
   end
end
 
class Interpreter
   def purge_event
      $game_map.purge_event(@event_id)
   end
end
 



(nb: Roi de la suisse se trompe, delete fonctionne par clé)

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 14/05/2020 à 17:03:09. (733 messages postés)

Citation:

Est-ce que l'expliquer ne suffirait pas


Je ne trouve pas... parce que la démarche passe à côté de "la manière de programmer pour RPGmaker". Je ne doute pas une seule seconde que l'auteur savait parfaitement "comment s'en servir". Mais ce tutoriel est, pour moi, une petite curiosité partagé entre "potes scripteurs". Ce qui le rend assez inutile car :

- un scripteur sait déjà comment l'implémenter
- un non scripteur ne comprendra pas comment s'en servir.

Expliquer l'approche de manière "moins concrètes" serait sans aucun doute "plus intéressant".

Citation:

Est-ce que l'expliquer ne suffirait pas ? A partir du moment où la méthode de base a été expliquée, elle doit pouvoir être adptable un peu partout, non ?



Dans RPGMaker, un script "ne modifie généralement pas directement le sprite". Il modifie une instance "dynamique" Game_quelquechose qui transmettra ses données à une instance de Sprite_quelquechose. Généralement, on voudrait que ce genre de transformation soit calculée dans la représentation dynamique (Game_xxx) et non visuelle (Sprite_xxx).

D'où le fait que pour moi, il faut soit :
- proposer un script qui implémente correctement ce que propose l'auteur et facile à prendre en main. Ce qui permettrait de réécrire le tutoriel en expliquant comment utiliser le script et eventuellement ajouter un point sur "comment fonctionne le script" (en introduisant la notion de coordonnées).
- soit simplement supprimer/archiver le tutoriel car il n'apporte pas grand chose.

https://xvw.lol

Posté dans Forum - [RMXP] Un moyen de libérer la mémoire ?

xvw - posté le 14/05/2020 à 14:20:25. (733 messages postés)

Dans son script... même s'il se trouve sur la même map... il devra quand même lire le fichier de la carte... parce que ... Yanfly :P

Le script que j'ai "tenté d'écrire, tu peux remplacer tes deux lignes "effacer cet evenement; $game_map.events.delete_if" par "appel de script > purge_event"

https://xvw.lol

Posté dans Forum - [RMXP] Un moyen de libérer la mémoire ?

xvw - posté le 14/05/2020 à 14:05:27. (733 messages postés)

Citation:


j'ai inséré dans l'event (en processus parallèle) qui est cloné cette commande via la commande d'évènement "insérer un script", après avoir effacer l'évènement (sans ça sa bug).



Euh. L'idée c'est de s'en servir quand tu décides de supprimer un événement.

Après, le script est assez ennuyant parce que, a chaque fois que tu insères un événement... il doit lire la carte dans lequel se trouve l'évènement. Je pense qu'il vaudrait mieux utiliser un script mieux fait.

Mais sinon; comme le dit Roi de La Belgique, tu peux essayer d'ajouter ce script :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Spriteset_Map
  def purge_character(id)
     @character_sprites[id].dispose
  end
end
 
class Game_Map
   def purge_event(id)
      @events[id].erase
      $scene.spriteset.purge_character(id)
   end
end
 
class Interpreter
   def purge_event
      $game_map.purge_event(@event_id)
   end
end



Et dans un évènement invoqué, tu peux utiliser l'appel de Script

Portion de code : Tout sélectionner

1
purge_event



(n'ayant pas XP et ne le connaissant pas très bien... il est possible qu'il y ait quelques bugs :P)

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 14/05/2020 à 13:57:38. (733 messages postés)

Le tutoriel est discutablement pédagogique. Et même si la version de Gif est "plus user-friendly", elle nécéssite de comprendre la logique des Sprites (et donc par extension des Bitmaps). Et généralement, dès lors que l'on connait ça, l'implémentation du script devient assez évidente.

Pour améliorer le script, il faudrait ajouter sa représentation dynamique (dans Game_Picture, Game_Character etc.).

Ici, posé "plic ploc" comme ça, il n'apporte pas grand chose.

https://xvw.lol

Posté dans Forum - [RMXP] Un moyen de libérer la mémoire ?

xvw - posté le 14/05/2020 à 12:20:42. (733 messages postés)

Si tu joues cette commande (dans un appel de script), cela devrait purger les événements "supprimés".

Portion de code : Tout sélectionner

1
$game_map.events.delete_if {|id, event| event.erased? }



Est-ce que ça améliore ton framerate ?

https://xvw.lol

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

xvw - posté le 14/05/2020 à 11:34:41. (733 messages postés)

Je pense qu'il vaut mieux supprimer le script. (Simplement);

https://xvw.lol

Posté dans Forum - [VXAce] #LD33 Almost Heroic

xvw - posté le 13/05/2020 à 23:32:14. (733 messages postés)

Le jeu possède sa fiche dans le site !
http://www.rpg-maker.fr/jeux-745-almost-heroic.html
N'hésitez pas, s'il vous a plu, à le rajouter dans vos favoris !

Kenetec > Je répondais à Nemau :D

https://xvw.lol

Posté dans Forum - [VXAce] #LD33 Almost Heroic

xvw - posté le 13/05/2020 à 11:49:26. (733 messages postés)

Mais j'affirme que Almost Heroic est une grande oeuvre MONSIEUR. Une grande oeuvre courte.

https://xvw.lol

Posté dans Forum - [VXAce] #LD33 Almost Heroic

xvw - posté le 13/05/2020 à 10:12:44. (733 messages postés)

Oui, le jeu est assez court car il a été réalisé en une trentaine d'heures. (les mauvaises langues diront que c'est en partie à cause de mon alcoolisme que l'on a eu si peu de temps...)

https://xvw.lol

Posté dans Forum - [VXAce] #LD33 Almost Heroic

xvw - posté le 11/05/2020 à 17:30:22. (733 messages postés)

Nemau a dit:


J'y ai joué ! (en entier, mais c'était la moindre des choses vu la durée de vie annoncée ^^)

Et j'ai aimé !

A part deux trois minis choses (quelques bugs notamment, tels qu'une phrase en français ou bien encore le fait de pouvoir contourner les squelettes très facilement) c'est juste impec, y a rien à redire. C'est d'autant plus admirable quand on sait que ça a été fait en 72 heures !

GG les bilous. :lei




Salut Nemau ! Merci beaucoup pour ton retour :

Nemau a dit:


tels qu'une phrase en français



C'est en fait un hommage aux vieux jeux RPG "mal traduits" (FFVII and co). C'est pour cette raison que l'on a délibérément laissé des traductions hasardeuses et du français !

Nemau a dit:


le fait de pouvoir contourner les squelettes très facilement



On trouvait ça rigolo (perso, je suis nul au système de combat, donc il me fallait un outil pour éviter un maximum de combats).... :p

https://xvw.lol

Posté dans Forum - Quel est le meilleur jeu RM jamais créé ?

xvw - posté le 11/05/2020 à 00:03:35. (733 messages postés)

J'ai cherché partout quel était le meilleur jeu de tout les temps et j'en suis arrivé à la conclusion très objective que c'est sans aucun doute : http://www.rpg-maker.fr/jeux-745-almost-heroic.html, Almost Heroic.

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 08/05/2020 à 16:30:45. (733 messages postés)

Le fait de "curryfier" manuellement son code offre l'avantage de permettre l'application partielle des argument. Après, il y a souvent des dérives. Par exemple, ce qu'on appelle 'l'écriture pointfree", en Haskell, https://wiki.haskell.org/Pointfree a engendré pas mal de terreur de Haskell.

Citation:

Est-ce bien sérieux de dépenser du temps pour changer de langage, alors que mes programmes fonctionnent, que j'aime assez le JS... et que ces projets s'en fichent d'avoir des portées miuex maîtrisées etc


Oui je pense que c'est avant tout une question d'envie/volonté. Par contre, les projets s'en fichent d'avoir des portées mieux maitrisées "tant qu'ils fonctionnenent" ;)

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 07/05/2020 à 11:32:17. (733 messages postés)

Ce n'est pas "normal" parce que ça pose des problèmes d'ordre de déclaration :

Portion de code : Tout sélectionner

1
2
3
4
5
 
if (someBoolean) {
   var x = 10
}
 



Fait varier x comme étant soit undefined soit 10 en fonction de la valeur d'un booléen. Je sais que "avec de la discipline, on n'arrive jamais face à ce genre de cas", mais si tout le monde n'utilise plus du tout var au profit de const (et parfois let), c'est qu'il y a une raison :P

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 07/05/2020 à 10:50:36. (733 messages postés)

C'est pour ça que je dis que la portée de var est complètement fucked :P

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 07/05/2020 à 10:41:38. (733 messages postés)

La portée lexicale te dit que toute variable déclarée est accessible dans le scope courant et dans ses scopes enfants :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
 
var x = ... 
for() {
   var y = ...
   // x devrait être accessible
}
// y ne devrait pas exister
 



image

https://xvw.lol

Posté dans Forum - Rapports de bugs

xvw - posté le 07/05/2020 à 10:26:34. (733 messages postés)

Attention, BUG gravissime et dangereux!

Il faudrait rendre le Background des textarea fixe. Sinon ça donne ça quand on agrandit la textarea :

https://full.ouplo.com/14/13/xTY9.png

https://xvw.lol

Posté dans Forum - Topic de l'informatique

xvw - posté le 07/05/2020 à 10:21:07. (733 messages postés)

Citation:

@xvw : je n'avais pas eu l'occasion de te dire que ton blog était très classe ! J'aime beaucoup de design.
Seul problème c'est que même moi qui m'intéresse énormément à ces sujets (sans avoir la formation), je n'y comprends pas grand chose. J'aurais aimé comprendre par exemple pourquoi tu affectionnes les langages statiquement typés, ce qu'ils apportent... etc J'ai pas les pistes pour revenir aux fondamentaux et par conséquent comprendre pourquoi le JS serait mal pensé. Le côté théorique de la programmation m'intéresse.



Merci beaucoup ! Même s'il est très clair (visuellement), j'y ai passé pas mal de temps. Si ça t'intéresse, le code du générateur se trouve ici : https://github.com/xvw/planet
L'idée c'est d'avoir plusieurs choses :

- Un outil pour saisir les activités "liées à des projets personnels" ce qui me permet de collecter des métriques (https://xvw.github.io/journal.html)
- Un outil pour gérer des tâches à réaliser (https://xvw.github.io/tasks.html)
- De la rédaction d'article (qui utilise Hakyll, un générateur de blog statique écrit en Haskell) (https://xvw.github.io/longs.html)
- Du suivi de projets (https://xvw.github.io/projects.html)
- Un gestionnaire de galeries (https://xvw.github.io/galleries.html)
- Une page de description (https://xvw.github.io/xavier.html)
- Un suivi de ma position (https://xvw.github.io/location.html)

Plus tard, j'aimerais avoir un suivi des livres que je lis, des films que je regarde etc. Mais c'est un projet qui prend beaucoup de temps. Heureux de lire que tu aimes bien son apparence !

Citation:

J'aurais aimé comprendre par exemple pourquoi tu affectionnes les langages statiquement typés, ce qu'ils apportent



Il y a plusieurs réponses, une courte, une moyenne et une très longue. Peut être qu'un jour, j'aurai le courage de rédiger la très longue sous forme de billet de blog, ici je vais essayer de donner une réponse moyenne.

L'énorme point fort des langages qui offrent une vérification statique des types, c'est qu'ils me permettent d'être moins "intelligent". Cette phase de vérification garantit (dans la mesure du possible) que j'ai pensé à l'intégralité des cas de mon programme. Cet garantie me permet de réfactorer mon code sereinement sans me demander sans arrêt si je n'ai pas oublié certains cas, le compilateur me le dit.
Par exemple, si je décide d'utiliser une liste pour représenter un ensemble de valeur et que, en court de développement, je me dis "tiens, j'essaie de n'avoir que des éléments uniques dans ma liste, donc chaque fois que j'insére un élément, j'applique la méthode [list.uniq], peut être que ce serait plus pertinent d'utiliser un Set, dont c'est le travail". Je dois, "partout où j'ai eu le partit pris que j'utilisais une liste" modifier mon code pour qu'il s'adapte au comportement du Set (donc, par exemple, aller retirer tous les .uniq de mon code).
Il est possible, évidemment, de s'en sortir au moyen de l'encapsulation mais dans un langage qui vérifie les types, je sais, avant d'exécuter (et tester) mon programme s'il est cohérent.
Ensuite, ça me permet de garder en tête des cas un peu chevelus, un cas d'école classique en faveur des langages statiquement typés, la gestion explicite de la nullité. Plutôt que me dire que toutes mes valeurs sont unifiées comme [ ma valeur | null | undefined ], je peux simplement déclarer un type :

Portion de code : Tout sélectionner

1
2
3
4
5
 
type 'a option = 
  | None 
  | Some of 'a
 



Qui concrètement me permet juste de gerer explicitement le cas où je n'ai pas de valeur. Le type de la fonction x.[ i ] pourrait être "tu me donnes un tableau de A, x, un entier, i, et je te renvoie un option de A. A l'usage, je serai obligé de déconstruire ma valeur pour l'exploiter ce qui fait que je ne peux plus jamais faire face à des NullPointerException (où "undefined is not a function").

Ce genre de cas (refactoring/nullité) sont des réponses pragmatiques. Et, par exemple; TypeScript s'en tirer "plutôt bien". Quand le système de type est riche comme dans les langages ML (Haskell/OCaml/ReasonML/F#) le système de types est plus riche est plus expressif, ce qui permet de dépasser l'aspect "utilitaire" d'un système de type et approcher une proximité "avec le domaine/métier" (cette présentation sur le sujet est vraiment très très claire https://www.youtube.com/watch?v=PLFl95c-IiU d'ailleurs, toutes les présentations de cette personne sont assez cool). En gros, un système de type expressif offre une manière sûre, mais élégante, de décrire une application. Couplé avec un paradigme de programmation "riche", comme la programmation fonctionnelle, il est possible d'écrire des programmes qui ont une surface "de code pouvant produire des erreurs" beaucoup plus petite.

Concernant les erreurs de conceptions de javascript, il y en a, selon moi, 3 qui sont vraiment signifiantes :
- la portée lexicale de "var" complètement fucked, mais fixé avec let et const en ES6
- le fait d'avoir deux types pour la nullité : undefined | null, même si ils ont une sémantique différente, dans les faits, leur distinction n'a aucun sens
- le fait que le "this" d'une fonction référence la fonction... fixé en ES6 avec les Fat Arrows (=>)

Comme je l'ai dit plus haut, javascript doit vivre avec ses utilisateurs. Le langage a donc beaucoup de mal à évoluer sainement, sans Babel (par exemple), c'est pour ça que je ne me sert de javascript "que comme une cible de compilation". Soit, j'écris mon programme en OCaml et je le compile en javascript. Ce qui me permet de profiter des avantages de OCaml tout en rendant mon programme exécuté dans un browser.

Parce que pour un langage de script, interprété, ça n'a pas de sens d'avoir un système de types vérifié (dans le browser), tu ne veux pas, à chaque page, que ton code doivent être "typechecké" avant d'être affiché pour tous les clients qui naviguent sur ta page.
Tout ça pour dire que tu n'as pas besoin d'avoir un serveur pour tester d'autres technologies. Par exemple en front-end ReasonReact (React avec ReasonML) ou Elm (qui est incroyablement agréable pour s'initier à la programmation fonctionnelle statiquement typé) donne un très bon avant gout !

Citation:

Moi j'aime pas ton blog, y a pas de dark mode, c'est un supplice à lire


La version 2 est en cours de développement (pour des milliers d'années) et elle devrait être sombre :P

https://xvw.lol

Aller à la page: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers