PHOENIX : UN JEU EN DIRECTX

cs_Timothée Messages postés 9 Date d'inscription lundi 27 août 2001 Statut Membre Dernière intervention 7 avril 2006 - 1 avril 2006 à 14:42
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006 - 6 avril 2006 à 10:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36851-phoenix-un-jeu-en-directx

vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
6 avril 2006 à 10:00
Timothée,
pour l'arrière plan, vous avez plusieurs options :
1/ Prendre une image de la taille de la taille de votre écran, vous la chargez dans une surface "offscreen" que vous affichez en premier lors du rendu (pour qu'elle apparaisse sous tout le reste).
2/ Vous utilisez ce qu'on appelle des "sprites" et vous contruisez une mosaique en arrière plan qu'il faudra afficher là encore avant tout le reste. Cette méthode présente l'avantage que si vous voulez vous amuser a faire défiler la mosaique, vous obtiendrez l'illusion que le vaisseau avance dans un paysage...

Attention toute fois, vous avez du remarquer que quand on essaie de dessiner une surface qui "sort de l'ecran" partiellement, c'est l'image complète qui n'est pas dessinée. Il faut donc prendre en compte le redimensionnement des rectangle source et destination pour éviter ca. Vous trouverez peut etre des infos utiles sur mon sites (attention il est tres vieux, et je ne lai pas mis a jour depuis quelques années, mais vous aurez quand meme accès aux tutos (pas les codes sources malheureusement je crois).
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
6 avril 2006 à 09:05
Bonjour à tous,
Pour la copie d'ecran, il faut que tu fasses une sauvegarde du back buffer...
Tu copies le back buffer sur une ImageBox ou PictureBox et tu sauvegarde le contenu...
Avec DX9 c'est plus simple, DX fourni directement une fonction pour sauvegarder les surfaces. :)
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
6 avril 2006 à 00:53
au moins JANNOMAN tu respecte le jeu original (de la TI) car dans tout les phenix fo au debut s'exploser le doigts sur le bouton pour chaque tir et ensuite quand on as le rapid fire on est quasi invulnerable car ca tire perpere bien rapidement ^^
cs_Timothée Messages postés 9 Date d'inscription lundi 27 août 2001 Statut Membre Dernière intervention 7 avril 2006
5 avril 2006 à 18:00
je verrais bien ce jeu avec une image une arrière plan pour faire le décor. Par contre je ne sais pas comment faire ni si c'est possible ! (?)
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
5 avril 2006 à 17:40
non l'option mitrailleur c'est pour que tu puisses tirer en laissant appuyé sur la barre espace, et ca tire à plus grande fréquence.
xcxl Messages postés 101 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 16 octobre 2015
5 avril 2006 à 16:39
ben disons que loption mitrailler balance 2 balle en meme temps mais au debut , sa donne pas envie de continuer les vieux fligue a une balle par 2 sec
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
5 avril 2006 à 14:00
ben le rythme de tir, c'est fait exprès, c'est pour qu'on s'achète le "rapid-fire unit" pour pouvoir mitrailler.

les $, c'est 50, 200 ou 500, les trucs comme au flipper où tu gagnes 100 millions c'est un peu lourd à la fin, je trouve.

je vais faire un truc avec plusieurs niveaux (facile, moyen, difficile) comme ca tout le monde sera content, et aussi rajouter des petits bitonioux pour captiver un peu plus
xcxl Messages postés 101 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 16 octobre 2015
5 avril 2006 à 13:59
je trouve quand meme etonnant que directX aille aussi lentement
xcxl Messages postés 101 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 16 octobre 2015
5 avril 2006 à 13:31
Moi en tt cas mon jeu de snake (snake blade), jy joue assez souvent (avec un pote des fois) et jadore.

Pour ton jeu je sens quil va falloir se creuser la tete...

Tt dabord, le rhytme de tir est minable et les ennemi trop resistants, il devrit resister a 2 tir au moins. Puis on a pas l'impression de gagner de largent, franchement 200$ C koi? meme moi je peux les avoir alors que 1000$ sa le fait un peu plus. Il fodrait aussi mettre une bar de vie plus...mieux, avec un pourcentage en dessous.
MasterizerX2 Messages postés 5 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 9 avril 2006
5 avril 2006 à 12:48
J'ai DirectX 9 ca marche aussi ?
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
5 avril 2006 à 11:15
oui j'avais regardé ta source XtremDuke, mais je suis tres loin des 1000 images par secondes
en fait, à la base, j'effacais juste les vaisseaux pour les remettre à la bonne place, mais avec direct draw je ne savais pas comment faire, je croyais qu'on était obligé de tout redessiner, et ca doit prendre un temps fou de recharger des choses comme le fond d'écran, ...
je vais essayer de mettre mon jeu à directX8 et ses sprites, pour voir si ca va plus vite.
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
5 avril 2006 à 10:53
DirectX joue essentiellement sur le processeur graphique ce qui permet de liberer le processeur. Conclusion : oui DirectX accelère le rendu. Normalement, sur ce genre de jeu, tu devrais avoir un framerate d'au moins 1000 img/s (dans le cas où tu ne limite pas le framerate au rafraichissement de l'écran).

En cas de problème, n'hesite pas à me contacter ou regarde la source de mon petit moteur :
http://www.vbfrance.com/codes/MOTEUR-GRAPHIC-2D-DIRECTX8_36013.aspx
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
5 avril 2006 à 08:14
ben en fait, pour voir les armes possibles, dans la sub InitialiseJeu, faut remplacer for k = 1 to 8 has_got_weapon(k) = false next k par true, et mettre rapidfire à true aussi, et timefire à .2.
au niveau 15, on a un nouveau vaisseau normalement (avec plus de vie), et les ennemis intéressants arrivent au bout de 3 - 4 niveaux.

mais effectivement meme quand je joue à mon jeu je m'ennuie, ca va pas assez vite, ou alors il n'y a pas l'écran shopping assez rapidement. (et on a pas le courage d'aller plus loin dans les niveaux)

je vais essayer de faire appel à mon imagination (et pourquoi pas la votre !) pour rajouter plein de petits trucs partout.


autre probleme pour la vitesse : je pensais que l'utilisation de directX rendait les jeux rapides, et en fait, ca va paas spécialement vite, je ne comprends pas ce qui ralentit.
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
4 avril 2006 à 23:44
il y as deja bocoup de phenix sur ti qui ont soit une histoire soit et plus interressant des vaisseau different avec des upgrades d'armes de bouclier etc... (jamais vu les deux ensemble par contre)
xcxl Messages postés 101 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 16 octobre 2015
4 avril 2006 à 21:35
pour ceux qui ont pas compris, cest ttes les amelioration genre "fantassin superieur", "cotte de maille ameliorer",.. qui ont fait de age of empire II un hit
xcxl Messages postés 101 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 16 octobre 2015
4 avril 2006 à 21:32
Bon, pour faire un bon jeu , il fo quil rassemble 2 condition :

-une campagne avec une histoire extraordinaire, ce qui est quasiment impossible a faire tt seul mais jai quand meme vu un jeu de snake avec une histoire pas mal
-que le joueur ne sennuie pas , donc de lentrain, C dailleur ce quil manque a ton jeu. Il faudrait des situations difficile, plus de vitesse , de facon a ce que le joueur doient etre concentré sur le jeu et pas penser a sa petite copine...

Prend exemple sur des jeu existant (qui on fait un succes) ,par exemple, jai fait un jeu de gestion forestiere avec des tour de surveillance et tt et pour lameliorer , jai rajouter un nombre impressionant dextension de tour, damelioration du semage et cest ça qi a permis a age of empire 2 de marcher.

Bon jespere que sa taidera a en faire "un hit"
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
4 avril 2006 à 08:11
masterizerX2 : peut etre que tu n'as pas directX7, sinon je ne voi pas ce qui plante

pour les polices : oui en fait je cherchais une police sympa et une peu rigolote pour changer du times ou arial, mais effectivement ca a l'air de planter pour un peu tout le monde

j'ai regardé le arkanoide de Lard (source magnifique) et du coup je suis en train de rajouter uun fond d'écran et une musique de fond. J'ai re-réglé deux trois trucs comme la vitesse de tir (mettre à .3 au début) et la gestion des high scores.

Je vais essayer de pouvoir sauvegarder la partie, parce qu'en fait le jeu commence à devenir pas mal à partir du moment où on a un peu d'argent et qu'on va au "shopping" mais je le trouve n peu long au début.

et surtout merci pour vos commentaires c'est vraiment sympa
MasterizerX2 Messages postés 5 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 9 avril 2006
4 avril 2006 à 02:29
Moi ca plante quand j'appuie sur Play.

Ca me dit :

Run-time error '-2147024770 (8007007e)':

Automation error

Ca plante a cette ligne :

Private Sub Form_Load()

Dossier = App.Path

--------------------------------------------------
==>>> Set DI = DirectX.DirectInputCreate <<<====
--------------------------------------------------

Set DIDevice = DI.CreateDevice("GUID_SysKeyboard")

DIDevice.SetCommonDataFormat DIFORMAT_KEYBOARD

J'ai créer un .exe et c'est la meme erreur.

C'est dommage j'aimerais bien pouvoir essayer ce jeu qui a l'air si passionnant !!!
cs_lard Messages postés 79 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 26 janvier 2009
3 avril 2006 à 23:55
Pour les copies d'écran, il me semble que tu peux faire simplement en appuyant en même temps sur les touches ALT et IMPR ECRAN pendant l'éxécution de ton jeu. L'image est alors stoquée dans le presse-papier. Tu sors ensuite de ton jeu, tu lances simplement le programme PAINT, tu sélectionnes la commande Edition et tu fais un Coller et ta copie d'écran apparait alors... tu n'as plus qu'à la sauver en JPG pour la diffuser sur VBFrance.

A plus...

LARD
patrick532 Messages postés 40 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 20 avril 2009
3 avril 2006 à 23:17
j'ai trouvé pourquoi ça plantait chez moi : il faut installer la police "kristen itc" qui correspond au fichier "itckrist.ttf".
tout le monde ne l'a pas sur son PC ! attention aux polices que tu utilise, essaye de prendre des "génériques" ! (voir Timothée pour son problème de police "impact"). ou alors fournis tes polices dans ton zip.
allez bon jeu à tous, et que la programmation soit votre force :-)

A+
MPP
Zzbehappy Messages postés 24 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 avril 2007
3 avril 2006 à 20:55
Salut

Il est sympa ton jeu, mais il a buggé lorsque j'ai pressé la touche échape pour sortir du jeu.
patrick532 Messages postés 40 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 20 avril 2009
3 avril 2006 à 20:37
salut,

bien écris et sympa, mais j'ai un plantage au bout d'un certain temps ! je n'arrive pas à savoir pourquoi.
j'ai réussi à faire une capture d'écran, comment je te la fais parvenir ?
bonne continuation et bon courage car tu a du y passer pas mal d'heures déjà !
A+
MPP
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
3 avril 2006 à 00:27
ben franchement je me deamne pourquoi y'en a qui "casse" comme ca alors que en fait c'est plutot courageux de poster une source sur directx sachant que c'est vraiment pas simple a utiliser et a coder !
de plus on peut etre un bon codeur mais un graphiste pitoyable (c'est mon cas). donc syntaxiquement je mets:
dim Note as Integer
Note = 9
Console.WriteLine(Note)
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
2 avril 2006 à 16:43
haaaa merci beaucoup ca fait plaisir de voir des gens qui mettent pas 3/10 sans avoir rien vu !

effectivement, je suis nul en dessin mais je vais regarder ta source pour améliorer mon jeu.
encore merci
cs_lard Messages postés 79 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 26 janvier 2009
2 avril 2006 à 15:59
Bonjour,
Moi, je suis emballé par le concept du jeu? mais ce qu'il manque, à mon avis, ce sont des graphismes un peu plus élaborés, par exemple une image pour le fond représentant une planète perdue dans un espace inconnu, des vaisseaux ayant une plus belle allure, des explosions pour visualiser les coups portés aux ennemis et ton programme pourrait bien devenir un des hits des jeux en VB sur VBFRANCE !
BRAVO en tous cas ! et je t?encourage à réaliser la suite?
9/10

P.S : j'ai fait un petit prog en VB où j'utilise des sprites pour réaliser des explosions, si ça peut te rendre service?(http://www.vbfrance.com/code.aspx?ID=23774)

A plus...
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
2 avril 2006 à 10:04
timothée : tu ne devais pas avoir la police en question chez toi
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
2 avril 2006 à 10:04
effectivement extremduke.
c'est parce que j'ai changé plusieurs fois les dimensions de l'écran en oubliant de changer la limite de portée des balles.
c'est dans movebullets, je pense : au lieu de 700 tu mets 720.
Ca n'empeche toutefois pas le déroulement du jeu
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
1 avril 2006 à 20:14
Pourtant pour ma part, lorsque mon sprite est collé à la bordure du bas, je passe au travers les tirs...
cs_Timothée Messages postés 9 Date d'inscription lundi 27 août 2001 Statut Membre Dernière intervention 7 avril 2006
1 avril 2006 à 19:33
j'ai enlevé la ligne et maintenant ca marche. pardon pour le dérangement et merci pour le code. :)
cs_Timothée Messages postés 9 Date d'inscription lundi 27 août 2001 Statut Membre Dernière intervention 7 avril 2006
1 avril 2006 à 19:29
Private Sub ChargeLevel(lev As Integer)

mechnb = 0
nobalnb = 0
leurbalnb = 0
FontBold = False
FontName = "impact" // <---- c'est ici que ca plante
FontSize = 18
Backbuffer.SetFont Font
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
1 avril 2006 à 16:43
eh ho !
ca marche nickel chez moi et les collisions pareil.

c'est à quelle ligne que ca plante timothée ? j'ai xp aussi.

j'ai passé un temps fou à faire les dessins, les niveaux, à prendre de bons sons, ...

Le code est fait proprement pour que des débutants puissent s'y retrouver, ...

soyez sympa quoi
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
1 avril 2006 à 15:02
les collisions ne sont pas prisent en compte quand le "vaisseau" est en bas de l'écran.

"Un super jeu en DirectX" => c'est un petit peu abusé non ?
cs_Timothée Messages postés 9 Date d'inscription lundi 27 août 2001 Statut Membre Dernière intervention 7 avril 2006
1 avril 2006 à 14:42
ca met en plein ecran puis ca me fait runtime error 380. erreur d'execution valeur de propriété incorrecte.
je clique sur debug, ca plante vb. si j'execute le fichier exe, meme chose. ??
pour info jai win xp.
Rejoignez-nous