【Xbox 360】 XNA Game Studio その10 【C#】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。
2009/10/01(木) 09:14:47ID:pBZjJHuxhttp://creators.xna.com/ja-JP
XNA デベロッパー センター (日本語 - 「XNA Japan Team Blog」、「ひにけに XNA」ブログもこちら)
http://msdn.microsoft.com/ja-jp/xna/default.aspx
XNA Team Blog (英語)
http://blogs.msdn.com/xna/default.aspx
0801名前は開発中のものです。
2010/07/28(水) 21:43:02ID:I8ba/k2g0802名前は開発中のものです。
2010/07/28(水) 22:22:58ID:GFVAsthH0803名前は開発中のものです。
2010/07/28(水) 22:39:53ID:1gCvsPLM0804名前は開発中のものです。
2010/07/28(水) 22:58:01ID:eyV9KEFFありがとうございます。
コンポーネントばかり考えていましたが、おかげで
GameTimeを使っていない命令をメソッドでUpdateメソッドから分ける
ことができました。(基本を忘れていました)
0805名前は開発中のものです。
2010/07/30(金) 01:19:40ID:mR8LyZ8J他の社員の方もがんばって下さい
0806名前は開発中のものです。
2010/07/30(金) 07:28:32ID:ztJpsLFf0807名前は開発中のものです。
2010/07/31(土) 19:21:50ID:NzSzlOCeフォーラムを見てて思った
0808名前は開発中のものです。
2010/07/31(土) 19:51:30ID:bQIQPEc70809名前は開発中のものです。
2010/07/31(土) 20:15:46ID:AA/vufAk0810名前は開発中のものです。
2010/07/31(土) 21:43:25ID:NzSzlOCe0811名前は開発中のものです。
2010/08/01(日) 13:07:34ID: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){}
のような条件文で判定を照らし合わせて各種処理をしたいのですが
よい方法はありませんでしょうか?
0812名前は開発中のものです。
2010/08/01(日) 13:23:38ID:Lz7ORa8oまず泥臭いやり方でもゲームを完成させることに集中した方がいいね。
0813名前は開発中のものです。
2010/08/01(日) 14:00:47ID:PhpNw+LLnew 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の効力が及ばないという意味を詳しく
0815名前は開発中のものです。
2010/08/01(日) 14:09:54ID:Xyr32qD30816名前は開発中のものです。
2010/08/01(日) 14:11:42ID:NqTphvUaローカル変数は宣言されたブロック内でしか使えないので、この場合はforブロックの外で変数宣言しないといけない。
あとshotClsn1もenemyClsn1も配列やリストにしないといけないんじゃないかな。
今のままじゃBoundingBoxを1つずつしか保存しておけないし・・・
0817名前は開発中のものです。
2010/08/01(日) 14:21:44ID:53uAWxuq書くところがブロック状に分かれてたり宣言するところとか複雑すぎる
0818名前は開発中のものです。
2010/08/01(日) 14:24:16ID:XkPXUg4kバカがこうして付け上がる。
0819名前は開発中のものです。
2010/08/01(日) 14:50:24ID:LmMIA1oPそんなのほっといて違うとこいけばいいだけのはなし。
0820名前は開発中のものです。
2010/08/01(日) 15:16:51ID:nNreTycZ0821名前は開発中のものです。
2010/08/01(日) 15:54:40ID:7OTuBTt2反省しました。ごめんなさい。
0822名前は開発中のものです。
2010/08/01(日) 16:22:52ID: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つしか保存できないという事かもしれません。
(つづく)
0823名前は開発中のものです。
2010/08/01(日) 16:29:26ID:PhpNw+LL>>813は>>811のfor文だとこんな結果になるっていうのを書いただけなんだ
0824名前は開発中のものです。
2010/08/01(日) 16:32:42ID: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もまた、ひとつひとつ設定しようとすると
「既にスコープで宣言されています」とエラーがでてしまうのですが・・・
まだ理解しきれていないので中途半端な返事になってしまい申し訳ありません。
0825名前は開発中のものです。
2010/08/01(日) 16:44:12ID:Mw5+o/TEそういう意味でしたか。たしかにそのように設定しているのと同じですね。
効力が及ばないというのは、>>816の人のとおり、ブロック内でしか
つかえないという意味でいいました。答え忘れていて申し訳ありません。
0826名前は開発中のものです。
2010/08/01(日) 17:17:26ID:PhpNw+LLBoundingBox[] 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使った事ないから間違ってるかもしれない
0827名前は開発中のものです。
2010/08/01(日) 17:22:18ID:5h5RdW7Zじゃ心配だから
if (((shotClsn1.Intersects(enemyClsn1) == true) == true) == true)
くらいやろうぜ
0828名前は開発中のものです。
2010/08/01(日) 17:24:56ID:XUWKzdSJ> shotClsn1[i] = new BoundingBox(
>enemyClsn1[i] = new BoundingBox(
なに? この素敵な 変数i w
enemy1s.Countからshot1pos.Countが解るの?
配列初期化時からサイズ指定も無いし
0829名前は開発中のものです。
2010/08/01(日) 17:49:44ID:PhpNw+LL間違い指摘してくれるなんてお前優しいのな
配列のサイズ指定してないとか自分自身ドン引きだわw
フォーラムでもこんな風におかしいとこバンバン指摘してくれる奴がいれば使いやすいのに
0830811
2010/08/01(日) 18:08:01ID:Mw5+o/TEfor (int i = 0; i < 20; i++) にすべきところ間違って
for (int i = 0; i < enemy1s.Count; i++)
としていたのにつられて>>826のかたも書き間違えたかな、と。
0831811
2010/08/01(日) 19:57:04ID:XkPXUg4kこれをXNAで表現したいです。どうしたらよいでしょうか。
0832名前は開発中のものです。
2010/08/01(日) 21:19:00ID:bmJvBBFp0833811
2010/08/02(月) 07:17:28ID:PQY34HQyとくにfor文の使い方が分かりません。
0834名前は開発中のものです。
2010/08/02(月) 07:36:24ID:67fbxq+E>この場合はenemyClsn1は配列にはなっていないのですがそれぞれの
>値が保持されているように見えます。
i=1のとき(1ループ目)はenemyClsn1にenemy1s[0]のBoundingBoxが保存されているけど、i=1のとき(2ループ目)はこれは破棄されるよ。
これで問題ないのは同じブロック内でshotClsn1.Intersects(enemyClsn1)を呼び出してるから。
0836811
2010/08/04(水) 06:24:11ID:CKJePkqj回答いただいたのに、お礼遅れました。
なるほど、forループの中で
enemy1s[0](敵位置)とshot1posを比較→enemy1s[0]を破棄→
enemy1s[1](二体目の敵位置)とshot1posを比較→enemy1s[1]を破棄→・・・
とやっていっているということですね。
理解できましたし、言われて見直した事でforループの理解が深まりました。
どうもありがとうございました。
0837811
2010/08/04(水) 13:02:01ID:G3jjVyJA本当は用が済んだ時点で面倒なので御礼なんかしないつもりでした。
でも次の質問ができたのでとりあえず御礼しました。
0838名前は開発中のものです。
2010/08/04(水) 13:25:37ID:NnWhPTgGもう答えねえよ!
0839名前は開発中のものです。
2010/08/04(水) 14:11:20ID:/ftZ7ia50840名前は開発中のものです。
2010/08/06(金) 21:55:37ID:Rcue8lgD0841名前は開発中のものです。
2010/08/06(金) 22:03:03ID:WFsQpU+hソースとか4.0でもそのまま動くかなー
夏休みなんで勉強しようと思ったんだけど
0842名前は開発中のものです。
2010/08/07(土) 00:38:37ID:6poli/440843名前は開発中のものです。
2010/08/07(土) 02:32:24ID:uMnBlcZbおk。基本がC#なので。
初なら中島省吾著のゲーム作りで学ぶ〜がオヌヌメ。
シルト著の独習C#とあわせて読むといいよ。
>>842
君みたいな僻みクンは1ヶ月たらずで841ら新鋭に
追い抜かされるだろうから心配する必要は何もないよ。
0844名前は開発中のものです。
2010/08/07(土) 07:32:03ID:08PO8w0g>ソースとか4.0でもそのまま動くかなー
そのままは動かない。
でも4.0の正式リリースを待ってたら夏休みは終わってしまうので3.1で始めればいいよ。
0845名前は開発中のものです。
2010/08/07(土) 08:40:30ID:Zsuo8Nwt中島乙。
0846名前は開発中のものです。
2010/08/07(土) 09:57:25ID:Zsuo8Nwtなんだよあのインディーゲームの品揃えの惨状。
しかもあれでさえアンケート結果からすると30代やそれなりの経験者だっつうんだから
日本はなんともお寒い状況だよな。
0847名前は開発中のものです。
2010/08/07(土) 10:04:36ID:b2X+HOzI0848名前は開発中のものです。
2010/08/07(土) 10:16:00ID:08PO8w0gttp://creators.xna.com/ja-JP/news/surveyresults2010
30代が67%、プロの開発者が42%か・・・
海外では12%ある17歳以下の開発者が日本では0%って本当なんだろうか?
0849名前は開発中のものです。
2010/08/07(土) 10:21:32ID:/b5bdH1z0850名前は開発中のものです。
2010/08/07(土) 10:22:29ID:Zsuo8Nwt0851名前は開発中のものです。
2010/08/07(土) 10:42:12ID:/b5bdH1z0852名前は開発中のものです。
2010/08/07(土) 13:04:37ID:TKF+CVduXNAでのプログラムのやりかたについて
オレは、ゲームキャラクタなり、建物なりがオブジェクトに所属していて
オブジェクトのDrawメソッドをたたくと画面に書かれる処理が好みの人間だが
サンプルみてると、そういう具合には書いてないみたいに見えるんだよね。
Game1.Drawが他のオブジェクトを参照して、全部書くみたいな感じ?
オレの好みだと、Game1.Drawで各オブジェクトのDraw叩くだけの処理の方が
スマートにみえるんだが、XNA的にはこっちが主流なんだろうか?
0853名前は開発中のものです。
2010/08/07(土) 13:16:37ID:b2X+HOzI0854名前は開発中のものです。
2010/08/07(土) 13:27:47ID:9tTcozHMギギギ
0855名前は開発中のものです。
2010/08/08(日) 16:23:46ID:w/H1Q08Qぐぬぬ
0856名前は開発中のものです。
2010/08/08(日) 17:19:06ID:2MK/RFGq同人ゲーム制作で最も重要なのは言語やプラットフォームといった技術よりも完成させ発表することだ
0857名前は開発中のものです。
2010/08/08(日) 17:31:37ID:GRPAW51L0858名前は開発中のものです。
2010/08/08(日) 18:09:50ID:zFKoIKJD完成させられない事が当たり前とかそんなレベルのゴミはしゃべるなwwww
0859名前は開発中のものです。
2010/08/08(日) 18:11:03ID:zFKoIKJDマジうけるwwww
0860名前は開発中のものです。
2010/08/08(日) 18:43:30ID:zFKoIKJDゴミ(なぜか偉そう)の目標: ゲームを完成させること。
0861名前は開発中のものです。
2010/08/08(日) 20:26:07ID:cwOGHCO0勢いは大事だと思う。
0862名前は開発中のものです。
2010/08/08(日) 21:18:55ID:JbWPlsYy0863名前は開発中のものです。
2010/08/08(日) 21:21:18ID:GpgMtN3v0864名前は開発中のものです。
2010/08/08(日) 23:32:43ID:UUJjxWRO面白いものを作ったときだけ誇っていいぞ。
0865名前は開発中のものです。
2010/08/08(日) 23:51:59ID:zFKoIKJDアクツクなんか選ぶ時点でそいつのセンスが絶望的。
0866名前は開発中のものです。
2010/08/09(月) 01:59:30ID:vhBvnTBj透過部分と非透過部分の境界に、背景色の輪郭ができた
これ、どうやったら消えるの?
っていうか、おれ悪いことした?
0867名前は開発中のものです。
2010/08/09(月) 02:13:28ID:N4dgnjlw読んでないんだが、ひにけにXNAに何か書かれてたような
0868811
2010/08/09(月) 08:54:48ID:aFKIMxDXおかげさまで過去の自分のコードがなぜうまくいかなかったのか
見直してもよくわかるようになりました。
現在、BoundingBoxでの判定ではなく距離でヒット判定をとるようにしました。
0869811
2010/08/09(月) 11:10:27ID:sxSu8HqC0870名前は開発中のものです。
2010/08/09(月) 19:21:55ID:wAtcoGNW0871名前は開発中のものです。
2010/08/09(月) 20:53:50ID:oKAcgcVu0872名前は開発中のものです。
2010/08/09(月) 22:06:23ID:TpX4tgzO0873名前は開発中のものです。
2010/08/09(月) 22:14:56ID:aFmaPGKJ0874名前は開発中のものです。
2010/08/10(火) 07:27:38ID:+X31XwbG買うだけならWebから出来るかも
0875名前は開発中のものです。
2010/08/10(火) 07:32:18ID:dtw5rmGIまぁどっちにしてもプレイするのにXBOX必須だけど
0876名前は開発中のものです。
2010/08/11(水) 23:01:55ID:qjVVlR3k独自のポリゴンデータ使うのにコンテントライターを書かなきゃならん
ってことでいいのかな。
0877名前は開発中のものです。
2010/08/12(木) 08:58:16ID:eK2X0t3Mコンテントライター・リーダーは必要ないと思われ。
Xnaの内部で扱うフォーマットを根底から覆してもいいこと無いだろうし。
0878名前は開発中のものです。
2010/08/13(金) 12:36:05ID:uV4nH7d6理解できてきましたよ〜ありがとうございます。
モデル、テクスチャあたりは.FBXや.Xでいいけど、自作ツールで作ったパーティクル制御のような
バイナリデータはXMLにしないといけないようですね。はぁぁ
0879名前は開発中のものです。
2010/08/13(金) 18:22:14ID:muUBjgUHどんだけ差が出るかは試してないけど。
0880名前は開発中のものです。
2010/08/23(月) 21:43:02ID:AvAp16No公式の4.0ダウンロードできないの俺だけか?
0881名前は開発中のものです。
2010/08/23(月) 23:44:50ID:b/BzG5+qttp://www.microsoft.com/downloads/details.aspx?FamilyID=c8496c2a-54d9-4b11-9491-a1bfaf32f2e3&displaylang=en
0882名前は開発中のものです。
2010/08/24(火) 11:30:50ID:pr+3rQnX0883811
2010/08/26(木) 23:23:28ID:+pKfAKLvシンプルで使いやすいですね。
アニメーションは各々のキャラクターとその状態ごとの変数をUpdateの冒頭で
加算して絵をアニメーションさせることにしました。
Updateで
if (myStates == 0) { myStateTime0++; }
if (myStates != 0) { myStateTime0 = 0; }
SpriteBatchのDrawで
int sp_no = (int)((myStateTime0 / 5) % 7);
spriteBatch.Draw(myStand, myPos, new Rectangle(sp_no * 100, 0, 100, 100), Color.White);
ちなみにmyStates==0はキー入力のないニュートラル状態で、キー入力時は
myStates==1にして、その状態での時間計測のMyStateTime1を加算させて
各々のアニメーションをさせています。
0884名前は開発中のものです。
2010/08/29(日) 01:26:47ID:8DA354R50885名前は開発中のものです。
2010/08/29(日) 02:18:01ID:E2ovMkBi0886名前は開発中のものです。
2010/08/29(日) 02:24:50ID:8DA354R50887名前は開発中のものです。
2010/08/29(日) 23:17:12ID:sOVjpcUZ0888名前は開発中のものです。
2010/08/30(月) 09:24:47ID:xMS8ICS9数学的知識が乏しいから、壁ずりや地形との当たり判定で挫折してるとこ
0889名前は開発中のものです。
2010/08/30(月) 18:55:46ID:IQ1zxkcE2Dですら難しそうなところだ
0890名前は開発中のものです。
2010/08/30(月) 19:12:00ID:287q2kba0891888
2010/08/31(火) 13:11:04ID:BLE5vOV8コメントが英語だし・・・
0892名前は開発中のものです。
2010/08/31(火) 16:53:05ID:6QQ7h9jX0893名前は開発中のものです。
2010/08/31(火) 19:18:51ID:eNXjIKCI>>891
公式XNAの糞サンプルなんて見るな
目が(脳も)腐るぞ
ちと古いがここで勉強しなさい
3D STRONG WARRIORS
http://www.cam.hi-ho.ne.jp/strong_warriors/
>>890>>892は2Dですら作れなさそうwww口先だけww
0894名前は開発中のものです。
2010/08/31(火) 19:26:41ID:LbR2LOg/0895名前は開発中のものです。
2010/08/31(火) 19:53:08ID:nM0P4v6t枯れ木も山の賑
0896名前は開発中のものです。
2010/08/31(火) 20:23:34ID:6QQ7h9jXいつかはポリゴンゲーにトライしたいがやっぱ難しそうだな
0897名前は開発中のものです。
2010/08/31(火) 20:41:28ID:KUb6aHb00898名前は開発中のものです。
2010/08/31(火) 20:42:25ID:KUb6aHb00899名前は開発中のものです。
2010/09/01(水) 13:08:34ID:OqsWLHcLあるんですか?
0900名前は開発中のものです。
2010/09/01(水) 13:17:02ID:15nF/nT/レス数が900を超えています。1000を超えると表示できなくなるよ。