1

-

2

-

3

ceci fonctionne:

#define OPTIMIZE_ROM_CALLS    // Use Speed Optimization

#define SAVE_SCREEN           // Save/Restore LCD Contents

#include <tigcclib.h>         // Include All Header Files

int _ti89;                    // Produce .89Z File

// Main Function
void _main(void)
{


static BITMAP lightl = {40,160,{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00,[......],0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};

static BITMAP darkl = {40,160,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,[.............],0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
clrscr();
GrayMode(GRAY_ON);
SetPlane(0);
BitmapPut(0,30,&lightl,&(SCR_RECT){{0,0,159,99}},A_REPLACE);
SetPlane(1);
BitmapPut(0,30,&darkl,&(SCR_RECT){{0,0,159,99}},A_REPLACE);
ngetchx();
GrayMode(GRAY_OFF);
}
avatar
納 豆パワー!
I becamed a natto!!!1!one!

4

-

5

alors ça marche ?
avatar
納 豆パワー!
I becamed a natto!!!1!one!

6

-

7

ah ben voilà ! smile, c une vraie saloperie ce bitmap put, je me souviens en avoir chié aussi pour reussir à le faire fonctionner grin, fodrait faire une explication ds la doc de tigcccroll
avatar
納 豆パワー!
I becamed a natto!!!1!one!

8

si tu effaces le plane 0, le plane 1 sera tjs affiché et le plane 0 sera vide, mais c pas une bonne idée de faire comme des calques
avatar
納 豆パワー!
I becamed a natto!!!1!one!

9

-

10

-

11

tu n'as qu'à faire que la panthere grise ne s'affiche que qd la valeur de X est supérieure au milieu de l'ecran

fais voir ta source
avatar
納 豆パワー!
I becamed a natto!!!1!one!

12

-

13

c'est mal codé ça

deja, renomme AnimChat.c en animchat.h

et fais un tableau de pointeurs (grin):

static BITMAP *Pchat[]={&CHAT01,&CHAT02,&CHAT03,&CHAT04,&CHAT05,&CHAT06,&CHAT07,&CHAT08,&CHAT09,&CHAT10};


et ta boucle devient


for (x=-85;x<X_MAX;x+=8)
{
BitmapPut(x, y, Pchat[(x+85)/8], &(SCR_RECT){{0, 0, 159, 99}}, A_REPLACE);
if(x>=MILIEU) {SetPlane(0); BitmapPut(x, y, Pchat[4], &(SCR_RECT){{0, 0, 159, 99}}, A_REPLACE); SetPlane(1);}
}

g pas testé mais ça devrait marcher
avatar
納 豆パワー!
I becamed a natto!!!1!one!

14

marche pasgrin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

15

#define USE_TI89
#define USE_TI92PLUS
#define USE_V200
#define OPTIMIZE_ROM_CALLS
#define SAVE_SCREEN
#include <tigcclib.h>
//#include "AnimChat.c"
#define MILIEU 35
int x,y,a;
void attend(short); 
static BITMAP chip1={32,32,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x08,0xFC,0x00,0x00,0x0F,0x02,0x00,0x01,0x10,0xF4,0x00,0x03,0x28,0x08,0x00,0x02,0x7E,0x2E,0x00,0x00,0xF0,0x0E,0x00,0x00,0xF0,0x04,0x00,0x03,0xF8,0x24,0x00,0x03,0xFE,0x18,0x00,0x03,0xCF,0x90,0x00,0x02,0xCE,0x60,0x00,0x00,0xF8,0xC0,0x00,0x02,0x1F,0x20,0x00,0x03,0xFB,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
static BITMAP chip2={32,32,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0xF0,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0x02,0x00,0x01,0x10,0xF4,0x00,0x03,0xEF,0x28,0x00,0x03,0xFF,0x2E,0x00,0x01,0xFF,0xAE,0x00,0x01,0xFC,0x84,0x00,0x03,0xFC,0x24,0x00,0x03,0xFE,0x18,0x00,0x03,0xCF,0x90,0x00,0x03,0xCE,0x60,0x00,0x01,0xF8,0xC0,0x00,0x03,0xFF,0xE0,0x00,0x03,0xFB,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
BITMAP *Pchat[]={&chip1,&chip2};
void _main(void)
{
  if (!GrayMode (GRAY_ON)) return;
  SetPlane(0);
  ClrScr();
  SetPlane(1);
  ClrScr();
  x=0;
  y=10;
  SetPlane(1);
printf("ok")
ngetchx();

  for (x=3,a=0;x<163;x+=8) 
{
clrscr(); 
BitmapPut(x, y, Pchat[a], &(SCR_RECT){{0, 0, 159, 99}}, A_REPLACE); 
if(x>=MILIEU) {SetPlane(0); BitmapPut(35, y, Pchat[1], &(SCR_RECT){{0, 0, 159, 99}}, A_REPLACE); SetPlane(1);} 
if ((++a)==2)a=0;
attend(20);
} 
  GrayMode(GRAY_OFF);
  return;
}

asm("attend:  movem.l %d0-%d3,-(%sp)
           move.w (20,%sp),%d2
           move.l #31,%d1
           move.l #31,%d3
_wl2_:     move.w #1551,%d0
_wl1_:     rol.l  %d3,%d1
           dbra   %d0,_wl1_
           dbra   %d2,_wl2_
           movem.l (%sp)+,%d0-%d3
           rts"         );
avatar
納 豆パワー!
I becamed a natto!!!1!one!

16

ce code marche, à toi de l'adapter pour toi smile
avatar
納 豆パワー!
I becamed a natto!!!1!one!

17

et ça donne ça pour ceux qui veulent apprendrewink

test.gif
avatar
納 豆パワー!
I becamed a natto!!!1!one!

18

Pour gagner en rapidité tu devrais pas utiliser les bitmaput ..

19

...et utiliser genlibwinkgrin

ben il me demande un exemple, je lui en donne un, apres c à lui d'adapter
avatar
納 豆パワー!
I becamed a natto!!!1!one!

20

-

21

-

22

-

23

unsigned char *ecran=malloc(3840);
if(!ecran)return;
PortSet(ecran,239,127)  // Redirige les fonctions graphiques vers cet écran
// Tu mets tes BitmapPut ici...
memcpy(LCD_MEM,ecran,3840); // ou LCD_restore(ecran);
// Puis à la fin de ton programme il est impératif de rediriger les fonctions graphiques
// Vers LCD_MEM et de libérer la RAM prise par l'écran virtuel
PortRestore();
free(ecran);

[edit]Edité par jackiechan91 le 07-04-2002 à 11:27:50[/edit]

24

ça va pas pke lui il utilise des niv de gris, donc faut garder un seul virtuel mais copier non pas vers LCD_MEM mais vers GetPlane(1)

et plus la peine de toucher au plan 0, des que tu atteinds x=35, tu affiches une fois la panthere sur le plane 0 et tu touches plus au plane 0top
avatar
納 豆パワー!
I becamed a natto!!!1!one!

25

#define USE_TI89
#define SAVE_SCREEN
#define USE_GRAY_PATCH
#define OPTIMIZE_ROM_CALLS

#include <tigcclib.h>

#include "AnimChat.h"

static BITMAP *Pchat[]={&CHAT01,&CHAT02,&CHAT03,&CHAT04,&CHAT05,&CHAT06,&CHAT07,&CHAT08,&CHAT09,&CHAT10};

int x,a;

void _main(void)
{
clrscr();
  if (!GrayMode (GRAY_ON)) return;
unsigned char *ecran=malloc(3840);
if(!ecran)return;
//PortSet(ecran,239,127)

for (x=-85,a=0;x<160;x+=8)
  {
    memcpy(GetPlane(1),ecran,3840); // ou LCD_restore(ecran);
    BitmapPut(x, 10, Pchat[a], &ecran, A_REPLACE); 
    if(x==35) {BitmapPut(x, 10, Pchat[5], GetPlane(0), A_REPLACE);}
    OSFreeTimer(USER_TIMER);
    OSRegisterTimer(USER_TIMER, 4);
    while(!OSTimerExpired(USER_TIMER));
    if (++a==10)  a=0; 
  }
//PortRestore();
free(ecran);
GrayMode(GRAY_OFF);
  return;
}



attention dans un tableau, le premier element est Pchat[0] et non Pchat[1]attention

Portset et portrestore ne servent pas je crois et pas la peine de faire setplane(1)
avatar
納 豆パワー!
I becamed a natto!!!1!one!

26

g pas testé g pas tes sources de panthere et comme mes sources ne marchent jamais du premier coup, tu auras à corriger des trucsgrinpicol
avatar
納 豆パワー!
I becamed a natto!!!1!one!

27

-

28

for (x=-85,a=0;x<160;x+=8)


si ça c pas de l'initialisation, je c pas ce que c'estgrin (merde c rose)
avatar
納 豆パワー!
I becamed a natto!!!1!one!

29

-

30

enleve le "&"grin, si ça marche pas, remets le et fais pas attention au warning
avatar
納 豆パワー!
I becamed a natto!!!1!one!