Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: Shigeru Kobayashi Newsgroups: playstation.ny.program.questions Subject: [Q] =?iso-2022-jp?B?GyRCSiM/dCROGyhK?= TMD =?iso-2022-jp?B?GyRCJUchPCU/JE5JPTwoJEskRCQkJEYbKEo=?= Date: Wed, 25 Jun 1997 23:50:45 +0900 Organization: PlayStation Net Yarouze Lines: 72 Message-ID: <33B13045.63D57401@inetc.roland.co.jp> NNTP-Posting-Host: 133.111.200.223 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.0 [en] (Win95; I) X-Priority: 3 (Normal) 皆さんはじめまして、小林ともうします。 恐らく非常に初歩的なところでつまづいているのではないかと思いますが思い切 っ て質問させていただきます。現在 sample などを参照に 2D / 3D の object を 表 示する簡単な作品を作っています。 この中で次のように model データの準備をしているところがあります。中身は sample から持ってきたものを少し変えただけです。 この後に object1 について同じ処理を行っているのですが、せっかくですので ループ処理で object が増えた場合にも対応させたいと思いましたが、自分で思 い付く範囲でいろいろとためしてみたのですがどうもうまく行きません。 勿論現在のままでも動きますが、この機会にもう少しきちんとしたものに書き換 えたいと思っております。お手数ですがよろしくお願いいたします。 u_long MODEL_ADDR[10]; GsDOBJ2 object0[10]; //できればこれを 1 つにまとめたいです GsDOBJ2 object1[10]; //現在は仕方なく 2 つにわけています (中略) //model の初期化部分 void model_init(void) { u_long *dop; GsDOBJ2 *objp; int i; MODEL_ADDR[0] = (u_long)(0x800c0000); MODEL_ADDR[1] = (u_long)(0x800c3000); //for object0(以下ほぼ同じものを 2 回書いています) dop = (u_long *)MODEL_ADDR[0]; dop++; GsMapModelingData(dop); dop++; Objnum = *dop; dop++; for (i = 0; i < Objnum; i++) { GsLinkObject4((u_long)dop, &object0[i], i); } for (i = 0, objp = object0; i < Objnum; i++) { objp->coord2 = &Dobject0; objp->attribute = GsDOFF; objp++; } object0[0].attribute &= ‾GsDOFF; object0[0].coord2 = &Dobject0; (中略) //model の表示部分(この部分も 2 回ほぼ同じものを書いています) for (i = 0, op = object1; i < 1/*Objnum*/; i++) { GsGetLs(op->coord2,&tmpls); GsSetLightMatrix(&tmpls); GsSetLsMatrix(&tmpls); GsSortObject4(op, &worldot[actbuf], 14-OT_LENGTH, (u_long *)getScratchAddr(0)); op++; } SHIGERU KOBAYASHI kotobuki@inetc.roland.co.jp http://www.rinc.roland.co.jp/‾kotobuki/