Crunchez vos adresses URL
|
Calculez la conso électrique de votre PC
|
Hébergez vos photos
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 30 sur 74
  1. #1
    Vous l'avez lu dans le Canard PC 303, cette année nous allons développer un jeu avec Unity (téléchargeable ICI)

    Contenu nécessaire aux leçons :
    Tous les fichiers de média (son, image, etc.) nécessaires pour le moment se trouvent dans le fichier canardage_saison4.zip.

    La totalité du projet Unity tel qu'il était à la fin de la leçon 10 (Canard PC n°312) : Canardage_PostLecon10.7z.
    Dernière modification par L-F. Sébum ; 18/02/2015 à 18h21.

  2. #2
    Gracias senior Sébum d'avoir ouvert le topic.

    Je me lance donc dans l'aventure après avoir suivi et apprécié la saison 3 (celle dans laquelle JackBauer apprend à faire du javascript). J'espère que cette saison 4 sera encore une fois l'occasion déchanger des protips de haut niveau entre canard du genre "t'as pensé à sauvegarder ton code avant de relancer, couillon ?". Au plaisir !
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  3. #3
    Je m'y suis mis aussi, j'ai déjà touché à Unity mais jamais pour la 2D, c'est la bonne occasion !

  4. #4
    Coucou! Bon démarrage de la saison, ça me permet de mettre à Unity alors que j'hésitais depuis quelques temps.
    J'avoue qu'en septembre, je me suis dit "oh encore Canardage et ses saucisses volantes..." car j'avais bien apprécié le Roguelike d'il y a 2 ans et son originalité (de mon point de vue!) mais finalement, ce sera l'occasion de pratiquer Unity alors c'est bien

    Juste une question sur la dernière leçon:
    gameObject.transform.Translate (-Vitesse, 0f, 0);
    On aurait tout autant pu enlever le f et écrire:
    gameObject.transform.Translate (-Vitesse, 0, 0);
    c'est bien ça?
    Juste pour être sûr que rien ne m'ait échappé! Merci!
    Et vivement la suite!
    Mon challenge "jeux de société" 10x10

  5. #5
    Bonne question, je n'ai pas bien compris à quoi correspondent les f. Sur le coup j'ai pensé à un nombre de frames, mais ça ne voudrait rien dire.... puis que cela doit être plutot d'une unite de distance.
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  6. #6
    Bonne question, je n'ai pas bien compris à quoi correspondent les f.
    En C# (et Java je crois), une valeur est considérée comme type entière (int) par défaut. Même si tu tentes d'entrer une valeur avec décimale, ca sera considéré comme de type int (et dans ce cas, l'IDE monodevelop te crache une erreur).
    Le symbole f après une valeur, c'est pour indiquer au système que c'est une valeur flottante (float). Par exemple: 1.42f.

    Du coup oui: 0f = 0. C'est la même valeur, juste que la première sera considérée de type float, et la seconde de type int.


    Par contre, je ne sais pas si cette indication, c'est pour l'IDE (pour qu'il ne crache pas d'erreur "int != float") ou pour le système.



    Note: Il existe aussi la notation l pour long (très grosse valeur entière), et s pour short (toute petite valeur entière).

  7. #7
    Rho là honte j'ai fait un peu de C# dans mon boulot mais cette façon de typer à la volée une valeur constante m'avait complètement échappé. Merci !!!
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  8. #8
    En C# en effet les nombres sans "virgule" sont considérés comme étant de type int. Les nombres réels/à "virgule" (oui je met les guillemets parce qu'on met un . plutôt qu'une , ) sont considérés comme étant de type Double, codés sur 64 bits. Sauf que Unity, qui était pendant très longtemps tout en 32 bits (ce qui n’empêche pas d'utiliser des double en 64 bits pour autant, mais ça prend plus de mémoire et est un peu plus lent à traiter lors des opérations sur une appli 32 bits sauf erreur) utilise des floats codés sur 32 bits pour la plupart de ses opérations. C'est pour ça qu'on rajoute un f après les nombres "hardcodés" pour préciser au compilateur qu'on lui passe un nombre réel "float" à coder en 32 bits plutôt qu'un "double" à coder en 64 bits.
    Dernière modification par Black Wolf ; 12/11/2014 à 14h21.

  9. #9
    Merci pour cette explication précise.
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  10. #10
    Bonjour à tous, je suis tout nouveau sur CanardPC et j'avoue beaucoup apprécier ce magazine et je compte d'ailleurs m'y abonner sous peu, j'en avais déjà lu quelques uns grâce à des amis (qui ont bon gout manifestement) mais mon premier vrai achat est le n°306 du 1er Novembre. J'ai donc pu découvrir la leçon n°4 de Développez Couché, je me demandais donc si il y avait moyen de télécharger ou d'obtenir les leçons précédentes, je m'intéresse pas mal à la programmation sous Unity, et j'aimerai donc logiquement suivre les leçons dans l'ordre.

    Merci d'avance pour vos réponses.

  11. #11
    Citation Envoyé par hammerfest Voir le message
    Bonjour à tous, je suis tout nouveau sur CanardPC et j'avoue beaucoup apprécier ce magazine et je compte d'ailleurs m'y abonner sous peu, j'en avais déjà lu quelques uns grâce à des amis (qui ont bon gout manifestement) mais mon premier vrai achat est le n°306 du 1er Novembre. J'ai donc pu découvrir la leçon n°4 de Développez Couché, je me demandais donc si il y avait moyen de télécharger ou d'obtenir les leçons précédentes, je m'intéresse pas mal à la programmation sous Unity, et j'aimerai donc logiquement suivre les leçons dans l'ordre.

    Merci d'avance pour vos réponses.
    Envoyé en message privé.

  12. #12
    J'ai fini la leçon 4, tout fonctionne bien mais je me posais quelques questions.
    Pourquoi, on ne voit pas le soleil complètement ?
    Pourquoi, il y a un bout de ciel (bleu) tout en bas ?
    Pourquoi ciel1b et ciel2b sont positionnés en X=25.6 (valeur qui est aussi utilisée dans ScriptDecor) ?

    Déjà, on peut constater en sélectionnant ciel0 (ou ciel1 ou ciel2) dans Assets\Media afin qu'il apparaisse dans l' "Inspector" que PixelToUnits = 100. On voit aussi Pivot=Center, cela veut dire que le point de référence pour positionner l'image dans la scène est le centre de l'image.


    ciel0 fait 640 x 480 pixels donc en unités cela fait 6.4 x 4.8 (on divise par 100).
    On applique un grossissement de 3 (Scale X=3 Y=3) => 19.2 x 14.4

    ciel1 et ciel2 font 1280 x 480 avec un grossissement x 2 => 25.6 x 9.6

    On comprend mieux si on dézoome un peu la scene:


    Le point origine (X=0, Y=0) est au centre de la scène, l'axe des X est à l’horizontale et l'axe des Y est à la verticale. C'est comme en math, un repére orthonormé direct.
    Les carrés de la grille font 10 x 10 et on voit aussi le cadre qui représente la caméra (la partie qui est visible quand on exécute le jeu).
    La caméra est définie avec une taille de 5 (Size = 5 - en dessous de Projection = Ortographic). En fait cela représente la demi-hauteur de la caméra donc la caméra fait 10 unités de haut (centrée sur le point origine donc 5 en dessous et 5 en dessus).

    On voit qu'il reste un bout de ciel bleu en bas et que le haut de l'écran est tronqué, c'est pour cela qu'on ne voit pas tout le soleil.

    Si vous exécutez le projet (menu File / Build & Run) vous constaterez qu'on ne voit pas la même portion de la scène selon que l'on choisisse une fenêtre 1024 x768 (ratio 4/3) ou 1280 x 720 (ratio 16/9).
    En effet , la largeur de la caméra dépend du ratio de l'écran (en mode plein écran) ou du ratio de la fenêtre (en mode fenêtré).
    Par exemple, avec une fenêtre de 1024x768 (ratio 4/3), largeur de camera = 10 * 4 / 3 = (environ) 13.3 unités

    Pour finir, je signale qu'on peut aussi utiliser Visual Studio pour éditer et debugger les scripts Unity. D'ailleurs, depuis peu Microsoft propose une version Community Edition de VS 2013 qui est gratuite et qui est équivalente à la version Pro : http://msdn.microsoft.com/en-us/visu...munity-vs.aspx
    On peut aussi faire du développement java script/typescript pour ceux qui continuent sur la lancée de "Développer couché" saison 3.

  13. #13
    CanardLaquais: Envoyé en message privé.
    Merci beaucoup! C'est vraiment très sympa de ta part! Je vais pouvoir potasser tout ça maintenant

    Par contre pour répondre à ton dernier message, je dirais que pour les deux premières questions, c'est juste une "décision artistique", le jeu -ou du moins l'exercice- n'a pas vraiment pour but d’être réaliste, du coup le bout de ciel en bas et le soleil pas entier sont des détails, en plus ton screen a l'air de correspondre à celui que l'on entrevoit sur la leçon n°4. Donc, je pense, pas de soucis de ce côté là, pour le reste je saurais pas dire désolé.

  14. #14
    Citation Envoyé par hammerfest Voir le message
    Par contre pour répondre à ton dernier message, je dirais que pour les deux premières questions, c'est juste une "décision artistique", le jeu -ou du moins l'exercice- n'a pas vraiment pour but d’être réaliste, du coup le bout de ciel en bas et le soleil pas entier sont des détails, en plus ton screen a l'air de correspondre à celui que l'on entrevoit sur la leçon n°4. Donc, je pense, pas de soucis de ce côté là, pour le reste je saurais pas dire désolé.
    Je n'ai pas de soucis avec le coté technique ou artistique. Je me posais ces questions car je voulais comprendre comment ça marche. C'est à ces questions que j'essaye de répondre dans mon message.

  15. #15
    J'ai implémenté la leçon 4 et ça fonctionne bien (j'ai juste dû décocher "Play on Awake" pour le son du tir sinon ça faisait le "panpan" une fois au lancement du jeu).

    Par contre, l'icône de mon prefab "tir" est restée en cube bleu. Ca vous a fait pareil?
    Mon challenge "jeux de société" 10x10

  16. #16
    Citation Envoyé par Poussin Joyeux Voir le message
    J'ai implémenté la leçon 4 et ça fonctionne bien (j'ai juste dû décocher "Play on Awake" pour le son du tir sinon ça faisait le "panpan" une fois au lancement du jeu).
    Par contre, l'icône de mon prefab "tir" est restée en cube bleu. Ca vous a fait pareil?
    C'est plutôt la leçon 5 du 15 Novembre ?
    Je n'ai pas encore reçu ce Canard PC.

  17. #17

  18. #18
    Citation Envoyé par Poussin Joyeux Voir le message
    J'ai implémenté la leçon 4 et ça fonctionne bien (j'ai juste dû décocher "Play on Awake" pour le son du tir sinon ça faisait le "panpan" une fois au lancement du jeu).
    Par contre, l'icône de mon prefab "tir" est restée en cube bleu. Ca vous a fait pareil?
    L’icône de mon prefab "tir" n'est pas un cube bleu : c'est l'image "tir" sur un fond gris foncé.
    Je n'ai pas le son "panpan" au lancement du jeu.

    Tu as quoi dans Audio Clip (juste en dessous de Audio Source) ?

    Normalement il y a "None (Audio Clip)" donc pas de son.
    Par la suite, j'ai glissé/déposé "music" pour entendre la musique du jeu (en laissant coché "Play on Awake") mais ce sera surement pour une prochaine leçon.

    Remarque: j'ai installé la version la plus récente d'Unity (4.6.0) mais je ne pense pas que nos différences viennent de ça.

    J'ai remarqué que le son est plus fort quand le joueur est au centre de la scène (et moins fort sur les bords).
    Pour que le son ne change pas selon la position du joueur, Il faut sélectionner le son dans Media et décocher "3D Sound" dans l'Inspector.

  19. #19
    Bonjour, je me suis amusé à faire quelques modifications à ma sauce. Décor fixe, joueur mobile et caméra attachée au jour. Jusque là tout allait bien. Puis j'ai voulu faire en sorte que les touches haut/bas modifie la vitesse et la touche gauche/droite l'inclinaison.

    Le script attaché à la soucoupe est devenu ainsi :

    using UnityEngine;
    using System.Collections;

    public class ScriptJoueur_arkham : MonoBehaviour {

    public float angle = 0f;
    public float sinus = 0f;
    public float cosinus = 0f;
    float v = 0f;

    // Update is called once per frame
    void Update () {
    if (Input.GetKey (KeyCode.UpArrow))
    v = v+0.01f;
    else if (Input.GetKey (KeyCode.DownArrow))
    v = v-0.01f;

    if (Input.GetKey (KeyCode.RightArrow)) {
    angle = angle - 1f;
    gameObject.transform.Rotate (0f, 0f, -1f);
    } else if (Input.GetKey (KeyCode.LeftArrow)) {
    angle = angle + 1f;
    gameObject.transform.Rotate (0f, 0f, 1f);
    }
    if (Input.GetKey (KeyCode.Space))
    {v = 0;};

    cosinus = Mathf.Cos (angle * 3.141592f / 180f);
    sinus = Mathf.Sin (angle * 3.141592f / 180f);


    gameObject.transform.Translate ( v * cosinus, v * sinus, 0f);
    }
    }
    Et ici, gros problème, quand mon angle vaut 45° ma soucoupe monte vers le haut, quand il vaut 90, elle va vers l'arrière.

    J'ai retourné le problème dans tout les sens, je ne vois absolument pas pourquoi il double mes angles.

    Un petit dessin :



    Dans cette situation ma soucoupe monte à la verticale alors que sinus et cosinus valent bien 0,71 chacun (du moins selon l'inspector) et donc qu'elle devrait monter avec une pente de 45°.

    A ce moment, la cause de bug la plus probable de mon point de vue serait un problème de compilation... mais j'ai beau recompiler dans tout les sens ça me fait toujours le même stuud.

    Quelqu'un aurait-il une idée ?

    ---------- Post added at 15h40 ---------- Previous post was at 15h15 ----------

    [Fixed]

    Oki, j'ai trouvé. En fait le processus "translate" tient déjà compte de l'angle de rotation. Donc quand je rajoutait mes sinus et cosinus dans ma translation, il prenait donc 2x l'angle en compte.

    Du coup, j'ai viré les sinus et cosinus et corrigé ainsi :

    gameObject.transform.Translate ( v, 0f, 0f);
    Et maintenant ça fonctionne !

    Merci pour l'aide

    P.S. : Le script s'appelle "Joueur_arkham", car j'ai un vieux rêve d'adaptation d'Arkham Horror en roguelike coop' 2D temps réel.
    Dernière modification par Mietzsche ; 03/12/2014 à 16h28.

  20. #20
    T'as trouvé la solution tout seul on dirait mais oui Translate à un dernier paramètre optionnel qui vaut par défaut Space.Self (il tient compte de sa position et son orientation pour faire le translate), si tu avais fait gameObject.transform.Translate ( v, 0f, 0f, Space.World); tu aurais eu le résultat que tu attendais. Mais ta solution est plus efficace maintenant !

  21. #21
    Bon j'ouvre le post des boulets:

    J'ai un problème de saucisses que je n'arrive pas à résoudre.

    Mes saucisses se contentes de pop en bas de la scène :



    Surement une subtilité que je n'ai point saisi...

    public class ScriptSaucisse : MonoBehaviour {
    public AudioClip sonImpact;
    public AudioClip sonImpact_Pourri;

    bool pourri;

    GameObject joueur = null;
    GameObject camera = null;



    void Start () {
    joueur = GameObject.Find("joueur");
    camera = GameObject.Find("Main Camera");

    NouvelleSaucisse ();
    gameObject.transform.Translate(Random.Range (0,10),0,0);
    }

    void Update () {
    gameObject.transform.Translate (-0.1f,0,0);

    if(Vector3.Distance(gameObject.transform.position, joueur.transform.position) < 1f)
    {
    if(pourri)camera.audio.PlayOneShot(sonImpact_Pourr i);
    else camera.audio.PlayOneShot(sonImpact);

    NouvelleSaucisse();
    return;
    }

    if(gameObject.transform.position.x<-10f)NouvelleSaucisse();
    }

    private void NouvelleSaucisse ()
    {
    pourri =(Random.Range (0,3)==0);

    if(pourri)gameObject.renderer.material.color=new Color(0,.7f,.6f);
    else gameObject.renderer.material.color=Color.white;

    gameObject.transform.position=new Vector3 (10.0f+Random.Range (1.0f,4f),Random.Range (-4f,-4.5f),-9);
    }
    }
    Si vous voyez une erreur, je ne suis pas contre un petite explication. Merci

  22. #22
    L'eerreur vient de ta dernière ligne, ce n'est pas

    gameObject.transform.position=new Vector3 (10.0f+Random.Range (1.0f,4f),Random.Range (-4f,-4.5f),-9);

    mais bien...


    gameObject.transform.position=new Vector3 (10.0f+Random.Range (1.0f,4f),Random.Range (-4f, 4.5f),-9);

    ...de manière à ce que tout l'axe vertical (de -4 à 4.5) soit balayé et non pas une petite partie en bas allant de -4.5 à -4

  23. #23
    Ah ba voila, je sais pas pourquoi j'ai mis un moins là moi. Je recherchais autre part alors que c’était sous mes nez.

    Sujet gros boulet clos. En te remerciant.

  24. #24
    Au sujet de la leçon 8 "Effets de particules", j'ai du mettre "Rotation =0,0,0" sinon les étoiles montent vers le haut.
    Dans "Force over LifeTime" j'ai mis -5,0,0 parce que je trouvais que les étoiles n'étaient pas éjectées assez vite.

  25. #25
    Ce chat est une Dauphine Avatar de rotoclap
    Ville
    Aix-les-Bains
    En effet, mais c'est peut-être voulu. Suivant l'angle que tu mets, t'as les particules qui peuvent gêner la vision quand tu fais faire marche arrière à ton vaisseau.

  26. #26
    Salut, y'aurait moyen qu'on me passe les leçon de 1 à 7 (en mp a la limite) svp car je n'ai pas acheté de CPC depuis Aout du coup j'ai loupé le début de cette saison de Developpez Couché, ce serait sympa merci

  27. #27
    Citation Envoyé par XoRk0 Voir le message
    Salut, y'aurait moyen qu'on me passe les leçon de 1 à 7 (en mp a la limite) svp car je n'ai pas acheté de CPC depuis Aout du coup j'ai loupé le début de cette saison de Developpez Couché, ce serait sympa merci
    Envoyé en MP.

  28. #28
    Bon j'ai une couille dans le potage (à la saucisse), mes particules partent vers le haut. Il faut que je règle Transform.Rotation à 200,0,0 environ pour que ça parte vers l'arrière. Et surtout elle n'apparaissent pas quand je "joue" ma scène en appuyant sur le bouton "play" en haut de l'interface.
    C'est grave docteur ?
    Homme cherche signature pour relation stable dans forum reconnu. Signatures non sérieuses s'abstenir.

  29. #29
    Moi aussi, elles partaient le haut. J'ai mis rotation = 0,0,0. Voir mon message précédent. C'est OK chez moi quand je fais "Play".

  30. #30
    je vient de débuté et a la leçon 3 les scripts bug



    ---------- Post added at 09h34 ---------- Previous post was at 09h23 ----------

    ps: mon scripts
    [IMG][/IMG]

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
  •