AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Timeline ennemis pour un Shmup

Aller en bas 
+2
Térence
Kabcorp
6 participants
AuteurMessage
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Timeline ennemis pour un Shmup Empty
MessageSujet: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 12:33

Hello!

Je fait un remake au pixel-près du jeu Strike Gunner S.T.G sur GM et la partie sur laquelle je bloque c'est générer les ennemis via une timeline manuelle (switch)

Un petit exemple:
Code:
global.Time+=1

switch (global.Time){
   case 500: make_enemy(pth_03,0,o_enemy01) break
   case 525: make_enemy(pth_03,0,o_enemy01) break
   case 550: make_enemy(pth_03,0,o_enemy01) break
   case 575: make_enemy(pth_03,0,o_enemy01) break
   case 600: make_enemy(pth_03,0,o_enemy01) break
}

Le problème c'est que j'ai 2100 ennemis a générer...

J'aurais aimer savoir si c'était possible de rajouter des "cases" via une fonction du type:

Code:
make_enemy(CASE, path,.......)

Ce qui me permettrait de pouvoir faire des séries d'ennemis en une ligne en me faisant un scipt du style:

Code:
//Call: make_enemy(time, repeat, path, enemy)
for(i=0;i<argument1;i+=1)
{
   AddCase(argument0+(i*30))
}

J'espère avoir été clair =) Merci d'avance!

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 12:53

Euh attends, t'as vraiment plus de 2000 ennemis ?  gha 
Tu peux laisser tomber tout de suite à mon avis, même 2000 objets statiques ca doit pas tourner à mon avis alors là...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
Asu


Messages : 895

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 12:57

Térence68 a écrit:
Euh attends, t'as vraiment plus de 2000 ennemis ?  gha 
Tu peux laisser tomber tout de suite à mon avis, même 2000 objets statiques ca doit pas tourner à mon avis alors là...
Oui mais entre temps ils seront sûrement tués.

Il faut essayer de trafiquer des string qui contient tes lignes de code, et d'utiliser execute_string. Par contre execute_string c'est lent...

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
red-error


Messages : 1015
Projet Actuel : Timeline ennemis pour un Shmup Bas-machoire2000

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 13:04

Tu peux utiliser la magie des modulo sinon :p

if(global.Time % 25 == 0)
{
Blablabla
}


Te créera une ennemi tous les 25 steps.
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 13:19

2100 ennemies d'un coup? =P non. en 10 niveaux =)

execute_string? pourquoi pas mais cela ne serait t'il pas tres lent (4 a 5 fois par seconde) ?

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 13:25

Ok, autant pour moi, j'avais pas fait gaffe au titre du topic.
Par contre j'ai pas compris ce que t'entendais par "cases" ? Si tu veux créer des ennemis par vague, ouais le modulo marche impec', je vois pas ce que tu peux faire avec des execute_string.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 13:34

Oui creer des vagues (mais pas que) =)

j'aimerais en gros pouvoir ajouter des SwitchCases avec une valeur définie genre AddCase(moment)

switch(bakabak)
{
case quetuviend'ajouter break
}

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 14:33

Ouais bah dans ce cas là faut effectivement un execute_string mais c'est vraiment à ***** comme méthode.
Utilise tout simplement un modulo, comme le disait red-error, pour ton exemple ca donne ca :
global.Time+=1;
if(global.Time%25==0){
make_enemy(pth_03,0,o_enemy01);
}

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 14:53

Interessant mais ca me fairait toujours 2100 lignes a ecrire =)

J'aimerais fair ca:

case 100: action +ajouter action a 150 +ajouter action a 200 +ajouter action a 250 break etc (pour les series d'ennemis)

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 14:56

Nan, la tous les 25 steps il te crée ton ennemi.
Le modulo (%) te retourne le reste d'une division euclidienne (entière), exemple : 6%4=2.
Donc la il te créera un ennemi quand global.Time vaudra 0,25,50,75,100,etc...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 15:06

case 100+ tout les 25 steps a partir de 100?

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 15:52

nan, en clair, a chaque fois que global.Time sera un multiple de 25 (0, 25, 50, 75, etc...) un monstre sera créé
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
red-error
Utilisateur confirmé: Rang ****
red-error


Messages : 1015
Projet Actuel : Timeline ennemis pour un Shmup Bas-machoire2000

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 15:56

Code:
if(step>=100 and step<1100 and step%25==0) //pour tous les multiples de 25 plus grand que 100 et plus petit que 1100
{
créer un ennemi (les 400 premières vagues)
}
else if(step>1100 and step%25==0)  // pour tous les multiples de 25 plus grand que 1100
{
créer un ennemi (les vagues d'après)
}

step+=1


Y'a aussi des astuces comme mettre tes objets dans une liste
liste=[objet0,objet1,objet3]
puis les parcourir en faisant liste[step div 1000 %3] (div est la division entière)
Ce qui changera d'ennemi tous les 1000 steps en bouclant sur les 3 différents objets
http://en.wikipedia.org/wiki/Modulo_operation

Ou encore un truc simple comme utiliser une variable d'état supplémentaire, par exemple act = 0 au départ
Code:
if(act==0)
{
    if(step==0)
    {
    initialisation de la vague
    }

    if(step==100)
    {
    act=1
    step=0
    }
}
if(act==1)
{
    if(step==0)
    {
    initialisation de l'acte
    }

    if(step%25==0)
    {
    lancer un ennemi tous les 25 steps
    }

    if(step>=300 and step%50==0)
    {
    lancer un autre ennemi tous les 50 steps 300 steps après le départ
    }

    if(step==1000)
    {
    act=2
    step=0
    }
}

step+=1
Tu peux aussi mettre tes configurations dans des listes, et avoir un bout de code qui lit les configurations unes par unes et les créé, plus compact.
[ ["triangle",ennemis1],["esquadron",ennemis2],["floppée",ennemis0],["formation",ennemis3] ]


EDIT :
Il se peut que Game Maker utilises mod au lieu de %
http://gamemaker.info/en/manual/401_04_expressions
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 16:36

Merci beaucoup! =D J'essaye ça ce soir! bon aprem'

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Asu
Utilisateur confirmé: Rang ****
Asu


Messages : 895

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptyJeu 10 Juil 2014 - 16:43

Oui je confirme, seulement certaines versions de GM:S supportent "%". Toutes les versions de GM supportent "mod".

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup EmptySam 12 Juil 2014 - 1:34

sinon une liste toute bête non ?

Genre :
"Data[index, type/temps]"

Comme ça, ton "add_ennemy(250, ennemis_01, 5);" ajoutera 5 ennemis de type ennemis_01 au temps 250.

Et du coup, ça se fini comme ça :

init_ennemy();
Code:
Data_Nb = 0;
Data[0,0] = 0;

add_ennemy(temps, type, nombre);
Code:
for(i=0; i+=1; i<argument2)
{
    Data[Data_Nb, 0] = argument0;
    Data[Data_Nb, 1] = argument1;
    Data_Nb += 1;
}

pop_ennemy(); (dans le timer, un step, ou que sais-je)
Code:
for(i=0; i<Data_Nb; i+=1)
{
    if(Data[i, 0] == time)
  {
        instance_create(Data[i, 1], x,y);
  }
}


Code non testé.

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Timeline ennemis pour un Shmup U3dfr2Timeline ennemis pour un Shmup Sign l'antique
Bienvenue au 2629eme utilisateur : Mike Jones !
Revenir en haut Aller en bas
http://www.tdms.fr
Contenu sponsorisé





Timeline ennemis pour un Shmup Empty
MessageSujet: Re: Timeline ennemis pour un Shmup   Timeline ennemis pour un Shmup Empty

Revenir en haut Aller en bas
 
Timeline ennemis pour un Shmup
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Shmup 3D Need Lot of help^^'
» Timeline en script
» [Tutorial] : TimeLine et Path
» lancer un timeline en gml [résolu]
» Creer un object dans une timeline

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: