1

J'essaie de coder un petit jeu sympa qui utilise _rowread et un écran virtuel.
J'ai voulu faire des graphismes en nvg pour améliorer l'esthétique du jeu, mais je n'y arrive pas :

Je détourne l'auto_int_1, comme c'est décrit dans le tuto de squale, mais ça marche pas.
Si je n'utilise ni l'écran virtuel, ni _rowread, les nvg marchent.
Pouvez-vous m'aider ?

2

je crois que pour les grays avec _rowread, il faut aussi détourner l'AUTO_INT_5
(j'ai pas du le rajouter ds le tuto, je sais plus : j'ai une version sur le serveur de l'IUT, et une autre chez moi, mais les deux sont po au même état d'avancement sad)

sinon, pr les Vscreen, il en faut un pr le plan light, et un autre pr le plan dark
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

ha moi je détourne jamais l'AUTO_INT5 et j'ai jamais eu de problèmes!
avatar

4

Et comment faut faire pour gérer les nvg dans des écrans virtuels.
Je fais SetPlane(VEcranClair); ???

5

et puis, tant que j'y suis, j'ai une autre question :
Comment faire pour limiter la vitesse du jeu à un certain nombre de fps ???

6

Le plus précis est d'utiliser les Timer cf tuto de Squale
Sinon la boucle for vide marche aussi mais c'est pas conseillé si tu peux t'en passer
avatar

7

perso, les boucles for vides marchent pas mal (vu toput ce que j'ai déjà mixé avec les timers, c plus pratique)
par contre, les timers, c amplement plus exact comme valeurs !


perso, en général, dans mes jeux, je détourne TOUS les AUTO_INT... une petite boucle for qui me les mémorise ds un tableau au début du prog, et une autre qui les reestore à la fin => bien pratique : je peux ensuite les modifiers sans risque (entre les modifications de l'AU1 pr les calculqs de fps, les modifs de l'AU5 pr certaines animations et autres... c le bordel au bout d'un momen, mais ça marche)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

8

les timers c quand même un peu lent pour faire un jeu: la valeure de base c 1/20 de sec.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows

GYBE! Dead Flag Blue

9

Merci pour les boucles de ralentissement.
Par contre, je n'ai pas bien compris comment allier nvg et écrans virtuels...
Comment on utilise les fonctions :
- SetPlane
- GetPlane
- memcpy(LCD_MEM,...,2000)
Merci

10

1. Il faut détourner aussi l'auto-int n°5, sinon il y aura des problèmes sur HW2. Mais ce n'est pas la source du problème ici.
2. Il faut détourner les interruptions avant d'appeler GrayOn et les remettre après avoir appelé GrayOff!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Quelle est la source du pb alors ?
Et pour les écrans virtuels, je dois faire quoi, comme manip ?

12

Le n°2.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

Pkoi il faut détourner l'auto-int5 ?
Enfin est-ce que ça pourrait cause des problèmes à long terme ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

14

Donc en résume, pour que les niveaux de gris marchent sur HW2 ET HW1, en utilisant des écrans virtuels, il faut que je détourne quels AUTO_INT ??? (d'ailleurs c'est quoi précisément, ces auto_int ?)
et comment je dois me débrouiller avec mes écrans virtuels. J'en ai un pour chaque plan, et après faut faire quoi ?
Merci

15

Ok, Kévin, j'ai lu ton mini msg, les nvg marchent. Enfin, il y a une image et puis ça plante.
Pourquoi ?
(Je n'ai pas détourné l'AUTO_INT_2)

16

Probablement parce que tu n'as pas mis GrayOff, puis remis les sauvegardes des interruptions, à la fin du programme. Et PortRestore si tu as utilisé PortSet.

Et lis la documentation de TIGCC sur ces fonctions, tu saurais peut-être comment les utiliser si tu le faisais!
[edit]Edité par Kevin Kofler le 11-01-2002 à 21:40:12[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

17

La doc de TIGCC est en Anglais, j'ai essayé de la lire, mais je suis pas très fort en anglais...


En gros, mon code se résume à ça :

void fonction1(void)
{
...
// Désactivation des AUTO_INT 1 et5
GrayOn();
...
fonction2();
}

void fonction2(void)
{
...
do
{
...
// Ces instructions permettent de faire bouger mon perso
fonction3();
...
}while(condition)
...
GrayOff();
// Désactivation des AUTO_INT
}

void fonction3(void)
{
SetPlane(0);ClrScr();
SetPlane(1);ClrScr();
...
// Instructions qui affichent des sprites à l'écran...
}

Qu'est-ce qui va pas ???
[edit]Edité par jackiechan91 le 11-01-2002 à 21:52:15[/edit]

18

au début, je pigeais que dalle avec la doc de TIGCC... j'avais toujours le dico sur les genoux sad
mais, depuis, j'ai progressé : même si je suis pas capable de traduire exactement, en gardant le caractère original d'un texte, je comprend...
=> j'ai maintenant des bonnes notes en anglais (vu que je fais de l'anglais orienté info)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

19

Pour les écrans virtuels, je fais comment ?
J'utilise un écran virtuel comme plan clair, un autre comme plan sombre, mais après, comment je dois faire pour copier le tout dans le LCD_MEM ?

20

S'il vous plaît, je n'y arrive pas !!! mournmournmourn
J'ai désactivé les AUTO_INT, puis activé GrayOn, puis utilisé _rowread, puis activé GrayOff, puis réactivé les AUTO_INT (1 et 5), comme vous me l'avez dit, mais ça ne marche toujours pas...
et puis pour les niveaux de gris, je ne sais toujours pas comment il faut faire.
Merci...*mournmournmourn

P.S. : Et j'ai lu la traduction française de la doc de TIGCC, mais ça ne m'aide pas...
[edit]Edité par jackiechan91 le 13-01-2002 à 19:49:04[/edit]

21

Comment est-ce que je dois utiliser PortSet, avec des NVG, puisque les niveaux de gris sont basés sur 2 plans, et avec PortSet, on ne peut désigner l'adresse que d'un écran ?
Il faut d'abord utiliser PortSet avec le plan clair, puis après le diriger vers l'écran sombre (je palre bien entendu d'écrans virtuels) ???
Et après, j'ai le même pb avec memcpy(LCD_MEM, ... , 3840)...?!?!
confusmournconfusmournconfusmournconfus

22

Bon, alors :

TU actives les grays, etc... tu alloue tes écrans, etc...

Ensuite: tu dessine sur le plan dark virtuel :
PortSet(V_dark, ...);
Draw...
Draw...
Draw...

Puis tu dessines sur le plan Virtuel light :
PortSet(V_light, ...)
Draw...
Draw...

Puis, tu copie les deux écrans virtuels vers les deux écrans officiels :
memcpy(GetPlane(LIGHT_PLANE), V_light, LCD_SIZE);
memcpy(GetPlane(DARK_PLANE), V_dark, LCD_SIZE);

puis tu recommences : tu dessines de nouveau sur tes deux plans, comme plus ho, et tu les copie, et ainsi de suite...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

23

Merci Squale, je vais essayer ta technique...
Bon, sinon, pour le plantage, j'ai trouvé en fouillant bien ce qui n'allait pas :
J'utilisais un timer pour ralentir le jeu (le USER_TIMER), et je l'ai désactivé un peu au pif, pour essayer, et Ô miracle ça marche...

24

Bon, alors, les NVG marchent, _rowread marche, tout marche bien, donc merci tout le monde pour m'avoir aidé, mais il reste un hic, si j'archive mon jeu, il ne marche plus...mourn
Au fait, finalement, je n'ai détourné que l'AUTO_INT_1 (ça marche pas mieux avec le 5)...

25

>ça marche pas mieux avec le 5

Si, les gens qui disent qu'il faut le détourner (dont moi) savent de quoi ils parlent!!!
L'auto-int 5 de AMS change le masque du clavier (du moins sur HW2)! Donc par exemple, si on appuie sur le curseur vers le haut, le programme pourra croire qu'on a appuyé sur [ESC]. C'est très énervant!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

oui, il faut désactiver l'AUTO_INT_5 !!!
(même si c pas mis dans mon tuto, je sais plus)

Kevin> je penses que c'est de là que viennent certain des pb de TxtRider, non ?

Le truc du timer... ben, le USER_TIMER est basé sur l'AUTO_INT_5, je crois...

Qd c archivé ça foire ? bizarre...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

27

C'est bizarre pour l'AUTO_INT_5, puisque dans la version sur ma TI, je ne le détourne pas et ça marche, si j'appuie sur haut ou sur esc, ça fait la différence...
Enfin, par précaution, je vais quand même le détourner...
Et sinon, pour le fait que ça ne marche pas lorsque j'archive le prog, vous n'avez pas d'idée d'où ça pourrait venir ????

28

Pour le truc de l'rchve, c space grin mais j'ai déjà vu ce genre de trucs... je ne saurai plus dire d'où ça venait sad
Pour l'AUTON_INT_5, le laisser activé marche en général... mais une fois fait l'exception, n'est-ce pas ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

29

J'ai un autre pb : après avoir exécuté le jeu, si je veux aller dans le VAR-LINK, il lui faut plus d'une seconde pour s'afficher...
Et pourtant j'ai détourné l'AI5

30

bizarre...
Tu as pensé à restaurer, à la fin du programme, les AUTO_INT que tu avais détourné ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall