[RESOLU]HTML5 - bugs divers ?

Yop !

Je suis en train de faire un projet sous GD HTML5, et je tombe sur plusieurs réactions zarbies :

  • Masque de collisions en grisé (apparemment, c’est normal …)
  • L’éditeur WYSIWYG fait n’importe quoi (cliquer sur un objet décentre la vue)
  • Le visualiseur de masque de fenêtre ne suit pas le déplacement de l’écran (chaque calque “suit” son propre écran)
  • Les coordonnées affichées dans les propriétés sont différentes de celles affichées dans la fenêtre Objets sur la scène
  • Pour les sprites supérieurs à la résolution de l’écran, les placer sur la scène est un vrai calvaire (centrer une image de brouillard 1280x960 se fait avec “-(Brouillard.Width()+200);-(Brouillard.Height()+150)” pour une résolution de 800x600
  • Je n’arrive pas à jouer une musique en ogg, en local ou par internet
  • La condition “Toujours” bloque le fonctionnement des évènements qui la suivent
  • La condition “Curseur sur Objet” bloque l’évènement qui la contient
  • TimeDelta bloque le traitement de l’évènement qui le contient (dans un évènement externe)
  • Le changement d’échelle d’un sprite ne se fait pas par son milieu (pratique pour les rotations … )
  • L’action “Changer l’opacité” pour un objet texte ne marche pas (il faut passer par “Changer l’opacité” de l’extension Objet Texte)

Questions subsidiaires :

  • Y aura-t-il les particules sous HTML 5 ?
  • Idem pour les lumières ?
  • Possibilité de passer d’un natif à web et vice-versa ? Au cas où on changerait d’avis en cours de projet ?

J’ai mis le projet en question dans ma signature.
Il y a juste un écran titre pour l’instant, mais cela va s’étoffer dans les semaines qui viennent.

Salut,

C’est déjà possible : il faut aller dans “Extension”, puis tu fais un clic-droit sur “Plateforme native” > “Utiliser cette plateforme”. Ensuite, tu fais un clic-droi sur “Plateforme Web” > “Ne plus utiliser cette plateforme”.

Oui pour des raisons de performances c’est pour le moment encore pas au point.

Ca ne me fait pas ça actuellement, peut être est ce lié à ton projet ?

Je n’ai pas réussi à reproduire le problème, j’ai bien un unique masque de la fenêtre qui s’affiche au centre de l’écran ?

Là non plus j’ai testé sur plusieurs objets sans voir de différences de position. :confused:

Les fichiers ogg et autres ressources utilisées dans les évènements sont en effet mal copiés, c’est corrigé.
Pour le moment, assure toi de mettre et d’utiliser des fichier ogg qui sont directement dans le dossier du projet de ton jeu. A noter aussi qu’Internet Explorer ne supporte pas l’ogg.

Corrigé aussi :slight_smile:

Corrigé.

Peux tu me dire dans quel contexte tu l’a utilisé ( Paramètre de quelle action ? ). L’expression en elle même marche bien mais c’est l’action qui a peut être mal supporté le nombre à virgule par exemple.

Depuis GD3, la gestion des points est uniformisée :
-La rotation se fait toujours depuis le centre.
-Le redimensionnement se fait de façon à ce que l’origine reste fixe. En d’autre terme, il suffit de mettre l’origine au point à partir d’où on souhaite faire le redimensionnement, le milieu dans ton cas et pour conserver l’ancien comportement.

Sans doute oui, mais pour les deux il s’agit de bien faire les choses afin d’avoir des extensions performantes.

Oui comme l’a bien expliqué Victor.
Je suis assez content du système de plateforme: Les plateformes sont indépendantes les unes des autres, mais la plateforme web se conforme aux actions/conditions/objets déjà existants dans la plateforme native. Tant que tu utilises la plateforme web pour développer ton jeu, tu pourra sans problème l’exporter pour la plateforme native. Mieux vaut faire les choses en utilisant majoritement la plateforme web, car à l’inverse en utilisant la plateforme native tu risque d’utiliser des fonctionnalités encore non présente dans les jeux HTML5. Tester souvent les deux versions est aussi alors recommandé car la compatibilité est bonne mais il reste surement quelques bugs par ci et par là.

Au moins, les collisions sont détectées.
Dommage qu’on ne puisse pas réduire ces masques, afin d’avoir des collisions permissives.

C’est lié à la vue qui se recentre sur l’objet cliqué. Du coup, on ne sait plus où on se trouve par rapport à l’origine.
A moins de mettre un objet en 0:0 auquel on ne touche plus jamais.

Oui, mais il reste au centre de l’écran, même quand tu joues avec les ascenseurs.
L’idéal serait que, lorsque l’on clique sur un objet, le masque ne se recentre pas dessus. Que le masque reste à l’origine.
Ou mettre en place un deuxième marqueur pour indiquer le 0:0, afin que le joueur sache où il se trouve (et ses objets aussi) par rapport à son écran réel.

Modifie les coordonnées X et Y dans la fenêtre des propriétés. Ces mêmes coordonnées dans la fenêtres des objets gardent leurs valeurs précédentes. Et comme saisir des X:Y est plus précis que de les déplacer à la souris …

Pour le moment, assure toi de mettre et d’utiliser des fichier ogg qui sont directement dans le dossier du projet de ton jeu. A noter aussi qu’Internet Explorer ne supporte pas l’ogg.
[/quote]
Je teste sous firefox.
Mais ça lagge sévère dès que je mets un fichier ogg de 1 Mo.
Voir plus bas pour plus d’explications.

Pour modifier l’opacité d’un sprite.
En effet, il ne doit attendre que des entiers … J’avais pas pensé à ça.

La rotation se fait depuis le centre. Ca c’est bien.
Le souci, c’est quand on veut positionner ce sprite dans l’écran. Les valeurs ne ressemblent plus à rien (il faut retrancher 150 % de la largeur du sprite pour le mettre au centre de l’écran). Zarbi …

Dans mon jeu DIX, les sprites en rotation sont à peu près au centre de l’écran.
Mais dans les évènements, ils sont à - 1600:-1200 !
Pour que ce soit intuitif, il faudrait qu’on indique ils soient positionnés à 400:300.
Ou en temps normal, -(1280-800)/2:-(960-600)/2 → -240:-180

Puisqu’on en parle :

  • le “!=” des conditions ne semble pas pris en compte dans les évènements externes.
    Si je copie-colle l’évènement dans ma scène, ça marche. Mais si je le laisse dans un évènement externe, soit ça ne s’enclenche pas (avec “inversion de =” ), soit ça provoque du lag (avec != ).

  • Comment on joue une musique dans une scène ?
    Quand je fais “jouer une musique sur un canal”, ça lague comme pas permis. Peut être lié au !=, mais qui sait …

Il faut que je crée un évènement qui ne se lance qu’une fois, dans lequel je fais “jouer une musique sur un canal”, puis “arreter la musique sur le canal”.
Ensuite, je peux lancer la musique à la volée, avec “jouer un canal”, sans lag.
Ca me semble un peu trop compliqué …

  • Y a-t-il une condition pour vérifier si une musique est jouée sur un canal ?
    Cela permettrait d’éviter de jouer la musique plusieurs fois par cycle, en lui disant “si pas de musique sur canal 1 alors”.
    Idem pour les effets sonores