Path: chuka.playstation.co.uk!news1.scei.co.jp!go From: go@cclub.tutcc.tut.ac.jp (Go Watanabe) Newsgroups: playstation.ny.program.labo Subject: Re: [Q]:FFみたいなメニューを作るには?? Date: 22 May 1997 20:35:19 GMT Organization: Computer Club, Toyohashi Univ. of Tech., Aichi, Japan Lines: 75 Message-ID: <5m2am7$bl9@news1.scei.co.jp> References: <01bc66b9$7f96bf60$14e484d2@hamara2> NNTP-Posting-Host: 133.15.192.120 X-Newsreader: mnews [version 1.19PL2] 1996-01/26(Fri) ごうです。 <01bc66b9$7f96bf60$14e484d2@hamara2>の記事において hama@ra2.so-net.or.jpさんは書きました。 >はまきちです。 > >>Krom2Timで書かれる文字はバックが透明色だったと思うのですが。 >>そのままスプライトとして扱えば、実現できるのではないでしょうか。 > >おや、ライブラリリファレンスを見る限りでは、bgの色の指定があるよう >ですが、これは背景色と違うのでしょうか。 えーと、このあたりのパラメータ、おもいっきり無視して問題なしです。 Krom2Tim で得られるパターンは、文字の部分が index=1 , 背景が index = 0 の 4bit CLUT のパターンになります。 このパターンと、適切な 4bit CLUT (0の色の透明フラグをたてれば良い) でスプライトをつくればOKです。 ついでなので、むか〜しつくったライブラリをちょいと 直してサンプルつくってみました。よろしければどうぞ。 ftp://ftp1.scei.co.jp/test/textwin.lzh おまけでグラデのかかった box もつくってみました。 中に入ってますのでどうぞ。使い方は GsBOXF とほとんど同じです。 それでは。 -- 渡邊 剛 (Go Watanabe) go@cclub.tutcc.tut.ac.jp XMascot普及キャンペーン実施中(^^) http://cclub.tutcc.tut.ac.jp/xmascot/ いちおうここに GsGradBOXF のソースをつけておきませう。 内部変数いじってるので、この部分のコンパイルには -G0 が必要です ちょっと改造すれば4角それぞれに色がかわるグラデーションになります。 #include typedef struct { u_long attribute; short x,y; u_short w,h; u_char r, g, b; u_char r2,g2,b2; } GsGradBOXF; void GsSortGradBoxFill(GsGradBOXF *bp, GsOT *otp, u_short pri) { GsOT_TAG *p,*q; u_long *r, atr= bp->attribute; u_long col0 = (bp->b << 16) | (bp->g << 8) | bp->r; u_long col1 = (bp->b2 << 16) | (bp->g2 << 8) | bp->r2; u_long pos; p = otp->org + pri; q = (GsOT_TAG*)GsOUT_PACKET_P; *q = *p; *(u_long*)p = ((u_long)q) & 0x00ffffff; GsOUT_PACKET_P += 10 * sizeof(u_long); q->num = 9; r = (u_long*)q+1; *r++ = 0xe1000200 | ((atr & (1<<28|1<<29)) >> 23); *r++ = 0x39000000 | ((atr & (1<<30))>>5) | col0; *r++ = pos = (bp->y << 16) | bp->x; *r++ = col0; *r++ = pos + (bp->w-1); pos += ((bp->h-1) << 16); *r++ = col1; *r++ = pos; *r++ = col1; *r = pos + (bp->w-1); }