Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 3 sur 4 PremièrePremière 1234 DernièreDernière
Affichage des résultats 61 à 90 sur 110
  1. #61
    Oublie tous les articles sur le net qui parlent de "faire de la POO en javascript".
    Certaines personnes veulent faire de la POO même dans les langages où c'est totalement inapproprié.
    Rust fanboy

  2. #62
    Citation Envoyé par Koala77 Voir le message
    connaissant un peu le C#, j'essaye de refaire de la POO (Programmation Orientée Objet quoi) en javascript. Et là, c'est le drame... je savais que JS n'était pas fait pour ça, mais c'est vraiment le bowdel. [/HTML]
    Tu as regardé les cadriciels qui génèrent une appli html5 depuis un langage plus sympa? Je connais libgdx ou playn pour Java, emscripten pour C++ et il doit y en avoir d'autre!

  3. #63
    Citation Envoyé par Tomaka17 Voir le message
    Oublie tous les articles sur le net qui parlent de "faire de la POO en javascript".
    Certaines personnes veulent faire de la POO même dans les langages où c'est totalement inapproprié.
    (hop la camarade alsacien) Je vois ce que tu veux dire, c'est comme essayer de faire de la programmation prcoédurale dans un langage objet, c'est con. En fait, je cherche juste un moyen de factoriser proprement mon code. Après tout, je devrais plutôt m'inspirer de ma (très) (vieille) expérience en Turbo Pascal, où j'arrivais très bien à faire du code propre et factoriser sans aucune notion d'objet.

    Mais quand même, dans le dév de jeux, la notion d'objets est bien pratique et assez naturelle je trouve. M'enfin, je vais me débrouiller ! Faut déjà que je chope la dernière leçon.
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  4. #64
    Citation Envoyé par devn Voir le message
    Tu as regardé les cadriciels qui génèrent une appli html5 depuis un langage plus sympa? Je connais libgdx ou playn pour Java, emscripten pour C++ et il doit y en avoir d'autre!
    Je n'ai pas testé (sauf un Hello World avec Google Web Kit) mais il y a aussi ces outils/langages qui génèrent du javascript (donc compatible avec les navigateurs existants) :

    A partir d'un langage existant:
    C# : http://scriptsharp.com/ (gratuit) et http://sharpkit.net/ (payant mais gratuit pour des petits projets ou des projets open source)
    Java : Google Web Kit http://www.gwtproject.org/

    Ou de nouveaux langages qui génèrent aussi du javascript :
    Typescript: http://www.typescriptlang.org
    CoffeeScript: http://coffeescript.org/
    Dart: https://www.dartlang.org/

    Pour l'instant, je préfère me familiariser avec javascript mais TypeScript me semble intéressant car cela a de bonnes chances de correspondre au futur javascript (ECMAScript V6) et c'est supporté dans Visual Studio.

    ECMAScript (http://en.wikipedia.org/wiki/ECMAScript) est la norme officielle pour javascript (javascript est une implémentation de ECMAScript).

  5. #65
    Les fichiers nécessaires à la leçon 4 (CPC 286 du 15 novembre) ont été ajoutés au premier post.

  6. #66
    Salut m'sieur Sébum. Cimer pour tout ça, c'est l'occasion de le dire. J'ai vu dans l'article que le prochain épisode serait sur les tests de collision : cool, c'est ce que j'attends.

    D'ailleurs pour mon projet de snake / courses de moto Tron-like, je m'interroge : il va falloir que tous les murs tracés soient des objets si je veux gérer les collisions motos / murs ? Si oui ça va faire un tableau de mur à taille variable, donc un beau bordel à manipuler...
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  7. #67
    Citation Envoyé par Koala77 Voir le message
    D'ailleurs pour mon projet de snake / courses de moto Tron-like, je m'interroge : il va falloir que tous les murs tracés soient des objets si je veux gérer les collisions motos / murs ? Si oui ça va faire un tableau de mur à taille variable, donc un beau bordel à manipuler...
    Ca dépend de la gestion des collisions justement. Et il y a plein de façon de gérer.

    Si tu utilises un moteur physique, il y aura une représentation de ce "mur" dans le moteur, donc un ou plusieurs objets pour le représenter. Par exemple un seul objet qui contient tout, ou un objet par segment.
    Si tu n'as que des virages à 90°, il doit y avoir des formules mathématiques pour calculer les collisions en ne stockant que les virages, pas l'ensemble des points du "mur".
    Si tu es ultra chaud du slip, tu peux uniquement dessiner les trajectoires, puis regarder la couleur de chaque pixel à l'écran, et si c'est de couleur x correspondant à une trajectoire, estimer qu'il y a un "mur".

    C'est tout l'intérêt de la programmation : tu fais ce que tu veux, selon la situation.
    Et tout le problème de la programmation : tu finis très facilement avec un algo bien lourd qui fait ramer ta machine de guerre pour afficher du 640*480.
    Mais tout cela a déjà été analysé, décortiqué, synthétisé par d'autre, cherche sur le web, il y aura différentes méthodes avec des critères qui t'aideront à déterminer si c'est ce dont tu as besoin, s'il manque quelque chose ou si tu fais de l'overkill pour un truc simple.

  8. #68
    Citation Envoyé par Sonny Jim Voir le message
    *toussote*

    Une question pour les retardataires de la saison deux (le topic dédié étant fermé) : un espoir de voir une compil des leçons récupérable quelque part?
    #airsuppliant

    Merci d'avance!
    J'avoue que je serais très intéressé aussi...

  9. #69
    Salut m'sieurs dames! [crache son tabac à chiquer dans la gamelle du chat, qui l'éborgne d'un coup de griffe pour se venger]

    Bon, je développe pas vraiment. En fait si, je suis plutôt bon en VBA... Mais ça compte pas vraiment pas vrai?
    Du coup j'y connais rien en html/java et compagnie. Un vrai pied tendre au far net quoi, un de ces innocents attiré par la ruée vers l'or(di), qui n'en ressortira pas indemne.

    Enfin, revenons à nos bisons.

    Voilà, je suis abonné à cpc depuis le numéro 284 (je l'achetais à l'occasion avant ça, mais me voilà rangé, aussi régulier que des règles pilulées).
    "Donc, tu va recevoir toutes les étapes du développez couché, sans avoir l'intro et la 1ère?" me direz vous...
    "Oui" vous répondrai-je sobrement dans la plus pure tradition JackLondonienne, une douloureuse larme d'homme au coin de l’œil.

    Voilà, c'est tout, trêve de bêtises: est-ce qu'une âme charitable pourrait me résumer rapidement les 2 premières étapes du développez couché?
    Trucs à télécharger et à installer?
    Où copier quoi, et où ajouter les quelques lignes magiques (sans lesquelles le jeu est parfait, sans défaut, mais ennuyeux parce que tout blanc)?

    Juste de quoi me remettre sur les rails du traineau, faire claquer la lanière du fouet en criant "mush!", et glisser vers la fortune?

    Merci d'avance!

  10. #70
    Rassurez-vous si vous avez manqué les premières leçons, il y aura un "point" pour les retardataires dans quelque temps.

  11. #71
    Citation Envoyé par olinox14 Voir le message
    est-ce qu'une âme charitable pourrait me résumer rapidement les 2 premières étapes du développez couché?
    Trucs à télécharger et à installer?
    Tu peux télécharger mon projet ici : http://dl.free.fr/pRtRdrhPH
    Il y a des fichiers et des lignes (de commentaire) spécifiques à Visual Studio qui sont donc inutiles pour toi mais ça fonctionnera très bien quand même.
    Voir mon message précédent : http://forum.canardpc.com/threads/82...=1#post7180423

  12. #72
    Yep merci à toi, je vais raccrocher mes wagons! pis après, je demande son poste à Bill... bonne journée!

  13. #73
    salut à tous

    je suis la leçon depuis le début, mais là je sèche...
    pas moyen d'afficher mes saucisses!

    D'habitude quand ça ne marche pas c'est juste un problème de saisie, mais cette fois je ne vois pas de faute de frappe. il faut peut-être que je me lave les yeux.

    Enfin bref, est ce que vous voulez que je poste mon fichier pour que quelqu'un m'aide à trouver mon erreur?

  14. #74
    Si tu utilise firefox, installe firebug, ca aide bien pour débugger. (si tu utilise un autre navigateur il doit sûrement y avoir des équivalents...)

  15. #75
    Un peu de programmation objet en Javascript : j'ai créé une pseudo-classe 'Saucisse' qui hérite de createjs.Bitmap.

    Pour encapsuler ça proprement, j'aurai pu utiliser des closures mais je n'ai pas voulu trop compliquer.

    Code:
    // Definition du 'constructor' pour Saucisse.
    // C'est un peu comme si on créait une classe 'Saucisse' qui hérite de createjs.Bitmap
    function Saucisse() {
    	createjs.Bitmap.call(this);	// appel du 'constructor' parent (pas obligatoire mais recommandé)
    	this.preparerSaucisse();	// on appelle la méthode preparerSaucisse (pas obligatoire mais autant le faire de suite) 
    }
    
    //Nécessaire afin que Saucisse hérite de createjs.Bitmap
    Saucisse.prototype = new createjs.Bitmap();		
    
    // Définition de la méthode preparerSaucisse pour la classe 'Saucisse' (cela remplace la méthode PreparerSaucisse).
    Saucisse.prototype.preparerSaucisse = function () {
    	// this représente l'objet 'Saucisse' 
    	this.x = Math.floor(Math.random() * 448 + 640);
    	this.y = Math.floor(Math.random() * 448);
    
    	this.pourrie = Math.random() < 0.5;
    
    	if (this.pourrie)
    		this.image = img_saucisse[1];
    	else
    		this.image = img_saucisse[0];
    }

    Dans launchGame, remplacer le code qui initialise les saucisses par:
    Code:
    	for (var i = 0 ; i < SAUCISSECOUNT ; ++i) {
    		obj_saucisse[i] = new Saucisse();
    		stage.addChild(obj_saucisse[i]);
    	}
    Et dans mainTick, modifier l'appel à PreparerSaucisse comme ceci:
    Code:
    		if (obj_saucisse[i].x < -64)
    			obj_saucisse[i].preparerSaucisse();

  16. #76
    @ olorin:
    j utilise chrome, et je tape f12 pour voir le code et je n ai aucune erreur de déclarée.

    tout marche, sauf que les saucisses n'apparaissent pas.

  17. #77
    Bonjour à tous.
    De mon côté, je flanche et me décide à poster ici... J'arrive à avoir un code fonctionnel jusqu'à la leçon 4. Sur la leçon 5, rien à faire, les collisions ne sont pas détectées.
    Aussi, ce qui m'ennuie c'est que ça ne fonctionne que sur Firefox(25) et j'aimerais arriver à le faire fonctionner sur IE(11) aussi. Ce qui est étrange, c'est que sur la leçon 4, j'ai réussi à avoir les saucisse sur IE, puis plus rien.
    J'ai récupéré également le code de @CanardLaquais avec l'extension saucisse de ci dessus qui a également marché aussi à un moment donné au niveau de la leçon 4 sur IE et Firefox... Puis en voulant ajouter les collisions, ça ne fonctionne plus, je ne comprends pas. et j'ai perdu la bonne version.
    En résumé chez moi :
    - le code CPC marche sur Firefox (25) mais pas les collisions (Leçon 5) ;
    - le code CPC ne fonctionne pas sur IE (11) : j'ai soit le niveau leçon 3 (avant les saucisse), soit une page blanche sans rien.
    - le code @CanardLaquais fonctionne sur IE (11) au niveau leçon 4 (saucisse) mais un seul type de saucisse apparaît...
    - le code @CanardLaquais fonctionne sur Firefox avec les deux types de saucisses mais seulement niveau leçon 4.

    Les consoles d'exploration DOM type outils de développement natifs sur IE ou Firebug sur Firefox ne révèlent aucune erreur...

    Quelqu'un d'autre est il dans mon cas ?

  18. #78
    bon
    pour prévenir, j ai réussi a trouver mon erreur.
    je vais maintenant pouvoir mettre les collisions.
    évidemment, c était encore une erreur de saisie

  19. #79
    J'ai uploadé mon projet complet à l'issue de la leçon 5 ici : http://dl.free.fr/gJ97Zo7uq
    Si vous n'utilisez pas Visual Studio 2013, vous pouvez supprimer les fichiers CPCDev.sln, CPCDev.v12.suo, Web.config et Scripts\_references.js
    C'est avec ma variante "programmation objet" (cf. message précédent).
    Testé sous Chrome 31, IE 11 et Firefox 25. Il y a parfois quelques saccades quand on déplace le vaisseau sous Firefox.

  20. #80
    Afin de détecter les erreurs de saisie, je vous conseille d'utiliser l'outil JSHint (un fork de JSLint).

    Disponible en ligne http://www.jshint.com/
    Copier-coller votre source javascript à la place du source par défaut.

    Je vous conseille d'ajouter ces 2 lignes tout au début de votre source:
    Code:
    /*global createjs */
    /*jshint globalstrict:true, browser:true */
    Explications:
    global createjs
    Supprime les avertissements pour les références à createjs

    globalstrict:true
    Supprime les avertissement pour l'utilisation de "use strict";.
    Ce n'est pas dans le source officiel de CanardPC mais je vous conseille de l'utiliser.
    Cf. MSDN et Mozilla MDN

    browser:true
    Supprime avertissement pour l'utilisation de document et addEventListener

    Il devrait rester 3 Warnings "i is already defined" et 1 Unused variable "startGame" comme ceci :


    Afin d'éviter les 3 Warnings on pourrait utiliser
    Code:
    /*jshint shadow:true */
    Mais il vaut mieux ignorer ces avertissement ou réécrire le code en omettant "var" quand on ré-utilise la même variable dans une fonction:
    Code:
    function preloadAssets()
    {
            ...
    
    	for (var i = 0 ; i < 3 ; ++i)
    	{ ... }
    
    	for (i = 0 ; i < SAUCISSECOUNT ; ++i)
    	{ ... }
    }

    JSLint/JSHint est aussi disponible sous forme de plugin pour Notepad++.

    Installation:
    Menu Plugins / Plugin Manager / Show Plugin Manager : sélectionner et installer "JSLint" plugin par Martin Vladic.

    Configuration:
    Menu Plugins / JSLint / JSLint Options : sélectionner JSHint au lieu de JSLint.

    Utilisation:
    Menu Plugins / JSLint / JSLint Current File.

  21. #81
    Merci beaucoup Canard Laquais.

    La perspective de Visual Studio m'intéresse justement beaucoup. J'ai quelques notions de java script mais ce n'est pas non plus mon cœur de métier, donc je code façon gros sabot me heurtant souvent à la grande variété de syntaxe de ce langage... mais bon une fois que je le vois, je comprends à peu près sa logique.
    Mon idée est donc justement de me sensibiliser à un projet visual studio (pour hypothétiquement aller vers du Windows 8/Phone) à partir d'un petit projet comme celui de Développez Couché, comme extension d'un projet web HTML5+JS, bien sûr...

  22. #82
    Citation Envoyé par wireless wookie Voir le message
    La perspective de Visual Studio m'intéresse justement beaucoup. J'ai quelques notions de java script mais ce n'est pas non plus mon cœur de métier, donc je code façon gros sabot me heurtant souvent à la grande variété de syntaxe de ce langage... mais bon une fois que je le vois, je comprends à peu près sa logique.
    Mon idée est donc justement de me sensibiliser à un projet visual studio (pour hypothétiquement aller vers du Windows 8/Phone) à partir d'un petit projet comme celui de Développez Couché, comme extension d'un projet web HTML5+JS, bien sûr...
    En ce qui concerne les versions gratuites de Visual Studio (Express) , il y a 4 versions :

    Express 2013 for Web : pour la création de site Web (HTML, ASP.Net, JavaScript). C'est la version qui nous intéresse pour "Développez Couché".

    Express 2013 for Windows : pour le magasin d'applications Windows 8.1 - "Metro", "ModernUI" - (WinRT).
    Langages: C#, VB.Net, C++ et Javascript

    Express 2013 for Windows Desktop : applications pour le bureau classique (Win32).
    Langages: C#, VB.Net et C++

    Express 1012 for Windows Phone : pour Windows Phone 7.5 et 8.
    Langages: C#, VB.Net (C++ / Direct3D)


    Je vais m'intéresser à TypeScript (site officiel: http://www.typescriptlang.org) qui est supporté dans Visual Studio Express (2012 et 2013) for Web.
    C'est une extension à JavaScript qui apporte:
    -typage statique des variables (string, number)
    -orientation objet (class, interface)

  23. #83
    Des nouvelles de TypeScript, le language Open Source qui étend JavaScript et qui est poussé par Microsoft.
    Il n'est peut être pas aussi élégant qu'un nouveau langage comme Dart (Google) mais il a l'avantage de rester compatible avec JavaScript.
    Tout programme JavaScript est un programme TypeScript valide.
    Le code JavaScript qui est généré par le compilateur TypeScript est aussi clair et lisible que si il avait été écrit directement en JavaScript.

    On peut donc très facilement utiliser les librairies JS existantes (JQuery, CreateJS ...), cependant il faut utiliser des fichiers des définitions (voir lien en fin de ce message) pour bénéficier des avantages de TypeScript.

    Avantages:
    -aide à la saisie ("intellisense" dans Visual Studio) et support du "refactoring"(renommage en masse)
    -le typage (optionnel) des variables élimine certaines erreurs
    -programmation objet : "class" et "module" (encapsulation - équivalent des "closures" en JS)
    -nouveautés: enum (comme en Java ou en C#) et types génériques

    Inconvénients:
    -supporté dans peu d'outils : Visual Studio, Eclipse, IntelliJ IDEA (version payante), Sublime Text
    -encore récent ("work in progress") mais la version 1.0 est proche (la version actuelle est 0.9.5)
    -avenir incertain (comme Dart et tous les autres) même si certains concepts sont empruntés à la prochaine version de JavaScript (ES6)

    J'ai mis un lien en fin de message pour télécharger mon projet Dév. Couché (leçon 6).

    Exemple d'aide à la saisie:


    Exemple de classe:
    Code:
    class Saucisse extends createjs.Bitmap
    {
    	pourrie: boolean;
    
    	constructor()
    	{
    		super(img_saucisse[0]);		// appel du constructeur de base (obligatoire)
    		this.preparerSaucisse();	// on appelle la méthode preparerSaucisse (pas obligatoire mais autant le faire de suite) 
    	}
    
    	preparerSaucisse()
    	{
    		// this représente l'objet 'Saucisse' 
    		this.x = Math.floor(Math.random() * 448 + 640);
    		this.y = Math.floor(Math.random() * 448);
    
    		this.pourrie = Math.random() < 0.5;
    
    		if (this.pourrie)
    			this.image = img_saucisse[1];
    		else
    			this.image = img_saucisse[0];
    	}
    }
    
    var obj_saucisse: Saucisse[] = [];   // tableau de Saucisse (initialisé à tableau vide)
    var obj_joueur: createjs.Bitmap;     // createjs.Bitmap (non initialisé)
    var obj_sky: createjs.Bitmap[] = []; // tableau de createjs.Bitmap[] (initialisé à tableau vide)
    Liens:
    Visual Studio Express 2013 for Web: http://www.microsoft.com/visualstudio/eng/downloads
    Prérequis: Windows 7 SP1 + Internet Explorer 10 (ou Windows 8, Windows 8.1)
    Un compte Microsoft (live, hotmail ...) est aussi nécessaire pour le téléchargement.
    Taille téléchargement : environ 600 Mo
    Taille sur le disque dur: environ 2.6 Go

    Le site officiel de TypeScript : http://www.typescriptlang.org
    Le plugin pour VisualStudio : http://www.microsoft.com/en-us/downl....aspx?id=34790
    Le dépot pour les fichiers de définition (JQuery, CreateJS ...) : https://github.com/borisyankov/DefinitelyTyped

    Mon projet TypeScript à l'issue de la leçon 6 : http://dl.free.fr/iEZUg4GXq
    Bizaremment, il s'agit d'un projet de type csproj (C#), cela génére une DLL dans le répertoire Bin mais elle ne sert à rien.
    Attention, j'ai du utiliser des versions de CreateJS plus récentes que celles de Dev. Couché.
    Il peut y avoir des différences de comportement; par exemple j'ai du remplacer "loadcomplete" par "fileload" pour SoundJs:
    createjs.Sound.addEventListener("fileload", preloadUpdate);

  24. #84
    Intéressant CanardLaquais, merci pour cette présentation de ce langage. Ça me rappelle un exposé à une conférence où l’orateur expliquait qu’il fallait proposer aux programmeurs une transition douce si on voulait qu’ils passent de leur langage non typé à un langage typé. Il expliquait comment faire un Python avec typage statique optionnel.

  25. #85
    Pour ceux qui auraient téléchargé mon source typescript, il y a une petite erreur qui fait qu'il n'y a pas la musique de fond.
    La ligne correcte (telle que dans le magazine) est :
    createjs.Sound.play("music", createjs.Sound.INTERRUPT_NONE, 0, 0, 1, 0.4);

    J'avais écrit ceci (volume à 0 donc pas de musique) :
    createjs.Sound.play("music", createjs.Sound.INTERRUPT_NONE, 0, 0, 1, 0, 4);

  26. #86
    J'ai ajouté tir.png, que j'avais oublié, à la liste des fichiers dans le premier post.

  27. #87
    Salut les canards,
    Je rame sur les héritages multiples en JS. J'ai bien comment créé des classes filles des classes proposée par CreateJS, par exemple pour une classe Joueur héritée createJS.Bitmap je fais :

    Code:
    Joueur = function (param1, param2) {
    	createjs.Bitmap.call(this);
            [bla bla ba]
    };
    
    Joueur.prototype = new createjs.Bitmap(); // Pour hériter de hérite de createjs.Bitmap
    Et je déclare mes méthodes avec par exemple :
    Code:
    Joueur.prototype.changeDirection = function (variation) {
       [bla bla ba]
    };
    Et ça marche très bien. Problème : j'aimerais maintenant créer une classe fille de Joueur, qui permettrait d'ajouter ou modifier certaines méthodes. Et là je sèche... j'ai cherché sur le Web, mais j'avoue ne pas avoir tout compris.

    Please, please help me avant que je craque et que je tourne mon projet vers la combinaison C#/Unity.
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  28. #88
    Coinc,
    Petite après-midi découverte du développement javascript grace à CPC, yabon !
    J'ai réussi à faire à l'arrache ce que je voulais : une course contre le temps, la possibilité de débloquer des modifications (une pour l'instant) avec le score (ma version ici).
    Pour la suite il faudra que je fasse du ménage, js n'a pas l'air d'être le genre de copain qui range le bordel à ta place... Sans parler des concepts à faire proprement comme les menus.

    Hâte de voir la suite !

  29. #89
    Hello all,
    comme un bon boulet j'ai raté la lecon 8 (le canard a fini en bouilli) quelqu'un aurai ca en stock?

  30. #90
    Citation Envoyé par Rico Voir le message
    Hello all,
    comme un bon boulet j'ai raté la lecon 8 (le canard a fini en bouilli) quelqu'un aurai ca en stock?
    Il n'y a pas de leçon 8.
    CPC 289 - 15 Janvier - Leçon 7 : projectiles
    CPC 290 - 1er Février - Leçon 9 : vies

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •