新スレキタ━━━━━━(゚∀゚)━━━━━━!!!!
乙
>1タンおつ! 前スレより転載 C/C++言語でRPGシステムを作ってみるスレ RPGシステムに関するC/C++プログラミングの話題。アルゴリズム・ データ構造・処理の効率化・ライブラリ等など、プログラミング の話題限定で語りませう。ゲーム製作の話はゲ製板で。
>>1 乙
今Visual Studio .NET theSpoke Premium買ってきたぞ!
手続き面倒らしいが、安すぎたww
もう後戻りはできんオレガンガルYO
異彩を放つスレだな。 製作のほうに…って思ったが、あっちはツクールとか言ってるんだな。
俺買ったけどまだまだ必要ないと思ってインストールしてない インストールする頃にはもう学生じゃないな
>>7 それ買うとVS2005のPro版が無料DLできるんだよな
羨マシス
おまえら.netもVSも必要ないじゃんw まさにネコに小判、豚に真珠ww LSIC試食版で充分のレベル。
14 :
13 :2005/12/01(木) 22:52:48
あ、すいません誤爆しました。 気にしないでください。
久しぶりです!!約五ヶ月くらいCを勉強してますた! その間、このスレッド見てなかったけど、3まで行ったんですね!! ちなみに僕は、五ヶ月やったわりに、そんな進歩がありませんでした・・・(泣
学習ペースは人それぞれやで わいは半年以上かけてCの入門書終わらせたで さらに半年たってもずっとコンソールばっかりやってるで なんかプログラミング自体が楽しいから質はどうでもええみたいや。今んところはな わいみたいにじっくりまったりやるのもええと思うで それで続くのであれば・・・・・
Cの文法がどうこうっていうのはどうでもよくて
>>16 自覚していないだけで意外と進歩しているかもしれない。
20 :
デフォルトの名無しさん :2005/12/03(土) 00:32:01
もう初心者はいらないからさ。 出てこないでくれる?
include <s> int main(int argc, char *argv[]){ char s[64]; puts("20 デフォルトの名無しさん New! 2005/12/03(土) 00:32:01 もう初心者はいらないからさ。 出てこないでくれる?"); gets(s); if(strstr(s,"ふざけるなッ")!=NULL) return 1; system(argv[0]); return 0; }
これがSpoke製の量産型MS厨か Spokeの罪は予想以上に大きかったようだ 値段はレベルの垣根を作っていたんだな。 値段が高いままのほうがいいこともあるのだ。。。
俺が高校生の頃は、雑誌のCDに入ってるVB5.0の体験版をインストールしてプログラミングをしてたもんよ。 今はフルバージョンが4000円ぽっちなんだから贅沢だ。まったくけしからん。
俺が高校生の頃は、CP/MのBDS-Cくらいしか手の届くものは無かったな
おいおい歳がばれるw
どこまでできたら厨じゃなくなるの?
「勉強中なので」とかいう言い訳をしなくなったら。
それはきびすぃ
俺が高校のときは3万5千くらい払ってアカデミック版買ってたよ ほんとに良い世の中になったもんだ
32 :
デフォルトの名無しさん :2005/12/05(月) 19:53:41
33 :
デフォルトの名無しさん :2005/12/05(月) 20:11:16
○ルフィとか伏字を使っている割にcommand_selfyというネーミングでワロタ
35もそれを指摘している希ガス。
まあ、前スレが過去スレ一覧に入っているということで。
>>30 乙。
無限ループを使ったウェイトはお勧めしないので、
sleepとかタイマーとかを使ってウェイトを実現したほうがいいと思う。
Windowsだったら #include <windows.h> で Sleep(ミリ秒); でできる。
ゲームは C++ で、マップエディタとかは C# で作ってる こんなのあり?
ありでしょ
>>30 乙です。10時間でここまで作れるなんてすごいですね。
ってか。ソースを見ても私には、time と do{}whill を使っている辺りが、
何をしているのか読み取れなかった… orzベンキョウシヨウシテキマス
>>26-27 ∩¬ω¬)アーアー,キコエナーイ,
んでもって。不定期上げしておきます。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0047.lzh データ構造が何かヘンな気がするのでこれからまた直すつもりです。
データを保護するために関数を分けていたはずなんだけど、
関数のなかでは大域変数やポイントを使いまくっているから、
あまり意味がないような気もしてきたけど…どうなんだろう?(?-?)ワケワカメ
あと。不必要な関数まで惰性で作っちゃったような気もするし…
色々悩んでいます。orz
このスレ、まだソース垂れ流ししてるのか
良いじゃん
>>41 >データ構造が何かヘンな気がするのでこれからまた直すつもりです。
>・・・
>色々悩んでいます。
だからまず設計をちゃんとしろよ。
初心者が行き当たりばったりで作ったらそうなるにきまってんじゃん。
いや、いちおう設計はしたつもりだったんですよ。
でも、実際に作り始めたら何かおかしいようなので、困っているんです。orz
どうも参照先と参照元を逆にしないといけなかったのかもしれない、とか。
根本的に思い違いしていたような気もするので、
もう一度、必要データの関係を検討しなおしているところです。orz のんびりやりますね。
>>42 ∩¬ω¬)アーアー,キコエナーイ,
>>45 設計書うpきぼん。
ソースうpされるよりよっぽどいい。
行き当たりばったりで書いた後で書き直して、きれいになったのを眺めるのはなかなか壮観ですぞ 効率悪すぎだから初心者のうちだけな。当たり前だけど、特にお勧めはできないが ただ、書き直す過程で、何が悪くて何がいいのか確認しながらやるのがいいと思う 引数と返却値確認するだけで使いまわしできる関数ってすばらしいですねww
おまいら設計書ってどういう風に書いてる?
フローチャートがぐちゃぐちゃになった感じで書いてる
クラス図って何使って描いたの?
memoにあったか。失礼。
初めてまともな製作者がきたか?
フリーだとjudeかeclipseUMLくらいしかないか?
実行ファイルつけてくださいよ皆さん コンパイルするのめんどい
makeするだけなのに?
>>56 > C/C++によるプログラミングの話がメインですので、
> ゲームそれ自体の製作をしたい方はゲーム製作技術板へどうぞ。
ソースを見てからじゃないと怖くて実行できねw ってかオープンソース万歳
関数と構造体使って綺麗に分けてコメント書けば まあ千行までなら読めるだろ エラー無ければw 設計図=整理されたプログラム
>>51 >Topography CDungeon::getTopography(int x, int y)
>・・・
>/* こっちの方が楽か?
例外機構は制御に使うべきじゃないね。
現状のままでいいと思う。
>>46 あ〜、ゴメン。
ちゃんとした設計書は作っていません。ってか、作り方が分かりません… orz
作りたい物は決まったので必要なデータなんかを書き出してノートにメモ書きしていたんだけど、
それじゃあダメだったかな?
>>51 さんのを見てちょっと反省しました。っても、マネできそうにないけど。
ってか。UMLってなんだろう?と思ってググッたけど、説明見てもワケワカメでした… orz
ってか。judeの動作環境が全然足りてなくて軽く凹みました。
(ちなみに、win98,PentiumU 466MHz, 64MB でやってます)。
ともあれ、もう一度、設計書から作り直してみることにします。
んでもって、いちおう、前のを手直しした、今の段階でのデータ構造試案を、
エクセルで表現してみたので、上げておきますね。
(これじゃあ分からないかもしれないけど、それなりに考えてはいるんだよ、ということで。)
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0049.lzh 以前のデータ構造の失敗は、1つにできる構造体を二つに分けた(品物のと押入れ)のと、
作業用の構造体から品物の構造体を捜そうとしたことで、ムダに複雑化してしまったようです。
どうやら基本的なデータ構造の組み方から勉強しなおさないといけないかも… orzガンバロウ
UMLなんて書こうと思えばEXCELでもWORDでもかける。
>>62 それデータ構造の説明じゃなくて、単なるアイテム一覧じゃん。
それ見ただけでデータ構造わかる人はエスパーだぞ。
努力は認めるが、方向があさっての方向向いてる。
あ〜。やっぱり分かりませんか… orz 設計書って難しい…… 明日はどっちだ!?
>>64 クラス図とシーケンス図があれば大体のデータ構造とプログラム動作が把握できる。
しっかりしたクラス図とかじゃなくてもいいから、クラス図からはじめることを勧める。
見てもらいたいんだったら、クラス図とかはjpegとかに変更してくれよ。 わざわざEA入れてまで見ようとはおもわんぞ。
>>67 EMFにしてあるからwindows標準のビューワで見られると思うけど、
駄目だった?
>66 プログラミング以前にソフトウェアを成立させるための 「構造」を考えた方が良い。 RPGツクールが ・マップの各チップやキャラにイベントを貼り付け、 ・それぞれのイベントがスクリプトで組まれている ・多くの場所で使われるサブルーチンをコモンイベントという形で別管理し、 ・リソースもそれぞれで別個に管理できるようにする。 なんて構造だったり。 実際はこの構造の部分とそれを実現するためのサブルーチン(実はこれが一番多くなるはずなのだが)を書けば良い。 下請けは優秀なライブラリやDLLが色々と公開されていたりするので探してみるといい。 (>68) EMFはWindowsで無いと見れないからね(皆が皆Windows使ってるとは限らないわけだし。) PNG16色なら35..3KBになる。(jpegはラインアートに向かないからダメ。)
windowsの標準ビューアなんてあったのか? w2kだけどデフォルトで何も関連付けされてない。 そういえばkodakの何とかというビューアがなくなってるな…。
IEに落としたら見れたが、
>>69 のいうようにWindowsだけとは限らないんで
gifなりpngなりにしたほうがいいと思う。
Windows画像とFAXビューアで見れた
XP専用のやつか
>>66 私もEMFの開き方が分からなかったです orz
けど、
>>71 さんのを見て、IEでやったら見られました。乙です。
>>65 ありがと〜、ではその辺りからやってみます。
ってか。いま本を読んでモデリングの勉強をし始めたのですが、
クラス図とオブジェクト図の違いもよく分からなくて混乱してます orz
C言語にはクラスや継承はないのにとか、思ってしまう辺りからして、
何か考え方が違うんでしょうね… orzノンビリヤロウ
モデリング=アイテム一覧
Σ(- -ノ)ノ エェ!?
相手に伝わらない皮肉は挽肉である。
そんなあなたに憂鬱本
作れたらイイって考え方の俺からしたらイインジャネーノ?
まぁ方向キーを押さないと判定しないのが鬱だが…
>>80 ◆382ingG3ecはフローチャートでぐぐってみ。
学習は良いのだが手段が目的になってしまって足をとられることもある。 時間もまた金以上に貴重。なかなか難しい。
設計がちゃんとできてればコーディングなんて基本的には単純作業(設計どおりに組む&デバッグだけ)になる。 設計がちゃんとできてないと、後戻りが頻発&バグ発生時などのメンテが複雑化で時間が無駄になる。 だからちゃんと設計をしたほうが時間の節約になる。 だからちゃんと設計をしろ。
せっけいってなーに〜 (:D)
クレタコプーちゃんかよw
>>88 「ちゃんと設計」ってどうなんだろ。
◆382ingG3ecは初心者で、
RPG作りを通してCに習熟しようという趣向なわけでしょ。
なのにちゃんと設計なんて難しくない?
全体の大まかな形を考えて、
まずは戦闘だけ、移動だけといった部分部分を
コーディングしてみる方がいいんじゃないかな。
ただ、その「部分」に関してはそれなりに考えてからコーディングすると。
ある程度できたところでそれらをつなぎ合わせる。
もちろんその際に修正は必要になるし、不要になる部分も出てくると思う。
でもその体験を通して設計に必要なものが分かってくるんじゃないかな。
92 :
91 :2005/12/17(土) 14:25:02
あと、◆382ingG3ecは初っぱなから複雑にしすぎだと思う。
ゲームとしては色々な要素があった方が面白いだろうけど
まずは移動、単純な戦闘ぐらいができるものを作って
そこから肉付けするなり、その経験を元に
新しく作るなりしていった方がいいんじゃない?
修正手戻りは多くなるけど「動くもの」になるまでが早いから
モチベーションも維持しやすいと思う。
話は飛んで、「Cプログラミング診断室」なんかもどぞ。
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/index.html
>>91-92 そういうやりかたなら問題ないと思う。
ただ、見てるほうはソースやバイナリだけポンと出されても、「ふーん」としか思えないから
(暇で時間が死ぬほどあって、他人のソースを見れる人は別ね)、プログラムの構造くらい
は分かるものを出して欲しい。
っていう流れだと思う。
みんなありがと〜! え〜と、とりあえず御報告。UMLは諦めました! \(T-T)ノオテアゲバンザイ ってか、クラスの概念がよく分からない… orz オブジェクト指向のUMLは手続き型のC言語とは相性が悪いらしいと、 エロイ人も言っていたらしいってことにさせてください。orz んでもって、今度はフローチャートに挑戦してみることにします。 んでもその前に。 確認って言うか質問っていうか自己弁護って言うかなんだけど。 いちおう前スレで上げていたファイルでは、 移動・戦闘・売買・セーブ・ロード辺りの、 ゲームに必要になりそうな基本的な所は作ったつもりなんだけど、 あれでは足りなかったですか? 部品作りがある程度分かったから次はちゃんと設計して、 一つのゲームに組み上げられるようにしようと、 し始めたところだったんだけど、まだ早かったですか?(涙
つーか、頼むからフローチャートを見せるようなことだけはしないでくれ。 それを作る手間でソースを読みやすくする工夫(コメントなど)をしたほうがよっぽど有意義だ。
>それを作る手間でソースを読みやすくする工夫(コメントなど)をしたほうがよっぽど有意義だ。 だからそれは完全に自分の中で閉じたプログラムするときにやってくれ。 少なくとも見てもらいたくて公開するんなら、プログラムの概要・構造的なものは必要。
>>97 フローチャートにされても見る方に伝わるかどうかは別問題な希ガス。
つうか設計の仕方ってどんなんよ?
100 :
デフォルトの名無しさん :2005/12/18(日) 10:01:10
100age
設計とかやったことない ゲーム設計のいい例ってどっかで見れない?
悪いのでもいいから例がほしいな
ヤル気が出る様な、歩行キャラのグラフィックをキボンヌ。
板違い、ゲ製へ逝け。
う〜ん。自分なりに読みやすいソースにしようとはしていたんですけど… ヘッダファイルにいろいろ書いてみたりもしたし… んでも、分かってもらえないようだったので、 プログラムの概要・構造的なものを、と思ってやり始めたんだけど… (いや、実は時間が取れなくてまだ全然できてないんだけど… ってか、年末年始は多忙なので勉強する時間が細切れにしかとれなくて、 分からないことばかり増えて混乱ぎみなんだけど…… ) まぁどちらにしても、設計はしないといけないので、 公開するしないはともかくフローチャートは作るつもりではいるのですが… なんか色々とむにょってます…(ーー;)
>◆382ingG3ec 低レベルを相手にするな
早くwin32プログラムに進んで絵を出すんだ!
_____ |____ \□ □ / / _____ / / |_____| / / / /  ̄ (⌒ ⌒ヽ ∧_∧ (´⌒ ⌒ ⌒ヾ ( ; ) ('⌒ ; ⌒ ::⌒ ) ( ̄ ̄ ̄ ̄┴- (´ ) ::: ) | ( *≡≡≡≡≡三(´⌒;: ::⌒`) :; ) / / ∧ \ (⌒:: :: ::⌒ ) / / / U\ \ ( ゝ ヾ 丶 ソ / / ( ̄) | |\ ( ̄) ヽ ヾ ノノ ノ / ( ノ ( | | \ ノ ( ⊂- ┘( ) └--┘ ( ) UUUU UUUU
┃_・) ……
メリクリ ー`)
´д`)ノ メリクリ
113 :
デフォルトの名無しさん :2005/12/28(水) 13:07:21
>>108 ,112
空気嫁アフォ。
オマエのキモ杉な書き込みに、みんなドン引きだよ。
現実世界でもキモがられてるデショ?
笑わそうとしても全部裏目に出るから、認知してクレ。
オマエみたいな相当なキモス、初めて見たよキモス。
( ^ω^)<ポインタ難しいお…
|0|1|2|3|4| ↑ココ こういう風に、場所を指してるのがポインタ。 インクリメントとかすると、場所が1つズレる。
私の端末で見る限り、2と3の隙間を指している……
アドレスの先頭を指すんだからそれでいいんじゃないの
では4の後ろを指しているのは… ぬるぽ
直った〜!! これでゆっくり眠れます! \(=~-~)/バンザイ I_List.c 内 void inputItemList_clear(void) の × ItemList.top->befor = ItemList.top->next = ItemList.end; ○ ItemList.top = ItemList.end; にしたら、直りました! なんか、もの凄く基本的なところらしい… 双方向リストって難しい… orz ポインタナンカキライダイ!!
>>120 自分でリストを実装して悩むのは一回だけでいい。
一通り理解したら、今度からは std::list を使おうな。
彼はCしか使わないようで。
さっさと C++ 使えってことだろ。
>>124 結果は同じ。
また、外部から見た場合「えない」のか「わない」のかは判定不能。
というわけで議論する必要のないことだ。
少し前を読めば分かるが、C++もSTLも使わんでしょ。
better Cで使えばいいでしょ。
それもそうだな。
129 :
デフォルトの名無しさん :2005/12/29(木) 20:10:09
ここに3DアクションRPGつくれる人っているの?ゼルダの伝説みたいな感じのやつ。
"つくれる人"って・・・ 一人で作れるわけないw
ゲ製作板の某スレ見てみろ。 天才がいるから。
プログラム以外のデータを全て用意してくれるなら作れるぞ
誘導はしてくれんのかね
>>132 みたいな人にプログラム以外のデータを全部調達して供給する場合って
MAYAとMotionBuilderで作成されたそれぞれモデルとモーションで大丈夫?音楽MP3でもいいと思う?
bmpとmidiとwaveじゃね?
オレー?
みんな有名になるとゲ製作でてっちゃうorz オレーだけはガチ
オレーって誰よ? 聞いたことがあるような名前だけどまったく分からん!
>>186 そか、今はwaveでもいいのか。昔の容量制限がトラウマになってて。
ちなみにBGMをBPMに同期させてDJみたいにフレーズを繋ぐのって難しい?
186に期待
ここは自信の無い人向けのスレだと思われ
カードゲームも凄い
今年はこのスレでお勉強させていただきました。 どもありがと m(__)m ゲーム作りは途中でやめちゃったけど、 来年は必ず再挑戦しまっす! 382さんがんがれー。
FF8(ry作ってるんだが,コマンドで迷ってます 特殊技は4つあって, ”asdf”みたいな感じのローマ字の組み合わせにしたいんだが・・・ ネタおねがいします
148 :
デフォルトの名無しさん :2005/12/31(土) 14:47:39
あげ
>>147 つ新旧約聖書
困ったらやっぱりこれだね♪
>>150 すいません,もうプログラムは完成してあとはコマンドだけだったんで
焦っちゃってorz
1月程前作っててせっかくなんで最後まで仕上げました(ry
なんか変な個所に(ry入れる奴だな。
>>147 ,150
ここはそういうことを聞くスレじゃないって言うの。
巣に帰れ。
\(=~-~)/ あけおめ〜! 今年から心機一転、このコテでいきま〜す! ってか。分かってはいるんですけどね。 できないからやらないからいつまでたってもできないんだって。 んでも、いま新しいのに手を出しても、 どうせ私のことだから混乱するだけだと思うので、 とりあえず今作っている物は標準Cメインでがんばってみます!(`・ω・´) ってことで。みなさん、今年もヨロシクお願いします! P.S. 3Dいいなぁ。最近のゲ製板でも増えてきましたよね。 私のPCは対応していないから、見ることさえできなくて…(涙
あけおめ。
>>154 標準 C はゲームに必要な機能が欠けてるから逆に難易度が
高くなりそうな気がする。それに標準 C つまんないからきっと飽きるw
SDL とかあるじゃない。あれ確か C ライブラリ関数だし、ゲーム用
ライブラリだから簡単に窓とか絵とかキー入力とかできるんじゃないかと。
、、、と思ったりしただけだが…。
突然だが、CかC++でPS2用のゲームを作ることって出来るの? 出来るんだったらやり方おしえて。
SDL単体で色々やってみたけど、 単体だと本当に窓作ってBMP読んで貼り付けるぐらいしか出来ない。 OpenGL混ぜると3D空間使えるし楽っぽい。 ただ、ラッピングするまでが大変だけど。
SDL自体は機能少なめで、足りない分はlibrariesで補う方式ですね。
コアが小さいせいか、周辺ライブラリ多いな>SDL ガチガチに固められてるオールインワン型に比べて 組み合わせが自由、必要なものを選べる、自分でも作れる しかし、逆にいえば面倒くさいともいえるか
コアだけじゃ矩形コピーしか出来ないからな 機能単位で別作者 GPLだからソースが公開されているとはいえ どの機能もいつなくなるかわからない
もうIrrlichtでいいじゃん
SDL自体頻繁な更新がないからな。 WinでやるならDirectXのがいいんだろうけど。
GPLはちょっと敷居が高い
>>167 おたくならちゃんと設計してC++/Win32APIなり習得してやれば、
けっこういいRPG作れそうな気がするんだがな。。
それが残念だな。
いいじゃないか。やりたいことやれば ここで地道に下積みしておけば、きっと後が楽になる・・・・・・と思うよたぶん
170 :
デフォルトの名無しさん :2006/01/04(水) 15:40:01
lineno.c
>>170 170の意図は判らんがlineno.cには感動した、懐かしいものを見たって気分
なにそれ?
2ちゃんに貼られた実行ファイルつつくときは注意な 故意じゃなくてもワームに感染していることあるからな 貼られたURL踏んだらワームに感染ってこともあるお
>>172 lineno.c はソースプログラムに行番号をふりながら1本のテキストファイルを作るためのもの。
ソースにmakeの使い方まで書いてある
>>173 誤爆??
Σ (゚Д ゚ ;) いつの間に… orz >lineno.c 微妙におかしな所があるけど見逃してください… orz
>>175 linenoでフト思ったんだがmakefileから察するにBCC.5.5.1ですよね
開発はテキストエディターとmakeってことなの?
今日Visual Windows for BCC++に取り込んでみました。
このツールはソースから関数を解析して一覧にしてくれる(ま、タグジャンプなんだけどさ)
ドロップダウンリストから選ぶ感じになるのでgccとかunix系の人じゃないBCC使いには
良いんじゃないかなと思いました。
ただ関数リストを作るにはヘッダーの typedef enum .. で無名型ではなく tag名を宣言
したやる必要があったけどね。
Cygwin入れれば cat -n で済む話なのかな?<lineno.c
枯れ木も山の賑い(藁
>178 kwsk
>180 knsk
dmtmgmrsdshtnargtgzmst
nnttnnkwkwkm
>>184 176です、Visual Windows for BC++ 私も使いこなしてない(普段はVC)ですし
使える道具かどうか判るほどに私のレベルは高くないのですが見てやってください。
ソースで気になったこと
じっくり読んだわけではないので間違ってるカモシレナイケド
int searchBaggage_volume_from_number(略)
{
struct ds_baggage BAG;
double number = 0; ←--------------
int lineno;
for(lineno = 1;
略
if(BAG.state == tenimotu && BAG.data->code == Item.code) {
number++;
}
}
number = floor( number / volume); ←floorのためにdoubleにしてるんですよね?
return (number);
}
Make.cで使ってる部分のを見てもdoubleが必要だとは思えないんですが
消費個数かなんかを計算するんですよね(違ってたらごめん)
単純に number, volume をintにして number=number/volumeじゃダメなんですか?
あ〜。そこは実は私も悩んでいたんです。
あの関数は、手持ちにある材料の個数を、製品1つに必要な材料の量で割って、いくつ作れるかを計算する関数です。
んで、材料の必要量は小数点以下も使って現したかったので、
アイテムの構造体にdouble(またはfloat)を使うのは先に決めていたんです。
そうでないと、表示とかでいちいち計算しなおさないといけないので。
んで、floorは、ついでに使ってみたかったってだけなのでいいのですが、
(int型/double型)で計算する時には自動的に型変換が行われるので、
(double型)/(double型)で計算してくれるから、問題は無いはず、だったんですよね。
だから、{int number= int number/ double volume } でもよさそうだったんですけど、
実際にやってみたら、うまくいかなかったんです。
int number が 10で返るはずが 9になったりして。
どうも計算機上の2進数での丸め誤差というのが問題っぽいのですが、よく分からなくて…
とりあえず、あれで直ったのであれでやっておいたんですけど。どうなんでしょうね?
ちなみに、テスト用に下の関数を作ってみたのですけど、処理系依存で結果が変わったりしますか?
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0055.lzh
>>186 176です、合成の材料に小数点使うんですね(余計な指摘をしてしまいましたゴメソ)
(テスト用のもの確認しました、悩んまれたところもわかりました)
/ の結果をintで取る場合は99.999でも99になるし、もうココは悩まずに今のままにされることで問題ないんじゃないですか?
コンソールAPIってのも渋いっすね
四捨五入したいなら0.5を足してみるとか…
四捨五入はdoubleの結果に0.5足してintに放り込む。 つーかそれ以外にやり方がない。切り下げと切り上げとifでやってもいいけど。
190 :
デフォルトの名無しさん :2006/01/09(月) 17:46:17
modf()
人妻の神話
>>186 console API は3つ STDOUTのハンドルを取得するのと出力位置制御APIですよね
どうせならReadConsoleとか
例
//一文字だけSTDINから読む
HANDLE hStdin = ::GetStdHandle(STD_INPUT_HANDLE);
TCHAR tcbuf[10];
DWORD dwReadcnt;
::ReadConsole(hStdin,tcbuf,sizeof(TCHAR),&dwReadcnt,NULL);
注:tcbufは1文字しかよまないので[10]もいらないですが (私の悪い癖です…
書き出しもWriteConsole()でやるのはどうでしょうね
そうそうSetConsoleTitle してやると画面のウィンドウタイトルが書き換わります
見た目も良いんですがユニークな名前を付けてやれるのでFindWindow()でHWNDを取得できます
今は関係ないけど知ってると便利かもしれません。(BCC5.5.1だとGetConsoleWindowのAPIが出る前なので)
最後にFillConsoleOutputCharacter()とFillConsoleOuputAttribute()も便利かも知れません。
ガンガッテくだしあ
>>195 194は154を踏まえてConsleのAPIについて語ってるように見える
(186本人が使っている範囲にあるAPIに非常に近いAPIだよな)
>>196 いあ、195の指摘通りです。
余計な発言だったように思う。今は反省している。
186さん思ったようにやってくだされ
>>195 の私的予想
1. スコープ解決演算子
2. 前スレで同じAPI群を紹介されたけど難しそうとかでスルーされた件
いや、2.は関係ないな。
話にならないな。
>>194 ありがと〜!
んでも、ゴメン。私のレベルはマジに低いので、
>console API は3つ STDOUTのハンドルを取得するのと出力位置制御APIですよね
の一文からして、呪文に見えてしまいました orz
今使っている <windows.h>の関数は、このスレで教えてもらったのを、
ほとんどそのまま使わせてもらっているものなので、
ハンドルとかアクセス権とか、私自身はさっぱり分かっていないんです。
なので、教えてもらった関数でググッてもよく理解できないので、
ゴメン、今やってるのは、このまま時代遅れにやらせておいてください。orz
これが一段落したら、これを移植する形でC++とかwin32APIにいくつもりなので。
(って、いつになるか分からないけど…)
>>201 ゴメンよう(涙
>>202 194です、呪文っすかorz
じゃあ、一個だけ呪文をどうぞ
Game.cの30行目あたりで画面の描画をしますよね
WriteScreenXXX が並び始めるところ
WriteScreeen_Frame(0) の前に
SetConsoleTitle("標準C専RPG");
とか入れてみましょう。まあ、文字列は適当で良いのですが。
これでゲームのタイトルバーに好きなゲームタイトルが入ります。
ありがと〜、できました!! なんかタイトルが入ると「自分のプログラムw」って感じがして気分がいいですねw ありがと〜!
206 :
デフォルトの名無しさん :2006/01/15(日) 09:26:37
207 :
デフォルトの名無しさん :2006/01/17(火) 18:43:26
3Dマダ ^〜^?
208 :
デフォルトの名無しさん :2006/01/17(火) 20:29:17
こんにちわ。質問をさせて下さい。
現在ブラウザからActiveXを介してローカルのEXEを起動するシステムを考えています。
いくつかのサイトを調査しました。その中でハ○ゲームのゲームインストーラの動作
を見ていて、よく分かりません。
ActiveX としては C:\WINDOWS\Downloaded Program Files\HgPlugiXJP21 Classとして
ダウンロードされています。
サイトからダウンローダーを起動しているHTMLは以下の通りでした。
location.href = "hangXme://
http://gamestring.hangXme.co.jp:10000/?k22e..なんちゃら ";
試しに【ファイルを指定して実行】で hangXme: と実行してみると、該当EXEが起
動します。これはプロトコルとして登録されているのでしょうか?よく分からないので
すが rundll32.exe msconf.dll とかが関係しているのでしょうか?
ちなみに 「ファイルの関連付け」としてはレジストリに以下が設定されています。
HKEY_CLASS_ROOT\HanGXme\Shell\Open\Command
値:C:\WINDOWS\Downloaded Program Files\HGStartXJP21.exe %1
で、hangXame: を実行するとHGStartXJP21.exeが起動します。
この辺の仕組みが分かりません。よろしくご教授下さい.
板違いでしたら申し訳ありません。
>>205 乙
テキストのみとは思えないクオリティすげーよ
210 :
デフォルトの名無しさん :2006/01/17(火) 21:27:48
>>205 すご、いつの間にかぐっとゲームっぽくなってる。
211 :
デフォルトの名無しさん :2006/01/18(水) 00:00:41
>>208 ActiveX使うんなら、そんな面倒なこと(プロトコルとか)しなくても普通にexe起動できるじゃん。
つか、locationっていうのにActiveXオブジェクトが割り当てられてるって事は無いよね?
213 :
デフォルトの名無しさん :2006/01/18(水) 06:47:32
>>208 ありがとうございます。そう言われればそうですね...orz
板違いの質問に答えて頂きありがとうございました。
214 :
デフォルトの名無しさん :2006/01/18(水) 06:49:55
↑
>>212 の間違いでした。ありがとうございました。
215 :
デフォルトの名無しさん :2006/01/20(金) 03:04:47
RPGのメインルーチンってどう書けばいいんでしょ? ○○FPSのような更新時間に上限をつけるのか、描画はPC性能限界まで やって内部の計算は別でやるのか、それともキー入力があるたびに 描画するのかどうするのが一般的ですか?
>>215 普通は、音楽とかのチェック・動き(NPCの動きとかも)があるから、
時間着たら書き換えて、Displayに表示=>入力処理(あっても無くても)=>その他の処理=>Dis(ryの無限ループでしょ。
219 :
デフォルトの名無しさん :2006/01/21(土) 09:32:23
さようなら
220 :
デフォルトの名無しさん :2006/01/21(土) 11:30:34
スレ違いだけどC言語関連だからここで聞きます。情報技術検定2級って3級と どう違うんですか?3級の問題集でも2級の勉強できたりしますか?
突然だが、CかC++でPS2用のゲームを作ることって出来るの?
>221 PS2Linuxってのが公式に出ていて、gccがついているくらいだからできるんでないか? もっとも、低級ライブラリだらけでコーディングもデバッグも難しいとか。
>>221 PS2用の開発環境があって、それを使って作ってるんだよ
プロセッサが違うから考えてるようなことは出来ないと思うよ
クロスコンパイルなら可能。(通常のGPL準拠で出回っているgccでも) エミュレーションはあきらめろ。さすがにそこまでのスピードは無い。 実は凶箱のほうがWindowsに近くて組みやすいらしい・・・
てか、×箱はDirectXだったはず。 あと@はWindowsCE積んでるから、Windowsで開発しやすいらしい。
>>227 217氏=標準C氏は取りあえず去ったようだよ
生きてる製作者は?
GDIでRPG作ってるんでしょうか?
>>221 メーカーが配布してる開発環境はC++
趣味でやってる人の中にもGCCで開発環境整えてやってる人いるね
起動させるには改造PS2が必要
BeatsofRageもそうじゃないかな
PS1のときは5000円ほどでパラレルと接続できる機械売ってたから楽だったんだが
もう入手困難
>>232 2005ExpressはUNICODEがデフォだから
TCHAR使えばいいのに、直にL付けちゃうから。
エルはラブのエル♪
(*ノノ)
年のばれる発言は大歓迎です。
239 :
デフォルトの名無しさん :2006/01/24(火) 21:21:22
マップがはみ出るのは仕様でつか?
はみマップハァハァ
誤って
>>232 のファイル消してしまいました。
問題になったのはwchar_t絡みというか、
wstringを使う→wcoutを使う→ロケール設定のあたりでしょうか。
ロケール設定の動作がVC7,8、BCC5.5.1で違っているのか、
L""の取り扱いの違いなのか、とりあえずワケわからなくなりました。
ロケールに関して理解しきれないのでwstringを使うの止めます。
>>234 マップ書き換え時に無駄な消去してたので
これを無くせば少しは良くなりますかね。
>>239 範囲のendを「書き込める最終位置」から「最後の文字の右下」に変更した後
チェック部分を修正してませんでした。
???
基礎からやり直せ
>>243 キミはこのスレに向いてないようだw
どこかよそへ行きたまへよ
>>245 実行すんの面倒だからバッチファイルぐらいつけてよ
247 :
デフォルトの名無しさん :2006/01/29(日) 17:24:26
はみマップまだ ^〜^?
僕はC言語を勉強したいんですが、まず、コンパイラーを探さないといけないので、 皆さんはどんなコンパイラーを使っているんですか? ボーランドですか? (突然スマソ・・・)
>>248 DelphiとVC++Expressです。
>248 C言語の勉強に使うならLSI-C86試食版かLight C体験版 C++の場合はgccのWindows版ともいえるmingwでできるはず。 Windowsプログラミングを学ぶ場合はVC++(Standardでかまわない。相当大規模とかで無い限りProfessional以上はいらない) もしくはBC++Builder。 コンパイラ単体ではなくIDEとセットでないと(Windowsの場合)開発は厳しい。 正直言って、C言語を習得するよりもWindowsのプログラミング手法を習得するのに苦労すると思う。
>>250 248はWindowsプログラムをやりたいと言っているわけではないのだから勝手に話を進めるのかはどうかと思う。
>>251 今時CコンパイラのついてないOSなんてWindowsぐらいのもんだ。
Windowsもコンパイラはついてるよ
255 :
デフォルトの名無しさん :2006/02/01(水) 00:22:24
まともじゃないスレに認定されますた。
>>248 Cを学びたいという段階なら ボーランドBCC5.5.1とCPadの組み合わせが良いだろう。
手始めとしては軽くて手軽。
(その後はUnix系、Windows系で分岐するし、CからC++かJavaかでも分岐する)
259 :
デフォルトの名無しさん :2006/02/02(木) 20:32:14
質問。 フェードインとかのアニメーション効果はどうやればいいの?
いろんなパターンの絵を作っておき、 ウェイトをかけながら絵を切り替える。
>>259 IDirect3DDevice9::SetGammaRamp
開発環境によるがDirectXならアルファ、ガンマ、パレットの3種類方法ある
画面を小さい矩形に区切って数ドットずつ塗りつぶしていく、なんちゃってフェードインも可
最近の機種ならHDR使っておもしろい効果が出せるかもしれんな、ビデオカードが限定されるが
262 :
デフォルトの名無しさん :2006/02/05(日) 16:47:59
キャラのアニメーション切り替えはどうやったらイイ?
265 :
デフォルトの名無しさん :2006/02/08(水) 02:42:27
別板、別スレでゲームを作ろうということになって、そこでCで作ろうとしているのですが、 Sourceを上げたら、ダメだしとか、アドバイスいただけますか?
>>265 いただけるという保証はできないが、そういうことしてくれる奴も
何人か居たことがあるようだ。
ここってそういうスレじゃなかったの?
>>265 ゲ製作のコンソールスレでコンソールRPG作ってる人?
>>267 ダメ出しするとウザがる人、人格批判を始める人など色々いるので
「採点希望」とか「叩き上等」など書いておいてくれるとありがたい
270 :
デフォルトの名無しさん :2006/02/09(木) 01:06:11
>>265 ちがいます。別のゲー製作板ではないところでやってます。
まだ序盤だと指摘しやすいかな
>>227 あ〜。それって呼出元の関数と呼出先の関数で同じような判定している所のことでしょうか?
それとも普通に、いらない判定があるのかな……ってか、ありますね。
だいぶゴチャついてきてるので、どこから直せばいいのやら… orz
試験勉強に飽きたのでワカメスパゲティを解凍してみたら、
現実逃避の逃避をしたくなってきた今日この頃… なんかもうダメポ orz
273 :
デフォルトの名無しさん :2006/02/10(金) 23:11:29
おひさです(>_<)ノシ
あんた早くwin32に移行しろって。 絶対その方が楽だよ。デキる人なんだから。
UMLとかデザパタとかやった方がいいと思うぞ
>>272 似たような人発見
頑張れ、俺も頑張る、GUI飽きたから
>>273 おひさです(>_<)ノシ
>>274 うわ〜い、ほめられたw ありがとうです!
んでも、とりあえずこれは、このままやってみます。
>>275 あ〜。そうなんですよね。分かってはいるんですけど…
本とかざっと見たところ、javaとかを基本に説明しているのが多くて、
よく分からなかったので、C++のオブジェクト指向のに移ってから、
やろうかなぁとか。思ったり思わなかったり……
ってか。UMLは一応試験範囲にあったりするんで、
本当はもう勉強しないといけないんですよね。 orz
>>276 うわ〜い、仲間だ。がんばるよ〜! そっちもがんばってね〜!
んでもって。不定期上げしときます。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0060.lzh マップ関係と[L][G]辺りをあれこれしました。
ソースがかな〜りごちゃついています。orz
後で後悔しそうだけど、ひとまず試験勉強に戻ります。んじゃ!
278 :
デフォルトの名無しさん :2006/02/13(月) 10:09:30
>>277 おお、どんどんと完成していってる・・・。
こっちは、まだキャラを動かすので精一杯なのにorz
いつか、追い抜いてやるぜー(^・^)
279 :
デフォルトの名無しさん :2006/02/13(月) 10:12:32
RPG造るのにCとか関係あるのか? グラフィック処理とかだろ? C/C++以前の問題じゃん。
280 :
デフォルトの名無しさん :2006/02/13(月) 10:32:07
( ゚д゚)ポカーン
281 :
デフォルトの名無しさん :2006/02/13(月) 10:41:23
一匹か
ああ、ツクールとかならC以前の問題だな、レベル的に
>>277 頑張るよ〜飲み会、バイト、勉強会であんま進まないけど
285 :
デフォルトの名無しさん :2006/02/13(月) 18:43:34
>>279 何がいいたいのか分からんが
スレタイも読めない奴だということは分かった
日本語勉強してでなおしてこい
286 :
デフォルトの名無しさん :2006/02/13(月) 19:33:44
おまいら、釣られ過ぎ。いくら過疎板だからといって、 ハァ・・
287 :
279 :2006/02/14(火) 09:37:08
恐らくこれは食い付いたとみせかけた逆釣り…! 罠!
グラフィック処理ってなに?
292 :
デフォルトの名無しさん :2006/02/15(水) 00:21:23
>>291 個人的には、見えない方がいいと思う。
・で表すのはなかなか良い案だと思う。
ソースが気になる。がんばってください。
294 :
デフォルトの名無しさん :2006/02/15(水) 00:33:27
>>293 うちのはちゃんと表示されてたよ。
( XP Progessional Version 2002 Service Pack 2 )
( 互換性モードは使ってない )
またバイナリ厨か。 そんなにバイナリ配布したいんならゲ製逝けよ。
>>293 仕様じゃないです。おかしいなぁ。
範囲チェックしながら全角一文字ずつ書き込んでいるだけどなぁ。
差し支えなければOS等環境を教えていただけませんか?
>>296 前回まではソース同梱だったんですよ。
今回は見た目にの部分でちょっとお聞きしたかったのと
関連部分のコードも汚かったのでご勘弁。
299 :
デフォルトの名無しさん :2006/02/15(水) 08:32:31
>>298 別に、296じゃないがプログラム板で、C/C++言語でRPGをつくってみるスレなんだから
バイナリだけならちょっとスレ違い・板違いっぽくおもう。
ただ、
>>297 は前にちゃんとC++のソースもくっつけてたから過剰に反応する296もどうかと思うが。
301 :
デフォルトの名無しさん :2006/02/15(水) 23:49:00
ソースだしても叩かれてパクられるだけじゃん
302 :
デフォルトの名無しさん :2006/02/15(水) 23:50:33
叩かれるためにうpすんじゃね?
304 :
デフォルトの名無しさん :2006/02/15(水) 23:53:26
真っ直ぐ叩かれるならいいけどさ 曲がって折られるだけじゃん
苦労してるんだな
知識とセンスのある叩き募集!
知識とセンスのある煽り募集!
知識とセンスのあるおっぱい募集!
kwsk
なあ、おまいら、MMOローグってあったらおもしろいと思う?
311 :
デフォルトの名無しさん :2006/02/16(木) 00:27:54
いや、もうあるから。
312 :
デフォルトの名無しさん :2006/02/16(木) 00:32:05
マジかよ タイトルきぼん
313 :
デフォルトの名無しさん :2006/02/16(木) 00:47:35
スレ違い、ゲ製でなら答える。
どういう根拠でスレ違いなんだwww
おまえらプログラムの話をしろよって話ですよ
結論からして、プログラム関連の話題は無しってことで
>>291 凄くイイ!
ちゃんと遊べるようになるの待ってます。
がんばってください。
319 :
デフォルトの名無しさん :2006/02/16(木) 23:00:23
↑こんなレスしかないならゲ製にいけって話ですよ どっちがいいのかぐらい言ってやれよと
イジワル言わないで下さい(><) 本人が言えるわけないじゃないですか(*ノェノ)
><
>*<
ヒント:過疎板の過疎スレ
ソース叩いてほしいけど 今のふいんき(なぜかry では晒せないなぁという感じでゴワスよ
326 :
デフォルトの名無しさん :2006/02/17(金) 01:27:46
今まで散々ソースうpしてきたのに今さらソースうpしなければ出て行けって変じゃね? 叩けるもんなら叩けよ
ソース+バイナリ>>ソース>バイナリ>>>>>>>>何もなし 名前を聞く前にまず自分の名を名乗れ、というのがあるが、 ソース公開を求める前に、まず自分のを公開しろという事だな。
>>325 気にしなくていいよ。
ここはプログラミングのスレだから、ソースコードに関する相談なら歓迎だ。
329 :
デフォルトの名無しさん :2006/02/19(日) 08:48:30
>>326 禿銅。
くれくれ君は正直イラナイ。
叩いてくれるならともかく、どうせ、いままでの経過見てもそれだけも事やった実績ないしね。
実力者はあんましいそうに無い。
悪ぃね、忙しくてソース追ってる暇ないんだわさ。 暇あるときは一応突っ込み入れてるんだけど。
C標準クンのソースしか読んだこともないな。
バイナリうpされてもDLする気にもならん
ゲームの評価してもらいたいならマジにゲ製作の方が良いと思うよ
>>326 散々うpしてきたってのも気付かんかったなw
このスレ自体が板違いみたいなものだからなぁ。
>実力者はあんましいそうに無い。 グチグチ言うやつはいつもいるw
今更いつの議論掘り返してんだよ
335 :
デフォルトの名無しさん :2006/02/19(日) 18:23:38
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< ソースまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | .|/
sage
今日日ロー具ですかorz
338 :
デフォルトの名無しさん :2006/02/20(月) 04:07:40
>>330 実力者キタ━━━━━━(゚∀゚)━━━━━━ !!
339 :
デフォルトの名無しさん :2006/02/21(火) 00:52:42
このスレ終ったな
______________________________
|
│
>>339 がこのスレを終わりとか言ってるぞ。 面倒見てやれ
└────────────────────────y─────
/⌒\ ∧_∧
( ) (´∀` )
| | ( つ
⊂ ヽ ⊂ ヽ ⊂ ヽ ⊂ ヽ ⊂ ヽ | | | | |
\\ ∧_∧∧_∧ ∧∧ | (_(_)
\ ( ´_ゝ`) `∀´>・∀・)*゚∀゚)・∀・)
> ⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ
/ へ \ へ \ へ \ へ \ へ \
/ / \\ \\ \\ \\ \\
レ ノ ノヽ_つノ ヽ_つ ヽ_つ ヽ_つ ヽ_つ
/ / / / / / / / / /
/ /| / /| / /| / /| / /|
( / | ( / | |\_|\_|\_|\_|\________
| | ヽ | | ヽ /
| |、 \ | 未だ終わってませんよー!
| / \ ⌒l | 標準C専とC++ローグライクが残ってまーす。
| | ) / \__________________
ノ ) し'
(_/
景気づけにage
341 :
デフォルトの名無しさん :2006/02/21(火) 22:42:38
まぁC+使わないとやってけない俺がいるわけで
342 :
デフォルトの名無しさん :2006/02/22(水) 00:18:21
・設計書が無い ・コード中にコメントが無い ・if節やelse節などを{}でくくってないところが多数 ・strtolの戻り値をlongで返してるのにlongで使ってるところが無い ・コーディング規約がばらばら ・関数名、変数名が分かりにくい ・ifの条件判定優先度が曖昧 ・ヘッダファイルが1つしかない ・ヘッダファイルが#ifndefなどによる多重includeガードが無い ざっと見た感じこんなところ。細かく見てけばまだまだありそう。 設計書が無いんで、コード全体の流れを追って矛盾点などを指摘するのは不可能 (暇な人ならできるんだろうが) これを全部追える人はヘンタイだろ。たぶん。
>>344 277か?
12月に見たときはざっとみれば大体解ったよ正月明けからは見てない
一時引退表明したからキッパリと見るのをやめている。
>>346 スタート時に壁(赤いスペース)が表示されていなく、
左に進むと、視界サイズを越えて壁が表示される。
↑環境は9x系ね。
349 :
デフォルトの名無しさん :2006/02/23(木) 20:28:47
('ζ_,` )
>>346 乙。
画面をもうちっと広いのを希望。
ソースは時間のあるときに読んでみます。
実力者じゃないので、評論できるわけじゃないけど・・・・・。
352 :
デフォルトの名無しさん :2006/02/23(木) 23:13:32
>>351 もかみさまになれるよ!
ハ_ハ
ハ_ハ (^( ゚∀゚)^)
('(゚∀゚∩ ) / なれるよ!
ヽ 〈 (_ノ_ノ
ヽヽ_)
353 :
330 :2006/02/23(木) 23:22:19
だから漏れは忙しいんだって。
354 :
デフォルトの名無しさん :2006/02/24(金) 00:04:17
>>354 おまえも呼んでないんでもう書き込まなくていいよ。
>>344 を雑音とか言ってるあたり、底が知れた奴ばっかだな。
typedef struct point_ { int x, y; } Point; C++なら struct Point { int x, y; } ; でいいやん。つーか、構造体typedefするって意外とオッサン?
CUnit::attack() // switchだとinline展開できないとwarningが出る warningでてもswitchのほうがよくない? 最適化したら一緒? むしろm_weaponをenumからクラスにして、short, long を派生クラスにして shortDistanceAttack()とかを仮想関数にすれば?
>>359 どんな警告が出るかはコンパイラによる。
インライン展開できない警告は正直あまり気にしなくてもよいと俺は思う。
>>358 意外とtypedefな若者は多いんだよ
Cをまず勉強してって感じらしい
>>356 344は一般論で終始してるからゴミ扱いされただけ
363 :
デフォルトの名無しさん :2006/02/24(金) 18:21:41
>>358 その書き方知らなかったぁあああ
勉強になた
構造体typedefてまずいの?
365 :
デフォルトの名無しさん :2006/02/24(金) 18:59:41
いつも typedef struct{ int x,y; }Point; て書いてる
構造体使わねー 全部クラスだけど使う方がいい?
C++だったらいらないんじゃない? Cだったらいるでしょ
>>366 struct なら public 書かなくてすむ
>>364 俺としてはその分打つのが面倒。
他人の書いたコードでは、ベターCとして使っているような印象を感じさせる。
>>366 目的で使い分けるといいでしょう。
ただデータの塊として扱うなら構造体でいいと思うし、そうでないならクラスにするべきでしょう。
コンストラクタや比較オペレータ以外のメンバ関数を具えたら恐らくそれはクラスとすべきだろうし。
#そういう意味では、publicメンバを持つクラスはなんか中途半端だね。
>>364 タグ名さえしっかりユーザー向けの名前がつけてあれば実害は少ない。
タグ名を省略したり _ とかつけて内部向けっぽい名前にしてると
前方宣言が使えなくてウザイ。
CとC++とC#、どこが違うのかワカラン。。。 親切な人よ、、、教えてくれえええええぇぇぇぇぇぇ!!!!
10行も書けば分かるよ
374 :
デフォルトの名無しさん :2006/02/26(日) 16:45:04
コードが晒されたら流れが戻ったか さすがム板
>>372 C 昔々Unixを高級言語で書きたいという願いから生まれた。
C++ CをOOPでもっと楽にしたいという願いから生まれた。Cのコードも大体受け付ける。
C# MSが.Netを流行らせたいと言う願いから生まれた。C/C++とは似て非なるもの。
>>372 にそんな書きかたしても絶対わからないと思うw
週末、いとこの家に行ってました。皆さんレスありがとうございます。
>>347 家には9x系無いのでついでにwin98でチェックしてきました。
確かにマップエリアがはみ出ている感じでした。
ただ、マップの文字はちゃんと表示されているので
SetConsoleTextAttribute()絡みっぽいです。
>>350 画面サイズ小さいですか。
>>358 その書き方知りませんでした。勉強不足…
C入門書2冊→C++入門書とやっているのでちょうど
>>361 な感じです。
Cでリスト作る時にtypedef structしたんでそのまま使ってました。
>>359 m_weaponは現在持っている武器タイプなんですが
敵には武器を持たせない、遠距離攻撃無しにしたので
どうもスッキリしなくなってきました。
せっかく同じ基底クラスからから派生させているので
敵とプレイヤ、近距離と長距離をCGamaMaster側では
意識しないでいいようにしたいと思います。
378 :
デフォルトの名無しさん :2006/02/27(月) 03:22:35
>>375 C#の説明は微妙に足りないな。
MSはJavaを見て脅威に感じ、.Netという Java と Java VM の考え方を
拡張したものを作り、更に Java をパクって C# を作ったんだよ。
MSはJavaにも手を出してたけど、Sunと喧嘩したからしょうがなくC#を作っただけだよ
C#はJavaのパクリ もうなんかCっぽくない
違いを聞いてるのになぜ生い立ちの説明?
生い立ちが違うから
383 :
デフォルトの名無しさん :2006/02/28(火) 16:14:44
1本1時間って長いなぁ 誰か見た人いたら概要希望。
微妙・・・ ふつうのプログラミング講座って感じだし・・・
386 :
デフォルトの名無しさん :2006/02/28(火) 22:54:46
発音聞き取りにくいんだけど機械読み上げか?
>>386 いや、人間がしゃべってる感じだろ、Ummとかしばらく間が空くところは人のリズム
ただし小さくて聞き取りにくいねえ
マウスカーソルがフラフラしてる
CUIですか
390 :
デフォルトの名無しさん :2006/02/28(火) 23:46:27
だな
もうCUIは無い
シープラでつくるならクイよりグイだな
Win32って意外とC言語で問題ないな 誰かC++じゃないと無理、C++のほうが向いてるって言ってたけど全然そんなことない
そりゃそうだ。 C++を使うのはWinAPIを使うかどうかとは関係なく、C++が便利だから。 ただしCOMはオブジェクト指向になっているからC++でないと面倒。
無理ってことは全然ないけど、C++が向いているってのはあるだろうな。 クラスライブラリとかを使うんなら、C++になるし。 SDKは関数呼び出すだけだからな。Cでも問題なし。
APIはもうちょっとオブジェクト指向でもいい気がする。 そこで.NETなんだろうがゲームには向かないしなぁ。
>>398 ハンドルとかウィンドウクラスとかめちゃくちゃオブジェクト指向だと俺は思うよ。
ATL::CWindowとかWTL::CDCとかは本当にラップしているだけで、
そのメンバ関数は単にWinAPIの関数を呼んでいるだけで他に何もしていない。
けれどそれでC++オブジェクトとしてきちんと成り立っている。
>>399 もうちょっと「オブジェクト指向」について勉強したほうがいい。
401 :
399 :2006/03/01(水) 21:53:37
多態じゃないところが好みで無いと?
「〜でググれ」や「〜の理解が足りない」といったレスは上手く使わないと 厨房の逃げ口上みたいに見えるお。
400じゃないけど ハンドルって単なる整数じゃなかったっけ? ウィンドウクラスもオブジェクト指向のクラスと関係なかったような気が。 違ったらスマソ
ハンドルは「オブジェクト(ウィンドウとかファイルとか)を指していて それを制御するための値」なので、 設計としてはちゃんとオブジェクト指向になってるよ。 というかWindowsとかのシステムが最低限オブジェクト指向にすらなってないと 設計で破綻するような気がする・・・
横だけど、う〜む、あれをオブジェクト指向と呼ぶのは、 やっぱりちょっと抵抗あるな〜・・・オブジェクト神の光臨キボン
>>406 どこらへんに抵抗を感じる?
Windowsだと確かにオブジェクト自体は非公開で
オブジェクトへのアクセスにはすべてハンドルを使わないといけないから
分かりにくいってのはあると思うけど。
>>407 .NET Frameworkが必要とか出て起動できないっぽい。
>>407 ソリューションかMakeファイルはないの?
>>407 ソース見たら「なんじゃこりゃー!」って感じですた。
絵はちゃんと出たので、動作はしてるかと。
winXP GeForce440 GO
キャラ歩かすとCPU使用率が100%になっちゃうのがイヤンな感じ。
>>408 スレ違いなのでほどほどにしておくけど、よくあるオブジェクト指向を
サポートしている言語で、書く感覚と違うところかな。
メソッドがオブジェクトにくっついていないような感じ、といった方がいいか。
例えばボタンを作るのにCreateWindowを使うとすると、このCreateWindowは
メインウインドウにくっついているメソッドではなく、ウインドウハンドルを渡して出力先を
メインウインドウにしている関数の感覚が強いって感じかな。
自分は概念的な話はあんまり好きな方ではない(ぐだぐだになる割に、実用的な
実入りが多いと感じない)ので、議論に参加するつもりはないんだけど、そういうのが好きなら
http://pc8.2ch.net/test/read.cgi/tech/1130061570/ なんかいいかもね。
415 :
デフォルトの名無しさん :2006/03/03(金) 00:12:25
>>407 このアプリケーションの構成が正しくないため、アプリケーションを開始できませ.....
とか言われて実行できないよ。
WindowsXPで .NET Framework は入ってる。
面倒くさいゲームだなぁ。 しかもスレ違いだし。
>>414 言語によるサポートを用いているとオブジェクト指向で、
言語によるサポートを用いてないとオブジェクト指向でない、
ということを言っているわけだな。
「言語とコードが悪いから設計を理解できない。
俺が理解できないからこれはオブジェクト指向じゃない」
という主張だな。
>>404 オブジェクト指向でいうところのクラスとC++のクラスは
だいたい対応してるけど、C++のクラスが使われてなくても、
オブジェクト指向の要求するところを満たした設計ってのは
あるよ。
だからわざわざ、ウィンドウ"クラス"なんて名称が付けられて
いるんだと思う(が本当はどうだか知らんけど)な。
スレ違い。そういう議論は向こうのスレでやってくれ。
ゲ製作のほうもよくわからない展開になってきた
>>418 1,5を読んで、WINDOWS APIがOOPかどうかの議論を含むと読むお前が池沼なのが解らんか?
>>407 VC++Expressインスコして新規で空のCLRプロジェクト作ってソースの追加したけど
コンパイルできないのでどうすればコンパイルできるのか教えてくださいおねがいします
うむ
427 :
407 :2006/03/04(土) 15:23:28
見てくれてありがとうございます。
>>410 本当は入れたいんですけど、なにやら個人情報が入ってそうだからとりあえず入れませんでした・・・。
次は入れてみます。userファイルだけ消しておけば平気かなぁ。
>>412 ソース解かりづらかったですか?まだまだ修行中なので・・・。コメントも書いてないですしね。
ボタンおしっぱにするとCPU占有しちゃうのかも?テストなので、すんません。
>>417 CLIはすれ違いですか?違う言語らしいのですれ違いかもですね。
まだ描画テストだけで、ゲームではありません。
ATLを使えば同じ様にできるのかな?
オブジェクト指向的にどうでしょうか?自分のソースは。
あんまりオブジェクト指向言わないでくれないか
>>418 みたいな池沼がわく
そうだな、オブジェクト嗜好は池沼さんの大好物だ。
>>427 ソリューションファイルをメモ帳へドラックアンドドロップしてみな。
どんなに恐ろしいIDEをもっても、たくさんの魅力的なAPIを操っても、 機械語から離れては生きられないのよ
ドドネトにインラインアセンブラ無いんだもん
プレイする側からすればインスコ/アンインスコが簡単でさくさく動けばいいわけだしな
>>431 CLIは滅びぬ、何度でもよみがえるさ、CLIの力こそ人類の夢だからだ!
自然言語がそのまま動くようになるよ
437 :
デフォルトの名無しさん :2006/03/05(日) 23:44:12
動けごま
......(・∀)
グラフィックライブラリ選んでる最中だがやっぱWin32APIがいいのか?
作るものにもよるだろ
RPGってだけじゃ判断材料足りない?
Win32API を知っててグラフィックライブラリの選択肢に挙げるような凄腕の奴に、恐れ多くて助言なんてできねぇ。
なんだ雑魚か
>>443 Win32API でゴリゴリとゲーム書いちゃう奴に敵うのがどんだけいるってんだw
普通、せめてライブラリ自作するだろw
>>441 2D, 3D また、どの程度のクオリティのグラフィックで、
描画速度も速い必要があるとか、
なんともビミョーな流れだねえ
447 :
デフォルトの名無しさん :2006/03/06(月) 16:49:24
>>445 フルポリゴン 32bit True Color 60FPS
Direct3D OpenGL CrystalSpace OGRE Irrlicht Luna Lamp(知らん) テキトーに好きなの選べよ、ググれよ、探してこいよ
フルポリゴン 32bit True Color 640×480 60FPS MMORPG
450 :
デフォルトの名無しさん :2006/03/06(月) 22:24:14
>>450 GDI+なんて使うくらいならWin32APIのがいいって。
SaGe4 はC++で開発してるけど、グラフィック処理を丸投げできるようなライブラリは使ってなかった。
>>453 2ch発のRPG。オープンソースのC++。ググれば当たる。
なんでこうゲームの根幹部分の話がメインになるのかね グラフィック操作で燃え尽きた低レベルばかりだからか? もっとゲームのロジックの話しろよ
グラフィック処理が高速化の最大のキモなんだが。 十分ゲームの根幹部分だよ。
457 :
456 :2006/03/08(水) 08:31:17
っと。すげー読み違いした。 確かに俺は低レベルだった。
タスクシステムつかってる?
RPGとタスクシステムは物凄く相性悪いよ
コルーチンの方が相性がいいね
タスクシステムってなあに? class task { public: virtual void do() = 0; }; class onany : public task { void dopyu(); public: virtual void do(){dopyu();} } こういうこと?
双方向リストで繋がれたオブジェクトに優先度などの付加価値をつけたもの ナムコの初期アーケード作品に使われていたと言われている 他の方法と比べてリストが1本しかないこと、メモリ効率が良いこと、速度効率が悪いことなどが特徴 書籍で頻繁に取り上げるようになったのは「Windowsプロフェッショナルゲームプログラミング2」あたりから なぜ20年以上たって流行りだしたのかは不明だがデザインパターンと同じで みんなが使ってたものにやっと名前がついたといったことだろう 個人的には多態を多様した実装は速度が落ちるのでオススメできない ところで多態の手段はいろいろあると思うんだがそのうちのひとつの動的リンクが全然通じなくて驚いた おまえら仮想メソッドをオーバーライドして上位クラス型の変数に代入し下位クラスのメソッドを 実行することを何て言うんだ? 手元の本じゃ動的リンクになってるしググっても一応出てくるんだが(もちろんDLLを動的に読み込むほうが先に出てくる) 話が通じなくて困ってる。英語でもいいから教えてくれ
ポリモルフィズム(多態)
464 :
デフォルトの名無しさん :2006/03/08(水) 22:06:32
>>463 オーバーロードとの区別はどうするんだ
あれは多態ではないの?
多態は実行時 オーバーロードはコンパイル時
>>464 subtyping polymorphism とかかな
ざっとタスクシステムの説明を見たが、とどのつまりstateっぽいシステムなんだな。 でも関数ポインタ使うなんてイヤンな感じ。 特別に取り上げるほどでもないと思うにゃあ。
469 :
デフォルトの名無しさん :2006/03/08(水) 23:59:21
>>465 うーん、オーバーロードは多態ではないといのはしっくりこないな
ポリモルフィズムは多態性と訳されることがある
そして、オーバーロードの説明に多態性という言葉は良く使われる
もちろん文脈で多態が何を指しているのかは通じるけど
オーバーロードの対がポリモルフィズム(多態)というのはどうも腑に落ちない
>>466 ありがとう
初めてみた単語だから調べてきます
多態で実装上の何を指すか通じるのは憂プラの影響かな
それで通じるなら定義だと思って覚えてしまうか・・・・
俺なら「仮想関数による多態性(ポリモーフィズム)」とでも言うな。
>>462 (469)
「仮想メソッドを実行する」でいいだろ。
呼び出す側はそれがオーバーライドされたものかどうかなんて知ったこっちゃない。
え?何の話?
473 :
465 :2006/03/09(木) 00:14:24
あーごめんなさい多態を「オーバーライド」に脳内変換してた。 同一のインターフェイスを持つオブジェクトを実行時に置き換えるのが 多態だと刷り込まれてたんで。
>>462 それはリンクじゃなくてバインドってのが言語界隈では普通だと思う。
遅延束縛やレイトバインディングという。
実行時にメソッドを検索して解決するのは動的束縛やダイナミックバインディングという。
静的リンクや動的リンクといえば、 オブジェクトファイルをリンクするのが コンパイル時か実行時かってことだろ。
476 :
407 :2006/03/11(土) 06:20:46
アニメーションとか出来るようにしたりしました。
オブジェクトからの継承はとりあえずやめておきました。
しかし、ちょーーーーーーーーーーーーーおせぇーーーーーーーーーーー!!!!!!!1
C#で書かれたスーパーマリョさんのコードを見ても、
イメージファイルを個別に作っているくらいしか違いがわからない・・・。
なんであんなスイスイなんだろう・・・自分の汚いコードが原因なのかしら・・・。
こんなんじゃイベントとかに進めないっ!!
あと、今は適当にしてるんですが、
マップとアクター(又はプレイヤー)の関連付けって何処ですればいいのでしょうか。
アクターがマップを参照しているのか、それともゲームクラスみたいなのを作ってそこでニャンニャンするのか・・・。
どうか半人前にご教授お願いします。言われた通りにガンガン直します。
いざとなったらネイティブでもやります。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0064.zip 一応ソリューションつけました。VS2005です。
あ、まだコメントとか付けてません。すいません・・・。
C#のGraphics使ってゲーム作ろうとする奴は頭おかしいが、あのGraphicsを設計した奴はもっといかれてる
C++/CLIならLunaとかSDLとか使えるんじゃないの?
480 :
407 :2006/03/12(日) 04:16:49
>>477 ちょっと作ってみたかったんです。
>>478 使えるんですかね?アンマネージとか良くわからなかったり。
使うならいっそネイティブでみたいn
>>476 設計書の書き方わかりません・・・。
ちと調べてみます。
481 :
407 :2006/03/12(日) 16:34:56
>>476 でImageをオブジェクト毎に作る意外に違いがねぇーって言ってたらそうでした。
元画像をImageに分割してコレクションするようにしました。ウチのPCでぬるぬるです。どうゆうことでしょー。
しかもさっきまでBitmapをCloneで分割していたら何故かOutOfMemoryの例外が・・・。
VS上の実行じゃ投げられないのに。Graphicsで描画するようにしたら直りましたが。どうゆうことでしょー。
つぎはなんだろう。イベント?アクション?
イベントとアクションは関連しあってますよね?アクションの集合がイベントみたいな。
どうなんでしょ。わかりません。
そのまえにコメント書いたほうがいいのかなぁ。マップも当たり判定とかつけないと、です。
はぁ、このままだと自己満になりそう。もしなったらゲ製に・・・。
あとソースを見た方がいて、気になった点とかあったらご指摘お願いします。ガンガン。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0065.zip
みんなどうやってC++とか学んだ?
>>483 聞いてくれるかい。
VBを始めて5ヶ月ぐらいで完璧(笑)にマスター(笑)したので、アカデミックパックのVC++をヤフオクで買った。
win32プロジェクトのスケルトンを見て絶望の淵に立たされ打ちひしがれ頭をかきむしり1日で放棄する。
以後2年間JavaとC言語との格闘を続ける。
そしてポインタ完全制覇を読んでポインタを理解し、次いで鬱なオブジェクト指向を読んでクラスの必要性を学んだ!
それはまさに私がアレフガルドに降り立った瞬間だったのだ!
あの時、もう駄目だと思いました。しかし、私の夢であった「自分でゲームを開発したい」という大きな情熱が、私を救ったんです。
・・・今?今はC++のおかげで妻も子供もでき、ちょっとした会社の社長をやっています。ありがたいことにね。
本当に「ポインタ完全制覇」と「鬱オブ」「C++」さんには感謝しています。多分、彼らとの出会いがなければ、今の私は存在しなかったでしょうから。
その後私は事故の後遺症もなく元気に暮らしているという。
>>483 入門書、仕様書を読む
自分でコードを書く、捨てる、読む
ネットでコードや記事をググる、読む、漁るを
繰り返してる
>>483 周辺ツール作るときは無理やり使ったことの無い技術要素を使うようにしてる。
C++ もそうやってダメ設計を何度も繰り返して学んだ。
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
┃_・) タダ.イ..マ...
493 :
デフォルトの名無しさん :2006/04/17(月) 02:03:16
おかえり(´ー` )ノ
元気? (´ー` )ノ
ありがと〜(´ー` )ノぼちぼちですよ〜
つか。
解凍したワカメスパゲティをちょこちょこ突付いていたのですが、
なんていうかこう、色々と腐っていたので、落ち込んでいます。
また初めから作り直そうかなぁとか、オモッタリオモワナカッタリ。
いわゆる1つのスパイラル開発の実地演習ってやつですね。とか、言ってみたり。 orz
んで。やるなら外部仕様から手直しして、
>>344 さんの指摘にもあったコーディングルールとか諸々も、
今度は意識して作れたらいいなぁとかオモッタリオモワナカッタリ。
実はどこから手をつけようか、途方にくれている状態だったりします。
あ。でも。とりあえずまだ当分は、標準Cメインでやる予定ではいますw
お帰り。
>・タブは半角3文字。 がちょっと気になった。 なんで3文字なの?
> ソールファイルを置かない。 > 誤字脱字スペルミスは気にしないw 独りワロスね…萎えた
>>497 コーディングルール見ただけでコード見る気が失せるわ。
突っ込みほしいんなら見てもらうつもりできっちり書けよボケ。
501 :
デフォルトの名無しさん :2006/04/25(火) 01:29:01
これはヒドイ
> char msg_s[2000]; //→仮置きに十分な大きさ > vsprintf(msg_s, err_msg, args); これはやめとけ、snprintfとかにしとけ。 >void Err(const char err_msg[], ...) 引数の...もいやだね。
そうだな・・・
このコーディングルールもうちょい分かりやすくする必要あるんじゃね?
たとえばenumの変数名には頭文字にeでもつけるとかさ。
va_list型とかtypedefする必要性ないと思うんだが・・・。
読みづらくするだけだ。
このソース、
見るのにだるいのもあるし、クラス化できるものはしてしまったほうがいいぞ。
たとえばメッセージに関するもんとかできるしね。
後は
>>502 と同意。
みなさん、レスありがとうです!
>>498 あ〜、それは普段エディタを二つ並べて作業をしているので、
1行の最大文字数が少なめに書いているんです。
だから、タブもなるべく少なめにしたほうがいいなぁと。
他の人のを見ると半角4文字以上が多いみたいですね。でもキニシナイw
>>499 あ〜、それ天然です orz
>>500 >>501 ・・・しまった、言い訳できない。orz
自覚はあるけど実力がないので、アレですけど、前向きに善処します。
>>502 ありがとう、snprintfの存在をきれいさっぱり忘れていました。orz
>>void Err(const char err_msg[], ...)
>引数の...もいやだね。
これは、エラーメッセージには変数の状態を含めて表示したかったのですが、
そういう時は、呼び出し元でsnprintfとかで文字列を作ってからErr()に渡した方が、
いいということなのでしょうか?
それだと、呼び出し元に書くコードが長くなるのでイヤなんですけど、ダメですか?
>>503 >va_list型とかtypedefする必要性ないと思うんだが・・・。
ゴメン、していたつもりはないんだけど、どこのことですか?
あと、クラス化はいちおうファイル毎に分けることでしているつもりなんですけど、ダメですか?
>>504 うん、それは私も思った。いちおう書式は決めたから分かるかなと。
んでも、大した手間ではないので、直しておきます。
>>505 503はCだということを失念されただけかと。
「クラス」という言葉はしばらくの間忘れていいと思う。
standard.hの名前は置いておくとして、
各機能毎に外部公開用ヘッダを作り、必要に応じてインクルードした方が良い。
input.c の外部公開関数を standard.h に書かずに
input.c の外部公開用ヘッダを作り standard.h でインクルードする。
そもそも、その機能がプログラム全体で共有される必要があるのかも再考のこと。
ttp://kmaebashi.com/programmer/c_yota/module.html これが絶対というわけではないけど、参考として。
>>505 > snprintfの存在をきれいさっぱり忘れていました
あれ?BCC55じゃなかったっけ?
508 :
506 :2006/04/26(水) 23:20:06
あと、standard.h、standard.cは名前と提供する機能が一致していない感じ。 ClearとErrとでは関連がイマイチ。 画面描画を機能として切り出した方が良くないかな。 screen.c / screen.h とか。
510 :
デフォルトの名無しさん :2006/04/27(木) 03:30:27
それにしても、タブは半角 2 個分か、4 個分のどっちかだろう普通。 異端児なのは分かった。
>>506 そこで参考になりそうなところはどこ?
インクルードガード以外は微妙な気がするが
>>504 そういう命名規則があるんだよ。メンバ変数にはm_を頭文字につける。
ポインタならpを頭文字にって感じに、ぱっと見に何型なのかをわかるように。
>>509 悪かった、スレタイにC++って書いてあったからクラスもokだと思っていた。
でもbetterCのが見やすいってのもあるし、
手続き型指向から、オブジェクト指向へ転換も出来やすい。
余裕があれば検討の程を。
事情もないのに好んで型情報を変数名につけるやつなんているんだね。 動的型付け言語だとか型の扱いがひどい環境だとかならいざしらず。
おいおい、事情がないって、本当に開発やったことあんのか? 仮にも人に見せてるソースならそういう風に書かないと ブラックボックス化していくだろうが。 自分ひとりのプロジェクトソースなら別にいいんじゃね?好き勝手につけて。 ローカル変数ならいざ知らず、グローバルにする物は普通つけないか?
>>516 ブラックボックス化が悪いことだとは思わない。
たとえば C++ 標準ライブラリではそういう型情報を表す
プリフィックスは付いていないが、それで困ることは無い。
つ[namespace]
やあ。C言語の勉強が一通り終わりました。 RPG作りたいけど、GUIのプログラム作るの大変すぎる みんなどうしてんの? ゲームの場合はDirectXだろうけど、 DirectX自体の文法もCオンリーの頃に比べて複雑なんで戸惑っています。
>>513 enumはそれぞれが別個の型だから、
一律にeというのはそぐわないと思う。
一律とはいってないんだが・・・(;´Д`)
>>たとえばenumの変数名には
っていってるだろ。ただ分かりやすく書くのに越したことないはず。
まあ今仕事で辞めた人のライブラリ直してるんだが、これがドキュメントもなくて
尚且つ変数等がブラックボックス化して解析に時間かかってるんだ。
分かりやすく書くというのはけして無駄ではないと思う。
仕事で引継ぎの人のことなど考えれば尚更かと。
>>519 DirectX使うなら、COMとかの知識もいれとくといいよ。
DirectXは難解すぎるので、馴染みやすそうなSDL始めた。 今、ようやく画像読み込みできたところ。 道は遠いなあ
>>522 「たとえばenumの変数名には」→全てのenumの変数名に→一律に
こう解釈したんだけど。
525 :
デフォルトの名無しさん :2006/04/28(金) 22:46:21
>>519 >やあ。C言語の勉強が一通り終わりました。
どのていどで一通りなのかコード晒して欲しいもんだ
>>524 考え方の違う以上、これ以上の議論は無駄と思うがね。
ちなみに
俺のenum変数名の癖は
enum eCategory
{
eRed,
eBlue,
}
こんな感じか。ctrl+spaceに頼りまくってるんで、俺はこれの方がしっくりくる。
>>526 素朴な疑問なんだが、そんな短いシンボルでよく名前が衝突しないな。
漏れなら enum Category {CategoryRed, CategoryBlue}; とするところだな。
#多くの汎用ライブラリの定数値は大抵こういう名前の付き方になっているわけで。
>>526 >考え方の違う以上、これ以上の議論は無駄と思うがね。
やっとそこに気がついたか。
529 :
デフォルトの名無しさん :2006/04/28(金) 23:51:03
>>527 クラス名。赤
クラス名。緑
てな風にしないの?
なにここってコーディングルールを論じるスレ?
アルゴリズムやデータ構造の話ができるレベルの物が出てこないんだからしょうがない
>>527 >>518 に書いてあるように、namespaceを使えば
名前空間の汚染が避けれて、競合はなくなるからこれでいけるんだよ。
>>526 その考え方というのが、おまいは、「馬鹿を基準しよう」と言っているのと同義だ。
モジュール(もしくはクラス)宣言が200行程度なら、隠蔽される名前はローカル変数程度の緩さの命名で問題は出ないだろう。
m_ は読む分には慣れたからもういいが、なんでパブリックメンバにまで m_ プレフィクスつけるかね?
まさに馬鹿基準。
命名規約ごときで議論してんじゃねーよ馬鹿が。
列挙子のことを「enum変数」っていうのは普通じゃないよな? 「enum変数」って言ったら「enum型の変数」のことだと思うんだが。
>>534 あのさ、おまいこそバカだろ?
>>考え方の違う以上、これ以上の議論は無駄と思うがね。
ていってるのにまだ議論しますか?
お前の考えかたと俺の考え方が根本的に違うわけ。
>>536 言葉が舌足らずで申し訳なかった。(;´Д`)おっしゃるとおりです。
>>537 enum に e つけるんだったら、 class だと c つけるの?
ほんで bool の変数に b つけたり int の変数には i つけたりすんの?
フラグ的な変数には俺は f_ をつけるなあ。 intやstringは一目瞭然だからつけない。
で、bool型変数はそもそも使わない。 大体はBYTE型で十分だし、2値なのにサイズが大きいし、他の言語ではサポートしてないことがあるし。 ……てなふうに各人が変数の命名規則について語るスレだったっけ?
541 :
519 :2006/04/29(土) 10:07:27
>>525 入門書を一通りさらっただけ。
大したことはできないけど、基本文法は分かる
これより先は、実際に組みながら覚えた方が効率が良いなと思って。
>>533 試してみた。SDLよりわかりやすいしDLLたくさんいらない分
取りかかりが早い。
でも初期化に時間かかるし、なんか遅いような…
SDLでもうすぐテトリスができるんで
それ終わったらDXlibでなんか組んでみます。
>>541 (519)
それは、なんかグラボとかの相性が悪いのかもしれん。
作者の掲示板でも同じような内容かいてる人がいたし。
まぁ、元々SDLでテトリスつくれるなら、
あんまり必要なかったかもしれない。
>>540 命名規約議論は終わりにしましょうっていってるのに
蒸し返す香具師がいる。
>>544 気持ち悪いし、スレ違いだからやめろって。
SDLは日本語表示だけが問題だな。 C++でうにこーど使うのすげーめんどくさい。
うに
548 :
521 :2006/04/30(日) 12:59:55
>>526 今更だけどおれだったらこうするということ。
enum Category
{
ctRed,
ctBlue,
};
<チラシの裏> 異端児?→魔女狩り?→火あぶり Σ (゚Д ゚ ;) しゅ、宗教戦争はよくないと思うのココロ(´・ε・`) ってか。本とか見てもその辺りは様々で混乱気味だったりするんですけど。 とりあえず私のは、私一人で書いているし規模も大きくないので、 1つのプログラムで統一されていればいいやということにしておいて欲しいなぁとか思ったり。 とかいいつつ。なんかまだコーディングルールの書き直しもできてなかったりするんですけど。orz ってか。画面表示用のデータを動的なリスト構造にしようと思いたってあれこれ始めたんだけど、 全然できなくて泣きそうです。リストのバカ〜! ポインタなんかキライだぁ〜〜〜!!! </チラシの裏>
>>549 つ[std::list]
冗談抜きで、C++にすればその辺は楽ができる。
>>549 技術的なメリット、デメリットが無ければただの宗教論争だが、
あんたのコーディングルールやスタイルには明らかなデメリットが多すぎる。
マクロを使えばテンプレートも実現できるから がんばってstd::listを標準Cで実装しる。
553 :
デフォルトの名無しさん :2006/05/01(月) 13:50:41
>>549 無理にCにこだわらずC++のSTLくらい使ったらいいんじゃないか?
明らかにCで実装するには、非効率に思うが。
vector、list、mapあたりはちょー便利だしさ。
すまんageちまった・・・orz
>>549 551はまたもや明らかなノイズだから無視しておけ
しばらく進展なかったからお気に入りから外してたら… おまいらなんだか楽しそうだな。
おまいらまとめサイトをなんとかしろ・・・
掲示板がもうorzだな…
C言語は覚えたので、誰かチュートリアルとして 体系的にわかりやすく解説するページ作ってください(><)
○投げ
>>559 ・マップ表示させてみる。
・キー入力処理を入れてみる。
・キャラの操作を入れてみる。
・コマンドを実装してみる。
*****(話す・ステータス・調べる)
・戦闘を考える。ルールを明文化する。
・1対1の戦闘を実装してみる。(非魔法使用)
・戦闘魔法の実装をしてみる。
・多対多の戦闘を実装してみる。(魔法使用可)
・コマンドを実装してみる。その2
*****(話す・ステータス・調べる)+(アイテム・装備・魔法・セーブ&ロード)
・イベント処理を本格化してみる。
More and More......
>>550 >>553 あ〜。それ前にも言われたんですけど、
いちおう私はプログラムの勉強のために作っているので、
C言語勉強しているのにポイントとかリスト作りから逃げてたら、
ダメかなとかオモッタリオモワナカッタリ,イヤチョットハ,ユライデタリモシテタリスルンダケド...
なので、もう少しガンバッテミマス。んでも、グチらせてください。orz
>>552 いや、それはいくらなんでもムリですw
>>551 あ〜、ゴメン。
そういえばまだ、コーディングルール書き直せてないです。orz
>>557 >>558 アプロダを便利に使わせてもらってます。orz
管理人さんはお元気なのでしょうか? しばらくみかけませんね。
>>559 良いページ見つかったら私にも教えてください(><)
んでもって。GWの成果物を上げしておきます。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0068.lzh いちおう画面表示用の関数はこれでいいことにしようかと。
ってか、実は free でつまずいたので、
開放はしないことにしてしまったのですが、
プログラムの最初から最後まで変更無しに使う予定のリストだから、
大丈夫ですよね? ドキドキ
elが非常にCライクで初心者にも扱いやすいから これでゲームとか作り始めたけど ライブラリが古いからMP3とか再生できんなorz 他のライブラリはSDLとか試したけどちょっと自分には難しかった。 DXライブラリは遅いし…
ゲーム同梱は普通wavだからなぁ。市販品でも。 oggデコードを自力実装するのがいいんじゃないでしょうか。
ライブラリ有りなら割とYaneuraoGameSDKがお勧め。 描写が早い。mp3,ogg対応。
C++分からないからYaneSDKは見送りました やっぱC++やった方がいいのかなあ どんどん目的から遠ざかるなあ
>>563 > ってか、実は free でつまずいたので、
> 開放はしないことにしてしまったのですが、
C/C++ を使い続けるつもりがあるなら、大丈夫じゃない。
あきらめて Java/C#/D などに移行するつもりなら大丈夫。
やねうらおって、次々と似たようなライブラリ作るけど、 古いのもちゃんとメンテしてるのかね。
>>570 今見てきたけど、ドキュメントもチュートリアルもないから
どんな機能があってどう使えばいいのかまるで分からん
573 :
550 :2006/05/07(日) 20:11:33
>>563 Cのみ勉強して今後もC++に移行しないのなら自分でリストの実装くらいできたほうがいい。
そうでないなら、そんなところに時間を掛けるほうが無駄。
まぁ、ポインタは勉強して置いて損はないと思うが。
ソース読むぐらいなら自分で作った方がいいような。 やねうらおのはやねうらお本を買わないとわからないようにしてるんだろ。 そうしないと本が売れないから(pgr
575 :
571 :2006/05/07(日) 20:17:55
ソース見たら分からんこともなかった。 でも、一覧にして欲しいなあ
やね本2持ってるけど、ライブラリの使い方なんてカスリもしてねえ。 Yane3RDはソース読み取り能力がなきゃ話にならないマゾ仕様。
てか、やねソース見るぐらいならLuna使った方がいい気がする。 サンプルソース多いし。ドキュメントはDoxygenで変換したのしかないけど。
>>577 doxygen使ってみた。
すげえな。こんな便利なツールあったのか
>>573 あ〜、そうなんだ。どうしよう…
てか、ぶっちゃけ、移行するつもりはあるんですけど、
この前の試験にはどうやら落ちたっぽいので、次回もCで受けるつもりなんで、
今は別のに手を出す頭の余裕がなかったりするんです。
リスト&ポインタ関係ワケワカメなのがさらに混乱しそうなので。
んだから、もう少し、時間かけてみます。
(んで、試験受かったら、先にJAVAに寄り道しようかなとかオモッタリオモワナカッタリ。
どっちにしても、かなり先になりそうだけど。)
>>569 _| ̄|○ ナオシイッテキマス...
てか。皆さん色んなライブラリやツールを使ってるんですね。楽しそうだなぁ。
>>580 >リスト&ポインタ関係ワケワカメなのがさらに混乱しそうなので。
リストとポインタを同列にしている辺りがだめぽ。
リストはアルゴリズム ポインタはC言語の機能
Σ(´Д`;) ガガガガァァァ〜〜〜〜ンン! でもでも、リストにもポインタ使いますよね? あと、実は2分探索木とかもかなりあやしかったりします。orz (使う予定はないけど)
俺だけかもしれんが、AA多用はうざいんでやめてくれない?
実はおれも思ってた 携帯気分で書いてるんだろうな まあ、いいけど
俺は馬鹿っぽくていいと思うぜ。
作品うpってから言えな
>588の作品に期待
>>580 無理に C++ にしなくても構わないと思うが、
とりあえず拡張子を cpp にしておいても
多分実害は無いから、しときなよ。
拡張子 c でもクラスや[std::list]言い出す奴がいるからやめとけ
結局ここって標準C専 ◆382ingG3ecがゲームつくるスレ?
おめぇさんが作ったっていいだぜ。 必要なら、仲間を募っても悪いってわけじゃないしな。
595 :
デフォルトの名無しさん :2006/05/09(火) 21:39:42
ageてみる
>>583 遅レスだが、イテレータとポインタがごっちゃになってないか?
操作法は似てるけどね。
そんな感じがした。
イテレータなんて言葉知らないんじゃないか
Cだけを極めたプログラマは地獄の家電・携帯業界しか道はないのに…。
>>596 リストと書いてあるだけでiteratorと思うキミもシロウト臭すぎなんだがな
>>585 >>586 >>587 あ〜、そうですか…
え〜と、バカっぽいのはバカなんでアレですけど、
うざがられるのは困るかもなので、それじゃ、自粛する方向で気をつけます。
>>590 >>591 >>592 え〜と。なんか分からないけど、とりあえず、やめておきます。
ってか、 cppにすると何かいいことあるのでしょうか? ワケワカメ
>>596 >>597 あ〜、実は知りませんでした。んでもってググってみました。
そうです、やりたいのは、それです。
リスト作って順繰りに検索していくやつ。難しいです。
>>598 え〜と。私は別に極めたいわけじゃなくて、C++とかに移る前に、
基本的なところを分かっておきたいだけなんですけど…
>>600 cpp にしとくと C++ でコンパイルされて、いくらかチェックされる項目が増えるので
C に起因する悪癖が身に付く可能性を減らせる。また、徐々に C++ に移行しやすい。
>>599 ま、素人ですよ。否定はしない。
STLのリストの操作方法を言ってると思ったんでね。
>>600 CでのListに拘るならチェインかね。
まあ同じ初心者同士頑張ろうじゃないか。
>>601 なるほど。そうだったんだ。ありがとう。
んでは、こんどcppにしてみますね。
>>602 ありがとう。がんばりましょう〜。
604 :
デフォルトの名無しさん :2006/05/11(木) 01:07:04
馬鹿
流れをぶった切って質問させてください。 2DRPGフィールド上キャラ同士の当り判定で、円でしてるんですが →○○←こういう風にぶつかったとき引っかかって動けなくなるので →○ . ○← こんな風に、にゅるっとズレるようにするためにはどうすればいいのでしょうか? 1対1のときはなんとかできたのですが、密集したり上に別のキャラが居たりすると . ○ →○○← 今度は上のキャラも移動判定しなくてはならなくて 判定の連鎖が起きて収拾がつかなくなります。 キャラ同士であっちにめり込んだりこっちにめり込んだり・・・orz
Cでlistのイテレータを使いたいなら要素へのポインタをtypedefして for (pos = list_begin(ls); pos != list_end(ls); pos = pos->next) { ... } こんな感じか? begin()は最初の要素、end()は最後の次の要素を示すイテレータを返す。
>>605 再起ネストでずらし続けるとか、
粉流体のMDみたいにするとか
>>605 具体的に何が問題なのか、そもそも「にゅるっとズレる」が何なのか、
イマイチよくわからないので、とりあえず適当に口出ししてみる。
if ( !move( 方向1 ) ){
pfld_chara = &ぶつかった相手;
while ( !pfld_chara->move( 方向1 ) ){
方向1 ++;
if ( 方向1 == 自キャラに向かってくる方向 ) breakとかcontinueとかをお好みで;
}
}
移動の無限連鎖が嫌なら、移動にpower、キャラにweightとかの属性を付けて、無限防止にするとか。
if ( !move( 方向1, 押す力 ) ){
pfld_chara = &ぶつかった相手;
if ( pfld_chara->重さ < 押す力 ){
while ( !pfld_chara->move( 方向1, 押す力-1 ) ){
方向1 ++;
if ( 方向1 == 自キャラに向かってくる方向 ) breakとかcontinueとかをお好みで;
}
}
}
ソースの整理の仕方がよく分かりません。 elだと割ときれいなソースになるので 1ファイルがどんどん長くなっていくんですが。。
クラス1.h クラス1-1.cpp, クラス1-2.cpp … あとはお好みで記述すればいいんじゃないでしょうかね。 virtual関数を纏めるとか、privateを纏めるとかそんなノリで。
簡単なのは、めりこんでもいいなら、 1)全てのキャラ同士の距離を計算 2)キャラAとキャラBの距離が一定以下なら、近さに応じて、相手と逆方向に斥力を出す(用調整) ※1相手と逆方向というのは、位置関係において ※2位置関係と速度が釣り合うとズレなくなるから、工夫するか面倒くさかったら乱数を足す ※3斥力というかただの速度ベクトル 3)2を自分以外の全てのキャラに対して計算して全て加算する 4)全てのキャラの斥力が出たところで、斥力を全てのキャラの座標に加算する めりこみ有りで飛ばす力が少なめで距離によって大きくなるモトスだな。
なるほど、自分が考えていた衝突判定じゃ対処できないわけだ・・・ レス有難うございました、非常に為になります。 いろいろやり方があるんですね。
>>612 描写処理は2Dだが、衝突検出には3Dライブラリのエンジンを利用する。
という手も有る。
>>612 衝突処理のアルゴリズムだけ纏めた本が確かでてた気がする。
そういうのもみてみると面白いかも。
>>615 人にエラーの相談するときはエラーメッセージ貼れ。
問題が再現する最小のコードを作ってみるといい。
>>615 BCCでなくVCで.cppにしてコンパイルしてみたが
static関数でのエラーはならなかったが
unsigned char *からchar *の型変換(または逆)が大量に出てた
あと変数名でnewって使ってるけど、C++だと予約語だから使えないのでエラー
直すのが面倒だったので、直したら他のエラーが出るかもしれんが
>>616 ゴメン、そうだよね。昨日は眠くて投げやりになってました。申し訳ない。
んでもって。エラーが出てたのは、関数ではなくenum宣言の所でした。
static付けたらヘンなのは当然で、今やったら、そこは問題なくできました。お騒がせしました。
>>617 ありがとう。newが予約語にあったとは、知りませんでした。
あと、いつもbccコンパイラで -w4 のエラー検出が少し緩いオプションにしていたので、
気付かなかったのですが、文字列のデフォが signed char なのを、unsigned char だと、
なぜか勘違いしていたので、大量のエラーに繋がったようです。
unsigned を抜けば直りそうなので、なおしいってきます。
つか。画面一杯に流れ去る警告表示の嵐は、久しぶりに見ました。orz ベンキョウシヨウ
>>618 C++ では、文字(列)は signed char でも unsigned char でもない char だよ。
>>620 「C++では」
↑ここらへんがヴァカ。
「signed char でも unsigned char でもない ((char)) だ」
↑ここらもヴァカ。半端に知ったかワロス
>>623 お前の国では正しいことをヴァカと表現するのか?
いいや。正しくないからヴァカと言っている。 噛み付く前によく調べろよ。
どうでもいい
分かっているなら、誤解させる言い回しするな。
630 :
デフォルトの名無しさん :2006/05/16(火) 22:44:05
俺も
>>620 のどこがヴァカなのか理解できんなぁ…。
C++の場合、修飾のないchar、signed char、unsigned charは
それぞれ別の3つの型として扱われるわけだよね。
charが、signed charかunsigned charになるかは実装依存だし、
となると、文字定数や文字列リテラルがsigned charあるいはunsigned charで
固定されてしまうとソースレベルでの互換性がなくなるよね。
よって、文字定数および文字列リテラルは、
修飾のないcharでしかありえないってことになるけど。
間違ってること言ってる?
>>630 そんな理屈であれば C でも言えそうになってしまうので、たぶんそれは関係ない。
cout << c としたとき、小さい整数としての signed or unsigned char と
文字としての char を分けたかったんじゃないの?
>>632 がんばって日本語読めるようになろうな。
634 :
デフォルトの名無しさん :2006/05/17(水) 00:24:11
とりあえずスレが活性化されてて宜しい
まともな製作者はいないのか
まともなのはみんなスレを離れていってしまった。
637 :
デフォルトの名無しさん :2006/05/17(水) 16:50:51
ってか、最悪、BorlandのCコンパイラのシステムがぶっ壊れたorz
乙
壊れるもんなんか?
640 :
デフォルトの名無しさん :2006/05/17(水) 23:00:00
>>639 何で壊れたのかは知らないけど、いきなりプログラムを
実行できなくなった
exeファイルをダブルクリックして実行しても
前のプログラムのまま。
作ったプログラムにバグがあるわけじゃないから
壊れたとしか言いようがない
>>640 > 作ったプログラムにバグがあるわけじゃないから
お前が壊れている。プログラマとして。
1.前のプロセスが死なずに残っている&二重起動防止コンボ 2.コンパイラの設定ミスその他のヒューマンエラー 3.ウィルス 4.本当に何の前触れもなくファイルが壊れてしまった 4のオッズは1.00。 ある意味鉄板です。
643 :
642 :2006/05/17(水) 23:30:36
俺にツっこむことを禁ずる。
644 :
デフォルトの名無しさん :2006/05/17(水) 23:42:27
643 名前:642[sage] 投稿日:2006/05/17(水) 23:30:36 俺にツっこむことを禁ずる。
645 :
デフォルトの名無しさん :2006/05/18(木) 00:08:42
>>641 別に俺、プログラマじゃないからwww
意味の分からん発言はよしてくれよwww
>>645 プログラマじゃないのに Borland の C コンパイラ使ってるの?
自分で開発してるんじゃなけりゃ、「前のプログラム」って何だ?
意味がわからん。
647 :
デフォルトの名無しさん :2006/05/18(木) 00:16:36
お前らの言うプログラマっていうのは 職業プログラマのことじゃないのか? だから プログラマじゃないって言ったんだが・・・
>>647 じゃぁ職業プログラマは職業職業プログラマになんの?馬鹿じゃね?
>作ったプログラムにバグがあるわけじゃないから 99%バグがあるパターンだな。
650 :
デフォルトの名無しさん :2006/05/18(木) 01:25:50
>>648 職業職業プログラマなんているわけないだろwww
馬鹿じゃね?
>>648 馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
馬鹿じゃね?
申し訳ありません、うちの息子
>>648 が馬鹿なことを言って…。
ホント
>>648 は馬鹿でスレをよく汚すんです。
ry
馬鹿じゃね?って何の言語?
648 の人気に嫉妬
こんな酷い自演は久しぶりに見た。
657 :
デフォルトの名無しさん :2006/05/19(金) 00:54:05
pgr
ヘッダファイルの最後に ; を付け忘れて、コンパイラが壊れたと思いこみ、
コンパイラをインストールし直しかけたのは、私だけですか?
>>635-636 ゴメンネ、マトモジャナクテ。ゴメンネ。
そういえば。話し流れてるけど、こないだのchar型ので、
void Tu(unsigned char * str){ printf("%s\n",str);}
void Ts( signed char * str){ printf("%s\n",str);}
void Tn( char * str){ printf("%s\n",str);}
int main(void)
{ unsigned char u[] = "test"; signed char s[] = "test"; char n[] = "test";
Tu(u); Tu(s); Tu(n); Tu("test");
Ts(u); Ts(s); Ts(n); Ts("test");
Tn(u); Tn(s); Tn(n); Tn("test"); return (0); }
ってのを作って、CとC++の違いに驚いていたんだけど、
そうだよね、リファレンスとか捜して読んだ方が正確だったんだよね、と、ちと落ち込んだりして。orz
ってか、みんな、英語読めるの? すごいなぁ。私は画面見た瞬間に萎えてしまいました。orz
あと独り言ついでにいちおう御報告。こないだの試験、紙一重で受かってました。
なんだけど、今やってるのが余りにも中途半端なので、もう少しC言語でやっておきます。
ってか。見事なチラシの裏です。ありがとうございました。ってか、失礼いたしました。orz
つ【翻訳サイト】
>>658 void Ttt(unsigned char * str){ printf("%s\n",str);}
void Ttt( signed char * str){ printf("%s\n",str);}
void Ttt( char * str){ printf("%s\n",str);}
int main(void)
{ unsigned char u[] = "test";
signed char s[] = "test";
char n[] = "test";
Ttt(u); Ttt(s); Ttt(n); Ttt("test");
return 0;
}
にしちまえば?
昔から気になっているんだが return (0); の()は癖なのか?
エラーになるのを確認したかったの?
BCCだとcppでもサクッと通るな
きみたちは BCC にだまされているっ!
>>665 メインのネタがCによるCUIなRPGなので、これもソース出しているかぎりアリだろうなぁ
で、どうしろと?
ソースを読んで意見を言えということなのか?
>>666 ああ、すみません。
>>1 に製作は違う板でとありましたね。
板違いでした。
ソースありなら別に製作でもここでいいと思うけどね。 ただ、バイナリだけ出してきて「どう?」は完全にスレ違いだけど。
何、ソース強制の流れにしているんだ。 ま、ゲ製にコンソールスレやテキストゲームスレもあるぜ。
>>665 気にすること無いよ。ソースついてるし特に板違い・すれ違いってことはない。
ただソースついてればなんでも缶でもOKってわけじゃないから、それなりに何か
プログラム関連で話したいことを振ってくれたほうが抵抗が少なくなると思う。
で、コードみながらぱっと思ったのは、
DEFINE.hの159行目みたいな所は、やっぱり//一行コメントの方が良いと思う。
あと、//*Shopみたいのは、何かの弾みに/が一個取れるとエラー時の対応に
つまりそうなバグを引き起こすから、あんまり//の直後に*は良くないよ。
使うなら、##tとか$$ %% &&とかでもなんら問題が無いのだし。
(これなら、仮に/が抜けても直ぐにエラー行から分かるからね。)
あとは、月並みながら、DEFINE.hの200〜210の所のPlaySoundの第一引数。
外部ファイルで指定して、起動時にチェック掛ける方法が良いと思う。
それと、同じくDEFINE.hの20〜40行のMAPx_X MAPx_Yの所。
せめてコメント入れるか、もっと可読性の高い名前を。
>>670 強制というよりソース無しならゲ製だと言ってるだけで、昔からここはそうだよ
まるごとじゃなく、部分部分の解説じゃいかん?
>>670 了解しました。そちらも見てみます。
>>671 ソース読んでくれたんですね。ありがとうございます!
かなり読みにくい汚いコードなので大変だったでしょう。
指摘された問題点はその通りだと思いましたので、今直しています。
確かにうっかり消してしまっただけで理由も分からずエラーになると
いう箇所が多かった様ですね。
私は、お互いのソースを挙げあって開発競争みたいな感じで切磋琢磨やって
いったり、足りないところを補完しあうみたいなことがやりたかったのですが、
それをやるとなるとゲ製作板にいったほうがいいのですかね・・?
>>674 私もC言語を本格的にやり始めたのが最近なので、良く分からないです・・・。
プロの方ならライブラリ開発?みたいなことをやるのでしょうが。
ソースを開いてもよくわからないのは私のせいでもあると思います。
人が読んですぐに仕様が理解できるようにまだしていないので・・・・。
こんばんは、昨日の手直し終ったので不定期あげしにきました。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0073.lzh ってか。ゴメン、昨日は眠くて、いろいろスルーしていましたね… orz
>>660 ありがとう、関数名同じでも型違いだと重複定義できるんですね。知らなかったです。
んで、return()はクセです。()付きのほうが目立つので好きなんですよ。
>>661 はい、あれは文字列のデフォを確かめたくてやってみました。
実際には signed char で使ったことなかったけど。
C++では細かく区別されてるんですね。メンドクサイナァとか思ったり。
>>659 >>664 ありがとう。英語はマジメに苦手です(泣
C言語は[新ANSI C言語辞典]が手元にあるけれど、
オライリーのは定評あるようだから、持っていた方がいいでしょうか?
こんど本屋で見てみます。あ、でもC++はまだちょっと私には早い気が…
>>675 >お互いのソースを挙げあって開発競争みたいな感じで切磋琢磨やっていったり、
>足りないところを補完しあうみたいなこと
って、いいですね。1つのゲームを複数人で、ではなく個々にやってくなら、
そういうのはム板でもOKじゃないかと、私は思いますよ。
もっとも私は自分のコードもワケワカメになったりするんで、アレですけど。
ところで、
>>665 のを、いま少し読んでいて、
>//方向キーだと処理速度が遅くなる為、あえて英字キーでの移動をメインに採用した。
>//広いマップで端から端まで移動する時間を計測したら違いは明らかである。
がちょっと気になったんですけど。そんなに変わりますか?
このへん、ソース読みきれていないので、
アルゴリズムとか良く分からないで言ってたりしますけど…
私のは方向キーと英字キーを併用しているのですが、
体感的にはそれほど変わらないような気がします。
ってか、私のの場合、英字キーの処理に手間かけてるからかもしれないけど。
それよりも、移動で気になったのが、
画面表示を1歩歩くごとに全部書き直していませんか?
私の低速PCだと画面がちらつく感じがするので、
できれば必要な部分だけ書き換えるようにしたほうが、
いいんじゃないかなとか思ったり。
あと、ゲームの終了方法が分かりませんでした(涙
右上の×で良かったのかな…?
>>677 >>665 のキー処理がまずい。
getch()でキーを取得してるけど、
矢印キーだと制御文字+キー番号(?)の2文字になる。
で、制御文字はkey_press()内switchでdefault行きなんだけど
その場合も画面書き換え関数が呼ばれるてる。
キー処理と画面書き換えが2回で、しかも間にスリープが入る。
そりゃ遅くもなるわ。
コテで偉そうなこと言っちゃった。えヘ。
>>676 ソースやコーディングルールはとても未熟だけど、
実行結果には懐かしい気持ちと感動を覚えた。
がんばってほしい。
マ板に居るからにはコーディングに力を注いだほうが
周りの受けがいいとは思うよ。さんざん叩かれた
コーディングルールを放置してるのはいただけない。
>>677 処理速度は・・・私のPCは貧弱な描画能力しかもたないノートPC
だったので、一歩ごとに0.3秒程度の差が出ていたのですが・・・。
新しいパソコンが欲しいです・・・orz。
終了はスペースキーか王様のところに行くとセーブができるので、
それをしたら×で終了してください。ところで必要なところだけ
書き換えるって可能なんですか?
>>678 あっ!これは全然気がつきませんでした・・・。いつもesdfキーで移動を
行っていたので・・
default判定はあれで良くないですか?paint()やSleepはkey_pressの再帰的
呼び出しの後に入れていたので・・。
>>681 すみません・・急いで直したいのですが、昨日からめちゃくちゃ
忙しくなってしまって・・。C++とかの勉強もしないといけなくなったので
書き込むだけで精一杯です。また少ししたらこちらにもこれると思います。
懐かしい気持ちを感じてくれたら本当にうれしいです。ありがとうございます。
>>682 見直してみたら2回じゃなくて3回か。
再帰処理の流れを勘違いしてるかも。
再帰呼び出しから戻ってきたら残りの処理を続けるのよ?
だから、矢印キー↑を押した場合、0xE0 0x48の2文字になり
その場合の処理の流れは多分こう。
main()のwhileループでkey_press()呼び出し。
1文字目0xE0、key_press()内switchにてdefault行きでkey_press()呼び出し。
2文字目0x48、key_press()内case KEY_SUB_UP:で処理。
2文字目0x48、key_press()内paint()とsleep()。
1文字目0xE0、defaultで呼び出したkey_press()から戻ってきてpaint()とsleep()。
main()に戻ってwhileループ最初のpaint()実行。
基本的にはmain()のpaitn()さえあればokなんじゃない?
sleepの必要性もよくわからん。
>sleepの必要性もよくわからん。 ファミコンのもっさり感を出したかったんじゃないかと。
>>682 あ〜、仲間なかま♪ 私も新しいPC欲しいです。
んで、はやりの3Dゲームとかやりたいです(泣
ってか、ごめん。言葉足らずだったですね。
>必要なところだけ書き換えるって可能なんですか?
なんですけど、えっと。
必要な部分だけ書き換えるには、
カーソルの位置を自由に動かせないといけないんだけど、
そういう機能はC言語の標準ではないようです。
なので、例えば、
printf("\x1b[%02d;%02dH",1,1)とか ("\x1b[2J")みたいなエスケープシーケンスとか、
win32APIの SetConsoleCursorPosition、SetConsoleTextAttribute、
などを使うかしないと、ムリっぽいです。
んで、
エスエープシーケンスだと機種依存で、PCが違うと表示も違くなったりするようなので、
win32APIを使うほうが安心っぽいです。
なので、私のではwin32APIを使ってます。
(baseフォルダのbase.cppにあるCursorの関数がそれです。)
ただ、こういう表示関係の基本部分は、後から仕様変更するのは難しそうなので、
ここまで作ってあるのには、ムリにオススメできないかも……
まぁ、参考までに、ってことで。
(ってか、上のに突っ込みあったら、みなさん添削をよろしくです。orz)
お忙しそうだけど、締め切りはないのだから、お気ラクに。作製がんばってください。
>>678 >>683 おひさしぶりです(´ー` )ノ
なるほど、再帰処理って、そうなっていたんですね。横から見てても勉強になります。
名無しでもコテでもどちらでも、これからもよろしくお願いします。
>>681 あぁ! ゴメンナサイ!!
私ののコーディングルール全然書き直せてませんでしたね orz
えっと。今やってるのの「置く」「拾う」コマンドまでできると、
マップ関連の関数がだいたい揃うので、
そこまでやったら、ソース整理しながら、こんどこそ書き直しします。orz
>>686 Win32APIを使うということはWindowsでないと動かないということだから、
機種依存であるということに変わりはない罠。
690 :
デフォルトの名無しさん :2006/05/27(土) 19:24:20
偉そうにああだこうだとアドバイスする奴はわんさかいるのに、 実際にソフト作ってソースを公開してる奴は2人しかいない件について。
>>690 様のご意向により、このスレで製作していない
人がアドバイスすることは禁止されました。
test
一気に過疎化しそうなヨ・カ・ン。
694 :
デフォルトの名無しさん :2006/05/27(土) 20:10:11
age
695 :
デフォルトの名無しさん :2006/05/27(土) 21:17:12
なにこの過疎スレ
みんながんばっているんだよ
ウザイからゲ板いけよ。カスども。
そんなんじゃ発進させる燃料にもなりえない
そもそも人がいるスレでも板でもないだろぅ
>>683 default指定は他の関係ないキーを押したときに描画しなおさずに済むよう
にするためのものだったのですが・・(他には多重エンカウントを防ぐための意味もあります)
もしdefaultの後にpaintやスリープが実行されるのなら他の関係ないキーを
押したときに再描画が起こるはずなのですが、起こらないということは
再帰の後の処理が実行されていないということでは?
一応defaultをはずしてコンパイルしてみたのですが、
特に実行速度は変わらなかったようです。
また、key_press()の直後にSleep(10000);などと入れてみて試したのですが、
やはりSleep()は実行されないようでした。
見当違いのことを言っていたらすみません・・。
>>686 なるほど! 確かにCさんのgame.exeを実行してみるとそんな感じですね。
画面をフロント、バックの2層構造にして描画中の画面を見せないダブルバッファと
いうものがこれのようですね。最近勉強しているので近いうちに実装できればと思います。
(今やばい位忙しいので一日2時間しか自由な時間が無いですが・・)
お互いローグとドラクエと目指すRPGのタイプは違うようですが良いところを影響
し合えたら良いですね。これはかなりすごいと思いました。製作を応援しています。
>>688 そんなことを言い出したらJava(ry
>>700 こんな感じでBeep()を埋め込んでみれば
paint()が何回呼ばれているかわかる。
void paint( void ){
/*途中省略*/
Beep(0xFF,100);
}
ちなみに、関係ないキーを押した場合は、
defaultでkey_press()に行き、key = getch();で次の入力までストップする。
矢印キーの場合は2文字送られてきてるからストップしない。
試しにpを5回ぐらい押してからeを押してみ。
おまい凄すぎ。 それでいて謙虚すぎ。
704 :
デフォルトの名無しさん :2006/06/03(土) 17:08:09
あげ
(´・ω・`)
(´゜ω゜`)
>>702 Cなら拡張子をcppにしない方が良い。
拡張子がcppだとコンパイラがC++として扱うから
適切なエラー、警告が得られない。
簡単な例↓
#include <stdio.h>
int main(void)
{
printf("Hello, World.");
int i; /* Cならエラー、C++ならok */
return 0;
}
別に深く考えずにbetter Cって事で良いんじゃね? Cだけって事になると//を使ったコメントもダメになるし (今の規格だとCでも//が使えるけどw)
710 :
707 :2006/06/04(日) 02:28:36
>>708 読んでなかった。ごめん。
まぁ拡張子はcのまま、makefileにBCCで/Pオプション付けたのも用意して
Cとしての結果、C++として結果の違いをチェックしたら勉強になるかも。
707と一緒に読み流して。
しかも、>707はCでも合法だし。
712 :
デフォルトの名無しさん :2006/06/04(日) 10:27:17
>>711 ふふふ、標準C専はBCC5.5.1使いなんだよC99には未対応w
714 :
707 :2006/06/04(日) 14:40:07
715 :
711 :2006/06/04(日) 19:20:52
>>713 がーん、そこまでは読んでなかった。
>>714 逆にSun-OSなんかは標準のコンパイラのディフォルトがC99だからね。
716 :
K” ◆3zNBOPkseQ :2006/06/04(日) 23:26:45
C言語の初心者の俺ですが 何故にプログラムで一番重要なファイルの文字列の解析と保存読み込み方法が どこ探しても見つからないんだろうか? 特にRPGなんてデータの読み込み保存がすべてなのに。 どの本探しても一番肝心なそれが載ってない。 おかげで今も苦労させられてる。 最近やっと単純なファイルを読み込み解析できるようになった。 ファイヤーボール/ダメージ修正 1.0/命中率 50/火だるま 4 50|武器破壊 20/ この文字列を解析して保存し、活用するのにどれだけの時間の浪費をしたことか・・・ 二次配列使って/を区切りに保存 間にスペース入ってる場合はもう一段階スペースを区切りに分ける |は別の二次配列に保存 ポインター移動と文字列コピーがホントと厄介だった forとポインター++とstrlenの指定などなど非常に長いプログラムになったが・・・ おまいらはどうやって処理してる?
scanfにきまってんだろ ・・・
浪費かよ
単純な構造のテキストファイルなら正規表現ライブラリ使って ササッと読み込んじゃえばいいじゃん。
データの保存形式が悪いからだろ。
あるねらーがいった システムを単純化させるのがプログラマの腕 だと
>>716 えっと。ちょっと微妙に分からなかったんだけど。その文字列は固定なのでしょうか?
文字列を区切りで分けるには、標準関数だと[strtok]がありますよ。
私がやるとしたら、[fgets]で、
ファイヤーボール/ダメージ修正 1.0/命中率 50/火だるま 4 50|武器破壊 20/
の一文をざっくり読み込んでから、
[strtok]の第1引数にそれを突っ込んで、第2引数に区切り文字の" /|"を指定して、
[ファイヤーボール][ダメージ修正][1.0][命中率][50][火だるま][4][50][武器破壊][20]
に分けながら、[strncpy] とか、[strtod] とか使って読み込んでいくかな?
んでもって、保存する時には、fprintfを使って、書き込んでいくような感じ。
いちおう、私のプログラムでも簡単な読込解析はしているんだけど(init〜の関数郡)、
読み込む文字列を簡単なのにしたり、strtokの代わりに自作関数使ったりしてるから、
参考にはならないかもしれないけど……
その文字列を、もう少し読み込みやすい形にするとかは、なしなのでしょうか?
ファイヤーボール/1.0/50/火だるま/4/50/武器破壊/20/
くらいの文字列にしたほうが、可読性はあれだけど、処理はラクかもしれませんよ。
……って、のんびり書いてたら、他の人も言ってるし…… orz
>>721 名言ですね。
>>710 あぁ、そういえば!
コンパイラオプションっていう、便利な機能が有ったんですよね。
それでも変えられたことを、すっぽり忘れていました。
警告表示のには気付いたけど、オプションの説明とか、
あんまり気にしてなかったからなぁ……
ってか。実はC99の規格もロクに見たことなかったりするんだけど……
ベンキョウシヨウ orz ッテ,イツモイッテルダケノキモスルケド... orz
ともあれ、教えてくれてありがとうです!
それじゃあ、こんど拡張子 .c に直して、 -P でやってみますね。
>>712 っうわ、懐かしいのを!
今見たら、ロダのログも既に流れてましたねw
そんな前のを覚えていてくれたとは、ありがとう。
そのバージョンは、1番最初に作っていたので、操作性は悪いけど、
道具使えるしセーブ&ロードできるし、目的とかもあったりして、
ゲームとしては1番完成していたりします。
今回のもそれぐらいまでは作りたいなぁと、思ってるんだけど、どうなるだろう?
んでもって。不定期上げです。物置の [C]コマンド辺りをあれこれしてました。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0076.lzh 今度は店と作業辺りをぼちぼちやっていく予定です。
>716 SEDやAWKで前処理。固定長、タブ区切り、CSV形式などに変換。 これを読み込ませるようにすればおそらくそんな面倒な処理はいらない。 いっそのことバイナリ固定長のデータ形式を考えておいて、それに変換する鶴(もちろんチェックは厳重に)と その形式のデータをRPG本体で使う場合の読み込み方法さえ確立させておけば確実。 >ファイヤーボール/ダメージ修正 1.0/命中率 50/火だるま 4 50|武器破壊 20/ いらん項目は消せ。 多分データ構造は、 data(char[]):ファイヤーボール tag(name):ダメージ修正 data(float):1.0 tag(name):命中率 data(short):50 data(flag:symbol):火だるま data(short):4 data(short):50 tag(name):武器破壊 data(short):20 こんなところだろう。このうちtag(name)ってところは多分不要。 タブ区切り、CSV形式なら表計算ソフト使えば(普通は)出力も編集も可能だから可読性の問題も解決。 (むしろその方が管理もしやすいし便利)
もうバイナリで良いじゃん・・・
>724後半のだと自分でも訳が分からなくなりそうなので書き直しておく。(訂正も含めて) 『技(術)』の名称が[ファイヤーボール] 『ダメージ修正』というパラメータが[1.0] 『命中率』というパラメータが[50] 追加効果で、 *[火だるま]という状態(ステータス異常?)にする。そのターン数が[4] 確率が[50] *[武器破壊]という現象を(おそらく命中した相手に)引き起こす。その確率が[50] こんなところか? このうち『』にあたる部分は(パラメータのフォーマットさえ明確にしていれば)不要 *[]にあたる部分はフラグや数値にして内部処理に任せる。
727 :
K” ◆3zNBOPkseQ :2006/06/05(月) 02:12:47
返信サンクス
>>722 ファイヤーボール/1.0/50/火だるま/4/50/武器破壊/20/
は技によって状態異常とかあったりなかったりするのでちとキツイかと
fscanfは少しでも型が変化するとまるで使えないので、
fgetsにしてます、strtokはよくわからんので使わず、
forとキャラポインタを連携して'/'が出るまで++して、出たら
/になってるポインタを¥0にして二次配列にstrncpyしてる。
*waza[gyou][retu]でretuに要素、gyouに技番号。
ここが一番面倒い。
ダメージ修正とかは加算値、近似値、絶対値とかべつに種類があるので、
銘記する必要ありぽ。ただ、数値に直したほうが短くて済むけど、
見る時わかりやすいんであえてそれで。
技名は実際に戦闘時に表示するのでそのまま。
実はもっとそれらしくするために技データ表をhtmlにしようとしてる。
シートさえ作れば簡単に複製できるし。MACOSXだし。
アプリの作り方はわからんとです・・・。
で、そのhtmlを読み込んで、4kで収まるようにプログラムで簡易化。
まだまだ、先は遠い・・・。
728 :
K” ◆3zNBOPkseQ :2006/06/05(月) 02:21:50
>>726 バイナリがよく分からんとです。
今度ソース(未完+不具合あり)渡すので簡易化してくれたら嬉しい。
キャッチボール式の戦闘で1on1
能力によって戦闘力が決まるというマニアックなシステムw
データの正規化からやるべ
>>727 >実はもっとそれらしくするために技データ表をhtmlにしようとしてる。
プログラム用で使用するデータの話をしているんだよな?
>>727 え〜と。strtokは、K"さんがやってるのと同じような関数だから、
説明読んだ感じではそれで良さそうですけど、
読み込む先が二次元配列というのが、ちょっと不思議だった。
ってか。なんかよく分からないんだけど、データ構造が複雑そうですね。
それだとやっぱり一度、表にして見ないと、確かに分かり難いかもしれない。
んでも、Macってエクセルみたいな表作製ソフトってなかったでしたっけ?
htmlでシート書く方が難しそうに思うんだけど…?
あと、htmlのタグの中から、直接データを読み込む予定なのかな?
なんか色々と分からないので、wktkしながらup待ちしてます。
(って、見せてもらっても、私には助言とかはできないかもしれないんだけどw)
>>724 >>726 あ〜、すごい、分かりやすい説明だ。乙です!
MacにもMS Officeは存在するお
XMLパーサを自力で作ってXMLでデータ管理すれば保守が楽だよ。
734 :
K"@携帯 :2006/06/07(水) 14:26:50
串既製になりますた ので まとめサイトの掲示板に書いてオキマス
何故か早くも規制なくなりますた(・ω・)ノシ
>>730 Macではhtmlのエディタが標準搭載だったので・・・
>>731 Cとhtmlをサイトのあぷろだにうpしますた
ただ、winでよみこむと改行がなくなってる希ガス
>>732-733 できれば無料エディタがほすぃ
まあ、体験無料期間あるようだけど
>735
ツッコミどころ満載だぞ、これ。
・ファイル名文字化け。(これ重症)
・改行コードがMac仕様のまま(CR(0x0d)のみ。WindowsはCR,LF(0x0d,0x0a)。文字コード変換ソフトで変換のこと。)
・main()関数長すぎ。(非常に見通しが悪くなっている)
・分割コンパイルできる構造になっていない。
(main関数にいろいろなルーチンを置きすぎていることも原因の一つ。これを関数に細分するのも手段の一つ)
・ヘッダファイルへのヘッダ分離は必須。(ヘッダ部分長すぎ。)
・#defineの定義も見通しが悪い(行末に\(円マーク/バックスラッシュ)を付ければ複数行に出来る)
・ifやswitch文の羅列・・・・・(下のリンク先で説明されてるところがあるからそっちを見たほうがいいかもしれない)
構造体使ってないことやdouble型使うほどの精度要求されるか?ということまで突っ込んでたら、もう・・・
それと、htmゃxmlを採用するのは賛成しかねる。この状況で実装しようと思ったら収拾付かなくなるよ。
この辺見てみるといい。良い例悪い例いろいろあるから。
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji ttp://web.kyoto-inet.or.jp/people/ysskondo/c/c.html >>MacにもMS Officeは存在するお
>できれば無料エディタがほすぃ
OpenOffice.orgとかStarSuiteは?MacOSX版もある。
737 :
デフォルトの名無しさん :2006/06/07(水) 22:25:13
>>732 むかしはエクセルとワードはMacにしかなかった、スレちデでorz
なんか久しぶりに暗号ソース読んだ気がする。
>>735 loadcsv辺りが聞きたかったところ?
パッと見。
・NULL代入時のループ条件が配列サイズと一致してない。
・そもそもmallocしたのにfreeせずにNULLを代入したら駄目。(2回目以降)
・charを2バイト文字と比較してる。
・「日本語は2byteより+2」「日本語は2byteより+1」って?
他にもあるけどこれを改善するよりデータ形式を考え直した方が良いと思う。
・外部変数多すぎ #一時的に使う変数こそローカル変数にするべき ・main()長すぎ ・無闇にgoto使いすぎ #長くて見通しが悪い上に無闇にgotoしているからロジックもへったくれもなくなっている ・関数型マクロ使いすぎ #パフォーマンスに問題が出ない限り関数で事が足りそうだが。 ・charの二次元配列なんて無駄な型は要らん ・strncpy()なんて使いにくい関数を使うくらいならsprintf()の方がまし。
この時代にgoto使ってC書く奴いたのか。
>>736-741 色々指摘サンクスコ
少なからず知ってる事でなんとか作ったからめちゃくちゃw
かなり直す箇所が、といか、構造から作り直さなきゃならんかな。
まあ、コレでも一応こっちでは動くのが不思議。
昇進します・・・
はじめは数当てゲームから
>>701 レスが遅れてすみません。なるほど・・こういうふうにやるとわかりやすいですね。
親切にありがとうございます。
>>701 処理を組みなおすのが面倒だったので思い切って久しぶりにgoto文を使ったら
上手くいきました。
実験してみたら矢印も英字もたいした処理速度の違いはなく私の思い違いだったようです。
アドバイスに感謝しています。
皆さん乙です。
K"さんのhtmlとか見た感じで、細かい数値がたくさんあって、
とても複雑そうなのは分かったのですが、
私にはアドバイスできることがなかったです… orzヘタレデゴメン
ただ、bcc でやったらエラーがでてコンパイルできなかったのですが、
( sprm,sprmk,sprmb,stats,statsk,stasb のサイズが不明、あるいはゼロ)
他の方はできたのでしょうか? と、ちと不思議。
KB31.cを単体でコンパイルするので良かったのですよね?
>>743 あ〜。懐かしいなあ。私も作りました。
でも、数当てのゲーム内容を勘違いしていたような気がしないでもないw
んでもって。不定期上げしておきます。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0079.lzh ファイルを .c に直して、-P オプションでコンパイルするようにしてみました。
オプション付けないでコンパイルしたら奇妙なバグが出たので、
直していたら力尽きたので、関数説明とかは更新していません。
ってか、CとC++では関数内の変数の寿命が違うのかな?
なんか、よく分からなかったけど、とりあえずこれで。。。。
んでもって、これから2、3週間消えるかもですけど、気にしないで下さい。
自分のところで出た警告の(微妙に不安な)日本語訳+注釈。ビルド自体は出来るが、これでよく動くな、と思う。 227:警告:main()がint型関数ではない(※今のコンパイラはこれで警告を出すものが多い) 538:警告:scanf()内:文字列(char型配列)をint型変数に格納しようとしている。 242:警告:変数`oweighta'は使われていない 859:警告:ポインタと整数を比較しようとしている。 933:警告:ポインタと整数を比較しようとしている。 ※ ”*kata != NULL”は間違い。”kata != NULL”が正しい。 1382:43:警告:文字定数として複数文字を指定している。 ※ワイド文字、マルチバイト文字の場合は1文字でも2文字分 1382:警告:比較結果が必ずfalse(否定)となる。(比較対照データの値が範囲外のため) 1384:61:警告:文字定数として複数文字を指定している。 1384:警告:比較結果が必ずtrue(肯定)となる。(比較対照データの値が範囲外のため) 93:警告:配列 `sprm' は偽の属性が割り当てられている。 93:警告:配列 `sprmk' は偽の属性が割り当てられている。 93:警告:配列 `sprmb' は偽の属性が割り当てられている。 99:警告:配列 `sprmb' は偽の属性が割り当てられている。 99:警告:配列 `stats' は偽の属性が割り当てられている。 99:警告:配列 `statsk' は偽の属性が割り当てられている。 99:警告:配列 `statsb' は偽の属性が割り当てられている。 ※配列のサイズが指定されていない。そのためにchar型配列ではなくchar型ポインタとして扱われている。
>747 訂正 × ※ ”*kata != NULL”は間違い。”kata != NULL”が正しい。 ○ ※ ”*kata != NULL”は間違い。” *kata != '\0' ”が正しい。
>KB31.c:849: warning: null argument where non-null required (arg 2) > 849wengt = 0; wengn = 0; wengp= 0;n=0;kata = NULL;strcpy(temp, NULL); これも大問題だな。
>>751 ありがとうございます。文字化けがあったりしてコンパイルは出来ませんでしたが、
コードをみたところ、思ったより綺麗ですね。少なくとも殺人的なコードは無かった気がします。
あと、当時は単一ソースの方が全体を見渡しやすいとか分割してやるとごちゃごちゃして分かりにくい、
とか10も20も分けるよりは一つの方がカッコいいとか、分割すると難しくなる、...etc とかなり特殊な
思想を持っていたようですw 混乱は・・意外としてなかったですね。当時は入門書のif文のあたりしか
読んでなかった(難しくて先が読めなかった)ので出来ることも限られてましたし。
あとルイーダの処理は・・実はこれも配列までの知識しかなかった今年の正月くらいに書いたものなので・・。
一応構造体に書き換えてはいますが、ご指摘の通り全く構造体の意味が無い書き方なのでその内直したいです。
>>752 当時はそれが普通だったので・・なんでみんなこういう風にやらないんだろうとか思ってました。
今話題はKB31.cじゃない、CUIRPG.cだw しかしまぁ、こんだけのもん作ったね。 1160行に微妙なバグがあるのが検出された以外はgccでは問題を見つけられなかったが。 #あ、conio.hのインクルード行だけは外したよ。
すげーwwwwwww 秀丸の関数リストで見たらmain()しかないのがワラタ。
>>754 あれ・・?BCCとVC++で試したんですけどどっちもエラーが8つほどでてきました・・。
一つの関数に何千行書いても自分で書いたコードなら昔のコードでもすぐにわかるのですが、
ただ人がそれをやってるとコード自体即ごみ箱行き確定ですねw
プログラミング診断室って結構昔に書かれてるのに本当に勉強になりますね。
後ついでと言ってはなんですが、昔のもっと昔にこんなの作っていたのでそれが
mainに8千行書いてしまうと言う諸悪の根源になってしまったのかも・・。
コードは確か600行ちょっとですが、やっぱりこっちもオールインメインですw
Cプロミング診断室の全ての悪い例のプログラムを見ても
私のコードより随分綺麗だと思ってしまいます・・orz
ttp://www.geocities.jp/amazonium011001/CUIRPG1.lzh
main8000行!? 狂気の沙汰だな
というか、よく動くな。行番号ベーシックでさえ、サブルーチン作って構造化するのに。
>>759 ざっと読んでみたけどなかなか凄いよ。
イベント発生場所(宿屋、城、&c.)を移動するごとに、gotoでラベル間を移動する構造。
それこそ、NBASIC時代にはよく見かけたけどね。
狂気の沙汰ほど面白いからな
>>762 ダブルバッファしてないの?
チラつきまくりだけど
>>763 してはいるつもりなのですが・・どうもうまくいきません。処理の仕方に問題があると
考えています。そのうちなんとかしたいです。
>>765 やっぱりww
でもすごいですね。
この汚いソースを簡単に直してしまわれるとは・・ネ申ですか??
夜気になって眠れなかったのでとても助かりましたw
>>735 今はじめてみたんだけど、せめて構造体使おうよw
まぁまぁ、必要性を感じたら使うようになるさw いまは生暖かい目でみておこう。
よくがんばってるね。 ところで、れどめ見てコーヒー噴いたんだけど、 ウィンドウ作成してる時点で、CUIじゃないと思うのだが そこのとこどうなのw
>>769 CUIRPGのCUIには「最後の」「究極の」という意味があります。
まぎれもなくCUIですね? 本当にありがとうございました。
それ何語?なんかの頭文字?
>>771 スミママソ。CUIにそんな意味は無いです。
WikipediaによるとFFの「Final」には「最後の」「究極の」って言う意味があるらしい
んでそれにかけてみました。ちょっとマニアックすぎましたねww
ふつーに、わかんねーよ!wwwwww
UがアルティメットでCとIは何だ? と真剣に考えた俺に謝れ
>>772 MSVCR71.DLLが見つからないと出てしまう。
>>772 せめて1ターンごとに画面更新しなよ
何が起こってるのかさっぱりわからんw
スクロール機能をやってみました。
まだかなり適当です。解説サイト見たんですけどわけがわからなかった
ので自分で考えたちょっと違うやり方でやってみたんですけどこれってちゃんと
スクロールできてるんですかね?
ttp://www.geocities.jp/amazonium011001/VisiRPG.zip あとこのスレに来た私と同じ入門者のために自分の知っている知識の範囲内で
RPGの解説サイトでも立ち上げようと思うのですが、需要ってなさそうですよね・・。
第一私のスキルが相当未熟ですしww
>>772 おお!ローグライクゲームですか。
なんか高度なことやってますね。
780 :
デフォルトの名無しさん :2006/06/17(土) 17:51:38
だからヘッダに実装を書くなとあれほど(ry
しかも、相変わらずグローバルの嵐か。
782 :
デフォルトの名無しさん :2006/06/17(土) 18:45:49
>>780-781 テスト段階だから・・というのは嘘で面倒だからです。
今やったら絶対混乱してしまう気がするのでRPGとして
完成してから分割コンパイルにします。
グローバル変数については・・
ファミコンのドラクエも全部グローバルだったし許してくださいwwww
>だからヘッダに実装を書くなとあれほど(ry なんで?STLとかヘッダに実装書いてるよ。 ヘッダに実装かいとけば持ち運び便利じゃない?
>>783 多分大規模になったとき、一部分だけテストとかデバッグとかできなくなるからでしょう。
分かっちゃいるけどやめられない。それが(ry
>>783 クラスならね。
>782はstaticでさえない関数をインクルードファイルで実装しているから問題視している。
しかも、その関数内で使用するグローバル変数の宣言が見当たらないから困る。
>>782 いまの状態で把握できるコト自体すげぇのだが。
それはそれで尊敬する。
>>783 STLはテンプレートを使うとexportに対応していない限り、
ヘッダに書くしかないから、仕方なくヘッダに書いているの。
>>782 完成してからだと、今よりも確実にコードの量は増えているだろうから、ますます大変だぞ。
どうせ実装書いちゃうなら、ヘッダじゃなくて.cをそのまま インクルードすりゃいいじゃんと思うんだが。 .hにする必要なくね?
>>788 なんでもインクルードしていいわけじゃないから、 .c はまずいだろ。
ルール決めて別ファイルに分けて、こっそり .h からインクルードするのはありだけど。
.cの中でこっそり.cをインクルードってだめなん? .hの中で.cインクルードはだめだろ。伝播する。
>>790 .c をインクルードするのは全部ダメ。やってる本人以外想定できない。
.h の中でも .c はダメだが、 .tcc や .inl などのルールを決めてやるのはあり。
>>791 > .c をインクルードするのは全部ダメ。やってる本人以外想定できない。
あーそーか、.c内で.cインクルードなんてやると、
ファイルの依存関係が意味不明なことになるから
やっちゃいかんわけね。
公開するのはどうせオブジェクトファイルとヘッダファイル
だけだから構わん、とも思うが。
> .tcc や .inl などのルールを決めてやるのはあり。
.h内で実装をインクルードするのは、
インライン化を望むとかそういう理由か。なるほど。
言いたいことは山ほどあるが、とりあえずヘッダに実装を書くなと。
>>793 マップの個々のセルを描画する段でキャラの移動を決めてたら、そりゃそうなるだろう。
普通はキャラの移動と描画を切り分けるか、最低でも移動後の位置に対して描画をかける。
VisiRPG.h の 74 行から、
int ii = i;
int jj = j;
で元の i と j を控えて、
移動のところで
if ( maptmp[i+1][j] == 0 ){
maptmp[i][j] = 0;
maptmp[i+1][j] = 52;
++ii;
}
みたいにしてやるx四方向分用意して、
if ( foot_step == TRUE )
BitBlt(BackHDC, jj * CHAR_SIZE - offset_x, ii * CHAR_SIZE - offset_y, CHAR_SIZE, CHAR_SIZE, hdc_mem, CHAR_SIZE * 4, 0, SRCCOPY);
else
BitBlt(BackHDC, jj * CHAR_SIZE - offset_x, ii * CHAR_SIZE - offset_y, CHAR_SIZE, CHAR_SIZE, hdc_mem, CHAR_SIZE * 5, 0, SRCCOPY);
これでOK。
>>794 ウグイス
平安京
吊って来ます・・・
>>795 なるほど!こういう風にやれば良かったんですね。
本当にありがとうございます。アドバイスを参考に早速直してみました。
持ち運び楽だからヘッダに実装描いてもOK。 まえにヘッダに実装描いたら上手くコンパイルが通らなかったので 関数の前にstaticを追加したら動いた。ヘッダに実装書くときは staticキーワードを前に入れれば良い模様。
>>797 動いただろうけど、コードが重複して激しく無駄だからヤメロ。
せめてinlineならまだ理解できるけどさ。
そもそも何故ヘッダに実装を書く必要があるのかが疑問。 goto文使ってるソースの方がまだマシだ。
あ〜。なんか賑わってる、楽しそうだなぁ。
goto文は使ったことないけど、ヘッダに実装書いたことはあります。
ってか、広域変数のつもりで変数定義の実体書いちゃってたので、
思い切りワケワカメになってパニクッテました。w
んでもって。とりあえず通信できたので、流れ無視して、
ちまちまやってた分の、不定期ageに来ました。
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0081.lzh [M:作業][U:使う][H:持つ]のアイテム関係をがんばってみました。
んでも、関数説明は更新できていません。
ってか、関数が異常増殖してきたので、書き直す気力が沸きません。 orz
ってか、かなりワカメスパゲティになってきて、途方にくれています。 orz
んでもって、たぶんまたしばらく消えます。んじゃ!
>>801 だからオブジェクト指向にすれば(Cでのなんちゃってオブジェクト指向でも可)、関数の説明なんて
いちいちいらないんだって。
クラス図があれば大体事足りるんだから。
クラス図をいちいち書かないとならないじゃないか。
>>803 そんなもん、Doxygenに書かせればいいじゃないか。
それってコード喰わして関連図とか吐くやつじゃなかったっけ?
ファイルごとに分けてあればいいんだから、 オブジェクト指向とか関係ないな。 いまどき、ソースコードのコメントからドキュメント生成なんて ありふれてるわけだし。
Doxygen便利だよね。 namespace の解釈と UTF8 の対応さえちゃんとしてくれれば言うことないんだけど。
>>804 クラス図は設計段階で作るもんだからDoxygenは関係ない。
ツール使ってやるならRoseだね。
手書きでも十分だと思うけど。
809 :
デフォルトの名無しさん :2006/06/22(木) 07:12:25
>>800 テンプレート使ったクラスを宣言すると
外に書くのがめんどいんです(´∀`)
>>806 コメントなんて書かないのです
難しいプログラムは読むのも難しいんです
標準C君はコードにいちいち説明書いてるんだから、 それを読み込めばいいジャマイカ。 手書きでやらずに手抜きしな。
>>809 c/cppに実装、hにプロトタイプ宣言してヘッダをインクルードじゃダメなん?
コンパイルの段階ではじめて実体化するんだから、
テンプレートがヘッダに出るのは当然だと思うが。
とにかく
>>809 はヘッダの意義を誤解してるだろ。
インスタンスを伴うものをinclude可にしてしまったら、
インスタンスが重複してしまう間抜けな事態に陥ること位想像つきそうなもんだ。
ヘッダの使用はマシンリソースが不足してた時代からの悪しき慣習だと
いえなくも無いが、逆らい様があるもんじゃない。
どうせmakeファイルの書き方教えるのを面倒くさがったバカ教師が
そーいう妙な使い方を生徒に吹き込んでるんだろ。
某学校の卒業制作のソースコードが片っ端からヘッダに実装書いてて
そこの学校から新卒取るのはやめようぜって稟議に上がったことがあるからわかる。
>>800 個別に書いても良いし、やろうと思えばすぐできるんですが、
この方が管理しやすくて楽なんで・・。完成したら普通のスタイルにします。
というかなんでそんなにヘッダーに実装が批判されるのかよくわからんとです。
>>813 コードサイズが無駄。ビルド時間が無駄。
これだけ重大な無駄を生むうえに、やろうと思えば
すぐ直せるものを放置する理由は無いだろ?
816 :
デフォルトの名無しさん :2006/06/22(木) 12:37:39
>>812 (´д`)?
誰もインスタンス伴うようなものをヘッダーに書くなんて言ってないけど?
.hで
template<class T> class HOGE {
public: int hage(T *p);
};
.cppで
template<class T> int HOGE<T>::hage(T* p){return 0;}
って書いていくのがめんどいから.hで
template<class T> class HOGE {
public: int hage(T *p){return 0;}
};
とクラス宣言の中で展開して書くことを言ってる。
しかも、VC++6だと構文はあってるがコンパイルが通らないこともしばしば
import系に慣れるとヘッダと実装を分けるのがめんどくさい。 特にclassを使い始めると、ヘッダにプロトタイプ書くのが非常に疲れる。 というか、ばらして書くから片方書き忘れがしょっちゅう。
>>817 禿同。
悪しき遺産だから仕方ないわいな。
俺も面倒のあまり、気がつくと class の実装は大半ヘッダにぶちまけちまったりしてる。
後でめんどくせーとか思いながらせこせこ cpp に持っていったりとかいう。
>>817 めんどくさいという理由で手抜きをするのはよくない。
書き忘れをなくす努力をすべきだよ。
といっても個人の範囲内なら好きに組んで構わないと思う。
仕事にされたらかなわんが。
class のヘッダ実装は、一概に悪とも言い切れないからなあ。 コンパイラの機嫌次第とは言え、片っ端からインライン展開されるわけでもないので サイズ上の問題を引き起こすとも言い切れないし。 コンパイル時間の問題は確かにあるんだが、普通に書いてればテンプレートの比じゃないし。 実装内容を強く隠蔽したいとか、政治的意図が絡まない限りはどう書いてもいい気すらしてくる。 ヘッダにまとめた方がコードが集中する分、見通しが良くなって保守性が上がるって考え方もできるくらいだ。 もちろんサイズによるが。
ただ、class のヘッダ実装は、ヘッダが糞長くなって読みにくい弱点があるんだよな。 その点、.NET の IDE に付いた #region は便利だ。コーディングに不要な部分を折りたためるから。 まあ、普通のでも関数名とかでアウトライン作ればいいんだけども。
> コードが集中する分、見通しが良くなって
コードが集中するとどうして見通しがよくなるのか分からない。
あと、
>>816 って生成コードが膨らむの?
インライン化を意図してる場合は除いて。
んなこたーない。
ヘッダに実装を書いちゃうような人は分割コンパイルの仕組みが理解できてない予感
ていうかそれだけが理由だよな。
分割コンパイル以外に利点がないな。 小規模だと、かえって混乱する。 コンパイル時間が気になりだしたら、分割する方がいいかも。
分割できるような設計になってるならな。 最初からそういうつもりで設計してなければ、 「あー分割したらうまく動かん。やっぱやめ」 ってなって、分割できないまま作り続けて どうにもならなくなる。 使い捨ての小物ツール作るならそれでもいいが、 RPG作るっていうのにそんなんじゃ、バグ放置で 開発終了する羽目になるだろうな。
いや、分割ってヘッダに書いた実装をcppとhに分ける話でしょ。 ヘッダには関数名だけ残して、cppには中身を移すだけだから、 動かなくなることは滅多にないんじゃ。
ソースがひとつだと無節操にグローバル変数が混ざって、 「あー分割したらうまく動かん。やっぱ(以下略 最初から設計考えて分割してたらこうはならない。
それは設計レベルの話じゃなくって脊髄反射の実装レベルの話だと思うんだがどうか。
>>822 >コードが集中するとどうして見通しがよくなるのか分からない。
他人のコードを印刷物でザット目を通す場合にはこれが果てはまる。
ま、ただの横レスだが
Doxygen用のコメントをヘッダとソース両方に書かなきゃなんないのも地味に面倒だな。 カプセル化の意味では正しくないんだろうが、ほんの数行に収まるメソッドなら、 実装の中身を覗けたほうが機能を正しく理解する手助けになったりもするし。
>実装の中身を覗けたほうが機能を正しく理解する手助けになったりもするし。 この時点でそのクラス設計を間違えてる。 もしくはあまりにドキュメントが不足している。
実装に依存したコーディングが許されるのは限られた状況だよな。 ドキュメントがなくソースコードもヘッダしか確認することができない、 とかいう嫌な状況で実装がヘッダに書いてあれば、緊急避難的に 助かる場合もあるだろうけど、これからプログラムを作ろうってときに そんな状況のために実装をヘッダに書いちゃうのはだめだな。 どうせ悪い状況に対するフェイルセーフの策を講じる気があるなら、 ドキュメントの整備方針を決めておくとか、そういう方向でやるべき だろうし。
理想論的にはね。 単にソースコードこそが最高のドキュメントって状況はあるってだけの話。 普通にやってりゃコメントだけで十分な情報が確保できなきゃ困るわけだが、 ちょっとくらい中身が見えてたところで誰も困らない状況もあるってだけ。 無論人にそんなコーディングスタイルを勧めるつもりは毛頭ないが。 (主に原理主義者に噛み付かれるからって理由で)
同じ関数ならコメントはヘッダだけに書けば別段Doxygenは文句を言わないが。
>>837 両者の利点欠点を斟酌するんじゃなくて
> (主に原理主義者に噛み付かれるからって理由で)
という考え方に行っちゃうのは嫌だなあ。
自分の主張をするだけして、反論を原理主義者が噛み付いたと
表現する態度は、あなたの言う原理主義者のそれだと思う。
> 理想論的にはね。
いや、至極現実的な話をしてるつもりなんだけど。
「相手にソースが公開できないけどヘッダは公開できるという
制約があるから、その制約の隙を突いて、ヘッダに実装を載せる
ことで相手に実装を公開しよう」
という話だよね、そのコーディングスタイルの理屈は。
単に「現在ではクラス実装部のコンパイル時間は問題にならず、
それをhとcppに分離するのは単に無駄だ」という話ならまだ分かる。
けど、>837のような意図でそのコーディングスタイルをとるのは、
「ドキュメントが欠けてても仕様があいまいでも実装を公開してる
から大して問題じゃないだろ」という意識につながると思うんだよ。
事実、あなたは
> どうせ悪い状況に対するフェイルセーフの策を講じる気があるなら、
> ドキュメントの整備方針を決めておくとか、そういう方向でやるべき
というのを理想論的だと感じてしまうみたいだし。
実装をヘッダに書くことを支持・許容する理由はいくらか出てるけど、
>837のような理由で実装をヘッダに書くことをするのはよろしくないと思うよ。
そのせいでmain8000行という発想になるのも困りものだし。
みなさん、コンパイラーって何使ってます? …参考にしたくて。。。
処理系次第。 Windows使ってるなら普通にVisualStudio使いなされ。
VisualStdio
MS工作員どもめ!
>>843 お前は何使ってんの?
Borlandとか言うなよ、腹筋壊れるから
>>842 Visual Standard I/O?
DirectX使うならVCだな。一応、無料配布してるし。 使わないならMinGW。
847 :
デフォルトの名無しさん :2006/06/25(日) 20:47:25
つまんね
849 :
デフォルトの名無しさん :2006/06/26(月) 22:01:12
scopeを知らない子どもたちのいるスレはここですか? CUIRPGの進歩のなさにある意味感動した
ちょろいもんだぜ
scope(笑)
lifetimeもだろw
だったらlinkageも入れとけよ
854 :
デフォルトの名無しさん :2006/06/26(月) 22:56:51
やっぱ基本はMakefileだよな
855 :
デフォルトの名無しさん :2006/06/27(火) 00:16:03
負けファイル
誰が負け犬か。
ファイルは動物じゃない
ファイルはは人間だぞ
誰が犬人間か。 わんわん。
お久しぶりです。最近来れませんでしたがスレ盛り上がってますね。
>>824 まさに私がそうです。どうやればできるかはわかるのですが、メリット・デメリットが良く分かってないです。
>>842 マニアックなネタを・・。すぐ気がついたのですが当分直す気は無いですw
>>849 これからも人を感動させるプログラムを作っていきたいです。
本当にありがとうございました。
感動を大切にナ
862 :
デフォルトの名無しさん :2006/07/06(木) 00:10:28
終了?
バカヤロウ、まだ始まっちゃいねえよ!
俺たちの戦いはこれからだ!
名無しさんの次回作にご期待ください。
wktk o(^-^)o ってか、お久しぶりです。 話し流れてるけど、そういえばDoxygenは、 前にも紹介してもらっていたのですが、 使い方がイマイチ分からなくて後回しにしていたうちに、 忘れてしまっていました。ゴメン。orz とりあえず、今やってるのの戦闘部分が終ると、 道具関係が一段落つくので、 ドキュメント関係はそれやってから、考えます。 ってか。ちょっと色々あって、今のが完成しなくても、 8月末頃で一度、作製打ち切らないといけなくなりそうな悪寒で、 焦っていたりします。 ってか、2週間ぶりに開いたら、またというか、案の定というか、 ワカメスパゲティになっていて、途方にくれています。ガンバロウ。 ってか。またしてもチラシの裏ですね。orz
>>866 ドキュメント付けは開発と同時にやるのが最も効率や正確性が良く、効果も高いのであって、
後からやろうというのは効率も正確性も悪く、効果も薄く、またどうせやらなくなる危険もある。
大間違いである。
言われてもうた…… orz いや、そうじゃないかなぁとは薄々気付いてはいたんですけど、 実際、メンドクサってなってドキュメント無しにしてしまいおうかとか、 オモッタリオモワナカッタリしてたし。(ヘタレデゴメン) ってか、開発と同時に作ろうと思ってはいるんですけど、 今やってる戦闘関係の辺りは、かなりワケワカメになっているので、 コードがもう少し固まるまでは、ドキュメント書くのはムリです。 ってか、私のそもそもの大間違いは、 作る前の仕様がテキトウ過ぎたって所に戻りそうな悪寒。 (いや、作る前にはいちおいうキチンと決めたつもりだったんですけどね。 実際に作り始めたら、予定とかなり違ってきてるもので。 仕様を模索しながら作っている状態に陥ってしまっているんです orz ) ってか、なんかまた、最初から作り直したくなってきました。orz
>>869 ドキュメントが書けないという状況がコードの混沌を顕在化させてくれている。
ここで作り直すというのは経験のあるプログラマにとっては適切な選択だが、
今のお前にはまず一つのものを完成させるということが経験として重要なものになり得る。
どちらかを選べ。そしてどちらを選んでも完成させろ。
中途半端で作り直すという選択を繰り返すのが一番良くない。
アドバイスありがとうです! え〜と、それでは、既に前に3回ほど作り直しているので、 今回のは、このまま突っ走ることにします。 ってか、8月中に完成できないとホントにムリそうなんで、かなり焦っています。 ゲームとしてのシナリオは組み込めそうにないけれど、 せめてシステム面は作り終えたいけど、どうなるだろう… とにかくガンバリます!
872 :
デフォルトの名無しさん :2006/07/10(月) 00:53:09
ガンバレ
ドキュメントは、これから書くところのうち、上手く書けそうなところだけでいいよ。 とりあえずは。 ドキュメントも場数踏んで上手くなるものだから、できそうなところだけでもやっておくといい。
ところでドキュメントって何?
Document
876 :
デフォルトの名無しさん :2006/07/23(日) 09:23:42
age
877 :
デフォルトの名無しさん :2006/07/25(火) 00:01:36
このスレ終った?
とっくに
もうちっとだけ続くんじゃ
ということは、あと3スレは行くってことですね!
881 :
くるしゅうない ◆4kNmNUv1zA :2006/08/08(火) 09:33:58
このすれ、利用させてもらいますね。 でも、とりあえず、来年の4月まではButuの持込は控えておきますが。
来年の4月までに埋めるか
883 :
くるしゅうない ◆4kNmNUv1zA :2006/08/09(水) 07:33:09
それは酷い。 せめてもうちょっとまってて。 いまやっと、絵を表示できるようにしたところ。 イマイチ、クラス設計ってのがわからんから ゴワッシな感じなんよぉ。
>>883 利用するのは構わないが、日本語で書いてくれ。
博多弁だろ
ごわっし
887 :
デフォルトの名無しさん :2006/08/10(木) 11:39:47
ごわっし
888 :
くるしゅうない ◆4kNmNUv1zA :2006/08/11(金) 14:36:52
暑いね。 それはともかく、戦闘部分と普通のフィールド部分ってどうやって切り分ければいいんだろう? やぱり、関数ポインターをつかうんだろうか?
普通に、戦闘時は戦闘用ゲームループでグルグル、 フィールド時はフィールド用ゲームループでグルグルでいいと思うが。
890 :
くるしゅうない ◆4kNmNUv1zA :2006/08/11(金) 17:48:43
>>889 今一歩理解できないのだけど、
自分が考えていたのが、
for(;;){//Main Loop
KeyProc();
POINTER_OF_FUNCTION();//some times do BattleProc, other times do FieldProc,do GameStartSceneProc, and so on
MusicProc();
DrawDisplay();
PrintDisplay();
if(flag==QUIT)
{ break ; }
WaitProc();
}
こういう方向じゃなくて、
//* ここまでにゲームの初期化など。*//
for(;;){// Game Main Loop
for(;game_marching_on=BATTLE;){ // do something }
for(;game_marching_on=FIELD;){ // do something }
//*同様に続く*//
}
な感じの方がいいと言う事?
下手ぁこいても致命的になるような部分じゃないんだから好きなようにやれそんなもん
892 :
889 :2006/08/11(金) 21:23:49
>>890 こんな感じかな。
enum {Field = 0, Battle};
GameLoop()
{
int game = Field;
while(1) {
if(game == Field) FieldLoop(&game);
else if(game == Battle) BattleLoop(&game);}
}
FieldLoop(int *game)
{
while(1) {
if(敵が現れた) {*game = Battle; break;}}
}
BattleLoop(int *game)
{
while(1) {
if(戦闘が終わった) {*game = Field; break;}}
}
>>892 それって、状態(移動や戦闘)の種類が増えて、遷移が
複雑になったら、破綻しない?
単一のメインループ内から、現在の状態に応じた処理を
呼び出した方が良いかと。
BattleField : FieldクラスやMapField : Fieldクラスを作って Fieldオブジェクトとして差し替えるとか
895 :
889 :2006/08/14(月) 17:27:35
>>893 自分はいつもそのやり方。破綻した事は特に無い。
単一から呼び出すと、ifのチェックなどで
関係ない所も触ってしまうことになる。
現在、必要な処理のみをループの中に記述したいというか。
逆に、関係する所は、ループに入るときに引数として渡しておく。
ただ、再描画の部分とか、それぞれのループ毎に
書かないといけないから、コード量は膨大になる。
896 :
893 :2006/08/14(月) 20:24:30
>>895 >ただ、再描画の部分とか、それぞれのループ毎に
>書かないといけないから、コード量は膨大になる。
この辺に破綻の臭いを感じてしまう。
まぁ、自分はそう感じると言うだけで、俺が絶対に
正しいとか主張するつもりはない。
897 :
889 :2006/08/14(月) 21:40:27
>>896 もちろん、関数分割とか、いろいろ工夫している。
コードの多さは、能力値表示とかに
別ウィンドウを使っているから、その分もあると思う。
まだこの方法で大きいゲームを完成させた事は
ないから不安もあるが、逆に大きいゲームだからこそ、
効果が発揮できると思う。
そこまでドラマティックに言うほどのことじゃない
普通にstateパターン使えば解決する。
900 :
889 :2006/08/14(月) 22:52:26
>>898 別にいいじゃないかw
>>899 ググってみたがC++か?当方はC(bcc)。
CとC++の違いもあって、
多ループ型と1ループ型に分かれているのかも。
なんだ30代のC厨か
Cでstateパターン使おうと思うと、関数ポインタを持った構造体を 状態ごとに作る感じなのかな?
まあ、そうなるんだろうなあ。 かったるい話だ。
なんでC++使わないんだろう。CよりC++の方が速いし便利なのに。
そうだよな。 C++コンパイラだって今は無料のがいくらでもあるんだし、無理してCを使う意味がほとんどない。
>>904 組み込み系っしょ。工場の機械っていまじゃチップ乗ってる。
ディップスイッチていうのかな、これらも画面の説明みながら設定するしね
ヤバイのは、組み込み系にC++が対応したとき。Cユーザリストラ!?
Cユーザを再構築しても使えないから、破棄するしかないと思う。
組み込みでだってC++使える場合がほとんどのはずなんだが、 駄目な現場は存在するみたいだな。 ちゃんと使えばCと完全に同レベルのバイナリを吐き出せて保守性も上がるのに、 何が理由で使わないんだか。 職人の爺様の反発か、なんか宗教上の理由なのか。
漏れのなかまで、いまだにCのほうがはやいっていってるばかがいます しかもたくさんです
910 :
デフォルトの名無しさん :2006/08/25(金) 19:04:23
Cは理系、C++は文系って感じがする。 Cは小さい機能を組み合わせて使い、 C++は大きい機能を独立させて使う。 Cは組み合わせ方を考えるのが大変で、 C++は機能を覚えるのが大変。
C++は速いぜぇ、速くて死ぬぜぇ C厨は消毒だぁー
914 :
デフォルトの名無しさん :2006/08/25(金) 21:11:34
>>908 なんちゃってアセンブリストの栄誉をあげるよ。
>ちゃんと使えばCと完全に同レベルのバイナリを吐き出せて保守性も上がるのに、 妄想
operatorオーバーロード濫用の値返しと、 仮想関数まわりと、 RTTIと、 他にC++で速度の足引っ張りそうな要素なんかあるか? 上のは避けようと思えば全部楽勝で避けられるしな。 つーか仮想関数は自分でジャンプテーブル書くのと何も変わらんし、 RTTIは使わなくても不便しないし、同じ機能組み込むのに何の苦労も無いし、 実質値返しの無駄コピーくらいのもんと違うのか。 こればっかりは返り値最適化も完全には当てにならないから わからんでもないのだが、ちょっと丁寧に書けばいいだけだし。 やっぱり謎だ。 何故避ける?
インライン展開の類は、明示的なinline宣言とテンプレートがあるしな 定数類の展開考えたら、生Cよりも最適化に有利な面はいくらでもある マクロ?本当に必要な時以外、今更使うかそんなもん
>>915 現実では「ちゃんと使う」ってのができないんだよな。
それはアレか。 チームの誰もがC++を使えるわけじゃないから危険だって奴か。 よく聞く話ではあるが…。
理系ならCを、文系ならC++。Cをバカにするな。 それぞれ得意分野でやればいいわけだから。
得意分野って、そもそも住み分けるようなもんじゃないはずなんだが 何のために++の文字が付いてると思ってんだよ
C++を使えない馬鹿または爺が必死でC++をこきおろすスレに成り下がったか。
逆やん。C++使いがC使いをいたぶるスレだな。 スレタイ的には両方入っているんだから、仲良くしたいものだ。
次スレはいらないな。
そもそもPGの全員が、趣味でプログラムを組んでるわけではないからな。 習熟度に差があるのは当然かと。世の中には仕事でしかプログラムを 組まない人とかもいるんだよ。
>>916 例外処理もそれなりにオーバーヘッドがあると思う。
組み込みなら使えないということもあるだろうが。
>>927 major/minorが逆でしょ。
世の中のプログラマの大半は、趣味ではプログラミングはしない。
>>928 ごめん、素で存在を忘れてた。
C++の例外処理はオーバーヘッドでかすぎっつーか
負荷とか考えたらほとんど使い物にならないレベルだよね。
こればっかりはJavaが本気で羨ましい。
ごめん、そっちはあんまり羨ましくない。 強がりだけど。
>>916 > つーか仮想関数は自分でジャンプテーブル書くのと何も変わらんし、
同じレイアウトにするなら、単一継承でメンバポインタを使わないうちは、だな。
自前なら、場合によっては vtable を構造体の先頭にレイアウトした方がキャッシュ効率がよい場合もある。
> RTTIは使わなくても不便しないし、同じ機能組み込むのに何の苦労も無いし、
typeid は不要でも、typeof は(自前ではなく)コンパイラに管理してもらった上で欲しいけどな。
とはいえ、オーバーヘッドが大したこと無いのは同意。
C++ を避けるのは、C++ らしさなどと言ってバカらしいコードを書く馬鹿を避けているんじゃないだろうか。
やろうと思えば際限なく馬鹿なコード書けるからなー 多重継承やdynamic_cast絡みは禁じ手扱いでいいくらいじゃまいか ときにスレ違いだよな、このところの流れ
C++は、初心者が書くとテンポラリオブジェクトバキバキになりがちだからな。
RPG作るやつは消えたし、 組み込みの話するやつが出てくるし、 C++で挫折してひがんでるやつはいるし、 自分の知識ひけらかして俺SUGEEEEEするやつは出てくるし、 もう正常な流れには決して戻らない。。。
RPGには至らないけど頑張ってxファイル再生まで漕ぎ着けた
938 :
デフォルトの名無しさん :2006/08/30(水) 00:40:06
あげ
コンソールで作ってる人はまだいる?
見なくなった・・・
すみません。。上のほうでCUIRPGとかあげていたものです。 一週間ほど前から作成を始めた新作RPGの基盤が半分ほどできたので 一応スレにソース付けて載せて見てもいいですか? 一応道具関連と装備関連とセーブ処理と仲間の出会う分かれる処理と マップ処理とメッセージ処理はほとんど済んでいます。 戦闘処理もあと少しで全部終わりそうです。 イベント処理も基盤はほぼ済んでいますがそれに加えてイベントさえ 書けばドラクエ2〜3-α相当な感じに仕上がると思います。
まってた
キタコレ
944 :
デフォルトの名無しさん :2006/08/31(木) 00:51:32
>>944 ワロタ
夏が終わると同時に次スレへ!!
>>941 もったいない。
会社に持って行って採用試験を受けるとかの方がいいかも。
ダメだったらこちらで公開するとか。
>>944 は共同制作者の名が欲しいだけで実際は能無しに100ペリカ。
うpきぼんぬ
何か俺も公開してみようかな C++スレかコンソールスレか迷ったままお蔵入りしてたローグライクな奴を しかしよく考えてみるとC++の勉強をしながらクラスを設計しただけで 必要最低限度歩いてアイテムを拾って帰ってくるまでしか作ってなかった
もうどんどん公開してくれ
953 :
952 :2006/08/31(木) 14:31:09
CUIなのに軽いな。 自分はテキストベースの時は、CUIは遅いから、 GUIでビットマップを使わずTextOutのみを使ってやっていた。 CUIももう一度勉強してみようかな。
>>954 DirectXの(個人製)ライブラリ使ってるからだと思う。
Srcを覗けば分かるとは思うが。
(自分の環境下だとエラーでまくりでコンパイルできなかった)
VS2005でも/Zc:forScope-で一応通るな。 define.cppが見つからないけど。 それにしても、何か若さのパワーを感じさせるコードだ。
>>954 ひとつひとつのキー入力、描画は速いけど、
メニューから別のメニューに行くときが遅い感じがする。
後、キャンセルボタンがあると便利だと思う。
958 :
957 :2006/09/01(金) 07:35:18
>>954 すみません。CUIRPGと書いておきながら本当はGUIです。
最初は画像使ってドラクエみたいなのを作っていたのですが、
いちいち数パターンの画像描くのが面倒になって、画像を文字に差し替えて
擬似CUIにしてあるだけです。もし前のままやってたら敵キャラとか
画像描くだけでいっぱいいっぱいになっていたと思います・・・。
>>956 コードの汚さはプログラミングにあまり詳しくないので勘弁して下さい(笑)。
そろそろ本格的にC言語やろうかなとは思ってはいるのですが・・・。
>>957 本当は早くできたのですが、あえてSleepで寝かしていたりします。
そういえば少し長いですね。次の公開で直しておきたいです。
後キャンセルボタンはバグを誘発しそうなので今回は採用しませんでした。
>>959 やっぱGUIだよね。
マップとコマンドメニューの重なり方もCUIではなしえない形だし。
画像のめんどくさいのは同意。
自分はまったく書けないから全部フリー素材だけど、
あう素材を探す事自体も大変だったり。
ドラゴンクエストクローンすれの人はホントすごい。
僕も公開用じゃないけど作っている。こっちはものほんCUI。
AA+色変えを使えば、色違いモンスターも再現できそう。
http://gamdev.org/up/img/7416.png
>>960 これは面白そうですね。ソース無くてもいいから是非プレイしたいです。
でもこれだと画像使ったほうが楽なのではと思ったりもw
>>960 ショボイな
オマエは晒さなくて良いから
>>961 >>962 等幅AAで作ろうなんて考えていなかったけど、
コンソールスレのモナゴンクエストを見て目覚めてしまった。
/ の反対側のとか、半角スペースの上半分だけ
塗られているのとかあれば、もっときれいにできそうなんだけど。
公開する場合は、あまりプレッシャーのかからない、
コンソールスレか、自主制作報告スレあたりで。
つ[\] え? 円記号に見える? 目がおかしいんじゃないの?w
windowsのコンソールでフォントを自由に変えるのって無理だっけ
#include <windows.h> int __stdcall WinMain( HINSTANCE, HINSTANCE, LPSTR, int ){ AllocConsole(); HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleOutputCP( 850 ); WriteFile( handle, "\\", 1, 0, 0 ); Sleep( 1000 ); FreeConsole(); return 0; } bcc 用。 フォントはわからなかった。
>>964 ¥の半角のに見える。機種依存文字なんかな。
半角のカナは見えるんだけど。
FFを作る場合は、rアの半角のでカーソルを表示したいなとか思ったり。
>>965 使った事はないが、SetCurrentConsoleFontでできるかも。
>>966 ウィンアプリからコンソールを呼び出すやり方か。
ウィンドウだけ出て、何も表示されずに閉じてしまう。
例え趣味半分でも、一応プログラマなんだったら ¥と\の関係位は知っといて損はない それで得するかどうかは判らないが とりあえず バックスラッシュ でぐぐったら多分何か見つかると思う
>>968 サンクス。理解した。
GetCurrentConsoleFont / SetCurrentConsoleFontは
9x系だと未解決になってしまう。
使用条件にXPとかサーバーとか
書いてあるから、新しいやつなんかな。
先日CUIRPG2の初期基盤をアップしていたものです。 開発中のバージョンが完成度が高くなってきたのでこの前公開していたものは 一旦削除しました。完成したら再び完成版を公開するつもりです。
971 :
デフォルトの名無しさん :2006/09/19(火) 21:28:04
スキルのある人材募集
http://pc8.2ch.net/test/read.cgi/gamedev/1158659059/ 【概要】
FFを越えるCGムービー。
宇宙を股にかけた壮大なシナリオ。
自由度の高いネットワークRPG。
【企画】
究極のRPG(仮)
【内容】
見る者を感動させる緻密なストーリー
同時に100万人までが同じサーバーで冒険できる。
圧倒的なCGによりゲームは映画を越える。
戦闘はリアルタイムアクションバトル(特許出願中)
武器や道具は全部カスタマイズできて全10000種類。
【企画意図】
ゲームを300万本売って億万長者になりたい。
本当に面白いゲームが作りたい。
死亡フラグ 「大風呂敷を広げる企画は成功しない」
それ、公理かと思ってたらフラグで実装されてたんか
975 :
デフォルトの名無しさん :2006/09/21(木) 11:35:40
>>974 ファンファーレ聖剣3ww
キーレスポンスが変だがそこそこ遊べたよ。
だいぶ壮絶なソースだが、アレだけの量を書いたのは頑張ったと思う。
>>975 聖剣3ですか? やったことはないですが似ているということでしょうか?
キーレスポンスについてはかなり私の感覚にあわせていて回りに
プレイヤーがいなかったので全く確認していませんでした。
>>976 やっぱりコードが汚いですよね・・。でもお褒め頂き光栄です。
>>978 えっ?そうだったんですか。
まぁ完成が近づいた時点で効果音は全て自作するつもりだったので、
当分はこれでいきますがw
すみません・・。致命的ではないですが、回復魔法「キュア」を使ったときと フィールドで「やくそう」を使ったときにバグがあったと報告してくれた方々が いたので修正しました。後少し難しすぎたようなのでバランスを調整したりしました。 ファイルのアドレスは前と同じです。セーブデータ(name.txtとsave.txt)は互換されて いるのでデータを新しいCUIRPGに引き継ぐことも可能です。
梅
1000 get
/
( ゚д゚)
(゚д゚)
'`,、('∀`) '`,、
('A`)
(゚听)
orz
990 :
デフォルトの名無しさん :2006/10/16(月) 22:39:50
書いたことがないロジックを組んだら満足してあとは面倒くさくなって放棄してしまうのは何故だぜ?
( ゚д゚) 、ペッ
誤爆 ・・・でもないか
994 :
デフォルトの名無しさん :2006/10/18(水) 01:48:23
イーンダヨ
995 :
デフォルトの名無しさん :2006/10/18(水) 01:49:07
予告 まもなくスレッドボッシュートがきます。ご注意下さい。 ⌒ ⌒ ⌒ ⌒ ⌒ ⌒ ⌒ シュルルルルルルルルルル __⌒__⌒__⌒__⌒__⌒__⌒__⌒_____ /:∩::∧_∧:∩:∩:∧_∧:∩:::::::/ チャラッチャラッチャーン /::::| ( ´_ゝ`)| |::| (´<_` )| |:::::/ ミヨョヨョヨョヨョヨョーン /:::::::| /:::| /:::/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
996 :
デフォルトの名無しさん :2006/10/18(水) 01:50:13
∧∧ .∫ /⌒ヽ)─┛ 〜(___) ''" ""''"" "''
997 :
デフォルトの名無しさん :2006/10/18(水) 01:50:52
'''''─- .....,,,_ __人_人,_从人_.人_从._,人_人_  ̄"゙'"''''''─‐- ゙"ニ ─__ ) r──--- ...___ ) 宗主国様〜 三 /レi ニ | ニ ≡ ) いまさら日中友好だなんてうちの立場はどうなるんですか!! .ニ ( `ハ´)| ニ |!カ_ ろ | / つ つ Lニ-‐′´ )/⌒Y⌒Y⌒l/⌒Y⌒Y⌒Y⌒ '''''゙゙゙゙゙ ̄ _,, -‐'''∧_∧ っ ゚ --─="゙ ̄ ⊂(Д@;) ゜ ニ─ _,.. ゝ、 O _,.. -‐'" しへ ヽ __,, -‐''" , ゙ー' , ' /
998 :
デフォルトの名無しさん :2006/10/18(水) 01:51:22
┌────────── | お知り合いですか? ┌─────┐└─────‐v──── │イヤ、全然アル |__________ プァァン… └───‐v─┘//. | // / .| | . | __Λ∩ / | | ∧_∧ |@Д@) ∧_∧」 ガタン / ( `ハ´) | / ( ) \ ゴトン // ( )二二二二二⊂ | \\ |||| )~) (⌒ _ノ . |||| |||| ./  ̄ U U_____ し \ |||| ||||/ / .\ \|||| |||| ̄ ̄||||. |||| ̄ ̄||||
999 :
デフォルトの名無しさん :2006/10/18(水) 01:53:51
/:`/  ̄|: : : : /: : : : : : :ハ: : : :.:l!: : i: : :.ハ: : : ヘ:.: : :.ハ //:./ :.:.:.:.:.|:.: : : i:.:. : : : : :/ | : : : ,'|: : :|ヽ: : l:.:. : :ハ:.: i: : ! . |! {:.:.l! :.:.:.:.:.:|:.: : : ! : : : : / l: : : / |: : :! |:. :|:.:.:. : :| : |:. :| ∨ハ:.:__,.、」:.:. : :|_,.>=ァ-、/ : :./ i:.: :,'__]] ,イト: : : | : |: :.| |´: : :.:|:.: : : |/ / { ハ-‐'" ,':.:./,ィ"|ハ`ヽ!:.:.:,':.:.:|: :,' ∨:.:r┤: : : |! i! Kュ、j // { ゝ、_j }|:.:/ : :/!/ ∨| i| | : :.:!( ̄)--' ヽ-( ̄)|∧イ / ,.、―=へ. ∨、!:| : : | xxx ,. ‐―‐--- 、_ xxxx i: :.ハ ヽヽ / ,.r-ハヽ ∨トト:.: :l /´ ̄ ̄` 、::::::::::ハ }:. :|:| │─┼‐ . ┼‐┐\ f 7 f 7 . / ,.イ ヽノ>┬'!ヽハ { ヽ ::::::,' ,イ! : |:| │┌┼┐ │ .│ ―─ |/ |/ |  ̄ _>-}: :!:::l:.:|: |\ヘ ∨ }::::/ .イ/i:.|: /リ └└┘ ┘ .┘ あ o o . /|. '"´ }::|:::ハ:|: |:: :: ::>ヽ、.,___,,..、r<!: : /. | |/./
1000 :
デフォルトの名無しさん :2006/10/18(水) 01:54:09
日テレはルパンにひどいことをしたよね(´・ω・`)
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。