Developpez.com - Rubrique TypeScript

Le Club des Développeurs et IT Pro

Apprendre comment créer un moteur d'affichage 2D en TypeScript - Partie 2 : charger une texture

Un tutoriel de Nicolas Legrand

Le 2020-02-16 01:28:54, par Malick, Community Manager
Chers membres du club,

J'ai le plaisir de vous présenter la deuxième partie du tutoriel de Nicolas Legrand :

Apprendre comment créer un moteur d'affichage 2D en TypeScript
Partie 2 : charger une texture
En JavaScript (et donc en Typescript), il est très simple de charger une image, aussi appelée texture dans le domaine du jeu vidéo, d’ailleurs nous utiliserons ce terme dorénavant. Il y a plusieurs façons de faire, pour le besoin de ce chapitre, nous utiliserons la plus simple qui est d’inclure les images directement dans la structure HTML. Lire la suite...

Bonne lecture

Retrouvez les meilleurs cours et tutoriels pour apprendre TypeScript.
  Discussion forum
17 commentaires
  • Dave Hiock
    Membre confirmé
    Il ne t'aura sûrement pas échappé que ce tutoriel est en plusieurs parties et que avant de vouloir courir il faut apprendre à marcher tout comme avant de pisser dans un violon il faut avoir un violon, mais là je crois que tu as ce qu'il faut.

    Pour ma part je trouve que c'est plutôt bien fait et qu'il est dommage que sur ce site ceux qui contribuent soient rabroués par ceux qui trollent !
  • atlanthot
    Membre éclairé
    Envoyé par Sodium
    Alors déjà il faudrait te décider : est-ce que tu fais un tuto pour apprendre les bases du TypeScript, de la POO ou sur la création d'un moteur de jeu vidéo ?

    Les trois à la fois ça n'a aucun intérêt, ce ne sont pas les ressources qui manquent à ce sujet. Tu en es au troisième tutorial et l'on a encore rien vu de concret concernant le titre de l'article.
    Comme précisé au tout début, cette série de tutoriels reprend et remet au "goût du jour" le travail que j'ai effectué il y a quelques années ici -> https://javascript.developpez.com/tu...hage-2d-html5/, je t'invite à aller y jeter un œil afin de te rendre compte que tout est bien préparé à l'avance et que cela s'inscrit dans un schéma logique d'apprentissage.

    De plus, Barista est quelque chose que je veux mettre en place sur la longueur, le but de ce moteur n'est pas vraiment de finir en production, il existe des ressources bien plus performantes que celles à laquelle nous allons aboutir in fine. Le but premier de barista est de découvrir les arcanes de la conception d'un moteur 2d, et au passage, j'en profite pour faire étudier à ceux qui en ont besoin:

    - Les bases de Typescript
    - Les tests unitaires (ça arrive dès le prochain article)
    - Les bases de la programmation graphique avec canvas (que nous avons déjà entamé).

    Note bien également que je pars du principe que mes lecteurs / lectrices, n'ont pas forcément les bases nécessaires dans tel ou tel domaine,
    je dois donc m'assurer qu'ils aient au moins une ressource qui leur permette de suivre. Toutefois je peux comprendre le côté "frustrant" de la chose,
    pour l'instant, le moteur 2d n'a pas vraiment encore pointé le bout de son nez et c'est la promesse de ce cycle d'apprentissage.

    J'essaie d'avancer à mon rythme, produire du contenu, je n'en vis pas, c'est un loisir, et pour l'instant je ne compte pas m'imposer un rythme qui transformera
    cela en travail à temps plein (j'ai déjà mon job ).

    Après, je ne suis pas contre les critiques constructives, selon toi, comment aurais-je du présenter la chose ?
  • atlanthot
    Membre éclairé
    En fait il s'agt bien de Typescript, seulement, jusqu'ici, nous l'utilisions comme du Javascript. Dans la prochaine partie, nous allons justement opérer quelques petits rappels sur Typescript et l'utiliser correctement .
  • grunk
    Modérateur
    Tout comme le premier article , je vois bien du js mais pas de typescript
  • atlanthot
    Membre éclairé
    Envoyé par Sodium
    À quoi bon faire un tuto en TypeScript si c'est pour faire de la programmation fonctionnelle de base ? C'est juste rajouter une couche de complexité pour rien.
    C'est parce que la rigueur de Typescript nous sera très utile dès la prochaine partie.
    Nous commencerons à coder en orienté objet, et le fait de pouvoir typer les données de façon explicite est un très bon moyen
    de visualiser ce qui se passe (et au passage, ça sécurise pas mal le développement).

    J'espère avoir répondu à ta question
  • atlanthot
    Membre éclairé
    Merci beaucoup, ravi de partager mes articles avec vous
  • Malick
    Community Manager
    Bonjour,

    Envoyé par Sodium
    Alors déjà il faudrait te décider : est-ce que tu fais un tuto pour apprendre les bases du TypeScript, de la POO ou sur la création d'un moteur de jeu vidéo ?

    Les trois à la fois ça n'a aucun intérêt, ce ne sont pas les ressources qui manquent à ce sujet. Tu en es au troisième tutorial et l'on a encore rien vu de concret concernant le titre de l'article.
    @Sodium : je pense que la réponse à votre question est fournie par l'auteur dans son post précédent et particulièrement cette partie :

    Envoyé par atlanthot
    C'est parce que la rigueur de Typescript nous sera très utile dès la prochaine partie.
    Nous commencerons à coder en orienté objet, et le fait de pouvoir typer les données de façon explicite est un très bon moyen
    de visualiser ce qui se passe.
    Cela dit, même si les ressources existent, c'est toujours un plus et bénéfique, car les approches peuvent être diverses selon l'auteur.

    Si également vous avez envie de contribuer utilement sur le site au même titre que les bénévoles qui font des efforts pour le bien de la communauté, c'hésitez pas à nous le faire savoir.

    Merci
  • Malick
    Community Manager
    Salut,

    Envoyé par atlanthot
    Après, je ne suis pas contre les critiques constructives, selon toi, comment aurais-je du présenter la chose ?
    Si Sodium souhaite participer aux relectures techniques avant publication, ce n'est pas dans ce fil que cela se fera. Cela dit, il peut me contacter par MP et je lui donnerai les accès nécessaires aux forums dédiés pour qu'il puisse y participer.

    Merci
  • atlanthot
    Membre éclairé
    Bonjour,

    En effet, ce travail est bien le mien, mon pseudo sur developpez est juste très vieux et date de bien avant la création de Moocaccino .

    Ce n'est en aucun cas la faute de developpez si la partie sur le chargement de texture est occultée, j'ai mis la chaîne en pause pendant un an et n'ait repris mon activité dessus que récemment. Ils n'ont jamais eu la version "clean" de l'article en question.

    Je compte reprendre le cycle barista à moyen terme.
    Aujourd'hui, je suis sur un cycle de livecoding vidéoludique, ce qui me permet de prendre mes marques et mon rythme.

    Merci en tout cas d'avoir notifié le fait que ce travail m'appartient, mais je vous rassure, j'en suis bien l'auteur.
  • Fab le Fou
    Membre régulier
    Bonjour et merci pour ce tuto sur TypeScript.

    J'ai commencé à l'utiliser avec Angular et je souhaite en savoir plus.
    Je profite de ce message pour signaler quelques erreurs.

    Pour installer TypeScript avec npm, il ne faut pas utiliser de majuscules, sinon npm ne trouve rien :
    code E404
    npm ERR! 404 Not Found - GET https://registry.npmjs.org/TypeScript - Not found
    npm ERR! 404
    npm ERR! 404 'TypeScript@latest' is not in the npm registry.
    npm ERR! 404 Your package name is not valid, because
    npm ERR! 404 1. name can no longer contain capital letters
    npm ERR! 404
    npm ERR! 404 Note that you can also install from a
    npm ERR! 404 tarball, folder, http url, or git url.
    Il faut donc lancer :
    Code :
    npm install typescript
    Il y a une coquille dans la partie traitant des fonctions fléchées, le début du texte étant en doublon :
    En TypeScript comme en JavaScript ES6, les fonctions fléchées sont supportées, bien entendu le typage des
    paramètres et En TypeScript comme en JavaScript ES6, les fonctions fléchées sont supportées, bien entendu le
    typage des paramètres et de la donnée de retour est à ajouter au sein de la version TypeScript.
    Enfin, dans le section traitant des modules, l'exemple donné génère un bug :
    index.ts:5:9 - error TS2440: Import declaration conflicts with local declaration of 'toto'.
    Une solution possible est d'utiliser un alias lors de l'importation :
    Code :
    1
    2
    3
    4
    5
    6
      export function toto(){
            console.log("toto est beau");
        }
    
        import {toto as tutu} from './ts_modules_1';
        tutu();
    Voilà pour ma petite contribution.