Salut tout le monde,
Je viens vous présenter la première BETA d´un petit shoot´em up que je suis en train de développer en Java.
Voila ce qui est géré pour le moment :
-déplacement du joueur
-déplacement des ennemis
-tirer
-détruire un ennemis + explosion
-recréer un ennemis quand un autre est détruit ou quitte l´écran
-défilement d´un fond
-comptage des points (^^)
Si vous avez le runtime Java (1.5(=5.0) minimum ->
http://www.java.com/fr/ ) vous pouvez télécharger ce ficher :
http://www.gemine.net/shootemup002.jar
Si il ne se lance pas en doublic-cliquant dessus, forcé le à s´ouvrir avec le logiciel Java Runtime. Au pire : java -jar cheminverslarchive/shootemup002.jar
Je ne l´ai pas testé sous windows mais normalement ça devrait aller.
Si votre ordinateur est moins pourris que le mien (ce qui est fort probable), les vaisseaux risquent d´aller un peu vite. En tout cas merci de me dire si il y a le moindre problème.
J´ai trouvé les ressources graphiques sur
http://www.rpg-maker.fr/index.php?page=sprites&type=scbroodwar , donc si un graphiste est interessé pour participer à ce petit projet : c´est un plaisir.
Bon maintenant ce qui pourrait se faire :
- Destruction si collision avec un ennemis
- Ennemis qui foncent sur le joueur
- rochers indestructibles (ou difficilement destructibles)
- Armes différentes
- Mini-scénario
- Plusieurs niveaux avec des ambiances graphiques différents (au dessus d´une ville, dans l´espace, sous-terrain,...)
- Boss à la fin fin des niveaux
Voila merci d´avoir lu (enfin j´espère ^^).
Ca rend bien pour un début
Par contre pour ce qui est de la vitesse celle des vaisseaux ennemis est apparemment dépendante du framerate tandis la position du vaisseau qu´on dirige est directement liée à la position de la souris, ce qui fait que sur mon ordi sûrement encore plus pourri que le tien (500Mhz 256Mo) les ennemis sont super lents tandis que le joueur est super rapide, en face ils se font massacrer grave ![]()
Bravo, c´est du bon boulot ![]()
Je suis dans le meme cas que _Xaar, les ennemis sont tres lents, et le joueur est tres rapide, ce qui fait que c´est amplement trop facile pour le joueur.
Bonne continuation ![]()
les graphismes sont sympa (j´adore quand les enemies explosent on dirait qu´il saignent )
sinon pour mon cas les vaisseaux sont lent mais il ne sont pas trop lent .
bonne continuation , j´ai hate de voir la suite.
Merci pour les commentaires,
Xaar et ElHuron > En effet la vitesse des vaisseaux dépend du framerate, leur position est recalculée à chaque image. Mais je ne vois pas comment faire autrement ? De plus je vois mal accélérer la vitesse des ennemis parceque sur le MacBook Pro de mon père ça va déja pas mal vite (mais ça tourne nickel par contre
).
adn59 > C´est vrai que ça donne pas mal, mais comme je l´ai dit ce ne sont que des ressources du net, je préfererais que le jeu ait sa propre identité graphique...
J´ai plusieurs methodes a te proposer.
1. prendre une plus petite taille pour ta fenetre.
2. Faire un compteur de FPS, tu te fait un calcul pour gerer la vitesse des vaisseaux adverses selon le FPS.
(Ils auraient une plus grande vitesse a faible FPS)
La premiere methode est la plus simple, mais elle penalise les plus grosses machines.
Je te conseille donc la deuxieme methode.
Faut aussi que tu fasses une limite de FPS, si ce n´est pas deja fait.
C´est vraiment pas mal ![]()
pour la question de la gestion du FPS tu peux te coder une class Timer (si elle n´existe pas deja)
l´idée c´est: si tu veux du 50 fps
donc 50 cycles en 1 seconde
tu balances ton Timer, à t0 => nb de boucle = 0 et temps actuel = TIMESTAMP
a chaque tour de boucle nb de boucle ++ jusque 50
a la fin des 50 boucles tu recuperes un TIMESTAMP
tu fais la difference si ca fait 1 seconde ou + c´est bien sinon tu fais une boucle dans le vent et tu recupere un nouveau TIMESTAMP tu refais la soustraction et tu vois ce que ca donne ![]()
Ok merci tous les trois ça m´aide tout ça. Je vais voir ce que je peu faire avec un timer puis je vous tiens au courant ![]()
pitite piste de recherche faite à la va vite:
merci notepade++ lol:
public interface Timer{
/*
* Deux facon de voir la chose:
*La premiere consiste a creer un Thread qui commence dès le lancement du programme et qui se termine a la fin
*Sont objectif et de retourner a tout moment via un pipe le temps ecoulé depuis le lancement du programme
*
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/CoursJavaThread.html
*/
public char[] GetTicks(); //pour le type de retou
r pas le choix avec la methode read de PipeWriter
// apres va savoir si les pipes en java sont comp
atible windows :| ca je ne sais pas du tout c´est à tester.
/*
*int read(char[] cbuf, int off, int len)
*Reads up to len characters of data from this piped stream into an array of characters.
*/
}
// deuxieme facon:
public Date getTempsInit();// renvoie T0
public Date getTempsActuel();//renvoir Tn
public int getNbBoucles();
public void traitement(); // traitement increment
e le nb de boucles a chaque tour et le remet à 0 quand il arrive a 50 ![]()
public boolean isEcoule(double seconde); //renvoi
e false si le tmps ecoulé est inferieur a seconde
//utilité:
if(!t.isEcoule(1)){
sleep(...);
}
Merci pour tes renseignements j´y ai déja un peu cogité maintenant et j´ai fais quelques essais, mais j´aurais une autre question à te poser à toi (car je sais que tu as déja fait quelques jeux en Java) et à ceux qui pourraient m´aider :
J´ai vraiment des problèmes de performances avec ce shoot´em up comme avec la majorité des jeux java que je développe. Je suis quasi sûr que ça ne vient pas (exclusivement) du langage mais probablement de ma méthode de programmation car il existe des jeux java bien plus complexes et qui tournent bien mieux!
Je charge simplement mes sprites en tant que BufferedImage je les affiche dans des composants swing avec drawImage(...). Tu procede de la même façon? Direct après ce post je fonce voir un petit peu de plus près lwjgl, j´espère pouvoir y gagner en expérience.
Merci d´avance à ceux qui pourront m´éclairer...
Oui je procede de la meme manière! mais si tu veux un peu voir beaucoups d´optimisation je te conseil d´aller voir ton GarbageCollector
http://gfx.developpez.com/tutoriel/java/gc/
comme dit dans ce tuto
tu peux optimiser la memoire en evitant les utilisations abusives du GC.
Pour ma part je n´ai jamais eu à faire à ce truc là
mais mes profs en ont parlé a plusieurs reprises.
et pour information je suis beaucoups plus nul que toi en java ![]()
rappel toi quand je suis venu te voir pour te demander comment on pouvait creer des packages ![]()
ok merci pour l´info je vais voir ça
.
rappel toi quand je suis venu te voir pour te demander comment on pouvait creer des packages
![]()
Et j´ai réussis te répondre? Si oui c´était pas moi
. Enfin je vois en gros comment m´en sortir mais de là à l´expliquer, ça devait pas être fort clair :D
si j´ai compris t´inquiete po ![]()
Niveau etudes t´en es où actuellemet?
Ben niveau étude je suis pas bien loin je suis toujours en secondaire. Enfin je suis Belge vous appellez peut être pas ça de la même façon.
En gros l´année prochaine je rentre à l´unif. Et je suis en générale donc j´ai pas d´option informatique ou quoi j´ai juste des maths, des maths et aussi des maths pour me préparer l´examen d´entrée d´ingénieur
.
Et toi tu en es où?
Moi je suis en deuxieme année de DUT informatique ca correspond à (60 credit si tu veux une idée du truc par rapport aux normes europeenes)
C´est une formation plutot pratique en informatique qui peut donner suite à des pousuites d´etudes ou une insertion direct en entreprise
Bon je vais donner quelques nouvelles sur ce qui est fait quand même
:
-Editeur de trajectoire pour vaisseaux (simplement via la souris)
-Les méchants ennemis sont encore plus méchants : ils tirent, mais bon je ne me suis pas encore penché sur la collision ennemis et tirs avec le joueur donc finalement ils sont pas bien dangereux ces ennemis
.
-Le fond défile
-Le vaisseau se déplacement de haut en bas en plus de gauche à droite
Mais le plus important c´est que j´ai été sur des forums spécialisés Java et on m´a quelques peu tuyauté et donc j´utilise maintenant une accélération matérielle pour l´affichage : j´ai un gain de performances assez impressionnant...
J´espère pouvoir sortir une petite démo/maquette d´ici pas trop longtemps pour voir si un graphiste n´est pas interessé.
Voila à bientot ![]()
Sympa, en effet. Bon forcément, on s´éclate pas longtemps, mais c´est sympa ^ ![]()
Contine a donner des nouvelles, qu´on puisse suivre le developpement du jeu (ça donne toujours un ordre d´idée pour nos projets perso ^^)
HS: Quintoff, j´avais posté un sujet sur le Jeu Video Libre. fil_razorbak m´a redirigé vers toi en me parlant de devamateur.be, j´ai un projet du meme genre, si on pouvait en discuter ^^ . FIN HS ![]()
On peut en parler par mail si tu veux (msn je n´aime pas trop), ou par une autre façon si tu vois. Je veux bien t´aider par rapport aux 2 ou 3 petites choses que j´ai appris dans cette expérience mais je ne suis malgré tout pas une référence...
quintoff -=AT=- gemine -=DOT=- net