Beispiel #1
0
/*---------------------------------------------------------------------------*
 * Setting of the Object structure.  
 *---------------------------------------------------------------------------*/
void	setObject(void)
{
  s32	Sin, Cos;
  u8	flags = ((aMenu[MENU_OBJ_FLIPS] ? G_OBJ_FLAG_FLIPS : 0)|
		 (aMenu[MENU_OBJ_FLIPT] ? G_OBJ_FLAG_FLIPT : 0));

  objRect[0].s.objX   = Ac.objX;
  objRect[0].s.objY   = Ac.objY;
  objRect[0].s.scaleW = Ac.scaleW;
  objRect[0].s.scaleH = Ac.scaleH;
  objRect[0].s.imageFlags = flags;
  
  objMtx[0].m.X = objMtx[1].m.X = Ac.objX + (64<<2);
  objMtx[0].m.Y = objMtx[1].m.Y = Ac.objY;
  objRect[1].s.scaleW = Ac.scaleW;
  objRect[1].s.scaleH = Ac.scaleH;
  objRect[1].s.imageFlags = flags;
  
  Cos = (s32)coss(Ac.theta)*2;
  Sin = (s32)sins(Ac.theta)*2;
  if (Cos == 0xfffe) Cos = 0x10000;
  if (Sin == 0xfffe) Sin = 0x10000;
  if (Cos ==-0xfffe) Cos =-0x10000;
  if (Sin ==-0xfffe) Sin =-0x10000;
  objMtx[0].m.A =    objMtx[0].m.D = Cos;
  objMtx[0].m.B = - (objMtx[0].m.C = Sin);
  
  objMtx[1].m.A =  Cos * 1024 / Ac.scaleW;
  objMtx[1].m.B = -Sin * 1024 / Ac.scaleH;
  objMtx[1].m.C =  Sin * 1024 / Ac.scaleW;
  objMtx[1].m.D =  Cos * 1024 / Ac.scaleH;  
  
  objMtx[2].m.X = Ac.objX;
  objMtx[2].m.Y = Ac.objY;
  objMtx[2].m.BaseScaleX = Ac.scaleW;
  objMtx[2].m.BaseScaleY = Ac.scaleH;

  if (!aMenu[MENU_OBJ_TX_TYPE]){
    objRect[0].s.imageFmt = objRect[1].s.imageFmt = G_IM_FMT_RGBA;
    objRect[0].s.imageSiz = objRect[1].s.imageSiz = G_IM_SIZ_16b;
    objRect[0].s.imageStride =
      objRect[1].s.imageStride = GS_PIX2TMEM(32, G_IM_SIZ_16b);
  } else {
    objRect[0].s.imageFmt = objRect[1].s.imageFmt = G_IM_FMT_CI;
    objRect[0].s.imageSiz = objRect[1].s.imageSiz = G_IM_SIZ_4b;
    objRect[0].s.imageStride =
      objRect[1].s.imageStride = GS_PIX2TMEM(32, G_IM_SIZ_4b);
  }
  
  osWritebackDCache(objRect, sizeof(uObjSprite)*2);
  osWritebackDCache(objMtx,  sizeof(uObjMtx)*3);
  
  return;
}
Beispiel #2
0
int main()
{
    char as[80], bs[80];
    int n;

    while(1) {
        printf("\n");
        printf("A string ? "); scanf("%s", as);
        printf("B string ? "); scanf("%s", bs);
        printf("Insert point ? "); scanf("%d", &n);

        sins(as, bs, n);

        printf("A : [%s]\n", as);
        printf("B : [%s]\n", bs);
    }
}