【Xbox 360】 XNA Game Studio その10 【C#】
■ このスレッドは過去ログ倉庫に格納されています
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
0742名前は開発中のものです。
2010/06/29(火) 00:57:41ID:0ELFgAVf0743名前は開発中のものです。
2010/06/29(火) 01:42:36ID:AgCzYeDEXBIGは体験版の実装が基本仕様だから既にfreemiumだよね。
0744名前は開発中のものです。
2010/06/29(火) 04:27:04ID:67aMK+ox中身は良いのに外見が残念って感じになってるんで
お前らもさ、こういう面白いゲームを作ってくれないかね
RTS+〜ってするだけなんだから簡単だろ
日本のゲームならではキャラクターを使ってRTS+ACTとか作れないのかね?
企業の奴等が金銭の事を考えて作ろうとしないんだからアマチュアがやるしかないだろ
あ、俺はプログラミング言語の知識なんて無いんで作れないからっ!
0745名前は開発中のものです。
2010/06/29(火) 05:01:33ID:AgCzYeDE0746名前は開発中のものです。
2010/06/29(火) 08:13:38ID:xEzgxGlHインディーズで公開するときにとればいいのに
0747名前は開発中のものです。
2010/06/29(火) 15:20:12ID:D96sDv2K0748名前は開発中のものです。
2010/06/29(火) 16:58:03ID:xEzgxGlH0749名前は開発中のものです。
2010/06/29(火) 17:32:03ID:/i3N+9lCPCと繋いでプレイするくらいならPC上でプレイするから意味無し
0750名前は開発中のものです。
2010/06/29(火) 21:36:07ID:bXMoEs3c0751名前は開発中のものです。
2010/06/30(水) 04:34:57ID:1AAROAJMそうそう。
あと、ショボい売上なら、年末調整をしたり確定申告をしたりする手間がかかるからむしろいらなかったりね。
80Gでマイクロソフトに全部売上持ってってもらって、作者が受け取らないっていう選択は出来ないんだろうか。
0752名前は開発中のものです。
2010/06/30(水) 11:23:18ID:xVeHNv1hえ?w それだと誰か他の人に、
「俺のゲームを差し上げますんでアップしてください、
ロイヤリティは全額受け取ってください」ってことで十分では?w
0753名前は開発中のものです。
2010/06/30(水) 11:36:01ID:vRHSljUt0754名前は開発中のものです。
2010/06/30(水) 13:41:11ID:uSQT3R1s0755名前は開発中のものです。
2010/06/30(水) 21:09:47ID:EW7uqo9J呆れる
0756名前は開発中のものです。
2010/07/02(金) 18:18:11ID:CTR7iVTO現在値(18:09) 87.880000
\(^o^)/円高すぎ
0757名前は開発中のものです。
2010/07/02(金) 18:33:18ID:dFGS2yRh0758名前は開発中のものです。
2010/07/03(土) 20:55:46ID:+V/QerhDけど、最近重い腰が上がり始めたように見えるぞ
0759名前は開発中のものです。
2010/07/03(土) 21:47:36ID:lvpKXmYB>上がり始めたように見えるぞ
>見えるぞ
ギャグマンガのラスボスっぽくていいね
0760名前は開発中のものです。
2010/07/04(日) 06:44:50ID:sxv9lF4d見えるだけであがってない
ラスボスって立ち上がらないで歩くよねw
0761名前は開発中のものです。
2010/07/06(火) 10:33:50ID:ACkhgrNB0762名前は開発中のものです。
2010/07/06(火) 21:49:10ID:sY6QHNlh0763名前は開発中のものです。
2010/07/06(火) 22:26:38ID:OiU4R56h0764名前は開発中のものです。
2010/07/08(木) 08:29:21ID:FA9OibDa0765名前は開発中のものです。
2010/07/08(木) 08:29:55ID:eLKiK4b2Windows Phone 7 のゲームに関して、北米公式サイトのフォーラムに、
マイクロソフトの Aaron Woodman 氏のインタビューが掲載されていま
したでお伝えします。
Halo、出るかもしれませんね。映像の中で、彼はニヤリと笑いながら、
マスターチーフは、小さなディスプレイに向かっていると話しています。
インタビュー内容については、続きをどうぞ。
http://wpsevens.jpn.org/2010/07/1142/
0766名前は開発中のものです。
2010/07/08(木) 12:18:05ID:/kFYIScu0767名前は開発中のものです。
2010/07/16(金) 07:56:21ID:Ff1dhH0w0768名前は開発中のものです。
2010/07/16(金) 08:44:03ID:X2bBkIFc0769名前は開発中のものです。
2010/07/16(金) 09:01:18ID:Ff1dhH0w0770名前は開発中のものです。
2010/07/16(金) 10:03:37ID:XLQ3EgKn旧Verを販売したまま新Verの審査できるなら問題ないでしょ。
0771名前は開発中のものです。
2010/07/16(金) 14:39:13ID:X2bBkIFc改版が重なると審査期間がだんだん長くなりそうだよね。
そうでもない?
0772名前は開発中のものです。
2010/07/16(金) 18:09:39ID:XLQ3EgKnテストはテストとして割り切ってやってると思う。
0773名前は開発中のものです。
2010/07/16(金) 22:02:17ID:LZuN2ZWa0774名前は開発中のものです。
2010/07/17(土) 01:08:14ID:y5iJhbRc別にここで話題にしないだけだろ。気にすんなよ。
気になるなら落として触ってみりゃいいだろ。
βは英語版のVSが必要だけどな。
WMと違って、エミュレータで3Dアクセラレーションが効くから、実機がなくても組んでて楽しいぞ。
0775名前は開発中のものです。
2010/07/17(土) 08:31:57ID:M4PScJ9S0776名前は開発中のものです。
2010/07/17(土) 09:22:10ID:ubvzIfIs0777名前は開発中のものです。
2010/07/17(土) 09:33:23ID:gErb/9IOFlashもマルチタスクも対応してないのにそれをこれから出すなんて・・・
日本では発売時期すら決まってないし。
0778名前は開発中のものです。
2010/07/17(土) 11:13:11ID:s4nbpLAn0779名前は開発中のものです。
2010/07/17(土) 14:05:43ID:tCcF/WPR0780名前は開発中のものです。
2010/07/19(月) 09:00:49ID:NbY2nvDA0781名前は開発中のものです。
2010/07/21(水) 08:39:22ID:tVdu4gUuナムコのパズルゲームの移植は英語だけでレビュー出してるね
0782名前は開発中のものです。
2010/07/21(水) 09:35:26ID:iY3fnBff0783名前は開発中のものです。
2010/07/21(水) 09:37:38ID:vAX9mImj0784名前は開発中のものです。
2010/07/25(日) 07:09:30ID:5tB4T4f00785名前は開発中のものです。
2010/07/26(月) 12:07:50ID:D0ityX+NXNAで「Console.WriteLine」を使っての字を表示ができなくて困っています。
例えばDrawメソットに
protected override void Draw(GameTime gameTime)
{
//GraphicsDevice.Clear(Color.CornflowerBlue);
Console.WriteLine("オワタ");
base.Draw(gameTime);
}
とやって、(青塗りつぶしも消したのですが)字が表示されません。
Drawメソッドだけでなく、コンストラクタに入れてもUpdateメソッドに
入れても同様です。
なぜ表示されないのか、教えていただければと思います。
0786名前は開発中のものです。
2010/07/26(月) 12:14:30ID:z3Xa1U1/0787名前は開発中のものです。
2010/07/26(月) 12:14:32ID:jQ9XJeQI表示されてなければDebug.WriteLineを使ってみる
0788名前は開発中のものです。
2010/07/26(月) 12:16:11ID:WpGwyppdそれどこで覚えてきたの?
http://sorceryforce.com/xna/tips.html
0790名前は開発中のものです。
2010/07/26(月) 12:47:19ID:D0ityX+N>>787
出力ウィンドウ見たら、文字が表示されていました!
こちらへの出力だったんですね。
>>788
てっきり画面のほうに出るのかと思っていました。
これで承継やメソッドが機能しているか確かめるのにつかえます。
>それどこで覚えてきたの?
「ゲーム作りで学ぶVisualC#」「独習C#」という本です。
変数・式・配列・承継・オーバーロードなどなど理解できたかなと
感じてXNAのほうに入ったところです。
0791名前は開発中のものです。
2010/07/26(月) 12:52:39ID:4eYzDjpe言語解説本は捨てるべし
0792名前は開発中のものです。
2010/07/26(月) 13:02:30ID:jQ9XJeQIXNAのサンプルやオープンソースはOOでないと認めないみたいなノリのやつばっか
0793名前は開発中のものです。
2010/07/26(月) 14:16:26ID:D0ityX+NC#に関して完全にゼロからなので、そういう本でクラスとかメソッドとか
から覚えないと何もわからないレベルだったので必要でした。
C#から実際のゲーム製作に移るに際して参考になる本などはあるでしょうか?
上で書いた解説書などにもXNAでのゲーム製作の例はあるのですが、一つのクラスに
収まるシンプルゲーム(ブロック崩しなど)で、ステージ構成を持ったゲームや
複数の敵キャラの処理方法などがわかりません。
きっとコンポーネントが実用できればと思うのですが、そういったもののゲームでの
運用を学ぶ良い方法はありますでしょうか。
0794名前は開発中のものです。
2010/07/26(月) 17:52:39ID:z3Xa1U1/0795名前は開発中のものです。
2010/07/26(月) 19:28:29ID:JdQH6uHW>C#から実際のゲーム製作に移るに際して参考になる本などはあるでしょうか?
>>373
0796名前は開発中のものです。
2010/07/26(月) 21:43:10ID:X3Ed1AoL0797名前は開発中のものです。
2010/07/26(月) 22:23:18ID:z3Xa1U1/0798名前は開発中のものです。
2010/07/27(火) 00:44:32ID:QZn/fdfkまずネット上からコントローラーで一枚絵を動かすサンプルを見つけて、中身を理解する。
変数、式、配列まで理解しているなら、あとは条件式とループ命令を覚えれば簡単なゲームは作れるから頑張れ。
0799名前は開発中のものです。
2010/07/27(火) 20:23:02ID:3wk/T3Q2>>795の本ですが、前者は読み終え理解しました。クラスとメソッドの意味から
解説してくれていて、他の初心者本と比べても第一歩に最適でした。
>>798
シンプル(自機を動かして攻撃判定ある弾を撃つ)なゲームを動かせる
ぐらいになりました。ただ、カタチになるゲームにするとなると
Updateメソッドが巨大で雑然としすぎてしまいそうです。
解決のカギはコンポーネントと思うので、コンポーネントを使って
種類の違う敵やステージや弾丸やアイテムを整然と管理できるように
勉強中です。しかし参考書のサンプルは1つのクラス・Updateメソッドで
処理しつくしているものが多いんですね・・・。課題です。
もっと煮詰めて理解をふかめようと思います。
0800名前は開発中のものです。
2010/07/28(水) 16:17:56ID:dPdwSEyOお、すげーじゃん。
そこまで行ったんなら、あとはひたすら頑張って書くだけ。
ただし、コードがゴチャゴチャにならないよう努力しよう。
Updateが巨大になりすぎるなら、こんもりとある処理を整理して内容ごとに
いくつかのメソッドに分け、Updateはそれらを呼び出すだけにすれば良いよ。
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/44■ このスレッドは過去ログ倉庫に格納されています