[Projet/Help] Space invader spécial SW Processing.

Space invader spécial SW Processing. [Projet/Help] - Java - Programmation

Marsh Posté le 16-02-2014 à 14:03:42    

Bonjour j'ai un projet à réaliser en fin d’année, et j'ai eu un petit soucis, j'ai été viré du groupe (de peur que je fasse tout à leur place...), donc de un va falloir faire mieux qu’eux de deux, tout seul c'est plus compliqué..
 
Mais bon passons au projet :
 
C'est une sorte de space invader en processing, mais avec pour vaisseau ça :
 
http://rack.0.mshcdn.com/media/Zgk [...] trator.jpg
 
Vous l’aurez reconnu le mythique infiltrator.
 
Le scénario assez simple sur une lune gelée des artefacts siths dont une bibliothèque sith on été découvert, la bibliothèque sith contient la prophétie parlant du retour de l'empereur la vengeance des siths, celle d'Anakin etc...
 
Le chancelier Valorum a autorisé la levée de fond pour financer une expédition archéologique. Tandis que Sidious envoi son apprenti Dark Maull les éliminer pour le laisser aucun survivant puis détruire la bibliothèque.
 
Bon voilà le scénario pas trop compliqué ça va figurer sur la page d'accueille de mon site.
 
Passons au chose sérieuses et aux problèmes que je vais rencontrer.
 
N°1 Bien qu'ayant lu ce merveilleux tuto :
 
http://fr.openclassrooms.com/infor [...] collisions
 
J'ai des doutes sur mes capitée à arriver au bouts de mes ambitions. Je m'explique, en faîte je suis très ambitieux, je compte programmer une jauge de vie partciluière, en bouclier une vie en % qui se recharge lentement, et la coque, une fois les bouclier désactivé c'est la coque qui encaisse, le bouclier se recharge de 5% toute les 5 minutes.
 
Quand le bouclier est actif la hitbox du vaisseau possède une forme éliptique (là j'ai pas très bien compris ce qu'insinuait le tuto.), et sans bouclier la hit box possède une forme trapèzique, là j'ai compris c'est comme les rectangles.
 
Je ne sais pas comment passer de l'un à l'autre, déjà que je ne sais pas programmer une jauge de vie, je pense qu'avec des if colision retire 20% de bouclier, si plus bouclier retire 20% à la coque si coque =0% --> game over.
 
Ensuite les tir, je ne sais pas programmer les tirs. Déjà rien que le faîte de mettre le déclenchement de l'apparition d'un objet avec sa hit box relié à l'appuie de la barre espace me semble abstrait, je compte rajouter des rockettes qui traversent les ennemies et déciment toute la dernière ligne en explosant.
 
Je sais faire bouger le vaisseau avec la sorusi mais avec le clavier ça va être compliqué.
 
J'ai un arrière plan que voici :
 
http://lesdinos.free.fr/format%20galaxie.jpg
 
Mais pas de spriteur pour dessiner les vaisseaux ennemis.
 
Et à part ça c'est bon.
 
Je compte programmer le tout en proccessing pour ceux qui ont oublié...
 
Merci d'avance de votre aide, un pauvre programmeur débutant désespéré.
 
-


Message édité par Bravoten le 16-02-2014 à 14:05:44
Reply

Marsh Posté le 16-02-2014 à 14:03:42   

Reply

Marsh Posté le 17-02-2014 à 11:53:25    

http://fr.wikipedia.org/wiki/Processing
... dommage, j'aurai pu donner des conseils si tu avais fait du pure java.
Si tu es bon en java pourquoi utiliser Processing ?

Reply

Marsh Posté le 17-02-2014 à 18:04:07    

Je ne suis pas à ma première œuvre en processing...
 
Si tu as lu il s'agit de détails techniques.
 
Bon hey bien merci d'avoir essayé même si tu n'a pas les compétences ça fait plaisir...  
 
 
Je préfère processing car c'est direct en boîte, tu as tous les outils pour les aperçus etc...
En faites c'est carrément une question d'aisance et d'habitude.

Reply

Marsh Posté le 17-02-2014 à 19:31:56    

Ok, disons que tu le fais en java.
 
Tu te perds dans les détails. Tu veux faire un space invader, commence par un simple, ensuite tu ajouteras les petits extras comme le bouclier qui protége la coque ou les missiles qui pètent tout.
 
 
En java je fais comme cela, à la louche ... :
- un objet Game avec un attribut integer score et un état (énumération started/bestScore/gameOver)
- un objet Fighter avec un attribut Position, un attribut Shell (+ 1 objet) et un attribut Shield (+1 objet)
- un objet Alien, Avec des attributs type (tu vas avoir plusieurs type d'aliens n'est ce pas) speed, position. Et aussi un état alive/exploding/dead.
- un objet bullet pour les tirs simples (speed, position état : flying/exploding/outOfGame)
- un objet Missile pour les tirs de missile (speed, position état : flying/exploding/outOfGame)
 
Au démarrage du jeu tu affiches un écran 'loading' pendant que tu charges les ressources sons et images.
Quand tout est chargé tu démarres un thread (start)
Dans la méthode run du thread :
a - tu détectes les mouvements souris et utilisation du clavier
b - tu programme un générateur de séquence de jeu qui en fonction des états du jeu, du Shell, du Shield, des Aliens, de l'appui de la touche tir ou missile créée des nouvelles instances de Bullet et Missile. Ah oui, les objets aliens et bullet et missile doivent gérer eux même leur position (programmation objet ...)
c - tu prends en compte les collisions. ca change les valeurs de boucliers et coque, il y a des bullet qui vont passer à exploding, des aliens à exploding et ensuite à dead, tu fais les collisions simples rectangle sur rectangle en première approximation
d - tu programme une fonction d'affichage qui affiche en fonction de l'état de Game, Shield, Shell, Alien(s), Bullet(s) Missile(s) le plateau de jeu ... ou gameOver ... ou Hiscore
e - retour à a
 
Commence par une maquette, passes par un prototype, étends en jeu, ajoutes à la fin les petits extras ..


Message édité par willy le kid le 17-02-2014 à 19:37:21
Reply

Marsh Posté le 25-02-2014 à 08:58:31    

Merci, disons qu'il n'y a pas autant de différences que ça en Java et en processing, on va juste dire que ça va se faire en plusieurs pages, un pour le figther un pour les ennemis etc etc etc.
 
Pour tout ce qui était basique ça m'a été vachement utile. Le temps que je trouve une plage horaire pour programmer et je te rappellerai quand ça risque de se corser un peu.
 
Vais m’atteler d'abord à des hitbox simples à des comportement ennemis basiques, pas de missiles pour le moment. Ensuite je m'attelerai à tout ce qu'il y a de plus compliquer.
 
Je maîtrise de mieux en mieux les hitbox donc je pense que ça devrait aller.

Reply

Marsh Posté le 20-03-2014 à 21:21:54    

Petit up du sujet, je me suis coincé sur un petit détail, avant de m'attaquer, à la mémoire le data (d'ailleurs je en sait pas comment m'y prendre la méthode du run présenté n'est pas adapté...)
 
fin bon, donnez vos conseille je verrais ça après, je disais que j'étais coincé sur un problème simple, j'ai fait mes sprites moi même finalement, mais juste que même si le contour est en transparent, j'aimerai prendre juste l'image, sans cardre ni rien.. Je suis sur photophiltre (oui je sais mais depuis que google a fermé postpic site assez performant et plus simple d'utilisation que flash player...)
Fin bref j'attends votre réponse avec impatience merci d'avance !

Reply

Marsh Posté le 21-03-2014 à 10:38:46    

Si tu veux faire du détourage d'image, régler la transparence, Gimp me semble tout indiqué.
http://www.linux-pas-a-pas.org/ast [...] ourage.php
Ca a l'air compliqué mais ce type de manip est assez simple pour les possibilités de Gimp qui est un 'photoshop GPL'.  
 
La méthode run est utilisé lorsque tu géres le thread d'animation "à la main". Si tu ne veux pas gérer l'animation à la main, tu prends une API dédiée jeu. Exemple Monogame que je teste pour un projet perso.
Monogame propose par défaut des méthodes pour charger les ressources, initialiser les composants, exécuter l'animation ... il n'y a plus de thead


Message édité par willy le kid le 21-03-2014 à 13:01:15
Reply

Marsh Posté le 22-03-2014 à 02:44:22    

Le transparent étant indépendant de la hit box ça marche bon bah j'ai fais avec photophiltre mais ça roule !
 
O.K et merci surtout pour monogame.

Reply

Marsh Posté le 16-04-2014 à 22:12:03    

Enfin le PC à moi tout seul ! Hahaha ça avance vitesse grand V j'ai fait en 2 semaines ce que je faisait en 3 mois !  
 
Presque tout le code est fini manque le bouclier et j'ai pris des lasers mais c'est pas ceux-là que je veux j'ai pas encore fait les missiles mais je ne suis pas sûr des les faire, j'ai Gimp code::blocks (et non pas siguint...)
 
Mais voilà où j'en suis, il me faut éditer le data.. Trouvé de très bon arcticles...
 
http://www.olivierevrard.be/wp-con [...] our_ES.pdf
http://recherche.ign.fr/labos/cogi [...] ndrine.pdf
 
Mais je ne sais toujours pas procéder pour faire mon filtre jeu.gif
Le filtrejeu.tga et le Courriernew.vlw qui constituerons à eux seul tout le data...

Reply

Marsh Posté le 04-05-2014 à 17:02:24    

Bon voilà ça a avancé :
 
J'en suis rendu là :
 
 
[PDF] Mise `a jour dynamique de l'image de référence pour l ... (Il s'agit des sprites...)
On m'a conseillé de put the different types of sprites in one image and
You have to cut out the single sprites from the main image at the beginning of your processing sketch and store them in your arrays and call them accordingly.
Pour la mise à jour dynamique de l'image... Mais je fais ça avec quel outil?
 
Comment? Est-ce vraiment une façon intelligente ou une connerie de standardisme? Je ne veux pas faire ça avec des templates etc...

Reply

Marsh Posté le 04-05-2014 à 17:02:24   

Reply

Marsh Posté le 05-05-2014 à 10:39:39    

J'ai déja vu cela dans des jeux, les images sont concaténés dans une sorte de pellicule de cinéma.
Cela permet de limiter le nombre d'images (une image = un sprite) et le nombre de connexions au chargement ... c'est pas obligatoire.
 
Pour concaténer, un outil évolué, Gimp par exemple ... je pense qu'il y a des outils évolués pour créer les bitmaps de sprites, des outils professionnels certainement, mais je ne les connais pas

Reply

Marsh Posté le 05-05-2014 à 16:13:44    

J'ai déjà gimp, mais après, est-ce vraiment utile pour un space invader? Je vux limitter le nombre d'image par seconde mais suis-je obligé de passer par là?
Juste pour faire rapide...

Reply

Marsh Posté le 05-05-2014 à 17:11:30    

je dirai que si tu restes à 3 images par sprite, pas besoin, ca reste gérable ...

Reply

Marsh Posté le 05-05-2014 à 17:13:04    

J'ai une image par sprite XD

 

Non mais, mon problème c'est de rester à une image par sprites, en faîte je dois éviter qu'il garde en mémoire les positions à chaque seconde, sinon je me retrouve avec 180 sprites au bouts d'une minute de jeu..


Message édité par Bravoten le 05-05-2014 à 17:23:09
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed