1 名前:名前は開発中のものです。 [2009/10/01(木) 09:14:47 ID:pBZjJHux] XNA Creators Club Online (日本語) creators.xna.com/ja-JP XNA デベロッパー センター (日本語 - 「XNA Japan Team Blog」、「ひにけに XNA」ブログもこちら) msdn.microsoft.com/ja-jp/xna/default.aspx XNA Team Blog (英語) blogs.msdn.com/xna/default.aspx
801 名前:名前は開発中のものです。 mailto:sage [2010/07/28(水) 21:43:02 ID:I8ba/k2g] まともな話なら公式フォーラムでやったほうが答えてもらえるのに
802 名前:名前は開発中のものです。 mailto:sage [2010/07/28(水) 22:22:58 ID:GFVAsthH] 英語で回答があってもなんだか分からんけどねー
803 名前:名前は開発中のものです。 mailto:sage [2010/07/28(水) 22:39:53 ID:1gCvsPLM] じゃあ日本語がよめるんじゃねーかよ
804 名前:名前は開発中のものです。 mailto:sage [2010/07/28(水) 22:58:01 ID:eyV9KEFF] >>800 ありがとうございます。 コンポーネントばかり考えていましたが、おかげで GameTimeを使っていない命令をメソッドでUpdateメソッドから分ける ことができました。(基本を忘れていました)
805 名前:名前は開発中のものです。 mailto:sage [2010/07/30(金) 01:19:40 ID:mR8LyZ8J] ひげねこさん夏休みなのにフォーラムで回答とか仕事しすぎ? 他の社員の方もがんばって下さい
806 名前:名前は開発中のものです。 mailto:sage [2010/07/30(金) 07:28:32 ID:ztJpsLFf] VS2010への対応はまだですか?
807 名前:名前は開発中のものです。 mailto:sage [2010/07/31(土) 19:21:50 ID:NzSzlOCe] やっぱりXNAですら初心者には敷居が高いみたいだな。 フォーラムを見てて思った
808 名前:名前は開発中のものです。 mailto:sage [2010/07/31(土) 19:51:30 ID:bQIQPEc7] 公式のフォーラムじゃないところでくだらない質問をバリバリ受け付けるところが無いんだよね
809 名前:名前は開発中のものです。 mailto:sage [2010/07/31(土) 20:15:46 ID:AA/vufAk] えっ、ここがその受け皿じゃないのか
810 名前:名前は開発中のものです。 mailto:sage [2010/07/31(土) 21:43:25 ID:NzSzlOCe] ここで質問するとフルボッコにされそうだわw
811 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 13:07:34 ID:Mw5+o/TE] 前回、質問に答えていただきありがとうございました。 今あたり判定で行き詰っています。 //ショットの衝突判定 for (int i = 0; i < enemy1s.Count; i++) { BoundingBox shotClsn1 = new BoundingBox( new Vector3(shot1pos[i].X, shot1pos[i].Y, 0), new Vector3(shot1pos[i].X + 30, shot1pos[i].Y + 30, 0)); } //敵さんの衝突判定 for (int i = 0; i < enemy1s.Count; i++) { BoundingBox enemyClsn1 = new BoundingBox( new Vector3(enemy1s[i].X, enemy1s[i].Y, 0), new Vector3(enemy1s[i].X + 30, enemy1s[i].Y + 30, 0)); } と、このように設定したBoundingBoxですが、for文のブロック外に BoundingBoxの効力が及びません。 本来なら、上記のようにつけた互いの判定を使って、たとえば if (shotClsn1.Intersects(enemyClsn1) == true){} のような条件文で判定を照らし合わせて各種処理をしたいのですが よい方法はありませんでしょうか?
812 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 13:23:38 ID:Lz7ORa8o] == trueなんて書いちゃうレベルで効率的な方法を探り出したらゲーム完成しないだろうな。 まず泥臭いやり方でもゲームを完成させることに集中した方がいいね。
813 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 14:00:47 ID:PhpNw+LL] BoundingBox shotClsn1 = new BoundingBox(new Vector3(shot1pos[0].X, shot1pos[0].Y, 0), new Vector3(shot1pos[0].X + 30, shot1pos[0].Y + 30, 0)); BoundingBox shotClsn1 = new BoundingBox(new Vector3(shot1pos[1].X, shot1pos[1].Y, 0), new Vector3(shot1pos[1].X + 30, shot1pos[1].Y + 30, 0)); ・ ・ BoundingBox shotClsn1 = new BoundingBox(new Vector3(shot1pos[enemy1s.Count-1].X, shot1pos[enemy1s.Count-1].Y, 0), new Vector3(shot1pos[enemy1s.Count-1].X + 30, shot1pos[enemy1s.Count-1].Y + 30, 0)); shotClsn1には一番最後のデータしか入ってないとか? でもshotもenemyも1つずつだったらいけるのだろうか… BoundingBoxの効力が及ばないという意味を詳しく
814 名前:811 mailto:sage [2010/08/01(日) 14:03:32 ID:53uAWxuq] >>812 コンパイラが最適してくれるからいーんです!!
815 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 14:09:54 ID:Xyr32qD3] コンパイラが万能だと思っていた時期が私にもありました
816 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 14:11:42 ID:NqTphvUa] >>811 ローカル変数は宣言されたブロック内でしか使えないので、この場合はforブロックの外で変数宣言しないといけない。 あとshotClsn1もenemyClsn1も配列やリストにしないといけないんじゃないかな。 今のままじゃBoundingBoxを1つずつしか保存しておけないし・・・
817 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 14:21:44 ID:53uAWxuq] プログラム覚えるなら普通のベーシックが一番だよね 書くところがブロック状に分かれてたり宣言するところとか複雑すぎる
818 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 14:24:16 ID:XkPXUg4k] 自分が気持ちよくなりたいがためにアホがバカを甘やかすから バカがこうして付け上がる。
819 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 14:50:24 ID:LmMIA1oP] バカはバカなりのことしか為し得ないんだから そんなのほっといて違うとこいけばいいだけのはなし。
820 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 15:16:51 ID:nNreTycZ] 2chっていうといちいち無駄に戦闘モードになるヤツいるよな
821 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 15:54:40 ID:7OTuBTt2] >>818 反省しました。ごめんなさい。
822 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 16:22:52 ID:Mw5+o/TE] 回答ありがとうございました。 >>812 効率を目指しているわけではないのですが、他が思いつきませんでした。 泥臭いやり方とは敵ごとにBoundingBoxなしで接近を条件に処理するような 方法でしょうか。 >>813 BoundingBox shotClsn1 = new BoundingBox( new Vector3(shot1pos[0].X, shot1pos[0].Y, 0), new Vector3(shot1pos[0].X + 30, shot1pos[0].Y + 30, 0)); BoundingBox shotClsn1 = new BoundingBox( new Vector3(shot1pos[1].X, shot1pos[1].Y, 0), new Vector3(shot1pos[1].X + 30, shot1pos[1].Y + 30, 0)); と、過去このようにもやってみたのですが 「shotClsn1はスコープで宣言されています」というように警告が出てしまいました。 >>816 の方のおっしゃるように1つしか保存できないという事かもしれません。 (つづく)
823 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 16:29:26 ID:PhpNw+LL] あー、すまん >>813 は>>811 のfor文だとこんな結果になるっていうのを書いただけなんだ
824 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 16:32:42 ID:Mw5+o/TE] (続き) ただ、上で書いたように敵の配列にBoundingBoxを設定したのについて きちんと働いているようです。 BoundingBox shotClsn1 = new BoundingBox( new Vector3(shot1pos[0].X, shot1pos[0].Y, 0), new Vector3(shot1pos[0].X + 30, shot1pos[0].Y + 30, 0)); for (int i = 0; i < enemy1s.Count; i++) { BoundingBox enemyClsn1 = new BoundingBox( new Vector3(enemy1s[i].X, enemy1s[i].Y, 0), new Vector3(enemy1s[i].X + 30, enemy1s[i].Y + 30, 0)); if (shotClsn1.Intersects(enemyClsn1) == true) { enemy1s.Remove(enemy1s[i]); } } とやった場合、ショット[0]があたった敵から消えてくれます。 この場合はenemyClsn1は配列にはなっていないのですがそれぞれの 値が保持されているように見えます。 このenemyClsn1もまた、ひとつひとつ設定しようとすると 「既にスコープで宣言されています」とエラーがでてしまうのですが・・・ まだ理解しきれていないので中途半端な返事になってしまい申し訳ありません。
825 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 16:44:12 ID:Mw5+o/TE] >>823 そういう意味でしたか。たしかにそのように設定しているのと同じですね。 効力が及ばないというのは、>>816 の人のとおり、ブロック内でしか つかえないという意味でいいました。答え忘れていて申し訳ありません。
826 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 17:17:26 ID:PhpNw+LL] BoundingBox[] shotClsn1; BoundingBox[] enemyClsn1; for (int i = 0; i < enemy1s.Count; i++) { shotClsn1[i] = new BoundingBox( new Vector3(shot1pos[i].X, shot1pos[i].Y, 0), new Vector3(shot1pos[i].X + 30, shot1pos[i].Y + 30, 0)); enemyClsn1[i] = new BoundingBox( new Vector3(enemy1s[i].X, enemy1s[i].Y, 0), new Vector3(enemy1s[i].X + 30, enemy1s[i].Y + 30, 0)); } for (int i = 0; i < enemy1s.Count; i++) { for(int j = 0; j < enemy1s.Count; j++) { if (shotClsn1[j].Intersects(enemyClsn1[i])) { enemy1s.Remove(enemy1s[i]); } } } こんな感じだろうか 2Dの当たり判定にBoundingBox使った事ないから間違ってるかもしれない
827 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 17:22:18 ID:5h5RdW7Z] if (shotClsn1.Intersects(enemyClsn1) == true) じゃ心配だから if (((shotClsn1.Intersects(enemyClsn1) == true) == true) == true) くらいやろうぜ
828 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 17:24:56 ID:XUWKzdSJ] >for (int i = 0; i < enemy1s.Count; i++) > shotClsn1[i] = new BoundingBox( >enemyClsn1[i] = new BoundingBox( なに? この素敵な 変数i w enemy1s.Countからshot1pos.Countが解るの? 配列初期化時からサイズ指定も無いし
829 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 17:49:44 ID:PhpNw+LL] >>828 間違い指摘してくれるなんてお前優しいのな 配列のサイズ指定してないとか自分自身ドン引きだわw フォーラムでもこんな風におかしいとこバンバン指摘してくれる奴がいれば使いやすいのに
830 名前:811 mailto:sage [2010/08/01(日) 18:08:01 ID:Mw5+o/TE] 僕が最初の質問のときショットの数は for (int i = 0; i < 20; i++) にすべきところ間違って for (int i = 0; i < enemy1s.Count; i++) としていたのにつられて>>826 のかたも書き間違えたかな、と。
831 名前:811 mailto:sage [2010/08/01(日) 19:57:04 ID:XkPXUg4k] 最近、暑いのでオナニーするときにお尻の割れ目や股ぐらに汗をかいて気持ちが悪いのですが これをXNAで表現したいです。どうしたらよいでしょうか。
832 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 21:19:00 ID:bmJvBBFp] ID:XkPXUg4k キモすぎる
833 名前:811 mailto:sage [2010/08/02(月) 07:17:28 ID:PQY34HQy] アナルの匂いをXNAで作りたいのですが、どうしたらいいですか? とくにfor文の使い方が分かりません。
834 名前:名前は開発中のものです。 mailto:sage [2010/08/02(月) 07:36:24 ID:67fbxq+E] >>824 >この場合はenemyClsn1は配列にはなっていないのですがそれぞれの >値が保持されているように見えます。 i=1のとき(1ループ目)はenemyClsn1にenemy1s[0]のBoundingBoxが保存されているけど、i=1のとき(2ループ目)はこれは破棄されるよ。 これで問題ないのは同じブロック内でshotClsn1.Intersects(enemyClsn1)を呼び出してるから。
835 名前:811 mailto:sage [2010/08/02(月) 07:58:35 ID:PQY34HQy] >>834 ありがとうございました。
836 名前:811 mailto:sage [2010/08/04(水) 06:24:11 ID:CKJePkqj] >>834 回答いただいたのに、お礼遅れました。 なるほど、forループの中で enemy1s[0](敵位置)とshot1posを比較→enemy1s[0]を破棄→ enemy1s[1](二体目の敵位置)とshot1posを比較→enemy1s[1]を破棄→・・・ とやっていっているということですね。 理解できましたし、言われて見直した事でforループの理解が深まりました。 どうもありがとうございました。
837 名前:811 mailto:sage [2010/08/04(水) 13:02:01 ID:G3jjVyJA] お礼は次の質問への布石です。 本当は用が済んだ時点で面倒なので御礼なんかしないつもりでした。 でも次の質問ができたのでとりあえず御礼しました。
838 名前:名前は開発中のものです。 mailto:sage [2010/08/04(水) 13:25:37 ID:NnWhPTgG] クソが! もう答えねえよ!
839 名前:名前は開発中のものです。 mailto:sage [2010/08/04(水) 14:11:20 ID:/ftZ7ia5] 次の質問を予測するスレになりました