60

Sinon je pense limiter le dédoublement des pistes parce que c'est vraiment gore à gérer (algo récursif qui n'en fini plus de me ronger le cerveau sick)
De toute facon avec une map de 64x64 tiles y'a pas trop la place de faire des milliers de dédoublements (au fait quand je parle du nombre de dédoublements c'est les dédoublements imbriqués, on peut faire des dédoublements successifs s'ils sont sur la branche principale (je sais pas si c'est compréhensible ce charrabia tongue))
Enfin bref je pensais limiter le nombre de dédoublements à 1, si c'est trop peu à votre avis dites le moi et je bataillerais pour faire en sorte que ca soit 2 ou +.
Merci de vos réponses smile

PS : oui il y a bien 7 fois le mot dédoublement dans ce post grin
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

61

super ton projet, et ton shot! toptop
naPO a été productif sur les maps, mais c'est dommage il n'y a pas un seul saut!?

Par contre je pense qu'il faudrait vraiment que ton jeu soit compatible PedRom; ou alors je me représente mal le nombre d'heures que cela implique, mais je pense qu'il y a pas mal de gens qui utilise PedRom(dont moi bien sûr..)

Courage, ça promet vraiment. happy
avatar
Attention, nouvelle signature #eeek#
https://mastodon.ti-fr.com/@redangel

62

C'est PedroM qui n'a qu'a devenir compatible avec AMS tongue
En fait c'est parce que j'utilise des flottants je crois...

Sinon les circuits de naPO sont super ! il n'y a pas besoin d'avoir des sauts partout dans tous les circuits.
En regle générale les circuits les plus simples sont les plus appreciés smile (c'est d'ailleurs pour ca que je pense limiter les dédoublements)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

63

Va expliquer ça à PpHd il sera ravi...hum

Wiwi j'aime bien les circuits de naPO mais un petit saut par-ci par-là, enfin tu en auras sur d'autres je pense.happy
avatar
Attention, nouvelle signature #eeek#
https://mastodon.ti-fr.com/@redangel

64

Si on se démerde bien, on peut placer des sauts sur les côtés afin de faire des raccourcis par-dessus le décor tripo

65

Des floats ? pourquoi faire ?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

66

Pour péter les records de temps du circuits, par exemple, dans Mario Kart Super Circuit, il y a des circuits où on peut gruger et s'économiser qq secondes grin

(bon j'en fais quoi de ce post maintenant cheeky ?)

67

(je parlais des flottants mentionnés par LionelA)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

68

Pour PedroM je pense pas pouvoir faire grand chose tant qu'il ne supporte pas les flottants (je en suis pas au courant de l'actualité de PedroM donc je sais pas si ça a été fait)

Je les utilise pour l'init :
1) Pour créer la table des cosinus et sinus (mais bon à la limite je pourrais les caler en dur)
2) Pour la création de la matrice de projection (en virgule fixe y'a pas moyen d'obtenir la meme precision ou alors je m'y prend mal)
donc résultat je suis obligé d'utiliser les floats sad

Sinon oui on peut rajouter quelques jumps pour mettre un peu de piment smile
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

69

1) tu pourrais surtout les calculer en virgule fixe
2) tu t'y prends mal

70

1) c'est pas ma faute si les fonctions cos et sin renvoient des floats
2) J'ai bataillé au maximum et Fisch2 aussi sans arriver à un resultat convaincant donc j'ai un peu laissé tombé pour l'instant.
Par contre si tu veux t'amuser je t'en prie smile http://www.tigen.org/pws/forum/index.php?action=sujet&forum=5&cat=20&topic=1007&page=3#38
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

71

j'ai jeté un oeil à m7_CreateMatrix (c'est bien ça ?), et les floats sont pas vraiment nécessaires...

tu as besoin des (short)(k * tabstep), càd (short)(k * (float)K1 / (K2*val)) ; tu peux donc écrire :
int log2(long x) {
  if (x<0) x=-x;
  int j=-1;
  while (x)
    x>>=1, j++;
  return j;
}

puis
  long q = K2*val;
  int z = log2(q)-15;
  if (z<0) z=0;
  K1>>=z; q>>=z;
  for (k...)
    Horz[...] = (short) (k * K1 / (short)q);


Et la division est en réalité un simple opcode divs, donc plutôt efficace smile

[EDIT : cross, les sources que j'ai regardées sont celles que tu m'avais passées, pas les plus récentes ^^]

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

72

Heu c'est normal que j'y pige rien tongue ?

Ca serait super cool si tu pouvais faire les optimisations sur la derniere version du code ^^
merci
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

73

en fait le code avait pas changé tripaf

bon voilà ce que ça donnerait : (pas testé, dis-moi si ça marche)
(ancienne version)
...
float tabstep[SIZE_Y];
...
void m7_CreateMatrix(short SizeHorz, short ViewL, short ViewF)
{
  register short i,j;
  K3 = SizeHorz * (SIZE_Y * (ViewF - 1));
  const long K1 = -K3*ViewL*ViewL;
  const long K2 = 2*SIZE_X*ViewF;
  K4 = (SizeHorz-1)*ViewF;
  
  K5 = SizeHorz*(-(ViewF-1)*ViewL);
  
  long val = ((SIZE_Y - 1) * K4 - K3);

  for(i=SIZE_Y; i--; )
  {
      tabstep[SIZE_Y - i - 1] = (float)K1/(K2 * val);
      Vert[SIZE_Y - i - 1] = (i*K5)/(val + val);
      val -= K4;
  }
  
  for(j=SIZE_Y; j--; )
  {
    const float _tabstep = tabstep[j];
    float _tabstep1 = ((SIZE_X/2)+1)*_tabstep;
    float _tabstep2 = (-((SIZE_X/2)-1))*_tabstep;
    const short offset = SIZE_X * j;
    
    for(i=SIZE_X/2; i--; )
    {
      Horz[((SIZE_X/2) - i%(SIZE_X/2) - 1) + offset] = _tabstep1;
      Horz[((SIZE_X/2) + i%(SIZE_X/2)) + offset] = _tabstep2;
      
      _tabstep1 -= _tabstep;
      _tabstep2 += _tabstep;
    }
  }
}

(nouvelle version)
...
int log2(long x) { 
  if (x<0) x=-x; 
  int j=-1; 
  while (x) 
    x>>=1, j++; 
  return j; 
}
void m7_CreateMatrix(short SizeHorz, short ViewL, short ViewF)
{
  register short i,j;
  K3 = SizeHorz * (SIZE_Y * (ViewF - 1));
  const long K1 = -K3*ViewL*ViewL;
  const long K2 = 2*SIZE_X*ViewF;
  K4 = (SizeHorz-1)*ViewF;
  
  K5 = SizeHorz*(-(ViewF-1)*ViewL);
  
  long val = ((SIZE_Y - 1) * K4 - K3);

  for(i=SIZE_Y; i--; )
  {
      long q = K2 * val;
      int z = log2(q) - 15;
      if (z<0) z=0;
      long K1z = K1>>z; q>>=z;
      Vert[SIZE_Y - i - 1] = (i*K5)/(val + val);
      val -= K4;

      int j1 = (SIZE_X/2)+1;
      int j2 = -(SIZE_X/2)+1;
      const short offset = SIZE_X * (SIZE_Y - i - 1);
      for(j=SIZE_X/2; j--; )
      {
	  Horz[((SIZE_X/2) - j - 1) + offset] = (short)(j1 * K1z / (short)q);
	  Horz[((SIZE_X/2) + j) + offset] = (short)(j2 * K1z / (short)q);

	  j1--, j2++;
      }
  }
}

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

74

eek y'a comme un petit probleme en fait tongue :
fzeropollux.gif
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

75

gni

Est-ce que ça marche si tu remplaces
long K1z = K1>>z; q>>=z;
par
float K1z = K1;
?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

76

heu grin
fzeropollux2.gif

Si tu veux je peux t'envoyer le projet complet ?
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

77

oups, il faut aussi remplacer (short)q par q tout court, dans ce cas-là, dsl ^^ (je veux bien le projet complet, éventuellement cheeky)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

78

Oui avec le q à la place du (short) q ca marche smile
je te maile le projet (au fait je me servait de tabstep dans la partie projection des sprites, je sais pas si ta technologie est adaptable là aussi (fonction m7_ProjXYZ))
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

79

d'accord, c'est juste que je m'étais planté dans log2() : mets j=0 au lieu de j=-1, en principe ça devrait marcher smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

80

Merci beaucoup !!! bisoo
T'es vraiment un boss !
(je t'envoie le projet où c'est pas la peine ?)

edit : envoyé finallement
edit² : finallement pas (mail erroné)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

81

#73>pas mal l'effet graphique^^
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

82

lol, c'est clair smile
J'en ai obtenu des bien sympa aussi quand je faisais mes tests pour trouver la formule
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

83

Grâce à Pollux j'ai réussi à me débarrasser des floats à l'endroit où je croyais que c'était impossible.

Maintenant reste le problème des cos et sin :
voici le source

// Cos and Sin #define NBDIR 128 #define SINCOS 4 signed char CosTable[NBDIR]; signed char SinTable[NBDIR]; static inline void m7_CosAndSin() {   register short i;           for(i = NBDIR; i--;) {       const float angle = (i+i)*(PI/NBDIR);  // Now, PI/NBDIR will be a constant value and (i+i) is faster than i*2       CosTable[i] = (signed char)(cos(angle)*(1<<SINCOS));       SinTable[i] = (signed char)(sin(angle)*(1<<SINCOS));     } }


Comment je pourrais faire ?
Merci
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

84

table précalculée, si tu veux pas te prendre la tête...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

85

J'y ai pensé mais le probleme c'est que je voulais que le NBDIR et SINCOS soient parametrables...
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

86

eek, tu fais varier que de -16 à +16 ? t'as besoin de si peu de précision que ça ?

(et sinon tu peux aussi utiliser la même table pour le sinus et le cosinus, avec juste 25% d'éléments en plus)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

87

lionelA :
J'y ai pensé mais le probleme c'est que je voulais que le NBDIR et SINCOS soient parametrables...

ah, pkoi ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

88

Ben ouais grin (ca se voit pas quand on joue (c'est la limite ultime car de -8 à +8 c'est horrible quand on tourne))
Je pensais a stocker une table contenant une precision jusqu'à -128 à +128 et de partir de là afin de ne plus utiliser les fonction cos et sin d'AMS, qu'en pense tu ?
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

89

86> je sais plus trop mais je crois que c'était pour permettre d'augmenter la précision si on a des cartes plus petites (enfin dans un autre jeu qui utiliserait mon moteur de mode7)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

90

ben je sais pas, moi j'utilise des valeurs de -32767 à +32767, et je multiplie (enfin, décale) après par ce qu'il faut, c'est bcp plus précis... je pense pas que tu aies besoin de bcp de vitesse pour ça, non ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)