L'Huître Défaite, losers de père en fils depuis 1998.
Les gars vous êtes fabuleux ! <3
Tiens sinon je sais pas si Sébum serait ok pour faire la même avec le début de la S2, puisque dans mon déménagement tous mes CPCs sont partis....![]()
C'est envoyé à Sébum.
"For someone with such an intense need to be liked you'd think I would have figured out how to be less of an asshole."
Dernière mise à jour sur le site :
La section archives a été ajoutée. Vous y trouverez l'intégralité de la première saison de Développez Couché.
Pas mieux, merci.
L'Huître Défaite, losers de père en fils depuis 1998.
Grande classe, en effet ^^
Un grand merci à vous. Cela faisait un moment que j'attendais cela ayant déménagé et perdu pas mal de numéro du coup.
Mr Sébum, tite coquille sur le site :
Cette archive peut être redistribuée librement tant qu'elle contient n'est pas modifiée.
Bonjour,
Est ce qu'il serait possible de diffuser les pages de cours paru dans les n° de canardpc qui sont en rupture de stock par exemple n°243-244 car c'est trés difficile de suivre dés qu'on loupe une etape ( surtout que je suis debutant donc je dois suivre a la lettre les etapes pour comprendre ) et comme on ne peut plus commander les N° en question je suis bien ennuyer ? ( je sais qu'on peut telecharger les sources de differents cours mais sans les explications pas facile de savoir a quoi sert et comment fonctionne telle ou telle fonction )
Certes. Mais regarder les précédents messages, genre une dizaine est souvent utile, aussi...
I am Moanaaaaaaa !!! (et en version legit!)![]()
Désolé de répondre si tardivement, mais je vient d'avoir le même problème que toi Papaye et pour les autres qui pourraient l'avoir par la suite, j'apporte la solution : il suffit de réinstaller Windows Media Player.
Pour se faire, sur Windows 7 :
- Panneau de configuration -> Activer ou désactiver des fonctionnalités Windows
- Développer "Fonctionnalités multimédia", cocher "Lecteur Windows Media" et valider par Ok.
Walou.![]()
Bonjour tout le monde,
Je viens de découvrir la sous-section dev et donc ce topic. Et je voulais saluer le travail de Sébum qui a la patience et le plaisir de faire découvrir, expliquer, partager les coulisses de la création d'un jeu. Et le choix des outils est vraiment parfait !
Franchement bravo mec !
Ceci n'est que mon avis. Si, si.
Je viens de me pencher (avec un peu de retard) sur ces superbes tuto de dev - Merci à Sébum.
Par contre sur la leçon 16 (je n'ai pas essayé sur la autres versions) je compile bien en version "Debug", et j'ai une erreur lors de la compil' en version "Release" :
En gros il râle sur le SpriteBatch du PostProcess.fxCode:Erreur 1 Errors compiling ___\Canardage\CanardageContent\PostProcess.fx: (30,24): ID3DXEffectCompiler::CompileEffect: There was an error compiling expression ID3DXEffectCompiler: Compilation failed ___\Canardage\CanardageContent\PostProcess.fx 30 24 Canardage
J'ai vérifié, j'ai bien le même fichier que celui linké par Sébum sur le 1er post.
Pourtant, dans mon idée, la version Release était le même version que la Debug, mais sans les infos permettant de faire le lien avec la code source.
Alors pourquoi râler sur un truc qui fonctionnait ?
Bonjour.
Je suis nouveau sur le forum (donc je ne sais pas si c'est la bonne section pour parler de sa ^^), j'ai suivi les cours de Développez Couché mais après la leçon 16 je me rends compte que mon programme à un problème. Voici le code :Voici une image de mon problème : bug.JPGCode:using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace Canardage { /// <summary> /// This is the main type for your game /// </summary> public class Particule { public Particule(float x, float y) { X = x; Y = y; Trans = 1; } public float X; public float Y; public float Trans; } public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D texture_lapin; Texture2D texture_saucisse; float[] saucisses = new float[4]; float x; float y; Random aleatoire = new Random(); int score = 0; SoundEffect snd_boing; Song music; Texture2D texture_ciel, texture_ciel1, texture_ciel2; SoundEffect snd_pouet; int pos_ciel = 0; int pos_ciel2 = 0; SoundEffect snd_tir; Texture2D texture_tir; Double DernierTir = 0; List<Vector2> tirs = new List<Vector2>(); bool[] mechanteSaucisse = new bool[4]; RenderTarget2D tampon; Effect postProcess; Song music_warpzone; int warpCount = 0; double warpTime = 0; float chronoShader = 0; int highScore = 0; SpriteFont police; SpriteFont police2; double MessageChrono = 0; bool MenuOuvert = true; Texture2D texture_particule; List<Particule> Particules = new List<Particule>(); private void Shoot() { if (DernierTir < 500) return; DernierTir = 0; snd_tir.Play(); tirs.Add(new Vector2(x + 128, y + 96)); } public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } /// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); } /// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { if (System.IO.File.Exists("highscore.txt")) { string highScoreText = System.IO.File.ReadAllText("highscore.txt"); highScore = Convert.ToInt32(highScoreText); } // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); texture_lapin = Content.Load<Texture2D>("canardage_lapin2"); texture_saucisse = Content.Load<Texture2D>("saucisse"); x = 0; y = 0; for (int i = 0; i < 4; i++) { saucisses[i] = 600 + aleatoire.Next(800); mechanteSaucisse[i] = (aleatoire.NextDouble() < 0.5); } snd_boing = Content.Load<SoundEffect>("boing"); music = Content.Load<Song>("music"); MediaPlayer.IsRepeating = true; MediaPlayer.Play(music); Window.Title = "Score =0"; texture_ciel = Content.Load<Texture2D>("ciel"); texture_ciel1 = Content.Load<Texture2D>("ciel1"); texture_ciel2 = Content.Load<Texture2D>("ciel2"); snd_pouet = Content.Load<SoundEffect>("pouet"); texture_tir = Content.Load<Texture2D>("tir"); snd_tir=Content.Load<SoundEffect>("panpan"); tampon = new RenderTarget2D(GraphicsDevice, 800, 480); postProcess = Content.Load<Effect>("PostProcess"); music_warpzone = Content.Load<Song>("warpzone"); police = Content.Load<SpriteFont>("police"); police2 = Content.Load<SpriteFont>("police2"); texture_particule = Content.Load<Texture2D>("particule"); // TODO: use this.Content to load your game content here } /// <summary> /// UnloadContent will be called once per game and is the place to unload /// all content. /// </summary> protected override void UnloadContent() { if (score > highScore) { System.IO.File.WriteAllText("highscore.txt", score.ToString()); System.Windows.Forms.MessageBox.Show("Bravo, vous avez battu le high score ! Le nouveau high score est " + score.ToString(), "Meilleur score"); // TODO: Unload any non ContentManager content here } } /// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { if (MenuOuvert) { if (Keyboard.GetState().IsKeyDown(Keys.J)) MenuOuvert = false; if (Keyboard.GetState().IsKeyDown(Keys.Q)) Exit(); return; } Particules.Add(new Particule(x, y = 96f)); for (int i = 0; i < Particules.Count; i++) { Particules[i].X -= 2.5f * aleatoire.Next(1, 3); Particules[i].Y += 2.5f * aleatoire.Next(1, 4); Particules[i].Trans -= .01f; if (Particules[i].Trans <= 0) { Particules.RemoveAt(i); i--; } } if (Keyboard.GetState().IsKeyDown(Keys.Escape)) { snd_pouet.Play(); MenuOuvert = true; } chronoShader += (float)gameTime.ElapsedGameTime.TotalSeconds * 4; postProcess.Parameters["monTimer"].SetValue(chronoShader); if(warpTime>0) { warpTime-=gameTime.ElapsedGameTime.TotalSeconds; if (warpTime<=0) { MediaPlayer.Stop(); MediaPlayer.Play(music); } } if (Keyboard.GetState().IsKeyDown(Keys.Up)) y = y - 3; if (Keyboard.GetState().IsKeyDown(Keys.Down)) y = y + 3; if (Keyboard.GetState().IsKeyDown(Keys.Left)) x = x - 3; if (Keyboard.GetState().IsKeyDown(Keys.Right)) x = x + 3; if (Keyboard.GetState().IsKeyDown(Keys.Space)) Shoot(); Rectangle playerRect = new Rectangle((int)x + 64, (int)y + 96, 168, 68); for (int i = 0; i < 4; i += 1) { saucisses[i] -= 3; if (saucisses[i] < -128) { if (!mechanteSaucisse[i]) { snd_pouet.Play(); score = score - 2; Window.Title = "Score" + score.ToString(); } saucisses[i] = 800 + aleatoire.Next(800); mechanteSaucisse[i] = (aleatoire.NextDouble() < 0.5); } if (playerRect.Intersects(new Rectangle((int)saucisses[i], i * 125, 128, 64))) { if (mechanteSaucisse[i]) { snd_pouet.Play(); score = score - 2; warpCount = 0; if (warpTime > 0) warpTime = 0.1; } else { snd_boing.Play(); if (warpTime <= 0) { score++; warpCount++; if (warpCount >= 5) { warpCount = 0; warpTime = 8; MediaPlayer.Stop(); MediaPlayer.Play(music_warpzone); } } else score += 2; } saucisses[i] = 800 + aleatoire.Next(800); Window.Title = "Score: " + score.ToString(); mechanteSaucisse[i] = (aleatoire.NextDouble() < 0.5); } } pos_ciel = pos_ciel - 1; pos_ciel2 = pos_ciel - 2; if (pos_ciel < -800) pos_ciel=pos_ciel + 800; if (pos_ciel2 < -800)pos_ciel2= pos_ciel2 + 800; List<Vector2> tirsAVirer = new List<Vector2>(); for (int i = 0; i < tirs.Count; i++) { if (tirs[i].X > 800) { tirsAVirer.Add(tirs[i]); continue; } tirs[i] = new Vector2(tirs[i].X + 8, tirs[i].Y); Rectangle tirRect = new Rectangle(); for (int j = 0; j < 4; j += 1) { tirRect = new Rectangle((int)tirs[i].X, (int)tirs[i].Y, 128, 64); if (tirRect.Intersects(new Rectangle((int)saucisses[j], j * 125, 128, 64))) { saucisses[j] = 800 + aleatoire.Next(800); mechanteSaucisse[j] = (aleatoire.NextDouble() < 0.5); tirsAVirer.Add(tirs[i]); break; } } } for (int i = 0; i < tirsAVirer.Count; i++) tirs.Remove(tirsAVirer[i]); DernierTir += gameTime.ElapsedGameTime.TotalMilliseconds; base.Update(gameTime); } /// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Gray); if ((warpTime > 0) && (!MenuOuvert)) GraphicsDevice.SetRenderTarget(tampon); spriteBatch.Begin(); if (MenuOuvert) { spriteBatch.DrawString(police2,"(J)OUER", new Vector2(273,128),Color.Yellow); spriteBatch.DrawString(police2, "(Q)UITTER", new Vector2(273, 228), Color.Yellow); spriteBatch.End(); return; } spriteBatch.Draw(texture_ciel, Vector2.Zero, Color.White); spriteBatch.Draw(texture_ciel1, new Vector2(pos_ciel, 0), Color.White); spriteBatch.Draw(texture_ciel1, new Vector2(pos_ciel + 800, 0), Color.White); spriteBatch.Draw(texture_ciel2, new Vector2(pos_ciel2, 0), Color.White); spriteBatch.Draw(texture_ciel2, new Vector2(pos_ciel2 + 800, 0), Color.White); for (int i = 0; i < Particules.Count; i++) spriteBatch.Draw(texture_particule, new Vector2(Particules[i].X, Particules[i].Y), Color.Lerp(Color.Transparent, Color.White, Particules[i].Trans)); spriteBatch.Draw(texture_lapin, new Vector2(x,y), Color.White); for (int i = 0; i < 4; i += 1) { if (mechanteSaucisse[i]) spriteBatch.Draw(texture_saucisse, new Vector2(saucisses[i], i * 125), Color.DarkCyan); else spriteBatch.Draw(texture_saucisse, new Vector2(saucisses[i], i * 125), Color.White); } for (int i = 0; i < tirs.Count; i++) spriteBatch.Draw(texture_tir, tirs[i], Color.White); spriteBatch.End(); if (warpTime > 0) { GraphicsDevice.SetRenderTarget(null); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.LinearClamp, DepthStencilState.None, RasterizerState.CullCounterClockwise, postProcess); spriteBatch.Draw(tampon, new Rectangle(0, 0, 800, 480), Color.White); spriteBatch.End(); } else { spriteBatch.Begin(); for (int i = 0; i < 5; i++) { Color c = new Color(0, 0, 0, 128); if (warpCount > i) c = Color.White; spriteBatch.Draw(texture_saucisse, new Rectangle(8 + (64 * i), 8, 64, 32), c); } spriteBatch.End(); } // TODO: Add your drawing code here spriteBatch.Begin(); if (warpTime > 0) spriteBatch.DrawString(police2, "WARpZONE", new Vector2(273, 8), Color.Yellow); spriteBatch.DrawString(police, "Score: " + score.ToString(), new Vector2(8, 420), Color.White); spriteBatch.DrawString(police,"Highscore: "+ highScore.ToString(), new Vector2(8,450), Color.White); spriteBatch.End(); base.Draw(gameTime); } } }
Comme vous pouvez les voir les particules sont décalées vers le haut, mon vaisseau peut se déplacer de gauche à droite mais plus de bas-haut.
Pourriez-vous m'aidez svp ?
Merci
C'est normal que je ne puisse rien télécharger des fichiers proposés par sébum ... le site ftp de canardpc à l'air down ???
je recommence tout le projet depuis le début et je ne sais pas comment récuperer les ressources !?
Salut.
Bon ben ça va être plus court que je le pensais. Abonné depuis un moment (2006 je crois), j'allais lancer un appel pour la page développé couché du numéro 242 que je n'avais jamais reçu (j'habite très très loin..). Et paf, voilà la saison 1. Bref, ma fille de 15 ans, lectrice de canard pc (mais c'est le mien hein, faut pas déconner !) voulant une intro à la programmation...va donc commencer par Canard pc. Moi, j'ai pas le temps ni le courage de replonger dans la programmation abandonné depuis le 520ST (pfffiiiuu). Nul doute que je vais être harcelé de question dans pas longtemps mais bon... assez content qu'elle s'y intéresse via les souvenirs émus de son padre..
Merci donc à vous (et je m'en vais de ce pas enquêter sur l’étrange disparition des numéros 248 à 252...) et longue vie aux Canards !
Jaech
Bonjour,
Je me suis lancé hier dans le développez couché, j'ai retrouvé dans mes piles de magazines toutes les leçons saison 1 et saison 2,
mais les fichiers ressources à télécharger pour la saison 1 ne sont pas disponibles sur le ftp officiel (et si je regarde le commentaire de ffaucheux c'est le cas depuis janvier)
J'ai retrouvé les images sur ce site si d'autres cherchent, mais impossible de retrouver le postprocess.fx par exemple.
Quelqu'un aurait-il la possibilité de mettre en ligne les fichiers nécessaires à la saison 1 svp ?
Merci d'avance !
Pour le reste, j'en suis à la leçon 12, c'est juste incroyable(j'ai adapté la warpzone avec un mode "nuit" pour l'instant
)
Il ne sont pas là ? : https://sites.google.com/site/developpezcouche/accueil
Tu les as trouvé James314 ?
je suis intéressé aussi, le ftp semble mort
Yo les canards ! Désolé de vous déranger, mais je me lance tardivement dans le tutos de maître Sébum et, j'ai un problème. Avec mes nuages et mon gazon, plus précisément. Impossible de les faire défiler, j'ai testé un bon paquet de solution, mais rien.
Ils restent fixe, tout le reste fonctionne parfaitement, je n'ai d'ailleurs aucun message d'erreur concernant ce dit défilement.
Voilà le code, si jamais quelqu'un peut jeter un oeil...
J'ai essayé un paquet de placement pour ces lignes censés faire défiler le ciel, je désespère.Code:using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace Canardage { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D texture_lapin; Texture2D texture_saucisse; Texture2D texture_ciel, texture_ciel1, texture_ciel2; float x; float y; float[] saucisses = new float[4]; Random aleatoire = new Random(); int score = 0; SoundEffect snd_boing; SoundEffect snd_pouet; int pos_ciel = 0; int pos_ciel2 = 0; Song music; public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { base.Initialize(); } protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); texture_lapin = Content.Load<Texture2D>("canardage_lapin"); texture_saucisse = Content.Load<Texture2D>("saucisse"); for (int i = 0; i < 4; i++) saucisses[i] = 600 + aleatoire.Next(800); texture_ciel = Content.Load<Texture2D>("ciel"); texture_ciel1 = Content.Load<Texture2D>("ciel1"); texture_ciel2 = Content.Load<Texture2D>("ciel2"); snd_boing = Content.Load<SoundEffect>("boing"); snd_pouet = Content.Load<SoundEffect>("pouet"); music = Content.Load<Song>("music"); MediaPlayer.IsRepeating = true; MediaPlayer.Play(music); Window.Title = "Score:0"; } protected override void UnloadContent() { } protected override void Update(GameTime gameTime) { if (Keyboard.GetState().IsKeyDown(Keys.Z)) y = y - 3; if (Keyboard.GetState().IsKeyDown(Keys.S)) y = y + 3; if (Keyboard.GetState().IsKeyDown(Keys.Q)) x = x - 3; if (Keyboard.GetState().IsKeyDown(Keys.D)) x = x + 3; for (int i = 0; i < 4; i += 1) { Rectangle playerRect = new Rectangle((int)x + 64, (int)y + 96, 128, 64); saucisses[i] -= 3; if (saucisses[i] < -128) { snd_pouet.Play(); score=score-2; Window.Title="Score:"+score.ToString(); saucisses[i]=800+aleatoire.Next(800); } if (playerRect.Intersects(new Rectangle((int)saucisses[i], i * 125, 128, 64))) { snd_boing.Play(); saucisses[i] = 800 + aleatoire.Next(800); score = score + 1; Window.Title = "Score:" + score.ToString(); } pos_ciel = pos_ciel - 1; pos_ciel = pos_ciel2 - 2; if (pos_ciel < -800) pos_ciel = pos_ciel + 800; if (pos_ciel2 < -800) pos_ciel2 = pos_ciel2 + 800; base.Update(gameTime); } } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Red); spriteBatch.Begin(); spriteBatch.Draw(texture_ciel, Vector2.Zero, Color.White); spriteBatch.Draw(texture_ciel1, new Vector2(pos_ciel,0),Color.White); spriteBatch.Draw(texture_ciel1, new Vector2(pos_ciel+800,0),Color.White); spriteBatch.Draw(texture_ciel2, new Vector2(pos_ciel2,0),Color.White); spriteBatch.Draw(texture_ciel2, new Vector2(pos_ciel2+800,0),Color.White); spriteBatch.Draw(texture_lapin, new Vector2(x, y), Color.White); for (int i = 0; i < 4; i += 1) spriteBatch.Draw(texture_saucisse, new Vector2(saucisses[i], i * 125), Color.White); spriteBatch.End(); base.Draw(gameTime); } } }
Merci d'avance, et je salut au passage cette rubrique géniale, étant étudiant en L1 info, ça complète vraiment bien le truc, en attendant de creuser un peu plus. Et c'est vraiment pédagogique comme rubrique, Sébum, je te donne mon pouce.![]()
Salut à tous !
Je suis tout nouveau et je ne sais pas comment rattraper mon très large retard, comment faire pour rattraper en partant des premières leçons ?
Merci :-)
La saison 1 est disponible ici:
https://sites.google.com/site/developpezcouche/archives
Je crois pas qu'il y ai de scans pour les deux autres saisons.
Ok merci beaucoup :-)
Et la saison 2 sera t-elle ajoutée avec le temps ?