AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -50%
-50% sur les sacs à dos pour ordinateur ...
Voir le deal
19.99 €

 

 [tout langage] Conversion GML > fonctions

Aller en bas 
+6
glcraft
onilink_
Oculus
Sekigo Le Magnifique
Vivi
blendman
10 participants
AuteurMessage
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

[tout langage] Conversion GML > fonctions Empty
MessageSujet: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 9:26

salut

Voilà l'idée de ce sujet :
Prendre une/des fonctions GML et les convertir dans un langage, pour pouvoir ensuite les utiliser dans ce langage comme on les utilise dans GM.

exemple d'onilink_

La fonction max() de GM donne en c++ :
Code:

inline double max(double x, double y, double z)
{
if(x>y)
{
 if(x>z) return x;
else return z;
}
if(y>z) return y;
return z;
}
Si j'ai bien compris inline permet d'utiliser une fonction à l'intérieur d'une autre, c'est ça ?


Autre exemple (de jbg77) : place_free(x,y)
code c++ :
Code:

int place_free(int x,int y,int solid_zone_x,int solid_zone_y,int solid_zone_x_2,int solid_zone_y_2 )
    {
      int retourne = 1;
      if (solid_zone_x < x && solid_zone_x_2 > x && solid_zone_y < y && solid_zone_y_2 > y)
          retourne = 0;
      return retourne;
    }

Bien sur, les codes comme ça sont incomplets pour certains, mais on a déjà une idée de la façon d'implémenter la fonction, ce qui peut aider Smile.

Si vous avez d'autres fonctions converties n'hésitez pas Wink.


Revenir en haut Aller en bas
http://blendman.blogspot.com/
Vivi
Utilisateur confirmé: Rang **
Vivi


Messages : 321
Localisation : dans ma chambre
Projet Actuel : ogc²

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 10:52

inline c'est pour que le compilateur remplace directe le code de la fonction partout ou il est appelé, comme ça pas d'appel de fonction et c'est beaucoup plus rapide.
Revenir en haut Aller en bas
http://www.opengamecreator.com
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 11:13

vivicool a écrit:
inline c'est pour que le compilateur remplace directe le code de la fonction partout ou il est appelé, comme ça pas d'appel de fonction et c'est beaucoup plus rapide.
ah ok, c'est un peu l'équivalent d'une macro en purebasic alors Smile.
L'exe est un peu lourd du coup, j'imagine (enfin, pas de beaucoup non plus Smile)
Revenir en haut Aller en bas
http://blendman.blogspot.com/
Sekigo Le Magnifique
Utilisateur confirmé: Rang *****
Sekigo Le Magnifique


Messages : 1720

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 11:20

Ce topic est à la fois une bonne idée et une mauvaise idée.
Elle part d'une bonne intention. Seulement, il est impossible d'avoir une méthode "unique" par langage. Parce qu'il va y avoir autant de méthode de programmer un truc que de programmeur.

Bon, pour les fonctions type min() et max(), ça va, on prend deux valeurs à comparer et on retourne le résultat. Après, c'est de la récursivité pour appliquer ça à un ensemble de valeur.
Mais même là, ça pose problème. Parce que si tu veux comparer deux valeurs entières, ok. Mais imagine que tu souhaites comparer les valeurs entières d'un tableau ? La méthode est la même dans le fond, mais la mise en application sera différente.
En plus, en python, il y a plusieurs méthodes built-in pour comparer des trucs entre eux.
Par exemple, pour deux valeurs :
Code:
cmp(x, y) Retourne une valeur positive si x>y, une valeur négative si x<y, et 0 si x=0
Pour une liste ou tout ce qui est itérable :
Code:
max(liste) Retourne la valeur la plus grande dans la liste
Suivant que tu utilises l'un ou l'autre, ton programme sera grandement différent.

Idem pour place_free :
Code:

# Méthode personelle pour vérifier si une position comporte un objet
def place_free(x, y):
    if (x,y) in liste_instance.position:
        return liste_instance.position[x,y]
    else:
        return False
C'est la méthode strictement "Game Makerienne". Il y a deux attributs à donner à la méthode. Mais cela demande de programmer en amont les sprites, les masks de collisions, etc...
L'exemple de place_free que tu as donné plus haut demande 6 attributs. Seulement, il utilise les int. Si tu souhaites utiliser des tableaux, faudra la modifier. Seulement, suivant les cas, on utilisera soit les int, soit les listes, soit d'autres types de structures.
Et là, ça va devenir bordélique. Parce que si tu modifies une méthode, faudra modifier toutes les autres, si on fait un index de méthodes type strictement GM pour d'autres langages.

Donc, en gros, pour avoir ce genre d'index, faudrait refaire TOUTE la structure de GM. Avec les instances d'objets, les attributs, etc... Et il y aura toujours untel qui préférera utiliser les dictionnaires, alors que bidule trouve que c'est des conneries et qu'il faut utiliser des nombres entiers.

Et je ne parle même pas des différences entre langages, et surtout entre bibliothèques. Par exemple, sur Pygame, j'ai utilisé une méthode un peu comme GM. En testant SFML, je dois revoir tout le programme parce que la structure est totalement différentes. Donc, mes anciennes méthodes pour calculer les scrollings tombent à l'eau.
Revenir en haut Aller en bas
https://2img.net/image.noelshack.com/old/up/gmzonecbna-3cfbc56d25.jpg
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 11:28

Sekigo Le Magnifique a écrit:
Ce topic est à la fois une bonne idée et une mauvaise idée.
Elle part d'une bonne intention. Seulement, il est impossible d'avoir une méthode "unique" par langage. Parce qu'il va y avoir autant de méthode de programmer un truc que de programmeur.
Je comprends ton raisonnement et tu as raison.

Mais en fait, je ne voyais pas cela comme absolue, mais juste comme des pistes, des petites idées, si on ne sait pas comment faire telle chose Wink.

Il m'est arrivé de pouvoir récupérer des codes c++ que j'avais fait et de les convertir en purebasic.

Je voyais plus cela comme une base, éventuellement une piste, pour éviter d'être dans le flou total lorsque l'on veut créer une fonction plus ou moins équivalente à GM Wink
Revenir en haut Aller en bas
http://blendman.blogspot.com/
Sekigo Le Magnifique
Utilisateur confirmé: Rang *****
Sekigo Le Magnifique


Messages : 1720

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 11:38

Oui, ne t’inquiète pas, j'ai compris que tu voulais donner des pistes plutôt qu'une espèce de bible universelle et absolue.

Mais je pense qu'il faudrait mieux le faire au cas par cas. Ou alors, encadrer strictement la piste, avec quels trucs à passer à la méthode et que renvoyer.

Par exemple, pour le place_free vu ci-dessus :
Code:

# Documentation de la fonction :
# return bool    def place_free(int x, int y, int x_left, int y_top, int x_right, int y_bottom)
# Vérifie si x et y sont inclus dans un carré.
# Ceci dit, ce n'est pas un place_free réellement. On ne vérifie pas
# si il y a une instance à tel endroit.
# Je suis ******, hein !
def place_free(x, y, x_left, y_top, x_right, y_bottom):
    if (x_left <= x <= x_right) and (y_top <= y <= y_bottom):
        return True
    else:
        return False
Revenir en haut Aller en bas
https://2img.net/image.noelshack.com/old/up/gmzonecbna-3cfbc56d25.jpg
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 12:11

Oula t'as mis ma fonction place_free mais elle est super incomplète et ne sert a rien.
Ton topic est une bonne idée d'ailleurs j'ai trouvé ça :
http://gmc.yoyogames.com/index.php?showtopic=420970

Revenir en haut Aller en bas
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 12:18

[/quote]Oula t'as mis ma fonction place_free mais elle est super incomplète et ne sert a rien.[quote]je sais, ce n'était qu'un exemple. Cela dit, même incomplet, on peut y voir quelques psites (moi, c'est le cas Wink).

Citation :
Ton topic est une bonne idée d'ailleurs j'ai trouvé ça :
http://gmc.yoyogames.com/index.php?showtopic=420970

OUi, c'est visiblement une bonne idée, puisque d'une certaine manière ça existe déjà en fait :
http://rosettacode.org/mw/index.php?title=Category:PureBasic&until=Queue%2FDefinition

Very Happy

Cela dit, les fonctions sont générales et pas liées à game maker, mais l'idée est un peu la même au final Smile. Maintenant, si nous qui connaissons le GML arrivons à donner des exemples, plus ou moins concrets de certaines fonctions liés à GM, ce sera vraiment intéressant Smile.

En tout cas, pour purebasic, c'est une chose qui m'intéresserait vraiment Smile.


Sekigo Le Magnifique a écrit:
Oui, ne t’inquiète pas, j'ai compris que tu voulais donner des pistes plutôt qu'une espèce de bible universelle et absolue.

Mais je pense qu'il faudrait mieux le faire au cas par cas. Ou alors, encadrer strictement la piste, avec quels trucs à passer à la méthode et que renvoyer.

Par exemple, pour le place_free vu ci-dessus :
Code:

# Documentation de la fonction :
# return bool    def place_free(int x, int y, int x_left, int y_top, int x_right, int y_bottom)
# Vérifie si x et y sont inclus dans un carré.
# Ceci dit, ce n'est pas un place_free réellement. On ne vérifie pas
# si il y a une instance à tel endroit.
# Je suis ******, hein !
def place_free(x, y, x_left, y_top, x_right, y_bottom):
    if (x_left <= x <= x_right) and (y_top <= y <= y_bottom):
        return True
    else:
        return False

Ton exemple est intéressant, et plus représentatif de ce que je pensai.


Revenir en haut Aller en bas
http://blendman.blogspot.com/
Sekigo Le Magnifique
Utilisateur confirmé: Rang *****
Sekigo Le Magnifique


Messages : 1720

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 12:31

blendman a écrit:
OUi, c'est visiblement une bonne idée, puisque d'une certaine manière ça existe déjà en fait :
http://rosettacode.org/mw/index.php?title=Category:PureBasic&until=Queue%2FDefinition
Very Happy

Oulà, mais il est génial ce site. Hop, dans les favoris.
Et j'adore le nom : code de Rosette. C'est vraiment bien choisi.
Revenir en haut Aller en bas
https://2img.net/image.noelshack.com/old/up/gmzonecbna-3cfbc56d25.jpg
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 9 Mar 2011 - 14:02

Vraiment excellent ce site. D'ailleurs c'est impressionnant le nombre de langages présentés.
(Le connaissais déjà en fait, mais oublié dans les marques pages d'un vieux pc...)

Pour ton idée blendman je suis tout a fait d'accord avec Sekigo.

De plus je voudrais dire que ce qui fait vraiment la puissance de GM pour la création de jeux, mais aussi l'intérêt de la plupart de ces fonctions, c'est comme l'a dit Sekigo la structure de GM.
Pour la plupart des fonctions de GM qui n'ont pas besoin de cette structure, il est extrêmement simple de les trouver en une recherche google.

_________________
[tout langage] Conversion GML > fonctions Runningpotato1[tout langage] Conversion GML > fonctions TvF6GED [tout langage] Conversion GML > fonctions MdetltS
Revenir en haut Aller en bas
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptySam 19 Mar 2011 - 23:47

salut

Voici quelques codes GMl "convertis" en purebasic, pour ceux que cela intéresseraient. il s'agit souvent de macros, mais on peut en faire des procédures si besoin, en les modifiant sans doute un peu :

Merci à ceux qui m'ont aidé pour ces codes (la plupart se reconnaitront car ils sont sur le CBNA Wink)

point_direction()
Code:
Macro point_direction(x1,y1,x2,y2)
 
  ATan2((y2- y1),(x2- x1))
 
 
 EndMacro

point_distance()
Code:
Macro point_distance(x1,y1,x2,y2)
 
  Sqr((x2 - x1)*  (x2-x1) +  (y2-y1)* (y2-y1))
       
  EndMacro

Move_towards()
Code:
Macro move_toward(x1,y1,x2,y2,speed)
   
    x1 + Sin(ATan2((y2- y1),(x2- x1)))* speed
    y1 + Cos(ATan2((y2- y1),(x2- x1)))* speed

 EndMacro



autres codes :
- ajout des fonctions keyboard_check_pressed() et mouse_check_pressed()

ce code -ci est de G-rom, merci à lui, c'est très utile Smile

Code:
Global NewMap KeyFlag.b() ; tout d'abord, on ajoute un map, par exemple, en même temps que les constantes.

;puis, on crée les procédures
Procedure.b KeyboardPressed(Const.i)
  If KeyboardPushed(Const) And KeyFlag(Str(Const)) = 0
    KeyFlag(Str(Const)) = 1
    ProcedureReturn #True
  EndIf
  If KeyboardPushed(Const)=0 And KeyFlag(Str(Const)) = 1
    KeyFlag(Str(Const)) = 0
  EndIf
  ProcedureReturn #False
EndProcedure


Procedure.b MousePressed(Const.i)
  If MouseButton(Const) And KeyFlag(Str(Const)) = 0
    KeyFlag(Str(Const)) = 1
    ProcedureReturn #True
  EndIf
  If MouseButton(Const)=0 And KeyFlag(Str(Const)) = 1
    KeyFlag(Str(Const)) = 0
  EndIf
  ProcedureReturn #False
EndProcedure

voiloutch, en espérant que cela pourra en aider certains Wink.
Revenir en haut Aller en bas
http://blendman.blogspot.com/
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é
||--------

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyDim 20 Mar 2011 - 0:45

c'est intérrésant a savoir ^^
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1480
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMar 29 Mar 2011 - 0:53

en ocaml

max:
Code:

let max a b=
if a>b then a else b

en c:
random

Code:

int random(max)
{
      static int graine=946;
      graine=(graine+13)*99%79997;
      return graine%max;
}

bon, c'est de l'aléatoire, mais il faudrait aussi pouvoir initialisé la graine en fonction d'un paramètre extérieur au programme, par exemple time();

_________________
[tout langage] Conversion GML > fonctions Pochette[tout langage] Conversion GML > fonctions Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2


Dernière édition par arthuro le Mar 29 Mar 2011 - 10:21, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMar 29 Mar 2011 - 9:27

Les vrai fonctions aléatoires sont quand même un peu plus complexes :p

Aller y a qq qui code une fonction en brainfuck ? awesome

_________________
[tout langage] Conversion GML > fonctions Runningpotato1[tout langage] Conversion GML > fonctions TvF6GED [tout langage] Conversion GML > fonctions MdetltS
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMar 29 Mar 2011 - 14:40


_________________
[tout langage] Conversion GML > fonctions Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMar 29 Mar 2011 - 15:13

x)

Ils savent plus quoi inventer.

_________________
[tout langage] Conversion GML > fonctions Runningpotato1[tout langage] Conversion GML > fonctions TvF6GED [tout langage] Conversion GML > fonctions MdetltS
Revenir en haut Aller en bas
Super-Mouton
*Excellent utilisateur*
Super-Mouton


Messages : 4916
Localisation : Cyberworld
Projet Actuel : Sad

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMar 29 Mar 2011 - 15:55

Sekigo Le Magnifique a écrit:
Ce topic est à la fois une bonne idée et une mauvaise idée.
Elle part d'une bonne intention. Seulement, il est impossible d'avoir une méthode "unique" par langage. Parce qu'il va y avoir autant de méthode de programmer un truc que de programmeur.
Ditto. De plus, je me questionne un peu sur l'utilité tant les différents langages s'utilisent différemment même si les syntaxes se ressemblent. Pour coder des fonctions uniques à GM, il faut d'abord avoir un certain moteur de jeu... j'sais pas trop comment m'expliquer mais c'est dur de trouver une seule implémentation qui fonctionnerait dans tous les cas, disons, vu que ça serait dépendant du reste du jeu. J'imagine que c'est une bonne idée si certaines personne veulent comprendre la logique derrière certaines fonctions, mais au-delà de ça, bof.

Sinon juste pour le bien de la cause je peux bien dumper ma classe avec des fonctions très similaires à celles de GM en Flash AS3.
Code:
package{
   public class Maths{
      public function Maths(){
      }
      
      /* Distance entre deux "Objects" */
      public static function dist(obj1:Object, obj2:Object):Number{
         var a:Number=obj2.x-obj1.x;
         var b:Number=obj2.y-obj1.y;
         return Math.sqrt((a*a)+(b*b));
      }

      /* Angle entre deux "Objects" que l'on peut ensuite appliquer à la variable rotation de l'objet voulu */
      public static function atan(obj1:Object, obj2:Object):Number{
         var a:Number=obj2.x-obj1.x;
         var b:Number=obj2.y-obj1.y;
         return Math.atan2(b,a);
      }
      
      /* Random */
      public static function rand(nbMin:int, nbMax:int):int{
         return Math.floor(Math.random()*(nbMax-nbMin+1))+nbMin;
      }
      
      /* Convertir degrées en radians */
      public static function toRad(deg:Number):Number{
         return deg*Math.PI/180;
      }
      
      /* Convertir radians en degrées */
      public static function toDeg(rad:Number):Number{
         return rad*180/Math.PI;
      }
   }
}

_________________
Hey là tabarnak lâche ma sig sacha >=|
[tout langage] Conversion GML > fonctions Balrogko6
[tout langage] Conversion GML > fonctions Supermouton
Revenir en haut Aller en bas
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 30 Mar 2011 - 14:42

Super-Mouton a écrit:
je me questionne un peu sur l'utilité tant les différents langages s'utilisent différemment même si les syntaxes se ressemblent. Pour coder des fonctions uniques à GM, il faut d'abord avoir un certain moteur de jeu... j'sais pas trop comment m'expliquer mais c'est dur de trouver une seule implémentation qui fonctionnerait dans tous les cas, disons, vu que ça serait dépendant du reste du jeu. J'imagine que c'est une bonne idée si certaines personne veulent comprendre la logique derrière certaines fonctions, mais au-delà de ça, bof.

Le but de ce topic est multiple, mais ce n'est pas d'avoir une implémentation qui fonctionnerait dans tous les cas.
- tout d'abord, avoir divers exemples dans différents langages afin de comprendre la logique de certaines fonctions. Ce n'est pas d'avoir la formule magique, mais d'avoir éventuellement une piste.
- ensuite, cela permet d'avoir des exemples directement dans un langage qui nous intéresserait : purebasic, C++, python, etc.. Et là, c'est vraiment intéressant. Par exemple, les exemples en pb que j'ai posté sont directement et très facilement utilisables Wink.
- enfin, ça permet de faire des comparaisons entre langage et pourquoi d'aider à comprendre un peu leur logique (dune certaine manière).

Ça n'empêche pas les développeurs de faire leur propre fonction s'ils le souhaitent de toute façon.
Je pense que contrairement à ce que l'on croit certaines fonctions très simples sont très facilement adaptables en fonction de certains langages.

Par exemple, grâce à l'exemple de Seikugo place_free(), j'ai pu l'adapter en purebasic assez facilement. Je ne l'ai pas encore testé, mais une fois qu'on a la fonction, on peut l'adapter si on le souhaite et rien n'empêche d'en faire une autre si ça ne nous convient pas.

Autre exemple, grâce aux explications qui m'ont été données avec GM pour des fonctions comme point_distance() ou point_direction(), je n'ai même pas eu à les adapter, cela fonctionnait directement.
Donc, j'estime que rien que pour ça, ce topic est vraiment super utile Smile.


Allez, au passage quelques nouvelles fonctions en purebasic :

Changer la couleur d'un sprite3D

En 2 temps :
- tout d'abord définir 2 structures :

Code:
Structure D3DTLVERTEX
  x.f
  y.f
  z.f
  rhw.f
  Color.l
  tu.f
  tv.f
EndStructure

Structure PB_DX9Sprite3D
  TexRes.I                    ; TexRes
  Vertice.D3DTLVERTEX[4]      ; The 4 vertices for the rectangle sprite
  TmpVertice.D3DTLVERTEX[4]  ; The 4 vertices for the rectangle sprite
  Width.l                    ; width set with ZoomSprite3D()
  Height.l                    ; height set with ZoomSprite3D()
  RealWidth.l
  RealHeight.l
  Angle.f
  Transformed.l
EndStructure

puis la procedure (fonction) à utiliser :

Code:
Procedure SetColor(sprite3d, Color.l)
  Protected *Sprite3D.PB_DX9Sprite3D = IsSprite3D(sprite3d)
  With *Sprite3D
    \Vertice[0]\Color = Color.l
    \Vertice[1]\Color = Color.l
    \Vertice[2]\Color = Color.l
    \Vertice[3]\Color = Color.l
  EndWith
EndProcedure

Cet exemple n'est bien entendant pas facilement adaptable avec un autre langage (quoique l'on retrouve des structures et des fonctions en c/c++ il me semble), mais pour ceux qui utilisent pb ça me semble très intéressant Wink.

Revenir en haut Aller en bas
http://blendman.blogspot.com/
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1480
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyMer 30 Mar 2011 - 16:43

Ce qu'il veut dire, c'est que l'ensemble des fonctions de GM, forme un tout.
Il n'y a que peu de fonction qui sont indépendantes de ce système.
C'est comme si le système était représenté par un pyramide, la tête vers le bas.
Pour faire les multiples fonctions du haut que l'on utilise souvent, il faudrait faire toutes les fonctions plus bas, pour atteindre cette hauteur.
Bref, il n'y a pas beaucoup de fonctions a mes yeux transcriptable sans développer derrière un système. ( il reste les fonctions mathématique (max,abs,...) , (conversion de couleur rbg) ( formules de distance entre objets 3d) ,....


Bon alors en c/c++ la fonction draw_line (algo de bressenham il me semble) (dépend de draw_pixel)
Code:

void draw_line(float x1,float y1, float x2, float y2)
{
      int dx, dy, p, end;
      float x, y;
      dx = abs(x1 - x2);
      dy = abs(y1 - y2);
      p = 2 * dy - dx;
      if(x1 > x2)
      {
            x = x2;
            y = y2;
            end = x1;
      }
      else
      {
            x = x1;
            y = y1;
            end = x2;
      }
      draw_pixel(x, y);
      while(x < end)
      {
            x = x + 1;
            if(p < 0)
            {
                  p = p + 2 * dy;
            }
            else
            {
                  y = y + 1;
                  p = p + 2 * (dy - dx);
            }
            draw_pixel(x, y);
      }
}

Sinon, je suis tomber sur un site d'exemple de code en c, au moment ou j'écrit ces lignes. http://www.c.happycodings.com/Beginners_Lab_Assignments/index.html . Il ma l'air parfait pour apprendre plein de truc.

_________________
[tout langage] Conversion GML > fonctions Pochette[tout langage] Conversion GML > fonctions Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
zebdal
Utilisateur confirmé: Rang *****
zebdal


Messages : 2874
Localisation : Chez Vanilla
Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H

[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions EmptyJeu 31 Mar 2011 - 11:37

autant coder ton code directement dans le langage approprié, ca ira plus vite.

_________________
[tout langage] Conversion GML > fonctions Testmf
L'IRC du CBNA
NE PAS CLIQUER:
Spoiler:
Revenir en haut Aller en bas
http://zebdal.free.fr
Contenu sponsorisé





[tout langage] Conversion GML > fonctions Empty
MessageSujet: Re: [tout langage] Conversion GML > fonctions   [tout langage] Conversion GML > fonctions Empty

Revenir en haut Aller en bas
 
[tout langage] Conversion GML > fonctions
Revenir en haut 
Page 1 sur 1

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