[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 04/07 18:18 / Filesize : 28 KB / Number-of Response : 97
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】スレを立てる前にココで質問を【Part25】



1 名前:名前は開発中のものです。 mailto:sage [2013/02/16(土) 17:44:57.12 ID:uBbl/dgS]
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
pc11.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
hibari.2ch.net/gamedev/

ゲーム製作技術板公式アップローダ
gmdev.xrea.jp/

gamdev.orgが落ちるたびにあげてみるスレ
hibari.2ch.net/test/read.cgi/gamedev/1107022166

14 名前:名前は開発中のものです。 mailto:sage [2013/03/03(日) 22:29:54.25 ID:gBvGtCiv]
xml使ってデータの読込しようとしてるんですが質問です。
効率的なxmlの作り方ってないでしょうか?

いまは一回適当なインスタンス作ってシリアライズして書きだしたものの値を変えるってやってたんです
タグの打ち間違いなどの書式ミスなくすため。変ですかね?
かなり量が大量すぎて手作業で変えるのは骨が折れそうです。
ツール作るのが良策なんでしょうか。みなさんのやってる方法教えて下さい。

環境はC#です。

15 名前:名前は開発中のものです。 mailto:sage [2013/03/04(月) 02:41:06.50 ID:dRISuYJp]
xml を手作業で編集するのは無しだな

といっても自分の場合 csv みたいな簡単なフォーマットしか使わないから
xml 自体必要使わないんだけどね

16 名前:14 mailto:sage [2013/03/04(月) 14:56:22.53 ID:Cu3TGF8n]
いまはグラフィカルなの作る能力がないのでコマンドプロンプトで表示のみの作ってたんですが、
そのせいで配列の各要素をタグで囲まなきゃならないようで困惑してたんです。
Tiledエディタで出力したマップの整数配列の各要素にタグつけするとか腱鞘炎になりそう。
もしゲーム用の環境に移したらちょっとはましになりそうなのでそれを待ってみます。
以前xna使ってたんですが、それは数字を空白で分けただけでよかったし。
いまは読み込みはせずテスト用にハードタイプして済まします。

pythonとかスクリプト言語使って生成するとかフォームアプリで入力支援するのもよさそうですが、
環境未定なので、xmlの構造が未定なので後回しにします。

ありがとうごいました。

17 名前:名前は開発中のものです。 mailto:sage [2013/03/04(月) 19:21:21.81 ID:dRISuYJp]
>>16
C# XML ツリービュー で検索すれば結構出てくるぞ

18 名前:14 mailto:sage [2013/03/04(月) 23:20:43.77 ID:Cu3TGF8n]
>>17
教えてくれてありがとうございます。
xmlの成形が正しいかなど構造を確認するときに使うのかな?

19 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 07:29:40.12 ID:LxQpPdEp]
Excel (相当するアプリ)を駆使して作れば、かなり楽に整形もチェックもできると思われ。 自分ならそうする。
XML関連のモジュール使うのもありだろうけど、意図したデータを作る、チェックするのに手間が数倍かかるな。
作業する人の性格にもよる。 中間言語や他の形式を中継するの嫌う人もいるし、正確さにコスト厭わない人もいる。
自分みたいに最悪バイナリや整形されてないデータを解釈する人もいれば、自前で単一言語で揃えたい人もいる。

ちなみに作業(労力コスト)効率だけでいえば、XMLは可読性と厳密性の点から悪い部類とだけ付記して終わる

20 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 08:11:01.69 ID:EgVgws5g]
定期的に話題になるけど、XMLの優位性がいまいち分からない。
csvやiniを避けてxmlにするのはどんな場合なんだろ?

21 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 08:45:55.32 ID:tdJqkmxx]
動的に構造が変わるデータで、かつiniファイルだと表現しきれない部分(階層や属性など)があるときとか?
まあ、iniより複雑な構造が扱える形式は、XML以外にもチラホラあるけれど。

22 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 10:25:08.74 ID:LxQpPdEp]
>>20
構造化データを記録できるテキスト(SGML)ベースのドキュメント。
HTMLの普及のおかげで、なんとなく理解できる人が多い。
許容される内容がDTDで厳密に定められていて、例外の存在を許さない。
アメリカの軍事利用に採用(元々が軍事データの管理用)されるほど隙がない。

但し、プログラミングや直接の編集・目視での解析や理解は非常に面倒。



23 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 10:27:46.70 ID:LxQpPdEp]
単純に構造化データのシリアライズ(ファイル保存とロード)だけが目的なら、
現時点では普及率と利便性から JSON か YAML がお勧め

>>14 はなぜXMLを使う必要があるのかを明示するとこの話題はもっと盛り上がる

24 名前:14 mailto:sage [2013/03/05(火) 13:07:54.63 ID:YYkZ4d1J]
あんまり深いこと考えてなくて、一時期xnaを使ってた名残です。
あれは確かxnaはデータはxmlなら用意されてるAPIで読み込めたはず(不確かですが。)で、
他のだとコンテンツプロセッサ自作する必要があったかと

いいと思ってるのは、XMLSerializer使ったらオブジェクトを単純に復元できたり
>>22さんの意の「目視が面倒」とは矛盾しますが、個人的にはわかりやすいと感じてたり。他のをそこまで知らなかっただけです
yamlはしらなかったんですが、視認はよさそうですね。

なぜxmlかといったらフレームワークのAPIがあった名残でしかないです。
どういう用途に使うかですが、RPG作ってましてマップやパラメータ情報などの他、
lvごとに使用可能技が増えるってのを表すのに、使おうとしてまして
かなりの数の入力と精度が求められると尻込みして>>14の書き込みになりました。

最初levelの最大値*skill数のbool配列で特定のレベル使えるかどうかのフラグ立てようとしてましたが、
返信描いてた時に、特定のレベルで新しく使用可能になるスキルをジグザグ配列に入れて1〜現在のレベルまでのを使用可能スキルを
足し合わせるようにすればもっと記述減ると気づきました。

25 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 14:43:27.08 ID:LxQpPdEp]
XML はあらゆるデータを厳密に記述することが可能なので
「メモリ上のバイナリデータをテキスト化」を考える上で
非常に都合がよいですね。

C#のプロパティパネルで表示されるような属性や型を持つ
複雑なインスタンスを保存するのであれば、C#が機能として
持ってる XMLSerializer を使うのが正解ですね。

プログラミング言語のクラスデータを生で保存できるのは非常に強み。

>24 で書いてる用途については、List<List<bool>> のような
二次元で表現できるデータなので、記述と再利用方法で最も
利便性が高いのはCSV データとなり、そしてそれを編集
管理してエクスポートできるアプリとしては Excel を使うのが
無難でしょう。

26 名前:名前は開発中のものです。 mailto:sage [2013/03/05(火) 15:06:21.18 ID:LxQpPdEp]
RPG作ってましてマップやパラメータ情報などの他、
lvごとに使用可能技が増えるってのを表すのに、使おうとしてまして
かなりの数の入力と精度が求められると尻込みして>>14の書き込みになりました。

ちなみに私が似たようなものを作ったときは
マップは byte[][] なデータ列。
今風なら List<List<short>> を生データとして保持する専用クラス。

パラメータ情報なんかはキャラクタ判定関係の全ての機能を押し込んだ
クラスを作って、習得レベル管理は Dictionary<string,int> の
スキル名→習得レベル 辞書を使って大小判定させますね。

スキル名の並び処理が必要であれば、別の並び管理用のリストを作るなり、
ListDictionary の特性を使って楽をするかなどありますね。

このあたりは効率より、どのような処理をしたいか? 処理が必要か? を
考えて逆に使える手法を探っていく必要がありますね。

私は最初から完全な仕様を決めて作りこむタイプなので、バイナリでやっちゃいますがw

27 名前:名前は開発中のものです。 mailto:sage [2013/03/09(土) 09:25:55.24 ID:BWkl3+uS]
構造化データのシリアライズをしようと思って、
仮に、
csv
JSON・YAML
xml
の3つが候補になったときに、
JSON・YAMLを知らなくて、xmlの経験があれば、
xmlを選んでしまうこともあるかも知れない

28 名前:名前は開発中のものです。 mailto:sage [2013/03/13(水) 14:41:30.40 ID:ksViSL0o]
くっ、よもや俺様がここまで追い詰められるとは…仕方ない、これが奥の手だ喰らえ

みたいな感じでしぶしぶ持ち出すのが XML

29 名前:名前は開発中のものです。 mailto:sage [2013/03/13(水) 17:16:13.48 ID:ge3vEAY/]
それでもXMLなら・・・XMLならきっと何とかしてくれる

というくらいの期待株ではなくて、仕方なく使うのはなんでなんだろうな

30 名前:名前は開発中のものです。 mailto:sage [2013/03/15(金) 13:17:18.42 ID:wK9oe5te]
奥の手を出してしまうと勝っても顔に×印の痕が残ってしまうからだ

31 名前:名前は開発中のものです。 mailto:sage [2013/03/15(金) 20:39:06.49 ID:apigwJTj]
>>29
果てしなく面倒くさいだけで本当は使いたくないのに
それしか選択肢がないからだろ?

32 名前:名前は開発中のものです。 mailto:sage [2013/03/15(金) 22:10:16.39 ID:Om9r8C2m]
単に他の選択肢を知らないとかじゃ



33 名前:名前は開発中のものです。 mailto:sage [2013/03/15(金) 23:33:04.55 ID:apigwJTj]
言葉遊びをする訳じゃないけど
知らない物は選びようがないんじゃあ・・・

34 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 01:45:34.07 ID:6qB4NaNQ]
他の選択肢というが、XMLと互換な記述言語か汎用なライブラリって何かあるのか?

35 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 02:04:05.78 ID:XVDDUFbv]
>>34
XML自体は極めて高機能な仕様だけど、ゲーム制作においては規模が大きすぎるってだけよ。

36 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 02:21:06.86 ID:CL+61DZg]
XMLと互換の意味がよくわからないけど例えば
CSV、TSV、JSON、YAML、MessagePack、S式、BSON、LTSV、TOML・・・
途中から知名度がアレだけどまあ腐るほどあるよ

37 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 02:33:57.10 ID:EiwQanos]
で、その中でゲーム向きで記述がわかりやすくて習得が容易なやつはどれ?
とか諸々考え出すと、もうこれでいいやってなる

38 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 02:48:46.15 ID:CL+61DZg]
こういうのはだいたい配列とかに値をつっこんでライブラリに渡すだけだから習得もクソもない
ライブラリも一部を除けばよほどマイナーな言語でも使っていない限り揃ってるよ

39 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 03:12:20.23 ID:XVDDUFbv]
そう考えると、CSVかiniで済むことも多いんだよな。暗号化とかは別にしてもさ。

40 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 03:36:39.46 ID:CL+61DZg]
正直どれ選んでも大差ないね
通信とかDBがからむと圧縮率とか圧縮速度とかで差別化できるんだけどゲームだとそうでもないし

41 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 12:14:46.77 ID:7QRV0E0E]
習得のためのノウハウがwebに沢山転がってるか、ってのは
割と重要かもね

慣れた人なら自力で、リファレンスといくつかのTIPSがある状態からでも、
使いこなすかもしれんけど、そうでない初心者も多いわけで

42 名前:名前は開発中のものです。 mailto:sage [2013/03/16(土) 16:28:13.52 ID:EiwQanos]
>>40
じゃあXMLでいいや、新しく無駄なライブラリの使い方覚えるの面倒だし
ってなる



43 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 07:03:59.00 ID:dEKf26tP]
逆にXMLのデメリットってなんだ?

44 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 10:09:23.02 ID:lG9jmyPJ]
CSVファイルやINIファイルに比べると解析が面倒くさい

45 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 10:15:28.30 ID:02PXYBFI]
XMLファイルを作るのが面倒くさい。
csvならexcel使えるし。

46 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 13:40:10.35 ID:hh34pyIT]
作成に関してはツール作ればいいと思うけどねえ
ただ、そうするとあれこれ実装しないといけないから面倒くさいんだよな

47 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 13:42:04.70 ID:CT32qoPc]
sqlite使おうぜ

48 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 13:49:00.56 ID:KWTmByCT]
XMLを使うということはデータ構造が複雑であるということであり
構造が複雑であるということはバグが入り込む余地が大きいということであり
データである以上、最終的には目視でチェックできるということが大きな利点であり
無駄なメタ情報を垂れ流すXMLを避けるというのは経験あるぷろぐらまにとって当然の選択である

49 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 16:23:27.26 ID:J8VRfjmX]
XMLパーサーなんかいくらでも有るだろ
XML作成はVisualStudioのエディタで
DTDとかXMLスキーマがあればコード補完も出来る

まあJSONとかSQLiteとかでも良いんじゃね

50 名前:名前は開発中のものです。 mailto:sage [2013/03/17(日) 16:49:46.09 ID:N+B2COR7]
XMLは人が書くものじゃないでしょ
あれはプログラムで生成するものだよ

俺は、.NET FrameworkのXMLSerializerクラスを使って
ゲーム内の設定(キー設定とか)を保存するためにXMLを使用してる

51 名前:名前は開発中のものです。 mailto:sage [2013/03/18(月) 07:16:42.43 ID:x+rWxudA]
プログラミングする際に先にテストコードを書くことを全く理解できない奴が結構いるもんな。
ツールとかで視覚化したりバリデーションして楽をする(この点も理解してくれん)ことを避けて、
いつまでも人力でやるのが楽で確実だと思い込んでる(しかもそれができることがスキルだと)。

52 名前:名前は開発中のものです。 [2013/03/24(日) 20:23:21.74 ID:hbYrol54]
著作権問題がよくわからん。

商用じゃなきゃ背景とかネットから拾ったものでもいいんですかね?



53 名前:名前は開発中のものです。 mailto:sage [2013/03/24(日) 20:26:57.79 ID:RqAOrkru]
>>52
商用だろうが非商用だろうが原則アウト。
使用可能なものは配布サイトやreadmeにきちんと書いてあるから読みなさい。

54 名前:名前は開発中のものです。 mailto:sage [2013/03/24(日) 20:28:02.32 ID:hbYrol54]
>>53
わかりました。すばやい回答ありがとうございます。

55 名前:名前は開発中のものです。 [2013/03/24(日) 22:21:34.20 ID:i8RMMe+N]
Mantis や RedMine を、
サーバ知識・環境のない個人が
無料(あるいは低価格レンタル)に近い形で使うのは無理かな?

離れた人と同人活動しているんだけど、デバッグがはかどらない。
GoogleDocs のスプレッドシートでバグリストを共有するのも不便。

56 名前:名前は開発中のものです。 mailto:sage [2013/03/24(日) 23:16:18.40 ID:wYx6jnbT]
>>55
en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities
ja.wikipedia.org/wiki/OSS%E3%83%9B%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E6%AF%94%E8%BC%83

57 名前:名前は開発中のものです。 [2013/03/24(日) 23:58:44.13 ID:i8RMMe+N]
>>56
ありがとう、でもちょっと何が書かれてるのかわかんない。ごめん。
教えてもらったページ経由で、
Google 系の simplebugtracker ってのでも良いかなと思ったんだけど、
GAE が出てきて断念。


何か、もう少しアホでも気軽に使えるのないのかな。
My Redmine が良さげに見えたんだけど、高すぎて手が出ない。
毎月 2000 円くらいなら頑張れるんだけどw

いちど BTS を味わうと、エクセル管理には戻れん、、、

58 名前:名前は開発中のものです。 mailto:sage [2013/03/25(月) 00:21:20.34 ID:ifRptcDY]
Made in GAPAN 歩 〜Ayumu〜ってスレ違い、板違いですか?

59 名前:55 mailto:sage [2013/03/25(月) 00:23:28.19 ID:MBpdad8g]
ちょっと別な場所で聞いてみるわ。
レスくれた人ありがとう。

60 名前:名前は開発中のものです。 mailto:sage [2013/03/25(月) 01:34:30.49 ID:kG8NcZTL]
何故だ
無料でGitやMercurialのリポジトリが使えて
Wikiやバグトラッキングが付いてくるのなんか山ほどあるのに

61 名前:名前は開発中のものです。 mailto:sage [2013/03/25(月) 01:40:08.98 ID:CsYwWevu]
同人だとプライベートリポジトリが持てないとたるいんじゃない? Mercurialなら一個持てるけど
使ったことないけどGitoriousみたいなクローンってどうなのよ

62 名前:名前は開発中のものです。 mailto:sage [2013/03/25(月) 01:58:07.17 ID:CsYwWevu]
あ、GithubとBitbucketの話だと勘違いしてた。忘れて///



63 名前:名前は開発中のものです。 mailto:sage [2013/03/25(月) 23:17:12.21 ID:kG8NcZTL]
何でBitBucketを使うんじゃダメなんだ?
プライベートリポジトリも持てるしバグトラッキングもついてくる

64 名前:名前は開発中のものです。 [2013/03/26(火) 14:14:34.80 ID:v4H8VZ9G]
すみません質問です。
Javaなんですが以下のコードを実行したら
speedの数値によって明らかに角度が違ってしまいます。
何が悪いのでしょうか?
理想的にはどのspeedでも同じ角度にしたいのですが…

double dx = Math.cos(angle * RAD) * speed;
double dy = Math.sin(angle * RAD) * speed;

int lx = (int)Math.round(dx);
int ly = (int)Math.round(dy);

x += lx;
y += ly;

65 名前:名前は開発中のものです。 mailto:sage [2013/03/26(火) 15:48:14.39 ID:UjkIRigf]
>>64
intに変換するから悪い。どう見てもroundで必要な情報がごっそり削られてる。

66 名前:名前は開発中のものです。 [2013/03/26(火) 16:29:50.28 ID:v4H8VZ9G]
>>65
でも座標を渡す描画メソッドがintなので一旦intにしないといけないんです…
前にC言語で同じようなコードを書いた時は普通に暗黙キャスト?で問題なかったんですが…
Javaだと型に厳しいみたいでintへのキャストが必須みたいなんですが。

あとroundを使ってるのはこれをしないと
280°とかでも270°と同じ移動量にしかならず
なんだかかなり大雑把な角度指定しか出来ないので…

どうすればいいんでしょう…

67 名前:名前は開発中のものです。 mailto:sage [2013/03/26(火) 16:56:31.14 ID:UjkIRigf]
>>66
例えばspeedが3とかだとするじゃん。
cos, sinは-1〜1までの値だから、
dx, dyは-3〜3までの7つの整数になる。組み合わせは7 x 7 = 49通り。これだと360度表現できるわけないな。
dx,dyの組み合わせが360通り以上になるようにするにはspeedが30以上必要なわけ。
だからspeedを常に30以上にしておけば割と正確なんじゃないの。

……という冗談はさておき、座標は常にdoubleで持っておいて、描画メソッドに渡すときだけintにすれば
多少マシになると思う。
それ以上の精度が欲しければ毎ターン決められたdx, dyを加算するような方式をあきらめる必要があるのでは。

68 名前:名前は開発中のものです。 mailto:sage [2013/03/26(火) 17:13:06.96 ID:v4H8VZ9G]
>>67
やっぱ精度を保つにはspeedを高くするしかないんですね。
言われたことを参考にしながら頑張ってみます。
ありがとうございました!

69 名前:名前は開発中のものです。 mailto:sage [2013/03/26(火) 17:27:20.92 ID:v4H8VZ9G]
>>67
確かに別にx,y座標をdoubleで保持して
メソッドに渡す時だけintにキャストするようにしたら
かなり精度アップしました!
これで十分です。ありがとうございました!

考えてみたら常にintへのキャストで情報失われるから当然
別途高精度な値を保持してないとマズイですよね…
なんというバカなミス…

70 名前:名前は開発中のものです。 mailto:sage [2013/03/26(火) 23:38:16.94 ID:Yf/rjF2h]
次に似たようなケースに遭遇しても対応できるようになったと考えればいい
いい勉強になったじゃないの

71 名前:名前は開発中のものです。 mailto:sage [2013/03/26(火) 23:58:52.30 ID:v4H8VZ9G]
>>70
そうですね。ありがとうございました!

72 名前:名前は開発中のものです。 mailto:sage [2013/03/27(水) 10:47:03.06 ID:fhzmRlaT]
同じミスを経験したことがある人は多いだろうしなw



73 名前:名前は開発中のものです。 mailto:sage [2013/03/27(水) 19:57:08.62 ID:kG3k8H23]
さらに一年後忘れて同じミスするんだぜ

74 名前:名前は開発中のものです。 mailto:sage [2013/03/27(水) 22:04:18.17 ID:nnltvN69]
せめて座標を画面に吐かせるだけの頭があれば

75 名前:名前は開発中のものです。 mailto:sage [2013/03/28(木) 00:01:48.65 ID:vqI4L1bO]
SpriteStudioは高いので他探しているのですが、
無料または1万円未満の範囲だとSpriterくらいですか?

76 名前:名前は開発中のものです。 mailto:sage [2013/04/04(木) 14:05:50.41 ID:yr6X5Zto]
Spriter
brashmonkey.com/

DragonBones
dragonbones.github.com/

Xprite
studioyu.net/xpr/index.html

Spine
esotericsoftware.com/

Umotion 2D
www.nuoxygen.com/tools/umotion2d/umotion2d.php

77 名前:名前は開発中のものです。 mailto:sage [2013/04/05(金) 03:18:02.31 ID:eEBDefyj]
Wizardryや、かまいたちの夜1のような絵が動かない、
個人製作でも手が届くゲームを一人で作りたいんだけどまったくの素人です。しかも童貞
音楽は自作してるので、それを活かせる自作ゲームを作りたいと思いました。人に聴いてもらえる+自分の脳内を描いたゲームの世界に引き込める・知ってもらえるなんて最高じゃんと
ゲーム製作の際、何から学べばいいですか?何か製作に必要なソフトとかあるのでしょうか?(数万円程度なら出せます
まじでプログラム言語とかも知らないです

78 名前:名前は開発中のものです。 mailto:sage [2013/04/05(金) 09:18:16.08 ID:H9ykFMIS]
Dungeon Craft
uaf.sourceforge.net/screenshots.html

LiveMaker
www.livemaker.net/

Yuuki! Novel
page.freett.com/yuukiex/yuukinovel.html

79 名前:名前は開発中のものです。 [2013/04/05(金) 23:46:41.19 ID:uyvIOZAj]
素人が出来るものといえば、 「RPGツクール」
このツールを使って、RPGじゃなくてアドベンチャーゲームに仕立てる。
戦闘が無くて、物語を主人公が進めてゆく。
各種メディアは、フリーのものが入手できる
操作は、設定値を変えるだけ
必要な物は、シナリオ(物語のストーリー)、これはあなたが考える。
これなら容易であり、挫折も少ないだろう。
いったん完成したならば、改良するのです。
メディアをオリジナルに変更したり、サブストーリーを追加したり。

80 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 01:33:15.11 ID:NpDKI+fK]
>>79
なるほど。ありがとう

81 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 17:49:31.35 ID:FWQugemc]
放物線で狙撃する動き(角度固定)
ttp://hakuhin.jp/as/shot.html#SHOT_02_01

このサンプルの dx, dy を求める式を使って射撃ゲームに使おうと思うんですが、
どうも遠いと飛びすぎて、近いと届かない状況です。
どう調整したらいいでしょうか。

落下最初の1秒が 200ドットなので g=200 としたりしてますが問題ないですよね?

82 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 17:54:02.86 ID:Hq9k7jEj]
計算式理解してるか?



83 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 18:04:28.45 ID:6lNbvVrl]
というか当たり前だよね?
現実世界で速く投げれば遠くへ飛ぶし、遅く投げれば近くに落ちる。
もちろん角度とか(あるいは重力とか)を変えれば別だけども。

84 名前:83 mailto:sage [2013/04/06(土) 18:05:38.97 ID:6lNbvVrl]
あ、いや、そういうことじゃないのか。なんかこっちが混乱してきた。

85 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 18:51:37.42 ID:6lNbvVrl]
あとリンク先読み直してて気付いたが、
地球上だと最初の1秒で落ちる距離って確か5mくらいだから、200ドットでg=200はおかしいと思う

86 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 19:11:05.14 ID:VF99w73i]
g(重力加速度)って、画面下に行けば行くほどgが加算されるってことでないの?
g=200なら最初の1Fは200px、2F目は400px

87 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 19:34:37.61 ID:oDGG2jP0]
そりゃあ、>>81の書いたコード中の計算式が何かおかしいんでしょ。
力学の方程式解いたら発射速度がバシッとでる筈なんだし。

88 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 21:00:14.69 ID:K2JIAZDb]
コンピュータは計算通りに結果を出します。
ですから、あなたのプログラムコードに間違いがあると思われる
現実の大砲などは、空気抵抗や風の影響も必要でしょうけど

物理の方程式などは、
弾道計算や斜方投射で検索してください。

89 名前:81 mailto:sage [2013/04/06(土) 21:44:44.26 ID:FWQugemc]
最初に1/2する意味が分からなかったけど、平均を取ってるんですね。
だから重力加速度は400ドットか。
だけど、dtを調整するから変わらず。

砲台の設定がマップの縮小で、単純なベクトルになってると思ったんですが
どうやら設定が大きければ大きいほどパワーが大きくなるようで、
それで飛びすぎていたようでした。

dy が MAX-10 のときに3秒で落下
dy が MAX-37 のときに200ドット上がって2秒で落下
dy を上記で固定したときにdは単純な比例ではなく、次のような関係でした。
subx = x1 - x0
dx = (0.09 * abs(subx) - 0.00003 * subx^2 )
dx = (0.085 * abs(subx) - 0.000036 * subx^2 ) * 3 / 2

ちなみにゲームはこれです。
ttp://www.badeggsonline.com/

90 名前:名前は開発中のものです。 mailto:sage [2013/04/06(土) 22:45:53.80 ID:oDGG2jP0]
なんていうか、落下運動(等加速度運動)の方程式分かってる?
落下位置は時間の二乗に比例するのは分かる?
その類は付け焼刃だと直ぐ詰むから、ちゃんと基礎固めた方が良いよ。

91 名前:名前は開発中のものです。 mailto:sage [2013/04/07(日) 00:02:24.64 ID:475c5HvW]
>落下位置は時間の二乗に比例するのは分かる?
比例しねえよ。
アホか。

92 名前:名前は開発中のものです。 mailto:sage [2013/04/07(日) 00:45:46.82 ID:D+q7gFUe]
えっ



93 名前:名前は開発中のものです。 mailto:sage [2013/04/07(日) 03:34:43.12 ID:2SdTxfZy]
質問者が小学生か中学生かもしれんだろ

94 名前:81 mailto:sage [2013/04/07(日) 07:00:02.03 ID:CtpA13/I]
いちおう理系プログラマ経験ありの無職ひきこもりなんですがね
助言ありがとうございました。

現状
X軸上の目標にほぼ当たるように調整しました。
しかし、高さが変わるとさっぱり。
たぶん、方向×パワーでの調整をしないとだめなんでしょう。
ゲームツールとしては実用になりそうなんで十分です。
・・・ t の計算前に調整したのは失敗かな。

95 名前:名前は開発中のものです。 mailto:sage [2013/04/07(日) 07:01:31.52 ID:CtpA13/I]
rot = 45 // 仰角 左下原点
xn, yn  // 砲台、目標の画面座標
dx, dy  // 砲台の向きとパワー 左下原点   ←これが砲弾の初期ベクトルと一致すると思ったのがそもそもの間違いでした。

引数(rot, x0, y0, x1, y1, var dx, var dy)

// 初期値
g = 400
dt = 0.05    // 画面座標を g * dt するとほぼ砲台ベクトルになる
PI = 3.14159

// 計算
rot = (-1) * signum(x1 - x0) * (90 - rot) - 90

rad = rot * PI / 180 // 角度からラジアンに変換
subx = x1 - x0    // x方向のターゲットとの距離
suby = y1 - y0    // y方向のターゲットとの距離
suby = (-1) * suby  // 座標変換

// 画面座標を砲台比率に調整
subx2 = 80 + subx * 1.3 - sqrt(subx * subx * 0.4)    // x軸上でほぼ当たる
suby = suby * (subx2 / subx)
subx = subx2

// 到着時間(フレーム数)を求める (サンプルのまま)
t = (-1) * (2 * subx * sin(rad)) / (cos(rad) * g * dt) + (2 * suby / (g * dt))
t = sqrt(abs(t))

dx = subx / t             // x方向の移動量を求める
dy = dx / cos(rad) * sin(rad)    // y方向の移動量を求める

96 名前:名前は開発中のものです。 mailto:sage [2013/04/07(日) 10:14:55.06 ID:vg5SabRs]
>>95
画面座標を砲台比率に調整、ってのが何をやりたいのかさっぱりわからん。
>>81のサンプルじゃないよね。
こっちで一からエクセルで計算式作ったら、
ターゲットがy<xの座標である限り、確実にヒットしたぞ?

>>91
x=(-1/2)gt^2 は「xはtの二乗に比例する」って表現するんだ。
こんな下らん事で興奮してると禿げるぞw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<28KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef