[過去ログ]
ゲームプログラミング相談室 (986レス)
ゲームプログラミング相談室 http://game.5ch.net/test/read.cgi/gamedev/1005040025/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
747: 名前は開発中のものです。 [sage] 02/10/22 22:58 ID:??? 先頭に余分なものを追加するなり1ビットずつ反転するなり好きにするよろし 拡張子だけ変えて実はgifそのもの、なんてのもあったなー。すぐばれるけど。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/747
748: 名前は開発中のものです。 [sage] 02/10/22 23:38 ID:??? >>746 どんなマップ? 平面なら二次元配列でいいと思うが。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/748
749: 名前は開発中のものです。 [] 02/10/23 00:55 ID:XrIoI0Co 逆汗すれば終わりだなー 名かには逆汗ブロックするものもあるけど http://game.5ch.net/test/read.cgi/gamedev/1005040025/749
750: 名前は開発中のものです。 [sage] 02/10/23 01:44 ID:??? >>749 ん? 発想が逆だと思うよ。 「リバースエンジニアリングされたら終わり」じゃなくて、 「リバースエンジニアリングされなきゃ大丈夫」。 平文で読まれなきゃ読める人は大きく限定されるわけだからね。 でも、解析されても、個人製作のソフトにそこまで情熱を傾けてくれるのなら それはそれで嬉しい気もする。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/750
751: 名前は開発中のものです。 [] 02/10/23 21:37 ID:rAqnFbe+ ゲーム製作者に質問です。 正直、Vectorにある数多くのフリーゲームで、何割くらい(または、いくつくらい)が 遊べるゲームだと思っていますか? 人によってかなり答えが異なると思いますが、みなさんの意見を聞かせてください。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/751
752: 名前は開発中のものです。 [sage] 02/10/23 21:50 ID:??? プログラミングとの関係がないなら雑談スレでやろうよ・・・ http://game.5ch.net/test/read.cgi/gamedev/1005040025/752
753: 名前は開発中のものです。 [sage] 02/10/23 23:47 ID:??? >>751 http://game.2ch.net/test/read.cgi/gamedev/1007129482/84n- http://game.5ch.net/test/read.cgi/gamedev/1005040025/753
754: 名前は開発中のものです。 [sage] 02/10/24 16:35 ID:??? >>751 個人的にはゼロ。 ぜんぜん遊べん。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/754
755: 名前は開発中のものです。 [sage] 02/10/24 17:51 ID:??? タスクあるいはジョブコンと呼ばれるリアルタイム処理なプログラミング技法上で 再帰処理が必要な思考ルーチンを組まなければならない場合、どうやってますか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/755
756: 名前は開発中のものです。 [sage] 02/10/24 17:57 ID:??? 製作中断 http://game.5ch.net/test/read.cgi/gamedev/1005040025/756
757: 名前は開発中のものです。 [sage] 02/10/24 19:21 ID:??? >>755 ageないと質問に答えてもらいにくいよ 急いでいないならいいが http://game.5ch.net/test/read.cgi/gamedev/1005040025/757
758: 755 [sage] 02/10/24 19:37 ID:??? >>757 急ぎではないのでマターリ待ちます。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/758
759: 名前は開発中のものです。 [sage] 02/10/24 19:44 ID:??? >>755 ・マルチスレッド ・再帰処理をタスクシステムへ載る様に組み直す パッと思いつくのはこれぐらい。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/759
760: 名前は開発中のものです。 [sage] 02/10/24 20:59 ID:??? >>754 そんなことはない。少なくともゼロではない。 >>760 必死だな(w http://game.5ch.net/test/read.cgi/gamedev/1005040025/760
761: 名前は開発中のものです。 [sage] 02/10/24 21:41 ID:??? >>760 なんでそんなに必死なの http://game.5ch.net/test/read.cgi/gamedev/1005040025/761
762: 名前は開発中のものです。 [sage] 02/10/24 22:06 ID:??? warata http://game.5ch.net/test/read.cgi/gamedev/1005040025/762
763: 名前は開発中のものです。 [sage] 02/10/24 22:50 ID:??? ワロタ http://game.5ch.net/test/read.cgi/gamedev/1005040025/763
764: 名前は開発中のものです。 [sageもう寒い季節だね。早いよね。] 02/10/25 02:42 ID:??? こんな事で笑っていてはいけません。 もっとおかしい事はたくさんありマンコ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/764
765: 755 [sage] 02/10/25 10:46 ID:??? >>759 2番目の奴の詳細解説キボン。 擬似スタックを作るんだっけ? http://game.5ch.net/test/read.cgi/gamedev/1005040025/765
766: 名前は開発中のものです。 [sage] 02/10/25 11:11 ID:??? おまいらは、そんなにも擬似とつけたいのでつか? おまいらが、いまよんでいるのは 擬 似 文 字 でつか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/766
767: 名前は開発中のものです。 [sage] 02/10/25 14:59 ID:??? 擬似じゃなくて仮想なら無問題? http://game.5ch.net/test/read.cgi/gamedev/1005040025/767
768: 名前は開発中のものです。 [sage] 02/10/25 15:06 ID:??? いまここにある文字は おまいらにとっては 仮 想 文 字 なんでつね? http://game.5ch.net/test/read.cgi/gamedev/1005040025/768
769: 名前は開発中のものです。 [sage] 02/10/25 16:06 ID:??? ごめん、virtualにしといて http://game.5ch.net/test/read.cgi/gamedev/1005040025/769
770: 755 [sage] 02/10/25 16:07 ID:??? 仮性ホーケーは黙ってて欲しいな >768 http://game.5ch.net/test/read.cgi/gamedev/1005040025/770
771: 759 [sage] 02/10/25 17:17 ID:??? >>765 そういうことです。配列にスタックを作って自前で管理し、ローカル変数を そのスタック上に置きます。 再帰を単純なループに開いた上、タスクシステム上でまわす事になります。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/771
772: 名前は開発中のものです。 [sage] 02/10/25 20:04 ID:??? DirectXフルスクリーン@C言語で、 ユーザーからの入力文字(漢字変換とかもアリ)をげっちゅーするには やっぱりInputBoxのAPIしかないのでしょうか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/772
773: 名前は開発中のものです。 [] 02/10/26 01:01 ID:vJSal2rR XindowsXP HomeEditionを使っているのですが、 自分のプログラムを実行するごとに重くなっていきます。 プロセス自体はちゃんと終了しています。 windowsって、プログラム終了時にメモリの解放って行ってくれないんですか? まぁ、自分がメモリリークをつぶさなければいけないのですが。 特に、大き目の画像を扱った後にそのような現象がおきるみたいです。 どうなんでしょう。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/773
774: 名前は開発中のものです。 [sage] 02/10/26 01:14 ID:??? >>773 タスクマネージャに該当プロセスがないことは確認したかい? http://game.5ch.net/test/read.cgi/gamedev/1005040025/774
775: 名前は開発中のものです。 [sage] 02/10/26 01:14 ID:??? はい、確認しました。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/775
776: 名前は開発中のものです。 [sage] 02/10/26 01:28 ID:??? 解放は自動的に行われることになってるし、XPはNT系だからさらに安全なはず。 ただしこれはドライバが正常に動作していればの話。 ディスプレイドライバを更新するとかしてみれば? http://game.5ch.net/test/read.cgi/gamedev/1005040025/776
777: 名前は開発中のものです。 [sage] 02/10/26 01:46 ID:??? メモリ確保して開放せずに終了したら駄目じゃん。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/777
778: 名前は開発中のものです。 [sage] 02/10/26 02:48 ID:??? >>777 プロセス終了時のメモリ解放は OSの管轄ですが何か? メモリリークが問題になるのは 長時間常駐するプロセスだけ http://game.5ch.net/test/read.cgi/gamedev/1005040025/778
779: 名前は開発中のものです。 [sage] 02/10/26 02:55 ID:??? 不正な処理で終了した場合も開放してくれる? http://game.5ch.net/test/read.cgi/gamedev/1005040025/779
780: 名前は開発中のものです。 [sage] 02/10/26 03:54 ID:??? >>779 まさか、しないと思ってるのか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/780
781: 名前は開発中のものです。 [sage] 02/10/26 04:37 ID:??? Win95のころはひどかったな。 一応OSが開放してくれるハズだが、 それを過度に期待したプログラムを組むのは避けた方が無難。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/781
782: 名前は開発中のものです。 [sage] 02/10/26 04:44 ID:??? 関係ないけど、windowsでプログラム書くんだったら 確保したメモリは必ず自分で解放しなくちゃダメだよ。 OSを信用する方が悪い。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/782
783: 名前は開発中のものです。 [sage] 02/10/26 07:46 ID:??? OSが開放してくれるとしても、それはあくまでも開放ミスに対する 救済措置と思ったほうがいい。確保したメモリは必ず開放するのが鉄則。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/783
784: 名前は開発中のものです。 [sage] 02/10/26 10:14 ID:??? またmalloc&freeネタか・・・飽きないねえ http://game.5ch.net/test/read.cgi/gamedev/1005040025/784
785: 名前は開発中のものです。 [sage] 02/10/26 12:43 ID:??? >>783 > OSが開放してくれるとしても、それはあくまでも開放ミスに対する > 救済措置と思ったほうがいい そりゃ違うだろ。 そもそも仮想記憶を使ってる OS の場合、ページテーブルやら TLB (*1) やら は OS 以外は触れない。そこにバグがあると疑い始めたら、もはやアプリケー ション側でとれる対策は何もないよ。 (*1) IA-32 だと TLB はソフトウェアからいじる必要はない(ページテーブルをハード が勝手にコピーしてくれる)けど、MIPS などは TLB ミスが起きると例外を発生 して、OS が自前で埋める必要がある。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/785
786: 名前は開発中のものです。 [sage] 02/10/26 14:26 ID:??? どんな環境でも開放しなかったメモリの後始末をしてくれる という保証は無いからメモリリークするようなプログラムは そもそも欠陥品と見ていい。だから開放しないと駄目。 それにOSが開放しなかったからといって、それはOSの 過失ではない。プログラム作った奴が悪い。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/786
787: 名前は開発中のものです。 [sage] 02/10/26 14:35 ID:??? 786でまとまりました。 では次の話題。 ↓ http://game.5ch.net/test/read.cgi/gamedev/1005040025/787
788: 名前は開発中のものです。 [sage] 02/10/26 15:24 ID:??? 実験に使いたいのですがOSがリソースを開放できない終了方法を教えてください いくらやってもけしからんことに勝手に開放されてしまいます http://game.5ch.net/test/read.cgi/gamedev/1005040025/788
789: 名前は開発中のものです。 [sage] 02/10/26 16:18 ID:??? >>788 Win98でRPCだか何だかを使うと起こりやすいそうだ 使ったことないけど http://game.5ch.net/test/read.cgi/gamedev/1005040025/789
790: 名前は開発中のものです。 [ ] 02/10/26 16:22 ID:??? >>788 DOS環境とかゲーム専用機等ならたぶん開放しないのでは。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/790
791: 名前は開発中のものです。 [sage] 02/10/26 22:41 ID:??? >>745 アルゴリズムが公開されている暗号もある。 >>755 タスクと再帰処理がなぜ両立できないのか分からん。 >>788 何の実験に使うのか知らんが。 ファイルや共有メモリ等、OSが勝手に解放することがないリソースは存在する。 存分に使え。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/791
792: 名前は開発中のものです。 [sage] 02/10/27 01:11 ID:??? >>786 そもそも「どんな環境でも」なんて言い出したら、それこそ malloc/free がない 世界とか、あっても C 言語の規格書に従ってない環境まで出てくるから、議論 にならんよ。 規格書を行間まで読めば、C 言語の hosted environment を前提とする限り malloc したメモリは OS に解放されるはず、が結論。 だいたいヒープの仕組みとか仮想記憶の仕組みを知っていれば、そんなに ビクビクする必要はないと思うんだが。解放されないって、実際にどんな環境 を想定してるんだ? (スタイルとして解放する方が良いかは別問題な) http://game.5ch.net/test/read.cgi/gamedev/1005040025/792
793: 名前は開発中のものです。 [sage] 02/10/27 01:28 ID:??? つーか、解放しないと再利用できないじゃん? こまめに解放してメモリを開けたほうがいいと思うんだが。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/793
794: 名前は開発中のものです。 [] 02/10/27 01:52 ID:xQ8SKzdu PS2のアルファブレンド設定を DirectXでもやりたいのですが、 そういうことはできないのでしょうか? たしか こんな計算式 C = (A+B)>>7+D A: と B: ソースのカラーか フレームバッファのカラー D: ソースかフレームのアルファ値 http://game.5ch.net/test/read.cgi/gamedev/1005040025/794
795: 名前は開発中のものです。 [sage] 02/10/27 03:45 ID:??? >>794 IDirect3DDevice8::SetTextureStageState( ) http://game.5ch.net/test/read.cgi/gamedev/1005040025/795
796: 名前は開発中のものです。 [sage] 02/10/27 05:52 ID:??? >>793 ところが大抵の処理系では freeは解放済みフラグが立つだけで 実際に解放されるのはプロセス終了時なんだな・・・ http://game.5ch.net/test/read.cgi/gamedev/1005040025/796
797: 名前は開発中のものです。 [sage] 02/10/27 06:27 ID:??? JAVAなんかはガベッジコレクションを行ってくれるけどね。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/797
798: 名前は開発中のものです。 [sage] 02/10/27 09:49 ID:??? >>796 それじゃfree自体存在意義ねーじゃん http://game.5ch.net/test/read.cgi/gamedev/1005040025/798
799: 名前は開発中のものです。 [sage] 02/10/27 10:25 ID:??? >>798 けど同じプロセスが再び○allocするときは その解放済みの領域からメモリ確保するので あながち無意味とも言えない http://game.5ch.net/test/read.cgi/gamedev/1005040025/799
800: 名前は開発中のものです。 [sage] 02/10/27 10:53 ID:??? >>798 一種のキャッシュだよ。まっとーなメモリ保護のある環境下で OS を呼び出して メモリを割り当ててもらうのは ソフトウェア割り込みによる特権モード変更 割り込みハンドラでのレジスタの待避などの定型処理 (ここで OS のメモリ割り当て関係のコードに入って) 各種制限のチェック(たとえばユーザあたりのメモリ割り当て越えてないか、 とか) 仮想記憶のページテーブル、TLB の変更 OS の持つ仮想記憶レイヤーにおけるページエントリの変更 と、いろいろ手間がかかる。ユーザ空間で完結できれば、それに越したことはな い。 このあたりは使ってるライブラリによっても変わってくるけど、昔の UNIX だと 一度 malloc したら二度と OS には返さないのが一般的で、最近でも条件 (*1) が揃わない限りはまず返さない。 本当に OS からメモリを短時間・大量に借りたいなら malloc/free なんか使っ ちゃダメです。mmap() とか VirtualAlloc() とか使いましょう。 (*1) ヒープの端っこが free() されるとか、ページ単位で連続した空間が free される とか。この条件を緩くして OS 側に返すチャンスを増やそうとすればするほど、 malloc/free が内部で管理・チェックするデータが増え、割り当て・解放に掛か る時間もメモリ消費も大きくなるというトレードオフがある。 たとえば Solaris だと libc, libmalloc, libmapalloc あたりに実装が異なる malloc/free がいくつかあるから、ソースを眺めながら処理速度を比べてみると 勉強になるよ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/800
801: 名前は開発中のものです。 [sage] 02/10/27 11:02 ID:??? 検索で調べてみたが、実際メモリリークは問題になって るからメモリ開放しないプログラムを書くのは良くないと思う。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/801
802: 名前は開発中のものです。 [] 02/10/27 17:34 ID:PvYfeL9I >>800 Win32の場合、mallocもVirtualAlloc呼び出してんじゃないの? 同様に、freeはVirtualFreeって感じで。 メモリマップはこれらとは違うだろうけど。 思い切り勘違いなら、ごめんな。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/802
803: 名前は開発中のものです。 [sage] 02/10/27 17:36 ID:??? >Win32の場合、mallocもVirtualAlloc呼び出してんじゃないの? Win32じゃなくてCのランタイムライブラリの実装次第 >思い切り勘違いなら、ごめんな。 あやまるくらいなら最初からいい加減なことは書くな http://game.5ch.net/test/read.cgi/gamedev/1005040025/803
804: 名前は開発中のものです。 [sage] 02/10/27 17:49 ID:??? >>802 malloc() したら毎回 VirutalAlloc(), free() したら毎回 VirtualFree() してると 思ってる? んなこたないって。ソース読めば明白なんだが、msvcrt.dll だと 1. VirutalAlloc() 系ではなく一つ抽象度が高いHeapAlloc() 系を使っていて、 こいつがユーザ空間でいろいろメンテナンスしていてる。 2. それに加え C Runtime Library 内部でも、小規模なメモリ割り当てに関して 毎回 HeapAlloc(), HeapFree() を呼ばないで良いようにキャッシュしている。 と、OS 直のメモリインターフェースから 2 枚の皮をかぶせてある。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/804
805: 名前は開発中のものです。 [sage] 02/10/27 17:57 ID:??? あと OS が提供するメモリ割り当てのインターフェースは、基本的にページ単位 でしかメモリを割り当ててくれない。VM とか CPU アーキテクチャによるんだが、 たいてい 1 ページは 8192 バイト前後。 だから小さなメモリブロックを割り当てるときに毎回 OS を呼んでるとムダに なるメモリも莫大になるんで、 でっかいメモリブロックを OS からもらってきて そいつを小さく切り刻んだ上で malloc 呼び出してきた側に返す っつー仕組みにしてる面もある。 (あと昔の OS だと、そもそもメモリブロックを割り当てるような API を提供 してなかったりな。brk() とか sbrk() で検索してみ) http://game.5ch.net/test/read.cgi/gamedev/1005040025/805
806: 名前は開発中のものです。 [age] 02/10/27 18:15 ID:??? メ モ リ リ ー ク が イ ヤ な ら J a v a で も つ か っ て い ろ http://game.5ch.net/test/read.cgi/gamedev/1005040025/806
807: 名前は開発中のものです。 [sage] 02/10/27 19:01 ID:??? >>804 2. はたしか廃止されたような気がする 今手元にないのでわからんが、どっかで見た http://game.5ch.net/test/read.cgi/gamedev/1005040025/807
808: 名前は開発中のものです。 [sage] 02/10/27 23:24 ID:??? 802だけどよ malloc=VirtualAlloc呼び出しで解決されてるんじゃないか、 と思ったんで、質問の意味もあって書いてみたんだが。 それをいい加減とか決め付けてる>>803氏んどくように。 あと、HeapAllocは既に廃止されてるはず(MSDN libに載ってたと思う) 今のWin32では、HeapAllocは内部でVirtualAllocを呼び出してるんじゃなかったかな。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/808
809: 名前は開発中のものです。 [sage] 02/10/27 23:34 ID:??? いろんなmallocの実装を紹介するスレはここですか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/809
810: 名前は開発中のものです。 [sage] 02/10/27 23:47 ID:??? >>808 HeapAlloc が内部で VirtualAlloc を呼び出してるのは確かだが、単なる ラッパじゃない。内部で色々処理をしてる。 それと廃止されたのは GlobalAlloc(), LocalAlloc() だろうが。嘘八百を 並べるなよ……。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/810
811: 名前は開発中のものです。 [sage] 02/10/28 01:58 ID:??? >>810 訂正さんくす。 HeapAllocが廃止されたってのは、勘違いだったよ。 廃止されたのはGlobalAlloc/Freeで、HeapAlloc/FreeはVirtualAllocで 確保したメモリをヒープ構造で管理してるってことなのね。 Win32APIで開発する時は、たいていHeapAllocと同じことを自前でしてるせいで、 よく知りませんですた。 ご指摘さんくす、と同時に、嘘八百とか書くなよ、ぼけ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/811
812: 名前は開発中のものです。 [sage] 02/10/28 02:03 ID:??? それじゃ今後は同様の事態を表現するときは嘘七百五十くらいで。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/812
813: 名前は開発中のものです。 [sage] 02/10/28 03:11 ID:??? >>811 > HeapAlloc/FreeはVirtualAllocで > 確保したメモリをヒープ構造で管理してるってことなのね。 全然違うぞ…。なんでそこでヒープ構造が出てくる? http://game.5ch.net/test/read.cgi/gamedev/1005040025/813
814: 名前は開発中のものです。 [sage] 02/10/28 09:40 ID:??? >>802,808,811 いいかげん。うそはっぱく。よくしらないのにしったかぶり。 晒しsage http://game.5ch.net/test/read.cgi/gamedev/1005040025/814
815: 名前は開発中のものです。 [sage] 02/10/28 11:02 ID:??? >>806 JavaやC#がメモリリークないと思ってるヤツ発見 http://www-6.ibm.com/jp/developerworks/java/010824/j_j-leaks.html http://game.5ch.net/test/read.cgi/gamedev/1005040025/815
816: 名前は開発中のものです。 [sage] 02/10/28 11:57 ID:??? うーん、微妙に話題ズレてない? >799も言うとおり、解放済みマークのついた領域は再利用される。 (そのためのfreeだろ?) だから、mallocにラッパーが掛かってようが掛かってまいが、 >793が原則として正しいということでいいんでないの? http://game.5ch.net/test/read.cgi/gamedev/1005040025/816
817: 名前は開発中のものです。 [sage] 02/10/28 12:05 ID:??? 確保したら必ず開放しなくてはいけないと思ってたほうが無難だよ。 そのほうが余計なトラブルの心配しなくて済むじゃん。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/817
818: 名前は開発中のものです。 [sage] 02/10/28 20:30 ID:??? >>817 俺は free(p); free(p); とかやって、メモリ領域壊したことがある。実際にはこんな簡単なコードじゃ なくて、サイクルのある複雑なデータ構造で、遠く離れた関数で実行されて たんだが。 結局、そのデータ構造扱う部分は「でっかくメモリを取って中で使い回し、 使い終わったら丸ごと free する」っつー方針で書き換えました。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/818
819: 名前は開発中のものです。 [sage] 02/10/28 20:38 ID:??? 普通、 free(p); p=NULL; ってしない? http://game.5ch.net/test/read.cgi/gamedev/1005040025/819
820: 名前は開発中のものです。 [sage] 02/10/28 20:49 ID:??? >>819 しない。そもそも p に相当するものが関数の引数として渡ってくる場合には、 それって無理だし。 free_something(void* p) { free(p); p = NULL; } func() { free_something(p); // p は相変わらず NULL じゃない } これは極端な例だけど。あとサイクルがあるデータ構造だと、解体する順番 やタイミングが非常に難しい。コンパイラを書くときに良く出てくる DAG 程度 のデータ構造でも、気を付けないとすぐ二重 free しちゃうよ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/820
821: 名前は開発中のものです。 [sage] 02/10/28 21:14 ID:??? ttp://isweb43.infoseek.co.jp/art/yn515/game.gif こういった感じのゲームを作ろうと試みています。 フィールド上をクリックすると、キャラがそこへ歩いて行くような。 ですが、障害物なんかを遠回りして避けていくようにするにはどうすれば いいのか見当もつきません。どうしても凹んでいるところでつっかかってしまいます。 皆様のお知恵をお貸しください。おながいします。 ちなみに言語はHSPです。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/821
822: 名前は開発中のものです。 [sage] 02/10/28 22:37 ID:??? >>821 絶対に答えが出るアルゴリズムだと A* とかかねぇ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/822
823: 821 [sage] 02/10/28 22:50 ID:??? >822 検索してみましたが、適当なところが見つかりませんでした。 A*とはなんでしょうか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/823
824: 名前は開発中のものです。 [] 02/10/28 23:11 ID:Y1mIhqb7 クォータビューのマップで当たりをとりたいんですけど 高速なやり方ってあります? 内部的にはトップビューというのではなく、 クォータビューそのままでマップとキャラの菱形の当たりをとりたいのですけど…。 動作環境はへちょいので浮動小数点とか線分の交点などを求めないような軽いのを考えているのですが。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/824
825: 名前は開発中のものです。 [sage] 02/10/28 23:30 ID:??? その当たり判定で何をやりたいかによると思うんだが http://game.5ch.net/test/read.cgi/gamedev/1005040025/825
826: 名前は開発中のものです。 [sage] 02/10/28 23:47 ID:??? >>821 とりあえず障害物で行き詰まったら、障害物の表面に沿って 目標に到達できそうな位置まで移動してみるというのはどうか。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/826
827: 824 [] 02/10/28 23:51 ID:Y1mIhqb7 >>825 クォータビューのマップを主人公が歩くとき、マップと当たりをとりたいのです。 高さがない似非クォータビューなので、それほど苦労しまい、と思っていたら あまり芳しい結果になりませんでして。 マップが歩けるような当たりなので、常時判定するという方向性で軽くしたい、とそういうことなのです。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/827
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 159 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s