AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 CBNA Smartlight avec Game Maker Studio

Aller en bas 
+2
Qual
Evilshroom
6 participants
AuteurMessage
Evilshroom
Très bonne participation
Evilshroom


Messages : 121
Localisation : ....
Projet Actuel : ????????

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 5:20

Bonjour, j'ai essayé de convertir le moteur de Bast dans Game Maker Studio. Mais le petit probleme c'est que les fonctions obsolètes dans GMS le rendent imcompatible avec GMS, et sa me gonfle, car je n'arrive pas a trouver quel est l'équivalent de la fonction «if variable_global_exist» dans GMS...

Merci de me dire si vous avez une solution ;fleche_d

Voici un des scripts du moteur de Bast

Code:
///// Initialise le système /////

var i;

if !variable_global_exists("sl_viewid")            global.sl_viewid      = view_current; // Index de la view dans laquelle afficher les effets
if !variable_local_exists("sl_tod_active")        sl_tod_active        = true;        // Active/désactive la gestion des éclairages et ombres par le système de cycle jour/nuit
if !variable_local_exists("sl_timespeed")          sl_timespeed          = 0;            // Vitesse d'avancement de l'heure
if !variable_local_exists("sl_buffer_texturesize") sl_buffer_texturesize = 1;            // Facteur de taille du buffer (entre 0 et 1)
if !variable_local_exists("sl_maxexposure")        sl_maxexposure        = 0.5;          // Facteur maximal de saturation des lumières

if !variable_local_exists("sl_ambient_color") sl_ambient_color = make_color_rgb(sl_tod[sl_tod_index,1],sl_tod[sl_tod_index,2],sl_tod[sl_tod_index,3]); // Couleur de la lumière ambiante
if !variable_global_exists("sl_ambient_light") global.sl_ambient_light = sl_tod[sl_tod_index,4]; // Puissance de la lumière ambiante
if !variable_global_exists("sl_lightlist") global.sl_lightlist[0] = -1; // Liste les objets light
global.sl_castlist[0,0]      = -1; // Liste les valeurs des draw effectués avec SL_cast_sprite
global.sl_castlist_index      = 0;  // Gestion de la liste sl_castlist
global.sl_texlist_light[0,0]  = -1; // Liste les valeurs des draw effectués avec SL_draw_sprite_light
global.sl_texlist_light_index = 0;  // Gestion de la liste sl_texlist_light
global.sl_texlist_shad[0,0]  = -1; // Liste les valeurs des draw éffectués avec SL_draw_sprite_shadow
global.sl_texlist_shad_index  = 0;  // Gestion de la liste sl_texlist_shad

// Variables relatives à la synchronisation affichage/buffer
if !variable_local_exists("sl_buffer_sync") sl_buffer_sync = true;
if sl_buffer_sync
{if !variable_local_exists("sl_buffer_xmargin") { if view_hspeed[global.sl_viewid]>=0 sl_buffer_xmargin=view_hspeed[global.sl_viewid]+5 else sl_buffer_xmargin=10 }; // Marges du buffer
 if !variable_local_exists("sl_buffer_ymargin") { if view_vspeed[global.sl_viewid]>=0 sl_buffer_ymargin=view_vspeed[global.sl_viewid]+5 else sl_buffer_ymargin=10 }};
else { sl_buffer_xmargin=0 sl_buffer_ymargin=0 };
sl_view_xprevious = view_xview[global.sl_viewid]; // Coordonnées de la view au step précédent
sl_view_yprevious = view_yview[global.sl_viewid];
sl_view_xspeed    = 0; // Vitesse de déplacement de la view
sl_view_yspeed    = 0;

// Layers
if !variable_local_exists("sl_layers_count") sl_layers_count = 0; // Nombre de layers
for (i=0; i<=sl_layers_count; i+=1) sl_layers_surface[i] = surface_create((view_wview[global.sl_viewid]+sl_buffer_xmargin*2)*sl_buffer_texturesize,(view_hview[global.sl_viewid]+sl_buffer_ymargin*2)*sl_buffer_texturesize);

// Variables relatives aux ombres solaires
if !variable_local_exists("sl_sunshadows_active") sl_sunshadows_active = false; // Détermine si le rendu des ombres solaires doit être effectué ou non
else
{
    if !variable_local_exists("sl_sunshadows_texturesize") sl_sunshadows_texturesize  = 0.6;  // Facteur de taille des ombres solaires (entre 0 et 1)
    if !variable_local_exists("sl_sunshadows_quality")    sl_sunshadows_quality      = 0.4;  // Facteur déterminant le nombre de samples composant les ombres solaires (entre 0 et 1)
    if !variable_local_exists("sl_sunshadows_alpha")      sl_sunshadows_alpha        = 0.8;  // Facteur de transparence des ombres solaires (entre 0 et 1)
    if !variable_local_exists("sl_sunshadows_alphalimit")  sl_sunshadows_alphalimit  = 0.6;  // Taux de luminosité ambiante minimum pour lequel les ombres solaires sont visibles
    if !variable_local_exists("sl_sunshadows_margin")      sl_sunshadows_margin      = 150;  // Dimension de la marge des ombres solaires, en pixels
    if !variable_local_exists("sl_sunshadows_refresh")    sl_sunshadows_refresh      = true; // Détermine si les ombres solaires sont rafraîchies ou non
    if !variable_local_exists("sl_sunshadows_refreshrate") sl_sunshadows_refreshrate  = 0;    // Fréquence de rafraîchissement des ombres solaires, en steps (<=0 pour un rafraîchissement continu)
    if !variable_local_exists("sl_sunshadows_list")        sl_sunshadows_list[0,1]    = -1;  // Liste les objets projetant une ombre solaire
    if !variable_local_exists("sl_sunshadows_texlist")    sl_sunshadows_texlist[0,1] = -1;  // Liste les objets projetant une ombre solaire avec une texture
    if !variable_local_exists("sl_sunshadows_layerscale") for (i=0; i<=sl_layers_count; i+=1) sl_sunshadows_layerscale[i] = (i+1)*(1/(sl_layers_count+1)); // Facteurs d'étirement des ombres solaires pour les différents layers
    sl_sunshadows_refreshcounter = sl_sunshadows_refreshrate; // Gestion de la fréquence de rafraîchissement des ombres solaires
    sl_sunshadows_light = 1; // Gestion de la luminosité des ombres solaires

    // Surfaces composant les ombres solaires
    sl_sunshadows_margin = max(sl_sunshadows_margin,sl_buffer_xmargin,sl_buffer_ymargin);
   
    sl_sunshadows_surface1[0] = surface_create((view_wview[global.sl_viewid]+sl_sunshadows_margin*2)*sl_sunshadows_texturesize,(view_hview[global.sl_viewid]+sl_sunshadows_margin*2)*sl_sunshadows_texturesize);
    sl_sunshadows_surface1[1] = surface_create((view_wview[global.sl_viewid]+sl_sunshadows_margin*2)*sl_sunshadows_texturesize,(view_hview[global.sl_viewid]+sl_sunshadows_margin*2)*sl_sunshadows_texturesize);
    sl_sunshadows_surface2    = surface_create((view_wview[global.sl_viewid]+sl_buffer_xmargin*2)*sl_buffer_texturesize,(view_hview[global.sl_viewid]+sl_buffer_ymargin*2)*sl_buffer_texturesize);
}

// Variables relatives aux ombres ambiantes
if !variable_local_exists("sl_ambientshadows_active") sl_ambientshadows_active = false; // Détermine si le rendu des ombres ambiantes doit être effectué ou non
else
{
    if !variable_local_exists("sl_ambientshadows_alpha")    sl_ambientshadows_alpha    = 1;    // Facteur de transparence des ombres ambiantes (entre 0 et 1)
    if !variable_local_exists("sl_ambientshadows_mapscale") sl_ambientshadows_mapscale  = 0.5;  // Facteur de taille des ambient maps
    if !variable_local_exists("sl_ambientshadows_map")      sl_ambientshadows_map[0]    = -1;  // Liste des ambient maps
    if !variable_local_exists("sl_ambientshadows_list")    sl_ambientshadows_list[0,1] = -1;  // Liste des objets projetant une ombre ambiante
    if !variable_local_exists("sl_ambientshadows_lock")    sl_ambientshadows_lock      = true; // Empêche l'affichage des ambient-maps avant que celles-ci soient calculées
    sl_ambientshadows_surface = surface_create((view_wview[global.sl_viewid]+sl_buffer_xmargin*2)*sl_buffer_texturesize,(view_hview[global.sl_viewid]+sl_buffer_ymargin*2)*sl_buffer_texturesize); // Surface composant les ombres ambiantes
}

// Liste des objets composant les masks des layers
if !variable_local_exists("sl_global_list") sl_global_list[0,1] = -1;

// Surfaces composant le buffer
sl_buffer_surface1 = surface_create((view_wview[global.sl_viewid]+sl_buffer_xmargin*2)*sl_buffer_texturesize,(view_hview[global.sl_viewid]+sl_buffer_ymargin*2)*sl_buffer_texturesize);
sl_buffer_surface2 = surface_create((view_wview[global.sl_viewid]+sl_buffer_xmargin*2)*sl_buffer_texturesize,(view_hview[global.sl_viewid]+sl_buffer_ymargin*2)*sl_buffer_texturesize);
Revenir en haut Aller en bas
Qual
Utilisateur confirmé: Rang ****
Qual


Messages : 1450
Projet Actuel : Tower Defence

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 9:37

Bah au pire tu t'en fou de tester si la variable existe. Suffit de leurs foutre une valeur par défaut au chargement de la room.

_________________
CBNA Smartlight avec Game Maker Studio Icone_114
Revenir en haut Aller en bas
http://www.brainwizz.fr
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 9:43

Sinon tu peux toujours essayer ca :
if (variable!=null)
{
//elle existe
}
En principe ca marche dans tous les langages mais j'ai jamais essayé avec GM.
Et sinon, oui tu l'initialise au début.
Revenir en haut Aller en bas
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é
||--------

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 15:08

en C, on initialise avec ce genre de truc :

Citation :
static int variable=0;

if (variable==0)
{
//blabla
variable=1;
}
la variable en static bloque la valeur 0

donc dans GM, il faut le mettre dans un create, sa reviendra au meme
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Evilshroom
Très bonne participation
Evilshroom


Messages : 121
Localisation : ....
Projet Actuel : ????????

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 22:37

Code:
Sinon tu peux toujours essayer ca :
if (variable!=null)
{
//elle existe
}
En principe ca marche dans tous les langages mais j'ai jamais essayé avec GM.
Et sinon, oui tu l'initialise au début.

Terrence, je suis en train d'essayer ta méthode.

Dans le fond, tu remplace variable! par la variable et entre les accolades tu mets la variable déclarée? C'est ca?

ex:
Code:
if (global.sl_viewid=null) { global.sl_viewid = view_current};                          // Index de la view dans laquelle afficher les effets


et quand il y a la variable «for», sa me fait peur... Comment je fais pour l'insérer dans ton code?

Code:
// Layers
if !variable_local_exists("sl_layers_count") sl_layers_count = 0; // Nombre de layers
for (i=0; i<=sl_layers_count; i+=1) sl_layers_surface[i] = surface_create((view_wview[global.sl_viewid]+sl_buffer_xmargin*2)*sl_buffer_texturesize,(view_hview[global.sl_viewid]+sl_buffer_ymargin*2)*sl_buffer_texturesize);
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 22:52

Ben tu remplace :
if !variable_local_exists("sl_layers_count") sl_layers_count = 0; // Nombre de layers
par ma méthode ; ensuite la boucle for ne change pas puisque la variable est initialisée.
Revenir en haut Aller en bas
Evilshroom
Très bonne participation
Evilshroom


Messages : 121
Localisation : ....
Projet Actuel : ????????

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 23:09

merci beaucoup, jva essayer tout ca et je ten reparle! super

Au fait, je dois-tu mettre des guillemets "" autour des variables?

Code:
if ("global.sl_viewid"=null) { "global.sl_viewid" = view_current}; 


Dernière édition par Evilshroom le Mer 2 Jan 2013 - 23:22, édité 1 fois
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyMer 2 Jan 2013 - 23:43

Dans cet exemple non, avec la fonction de gm oui.

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Evilshroom
Très bonne participation
Evilshroom


Messages : 121
Localisation : ....
Projet Actuel : ????????

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyJeu 3 Jan 2013 - 0:23

La fonction? quel fonction?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyJeu 3 Jan 2013 - 9:18

Dans la fonction variable_local_exist oui mais sinon faut jamais en mettre.
Revenir en haut Aller en bas
Evilshroom
Très bonne participation
Evilshroom


Messages : 121
Localisation : ....
Projet Actuel : ????????

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyVen 4 Jan 2013 - 0:52

Salut,

Merci pour ton aide, j'ai vérifié et c'est ça qu'il faut!

Mais j'ai pas tout à fait réussi, car je ne sais pas comment mêler les arrays et ton bout de code!


Code:

___________________________________________
FATAL ERROR in
action number 1
of Create Event
for object obj_light:

############################################################################################
VMError!! Occurred - Push :: Execution Error - Variable Get -6.null(100003, 0)
 at gml_Script_SL_light_cast_obj (line 3) - if (sl_light_shadowlist=null)    { sl_light_shadowlist[0,0] = -1};
############################################################################################
Self Variables :
sl_light_power(100097) = 1
sl_light_color(100098) = 16777215
sl_light_active(100072) = 1
sl_light_xscale(100074) = 2
sl_light_yscale(100076) = 2
sl_light_refresh(100078) = 1
sl_light_castshadow(100081) = 1
sl_light_shadowlist(100086) = -1
sl_light_shadowsharpness(100087) = 0.200000
sl_light_shadowlength(100090) = 4
sl_light_shadowfactor(100091) = 1.040000
sl_light_ambientpower(100092) = 0
sl_light_angle(100093) = 0
sl_light_texture(100094) = 44
sl_light_refreshrate(100095) = 0
stack frame is
gml_Script_SL_light_cast_obj (line 0)
called from - gml_Object_obj_light_Create_0 (line 20) - }

Dans le fichier de documentation du moteur, ya une description:

Citation :

sl_light_shadowlist[x]
Liste des id d'objets pour lesquels la lumière doit projeter une ombre. Son utilisation se fait de manière automatisée avec la fonction SL_light_addshadow(obj_id).



Désolé si je demande beaucoup d'aide, je maîtrise pas encore Game Maker Studio à 100% et je t'en remercie!
Revenir en haut Aller en bas
Bast
Administrateur
Bast


Messages : 20021
Localisation : Alsace

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyVen 4 Jan 2013 - 2:18

Evilshroom a écrit:
Dans le fichier de documentation du moteur, ya une description:

Citation :
sl_light_shadowlist[x]
Liste des id d'objets pour lesquels la lumière doit projeter une ombre. Son utilisation se fait de manière automatisée avec la fonction SL_light_addshadow(obj_id).
La fonction citée dans cette partie de la doc est obsolète (SL_light_addshadow), c'est une erreur de ma part. L'actuelle est SL_light_cast_obj(obj,mask).

_________________
CBNA Smartlight avec Game Maker Studio Sigico10
Revenir en haut Aller en bas
http://www.lecbna.org/
Evilshroom
Très bonne participation
Evilshroom


Messages : 121
Localisation : ....
Projet Actuel : ????????

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyVen 4 Jan 2013 - 5:23

Salut, Bast

Content que tu sois là! En tous cas, félicitations pour ton moteur! happy1

T'as tu déja essayé d'adapter Smartlight sur GMS? Ou sais-tu si quelqu'un a déja réussi?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyVen 4 Jan 2013 - 9:18

Oui, je crois qu'il y a un truc du style dans le topic de smartlight (dans la rubrique game maker), mais je sais pas s'il est complètement terminé.
Revenir en haut Aller en bas
Bast
Administrateur
Bast


Messages : 20021
Localisation : Alsace

CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio EmptyVen 4 Jan 2013 - 14:33

Il semblait que grugin avait réussi à le porter sous GMS (voir ici), mais je n'ai pas eu de nouvelles depuis. Quant à moi, je n'ai pas GMS et il est peu probable que je l'achète maintenant ou plus tard, donc mon support de SmartLight se limite à GM7 et GM8.

_________________
CBNA Smartlight avec Game Maker Studio Sigico10
Revenir en haut Aller en bas
http://www.lecbna.org/
Contenu sponsorisé





CBNA Smartlight avec Game Maker Studio Empty
MessageSujet: Re: CBNA Smartlight avec Game Maker Studio   CBNA Smartlight avec Game Maker Studio Empty

Revenir en haut Aller en bas
 
CBNA Smartlight avec Game Maker Studio
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» probleme avec game maker studio et avec CBNA Bump 2
» Online/network avec game maker studio
» Game Maker Studio
» Game Maker Studio 2
» game maker studio ne marche pas ?

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: