- 1 名前:名前は開発中のものです。 mailto:sage [2008/10/25(土) 17:37:53 ID:BCFbbKco]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 過去スレ:DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/
- 696 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 09:26:49 ID:k4cT38FB]
- おつかれさまです。ごゆっくりお休みくださいな。
リファレンスも欲しいけど、小技のほうがうれしいかも。
- 697 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 09:55:31 ID:gjx3PjZU]
- >>690
最初のファイル読み込みはともかく ハンドルに分けて使う段になったらどっちも同じじゃね? ×一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は一枚 ○一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は複数 >>691乙
- 698 名前:名前は開発中のものです。 [2009/03/01(日) 10:04:25 ID:idjBCaEs]
- ああ、駄目だ
>>694だと×ボタンが押された時点でキューが送られちゃってるからDXライブラリの内部の構造的に終了確認はできない(終了確認が無限に出続ける) 「終了します」って有無を言わさぬ表示なら出来るけどね 中身見てるけど、終了キューを解除する関数は見あたらないし 独自に一度キューを取得して、ProcessMessageに投げる前に解除しちゃえば良いんだろうけど、そんなことすると初心者でも使えるって良点があじゃぱー >>696 どんな小技が良いかな? さっきあげた関数は単体で使えると思うし 今ソース見ながら色々いじってたけど それ以上のことやろうと思うと色々内部的に引っかかることに気付いた >>697 もう一度よーく読んでほしい
- 699 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 10:54:11 ID:gjx3PjZU]
- >>698
ごめん。 よく読んだ上で書いたけどわからない。 理解力なくてすまん。きっと俺が間違っている。 が、これは瑣末な問題なので暇なときにでも考えておくとして… >>693 >一応応用テクニックとして、HSPからDXライブラリを呼ぶ方法とかだったら需要ある? これ興味あるかな。
- 700 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:24:01 ID:oPHW1ePY]
- >>697
ハンドル分けたらだめ 一つのハンドルから転送元の領域を指定して描画するんだよ 同じテクスチャを連続して使うときは切り替えが行われないからその分効率が良くなる
- 701 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:38:25 ID:ey11ozVK]
- 質問掲示板の検索を使おう
>>698 ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1089 >>699 ここのNo.4に書いてある高速描画云々のところ読めば分かる ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1162 読みこみ速度は同じだけど描画速度は 一枚の画像を読み込み複数に分けハンドルを取得 > 複数の画像を読み込みそれぞれをハンドルを取得
- 702 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:39:47 ID:a7Bg5ATd]
- HSPなんぞ使うなよ
- 703 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:44:24 ID:oPHW1ePY]
- なるほどLoadDivGraphでもいいのか
- 704 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 13:22:39 ID:gjx3PjZU]
- >>700
なるほど 理解したdクス >>701 読んでみる >>702 今更HSP使う気はないけどやり方にはちょっと興味が
- 705 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 13:39:31 ID:9rIzOA3I]
- >>691-694
乙 前にHSPから使ったりしてたけど、わざわざHSPから呼び出す必要があまり無いような気がしたのでVC導入したな
- 706 名前:名前は開発中のものです。 [2009/03/01(日) 14:11:25 ID:idjBCaEs]
- >>701
なるほど StateResetFlagは初期値FALSEになってるやつか、完全に見落としてたアリガトウ >>702 HSP使うメリットってなんだろう、(うろ覚えだけど)3D処理が簡単なDLLかなんかがあったよね? でも、それ使うなら最初からHSP使えばいいし…… 自分から言っといてなんだがメリット見えないやごめんw DXライブラリの可能性を追求しようと思ってドラッグ&ドロップで画像表示するアプリ作ろうと思ったらこんなに時間かかっちゃったよ やっぱりアプリ系はおとなしくWINAPI使うに限るorz www3.uploader.jp/t/nico/images/nico_uljp00021.zip ふ、と思ったんだけどこのスレ結構知識ある人多いしうpロダでも用意しとけばサンプル集みたいなの作れるしいいんじゃね? 人のソース見れるってのは、(俺含め)初心者にはとてもありがたいんだよね
- 707 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 14:27:12 ID:ZNmLTGrU]
- ソースうpは恥ずかしい…
- 708 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 14:51:26 ID:lYNtcth6]
- 自分の全裸うpするようなもん
- 709 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 15:45:22 ID:z/eFYQPp]
- 俺のは絶対人に見せられないソースだと自覚している。
一応動いているが、初心者どころの問題じゃない。
- 710 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 16:15:26 ID:xm1UJhmc]
- ソースは出来るだけ人に見せたほうがいいよ。
指摘されればどこが良くて悪いのかが分かって次に必ず生かせる。 リアル知人じゃなくて2chで晒すのがいいかはよくわからんが・・・ うpするのとは話がちょっと違うけどここでも読んでみるといい www.kojima-cci.or.jp/fuji/mybooks/cdiag/cdiag.0.6.html
- 711 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 16:37:16 ID:g9LGhZvF]
- 専ロダほしいな・・・
- 712 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 16:45:33 ID:c9LYSV+3]
- ドット絵でbmpで保存して使うのと
きれいに書いたpngだとぜんぜん解像度違うような気がして変になっちまった。 ドット絵の設定ミス?それともpngにそろえるべきかな。。
- 713 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 18:31:12 ID:a1nbTQe/]
- ドット絵だからドットが見えるんじゃないのか??
- 714 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 23:17:37 ID:2a8K6SCC]
- 爆発のエフェクトなどを作成する際に
グラデーションの画像を極座標変換?して 円形の画像を作成しているのだけれど、 これが何をやっているのかよくわからん。
- 715 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 23:25:10 ID:oPHW1ePY]
- つ高校数学の教科書
- 716 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 23:54:03 ID:A8mpIuw8]
- 数学Cあたりだっけ
- 717 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 00:15:56 ID:ziDQhibJ]
- そういえば洞窟物語もDXライブラリ使ってるんだね
- 718 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 00:35:55 ID:hEBh+N4j]
- 公式掲示板か
多分違うと思うぞ Pixel氏が以前DirectX2だか3だかを使って作ったって言ってたし 何か勘違いしてああ答えたか、若しくは今作ってるゲームにDXライブラリを使ってるんだろう
- 719 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:43:24 ID:3riYRQc6]
- ウィンドウサイズのデフォルトは640*480だけど、これの変更はできる?
フルスクリーンにしないといけないから制約はあると思うけど
- 720 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:47:07 ID:7FxY5OR7]
- Dxライブラリのファイルにデフォルトのサイズがディファインされてたから
あれいじればできるんじゃね?
- 721 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:52:06 ID:x0I/gxMT]
- >>719
SetGraphMode( 800 , 600 , 32 ); で800*600になる
- 722 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 02:06:23 ID:3riYRQc6]
- >>720
ライブラリ書き換えるのはアウトだろ常識的に考えて…… そのせいでいつどこでバグが起こるかわからぬ >>721 サンクス 画面モードの変更で解像度が変えれるとは、単語検索で見つからないわけだ
- 723 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 02:13:56 ID:PBT6djln]
- リファレンス大した量じゃないんだから
一覧を一通り目を通せば済むだろ。
- 724 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 06:43:49 ID:+ax8ZdoD]
- おれなんかどんなことができるんだろうと、わくわくしながら
上から下まで読むんだけどなぁ・・・
- 725 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 08:17:17 ID:vDZSfAmr]
- >>718
でも文字表示とかDXライブラリっぽいよな
- 726 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 11:57:41 ID:6eQe3/TV]
- >別にDXライブラリに限らないけど、DXライブラリを知った時も
リファレンスをさらさらっと流して、「これなら俺にも使えるんじゃないかな?」と思って 使い始めたな。 別に覚えなくても、一度目を通しておけば、 後になって「こういう事がしたいけど、それっぽい命令あったよな……」って 探しやすくなるしな。
- 727 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 20:14:38 ID:hc/QEiU+]
- アレだけ分かりやすくて運営管理もアレだけちゃんとしてるなんて今まで見たことないよな。
DirectXでゲームを作るっていうジャンルに関して革命的だし、最早XNAなんかも超えてると言っても過言ではない。
- 728 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 20:18:02 ID:qXNeI5og]
- ハンドルが全部intなのだけはどうかと
- 729 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 21:13:54 ID:Rv93cI1M]
- ほんとだよな。ちゃんと符号無しにしてくれないと。
- 730 名前:名前は開発中のものです。 [2009/03/02(月) 21:38:18 ID:3lZqI4Au]
- >>729
そこじゃねーだろwww
- 731 名前:名前は開発中のものです。 [2009/03/02(月) 21:42:53 ID:3lZqI4Au]
- typedefしなかったのは多分初心者への配慮だろうね
- 732 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 22:25:14 ID:ziDQhibJ]
- 画像をプログラムで制御(回転など)して動いてみせるのと
一枚一枚画像を作ってパラパラ漫画みたいにアニメーションさせるのとどっちが負荷低いかな
- 733 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 22:54:20 ID:qXNeI5og]
- パラパラ漫画方式の画像が一枚の画像にまとめてあるなら
原理的に変わらないはず
- 734 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 22:57:12 ID:qXNeI5og]
- いや画像がまとめてあるかどうかはこの場合関係ないか
まあ変わらん
- 735 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 01:09:39 ID:vuUaUlBc]
- その二つは比較すべきものじゃない気もするがw
回転ありの描画命令よりは回転なしの方が負荷は軽いだろうけど、 大した差じゃないみたいだし、好きにしていいんじゃないかな。
- 736 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:53:14 ID:l+63ggMa]
- 画面上の殆どのパーツが回ってるぜ!とか
512x512のパーツが回ってるぜ!とか 回転角度に応じて256パターンの画像を用意しました! みたいな変なことやってなきゃ大丈夫だろう
- 737 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 03:53:26 ID:wZU6jxH0]
- メモリに優しいのがプログラムで制御かな。後者はあまりオススメできない。
パラパラ漫画が全部VRAMに乗るとは限らないし、 1フレーム1枚のように別テクスチャ作るのであればさらに重くなる。 1枚でまとめる場合も、作成できるテクスチャサイズ制限があるハードウェアが過去にあり、 (Voodoo時代ではテクスチャサイズが256*256が最大であった) そのような場合、DXライブラリではテクスチャ分割が行われるので、 大きなテクスチャを作るとパフォーマンスが犠牲になります。 なので、回転・反転・拡大縮小などといった Direct3Dによるハードウェア支援で記述できる内容であるのなら、前者の方がパフォーマンスがよくなります。 ちなみに後者で実装するのであれば、テクスチャのサイズは正方形が望ましいですよ。
- 738 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 04:22:48 ID:l+63ggMa]
- ただし、斜め向きとかにした場合、
最初から画像を用意しておいた方が綺麗に見えることは多々あるな。 プレイヤーキャラの画像など、 重要そうな部分だけパターンを用意しておくのも悪くない。
- 739 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 09:38:20 ID:HSt7mZci]
- >>737
>正方形 一辺の長さが2の倍数の正方形ね
- 740 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 14:11:43 ID:lmHLCC6G]
- >>739
> 2の倍数 2の累乗ね
- 741 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 10:39:32 ID:IqyXTxRb]
- ん……?
グラフィックハンドルがintって事は、持てるグラフィックハンドルの最大数は約32000って事?
- 742 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 10:43:25 ID:OmVViNLo]
- いやintは2*(10^9)くらいまで
その前にメモリがなくなるだろうけど
- 743 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 16:29:04 ID:aWTUpMQ1]
- 東方の弾幕とかって1つ1つの弾にハンドラ持たせてるの?
- 744 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 17:38:35 ID:IqyXTxRb]
- >>742
intってそんなに長かったっけ? >>743 ちゃんと1つずつID割り振って読み込んでるみたい。
- 745 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:29:44 ID:Q764ubCY]
- 32bit機での
符号無しintは2^32 符号ありintは2^31(符号に1bit使用) プログラミングしてるなら知ってて当然だろ…
- 746 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:29:46 ID:zCrgAKk6]
- >>744
おまえさんのいってるのは short int
- 747 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:26:33 ID:IqyXTxRb]
- なるほど……
なんで勘違いしてたんだろう……
- 748 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 00:07:34 ID:aVo6G4mJ]
- >>743
何を言ってるんだ? 東方はDXライブラリ使ってないぞ
- 749 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 10:15:06 ID:MO3/QFgO]
- こんにちは^^
透過処理というのをしたんですけど 下記のコードだと正常に透過処理されます。 LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ; LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ; しかし LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ; LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ; とすると透過処理されません なぜでしょうか?
- 750 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 10:26:43 ID:ddVb/3t1]
- >747
旧VBのIntegerが16bitなのと混ざってない? >745 ハードは関係ない。コンパイラが決定する。 16bitアプリを32bitハードやOSで走らせても intが勝手に32bitになったりしない。 処理系にあわせて決定するのが自然なだけ。
- 751 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 11:04:56 ID:B3wyDoGN]
- >>749
はい? え? back.bmp を透過処理なしで描いた上に、char.png を透過処理ありで描いたらそりゃちゃんと透過処理されるだろうけど char.png を透過処理ありで描いた上に、back.bmp を透過処理なしで描いたらそりゃ上書きされるだけだと思うんだが……。
- 752 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 12:34:23 ID:+9ctDc2h]
- >>750
あー、昔に見た資料がかなり古いものだったから間違って覚えてたのかも
- 753 名前:名前は開発中のものです。 [2009/03/06(金) 21:17:00 ID:pmzRauOh]
- ある画像だけの透過と、透過の度合いを設定することはできますか?
リファレンス見る限り見当たらないのですが
- 754 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 21:34:26 ID:+Tdk650S]
- その画像を描画する前にSetDrawBlendMode
透過の度合いはPal引数 クラス使って透過率とグラフィックハンドルをまとめて管理するようにするといい
- 755 名前:名前は開発中のものです。 [2009/03/06(金) 21:46:01 ID:pmzRauOh]
- >>754
即レスありがとう^^ うまくできました!!
- 756 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 23:45:45 ID:HF/v1JaI]
- DXライブラリ3Dの開発引き継いでる奴いないの?
- 757 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 00:24:08 ID:3MouTLA1]
- 2Dゲームでも背景は3Dにしたい・・・
本家DXライブラリにテクスチャ付モデルとフォグ表示機能だけあれば最高なんだが
- 758 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:56:55 ID:JfYg6t6e]
- シューティングの背景用にDXライブラリで自前の簡易モデルを描画する仕組みを組んだけど、
意外と簡単に組めたよ。 ポリゴン事に情報を配列に落として、座標を変換してVERTEX配列に入れてから描画。 フォグは出来なかったから単色背景+奥の頂点を透過で誤魔化してる。
- 759 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 07:03:57 ID:pCqKP5AO]
- クラスのコンストラクタでLoadGraphするとハンドルが取得できてないみたいだけど
仕様ですか? 他で初期化するから別に問題ないけど。
- 760 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 08:46:35 ID:9xqjyk6r]
- そのコンストラクタを呼ぶタイミングがまずいだけだろ
でもLoadGraphみたいな失敗しやすいものをコンストラクタで使うのはあまり好ましくない
- 761 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:25:49 ID:d6ZakwC3]
- C++のコンストラクタはオブジェクトが出来上がる前の不安定な状態だからメソッド呼んだりはしない方がいいよ。
- 762 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 20:23:03 ID:83odH6gl]
- それ俺がよくやった失敗だけどLoadGraphするまえにDxLib_Initやってないんじゃまいか
- 763 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 01:02:04 ID:sz9LKWkI]
- >>761
んなこたないw
- 764 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 01:07:09 ID:PVP1w5NP]
- >>758
.r==x r==x /三/.|/三/ | (三(/(三(/_/ l ̄¨'| ̄ ̄¨| l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;{==}!::{==}:::l r|:::::::::::::::::::::::| _ノ  ̄`ー--、,;;l~ヽ ,∠==、ヽ `i'ー- . l / ヽ| 「`'ー、`ー、 .ノ l ミ| / `ー、ヽ /j R|イ ー-ァ、. Y゙ { [`ュハハハr''~] ̄ ___ノ ソースうpお願いします!!!!!!!!!!
- 765 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 02:05:16 ID:Os5GQobq]
- >>764
今PC故障中で携帯から書き込んでるので、一週間後位になるけど…… 龍神録プログラミングの館に似たような内容の講座があったので、 それを参考にした方が早いかも? 自分のソースと比べた所、アルゴリズムは大差なかったし
- 766 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 03:07:46 ID:PA5CtbPk]
- >>760
>>762 それだわ。 メインループの外だったよ。
- 767 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 07:29:17 ID:CGpW+st2]
- >>763
そうなの? 憂鬱本かなにかにコンストラクタで複雑な処理はやめたほうがいいって 書いてあったから信じてたよ。
- 768 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 11:20:16 ID:lUOcnlf/]
- 使うほうが失敗したときに面倒でしょ、コンストラクタだと
- 769 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 11:49:19 ID:8uH2yrBU]
- 例外処理を全面的に取り入れてるならコンストラクタで失敗してもおk
失敗したら絶対に例外を投げること そうでなければダメ
- 770 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 13:15:29 ID:sz9LKWkI]
- >>767
言語仕様的にはまったく問題ない >768が言ってるように、 その本には別の理由でやめたほうがいいって言ってるんだと思うよ ただし、staticなインスタンスは例外で この場合、mainが呼ばれる前のスタートアップルーチンで インスタンスが生成されるのでコンストラクタでは 初期化以外のことをやるとまずい
- 771 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 15:28:40 ID:Os5GQobq]
- 東方の新作が発表される度に自作のゲームとシステムが被っててヘコむ……
- 772 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 15:35:38 ID:26PtmX+G]
- >771
それを気にしてたら、世の中作品なんて生まれない。 大丈夫、何ら問題ない。思う存分やれ。キミは盗作じゃない。 ……自分のやりたいことを、他の人が作ったのでそれで満足しちゃったなら知らんw (こっちもよくある話だけどな!)
- 773 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 17:25:05 ID:tah76f/h]
- 弾幕シューは東方だけじゃないしね
- 774 名前:761 mailto:sage [2009/03/08(日) 18:12:09 ID:pjH2xL1q]
- >>770
俺も>>767のように憂鬱本で読んで信じてきたんだけど、後学のために教えて欲しい。 まず憂鬱本にはこんな風に書いてある。 ・コンストラクタやデストラクタはあまり難しい処理をするのは考え物。 1・返り値を持つことが出来ない。 2・インスタンスが完全な状態ではない。 3・外部変数としてクラスインスタンスがある場合、コンストラクタやデストラクタはmain()の走る前、後になる。 >>770さんが言っているのは3の場合で、この本によると 「ポインタとして宣言しておきmain()が走った後でその中でnewする」 という解決策が書いてある。 で、問題の2にははっきりと 「コンストラクタ、デストラクタが走っているときは、インスタンスは完全な状態ではない」 と書いてあり、 「実は内部的にはそのインスタンスの使用するメモリの取得/解放とそれに伴う複雑な作業も行っている」 「インスタンス自体がまだ生成途中であり、内部的にはまだ不安定な状態」 と書いてあります。 問題点は、 「このような状態で他のクラスのインスタンスのメンバ関数を読んだりすると巡り巡ってまだ生成途中の自分自身のメンバ関数が呼ばれるかもしれないから」 との事です。 C#なんかではコンストラクタでのメソッドの呼び出しなども保障されてますが、C++では言語使用的には保障されていない、と解釈したのですがここらへんどうなんでしょうか?
- 775 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:09:05 ID:CrTNgcou]
- この際、本家DXライブラリにDXライブラリ3Dを機能統合してしまっても良いんじゃないか?
今どき2Dだけじゃなぁ
- 776 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:25:34 ID:tHlNETTL]
- >>775
いや、意味が分らん。 碌にDirectXすら使えない人間が3Dに手をだしてどうしたいんだ? むしろ、本家は本家であの程度でまとまってるからこそ良いライブラリだろ。 もっと色々とやりたかったら海外の3Dライブラリをあさればいい。高機能の多いぞ。 (まぁ、普通に日本語対応がメンドイけど。)
- 777 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:52:53 ID:CrTNgcou]
- っていうか、DXライブラリ3Dの開発を継続してほしいJEXさん
- 778 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 23:53:47 ID:Os5GQobq]
- >>772,773
弾幕毎に名前付けてるから、気を付けないとまんまになっちゃうんだよね もう開き直っちゃおうかな……
- 779 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 00:24:37 ID:y+3gsDNg]
- どうせやるなら「白い弾幕くん」くらい自由度上げてみたらどうだ
- 780 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 05:38:20 ID:xYWyf4vJ]
- 縦弾幕だったらどうやったって東方っぽいって言われるのがオチだから、
変なこと気にせず好きにやっちゃえYO!
- 781 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 13:06:42 ID:Ge4atQjd]
- 東方のオマージュである、と明記しちゃえば変な因縁はつけられなくなると思う
- 782 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 13:28:18 ID:1MIteGpr]
- 自分で考えて実装した者に対して
なんという屈辱を。
- 783 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 14:58:21 ID:Yq7DJGmB]
- パクってないんなら堂々としてればいいじゃない
ここで愚痴る前にちゃっちゃと完成させて もう東方に先を越されないようにすればいいじゃない
- 784 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 15:06:44 ID:mr6tRDyA]
- 先を越されたから愚痴ってるんだと思うがのw
- 785 名前:名前は開発中のものです。 [2009/03/09(月) 15:12:00 ID:anLE8kz6]
- 新しいの出るごとに被るというと
低速移動時に敵を貫通するとかボム使うとパワーが減るとかその辺りか?
- 786 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 15:54:45 ID:z4EGzSSU]
- 別に愚痴のつもりじゃありませんでした
こうやって悩むのもゲーム制作の楽しさの一つなので…… 気分を害されたのならすいません >>785 点レートアイテムとか、特殊アイテムを取るとボーナス敵が出る点が……
- 787 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 17:01:47 ID:GzA1DnX1]
- どんなシューティングでもお前。。。
- 788 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:04:17 ID:dWRPooR0]
- Q.○○のパクリですか?
A1.はい、参考にしました。 →盗作イクナイ! 俺の好きな○○を汚すな! ○○の公式サイトのBBSに通報(?)書き込み A2.いいえ、オリジナルです。似ているのは偶然でしょう。 →嘘を言うな、正直に言えよ A3.いいえ、○○ではなく△△のパクりです。 →そんなん知らねーよ! △△も○○のパクりだな! 実際にあるから困る。
- 789 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:28:11 ID:aHHsyNV0]
- 結論:気にせず作れ
作ることにも価値がある
- 790 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:40:02 ID:6kYj4gTE]
- >>788 どっちかと言うと、この手の奴で、実際にパックたりしてなかったら、
何も答えないのがベスト。ただただ、事務的返しで流すべし。 あと、>>786みたいのは 東方以前からあるのばっかじゃねぇかよwww それこそ、ファミコン全盛の時代(のアーケード)から・・・・ 「今更それを先を越されたとかwww」 と言われるのが落ちじゃね?
- 791 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:51:35 ID:z4EGzSSU]
- んー、今更だけど自分で気にしすぎだった気がしてきた
前作が東方をリスペクトしたものだったので、今回も素直に断り書きを入れてみます
- 792 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 19:02:29 ID:dWRPooR0]
- パロディにまで昇華させてしまうという手もあるな。
- 793 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 21:33:00 ID:Zw6a9bk0]
- siv.creation.googlepages.com/home
知ってるとは思うがこれにはずっと期待してる
- 794 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 22:34:04 ID:GzA1DnX1]
- 押しっぱをできなくするようにしたいけど
char a[256] GetHitKeyStateAll(char *a) つかうとうまくできねぇ。。 ポインタをctrcmpやるのはおかしいの? それとも配列に入ってるのがおかしいの? 俺の頭がおかしいの?
- 795 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:19:34 ID:2qC8QqlY]
- >>774
遅レスだがコンストラクタについて幾つか書きます。 さすがに長文書いてコメントが無いのは可哀想だったから。 昔の言語仕様ではコンストラクタではインスタンスの生成途中であるから複雑な処理を書かないようにしていた。これは慣習・慣例の部類の話。 コンパイラの亜種が多くて、C++の仕様外の範疇での動作はどのようになっているのか分からない時代だったからという背景もある。 自分はコンストラクタに初期化処理を噛ませる横着な書き方をしていたときに先輩に指摘された事は、1,2,3以外にも、、、 ・クラス設計者とクラス利用者は同じでない ⇒利用者がstaticで外部変数なインスタンスを生成するかもしれないから、 mainよりも先に呼ばれる処理に複雑な記述を置くべきでない。 つまり、利用者の立場になって明示的に初期化処理を宣言するべき。(手を抜くな) ・戻り値を持たない件に関して、例外処理を使うのは怠惰な手段である。 ⇒try-catchを用いるのは、デバッグの最終手段である。(例外処理はネストできない為) 例外処理は一般的にコンパイラの最適化の阻害となり遅くなる要因となる。(ジャンプテーブルを生成する為) つまり、保持値チェックにはassert使えというお話。 ⇒メモリ確保に失敗する危険性をもっと認識するべき 特定のハードウェアを対象にする場合、大概は独自のメモリアロケーター(dlmalloc等)を実装していることが多く、 new失敗の可能性(インスタンス生成失敗)は大いにある。 とのことでした。 >問題点は、 >「このような状態で他のクラスのインスタンスのメンバ関数を読んだりすると巡り巡ってまだ生成途中の自分自身のメンバ関数が呼ばれるかもしれないから」 >との事です。 これには同意です。 だから「コンストラクタに記述するのはせいぜいメンバ変数に対して初期値の代入ぐらい」に留めている人が大半で自分もそうしています。 いや〜、バグの無いプログラムって難しいですね。
- 796 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:31:07 ID:2qC8QqlY]
- >>794
上手くできないってどういう意味? char m_cKey[2][256]; //キーバッファ とでもして 毎フレーム void GetAllState(){ memcpy(m_cKey[1],m_cKey[0],256); ::GetHitKeyStateAll(m_cKey[0]); } を呼んで、 int GetKeyPress(int KeyCode){return m_cKey[0][KeyCode];}//キーが押されているかどうか int GetKeyDown(int KeyCode){return (m_cKey[0][KeyCode] && !m_cKey[1][KeyCode]);}//キーが押された瞬間 int GetKeyUp(int KeyCode){return (!m_cKey[0][KeyCode] && m_cKey[1][KeyCode]);}//キーが離された瞬間 とでもすればおk 前フレームとの差分で押された瞬間と話された瞬間を検出するべさ
|

|