DXライブラリ 総合スレッド その5at GAMEDEV
DXライブラリ 総合スレッド その5 - 暇つぶし2ch939:937
10/02/18 20:57:50 S5tbEoCa
すみません、>>937に書いた方法はウソでしたorz..
引数x1, y1~x4, y4は2次元の変形しか指定できないし、DrawBillboard3D関数にはある引数Angleも無いので3次元の回転は無理そうです・・・
モデルにすればMV1SetMatrix関数で自由に変形できるんだけど・・・
>>931の作ってるゲームは2Dなの?
それなら斜めに傾いている画像を使って下さいw

940:名前は開発中のものです。
10/02/18 21:04:10 UX2j7dSO
2Dだとやっぱり事前に描いて置いておくのが一番なのかな

941:名前は開発中のものです。
10/02/18 21:07:33 cSNnQmS/
>>897みたいな効果を多用するならともかく
一部でしか使わないならそのために複雑な仕組み作りたくないでしょ

942:名前は開発中のものです。
10/02/18 21:07:35 7/BIGMNa
2Dゲームなら、それこそ>937の方法で良いような気がするけどなー。

943:名前は開発中のものです。
10/02/18 21:43:03 6a8jaVSb
俺もblederで即死したけど
メタセコなら普通に使えた

944:名前は開発中のものです。
10/02/18 22:34:17 7/BIGMNa
少ない脳みそ絞って書いてみた。
3Dとかアフィン変換とかサッパリなので2Dで。
URLリンク(gamdev4.hp.infoseek.co.jp)



945:名前は開発中のものです。
10/02/18 23:17:57 yr41/JmB
>>944
マジ感謝・・・なんだが、サンプルコードなくて使い方を迷う

946:名前は開発中のものです。
10/02/18 23:44:29 7/BIGMNa
すまん、付け忘れた

extRate_xとextRate_yに1、hImgにグラフィックハンドル、残りの引数には0でも入れてくれれば
とりあえず動くと思う。

947:名前は開発中のものです。
10/02/19 00:27:45 u7/N0T5p
俺がいつも使ってる拡張画像表示はこれ

void DrawExRotaGraphF(float ex, float ey, float xScale, float yScale, float Angle, int GrHandle, int TransFlag, int TurnFlag) {
int gx,gy;
float ix,iy,ca=cos(Angle),sa=sin(Angle);
GetGraphSize(GrHandle,&gx,&gy);
gx*=xScale/2; gy*=yScale/2;
VECTOR2D pos[4] = { { -gx, -gy}, { +gx, -gy}, { +gx, +gy}, { -gx, +gy} };
for (int i=0;i<4;i++) {
ix = pos[i].x*ca - pos[i].y*sa;
iy = pos[i].x*sa + pos[i].y*ca;
pos[i].x=ix+ex; pos[i].y=iy+ey;
}
if (!TurnFlag) DrawModiGraph((int)pos[0].x, (int)pos[0].y, (int)pos[1].x, (int)pos[1].y,
(int)pos[2].x, (int)pos[2].y, (int)pos[3].x, (int)pos[3].y, GrHandle, TransFlag);
else DrawModiGraph((int)pos[1].x, (int)pos[1].y, (int)pos[0].x, (int)pos[0].y,
(int)pos[3].x, (int)pos[3].y, (int)pos[2].x, (int)pos[2].y, GrHandle, TransFlag);
}

ていうかこのくらいDXライブラリも用意して欲しいところだが

948:名前は開発中のものです。
10/02/19 00:28:54 u7/N0T5p
あ、VECTOR2Dはオリジナルだった
/* 2D用行列 */
typedef struct VECTOR2D {
float x,y;
} VECTOR2D;
まあ使わなくても二次元配列なりで出来るけどね

949:944
10/02/19 00:43:49 zmDX76mU
2Dの描画関数群を見てると、Zバッファ版なるものがあるんだけれど
これって何か上手く使えないかな。

公式BBSだと、マスク処理に使うって話があったけれど…


>>947
やってることは自分と同じ…かな? たぶん。
そっちの方がシンプルなコードだがw


950:名前は開発中のものです。
10/02/19 01:11:24 u7/N0T5p
>>949
同じだね
縮小拡大前に回転するかしないかってのは入れる値を変えれば出来るし、縦の反転は180度回転させた後に左右反転すれば再現可能
自分はこれをよく使うので最低限のものだけを入れて、必要に応じてラッパー関数を使えばいい(まあこれ自体もmodiのラッパーだけど)

951:名前は開発中のものです。
10/02/19 01:32:26 zmDX76mU
>>950
回転させてから拡大(縦横別倍率)ってどうやるの?

952:名前は開発中のものです。
10/02/19 01:36:21 u7/N0T5p
拡大率を予めsincosにぶち込めばいい 「回転を見越して拡大縮小する」

953:名前は開発中のものです。
10/02/19 02:17:39 zmDX76mU
先生、その見越し方が分かりません

954:名前は開発中のものです。
10/02/19 10:00:47 vzeC0aMv
つかそういういくつもの変換を同時に適用するために
行列があるんだと思うが・・・行列を使わないなんて無駄に複雑になるだけだよ。

955:名前は開発中のものです。
10/02/19 12:10:45 zmDX76mU
>>954
計算部分を自前でやってるだけで、やってることそのものは変わらない気がする

956:名前は開発中のものです。
10/02/19 13:25:42 zmDX76mU
チラ裏で申し訳ない。
画像処理の入門書を読んでるんだが

(1)自前で行列(回転用行列、拡大用行列など)を用意
(2)それらを掛け合わせて、最終的な変形用の行列を作る
(3)変形用行列を関数に渡す

…みたいな感じだった。
行列をクラスにして、演算子のオーバーロードで簡単に加算や乗算が出来るようにするとか
そういう工夫がされているようだ。


あと、公式BBSでこんなの見つけた
URLリンク(hpcgi2.nifty.com)

957:名前は開発中のものです。
10/02/19 13:34:25 G1VFwFwU
3D用の関数に行列使えるのがあるよ

958:名前は開発中のものです。
10/02/19 13:37:37 gvWv62bY
上で話題にでてたアフィン変換だって2次元に特化した行列じゃんか
クラス公開されててちょっといじれば簡単に使えるのとかあったぞ
行列うんぬんよりクラスがわからんとか?

959:名前は開発中のものです。
10/02/19 14:02:46 az/+pLVO
頂点の集合に行列を演算してできた形に描画するのはいいんだが
長方形の画像を自由変形して描画するアルゴリズムはいったいどうやって実装されてるんだろう
ピクセル単位で全部写像してたらすごく遅くなりそうだが他に方法も浮かばない

960:名前は開発中のものです。
10/02/19 14:11:57 uvqEn+/2
専用のハードウェアにやらせてるんだから爆速
アルゴリズムとかいう次元じゃない

961:名前は開発中のものです。
10/02/19 14:17:06 zmDX76mU
>>957
3Dの方はあんまり見てなかったぜ。
これから勉強しないとな…。

>>958
クラスが分からないとかは流石に発想が飛躍しすぎじゃね?

>>959
テクニカルな最適化や、誤魔化しとかはやってるかもしれないけど、
基本的なやり方は同じで、あとはハードウェア様による力技なんじゃない?


962:名前は開発中のものです。
10/02/24 03:58:01 qZkPMJuP

LoadGraphを使う関数を繰り返し呼び出してると
例外が出て強制終了することがある
具体的には、
main(){

:
:
shop->open();

}
とメインの関数からクラスのメンバ関数を呼んだとき、
openを十回くらい呼び出すと、openを呼んで最初に出てくるLoadGraphで強制終了する
open内で何度もLoadGraphを呼び出しているが、最初のLoadGraph以外で強制終了したことはない
他のまったく別のクラスのメンバ関数でも、二回目に呼び出したときに
最初のLoadGraphで強制終了するので、
openでなくLoadGraphに問題があると思うんだけど
そもそもどういう状況でLoadGraphが例外出すか分かりませんか?

メモリ使用量を見る限りメモリリークなどはない
ちなみに使ってるのはBcc版

963:名前は開発中のものです。
10/02/24 04:03:15 qXzrwIFO
具体的の意味わかってんのかカス

964:名前は開発中のものです。
10/02/24 07:32:26 Jsc/BFjh
例外ってどんな例外? メッセージとか無い?
読み込んでる画像はどんな画像? ファイルサイズとかフォーマットとか。
メモリリークかどうかもどんな環境でどれくらいのサイズの画像を読み込んでるのか教えてくれないとこっちでは判断できない
もっと詳しく


965:名前は開発中のものです。
10/02/24 09:49:28 RLyfmrNj
全く具体的じゃないのに具体的には、とはこれいかに。

966:名前は開発中のものです。
10/02/24 09:53:22 KFJm0GRx
何が例外出すか分かりませんか?だよ
どういう状況で例外出すってエラーメッセージに全部書いてあるだろうが

967:名前は開発中のものです。
10/02/24 10:11:36 a8pqqcvy
エスパーしてみるに、
「最初のLoadGraph」に指定してるファイルが、
 
 (1)形式的に未対応のものを指定している
 (2)指定ファイルの内部フォーマットがおかしい

のどれかなんじゃないのかな?
「最初のLoadGraph」以外は成功してるって話だし。

968:名前は開発中のものです。
10/02/24 15:35:20 etAIwZMZ
DX_ライブラリ使っていたら
いつもなら「ch.」(chは構造体)で設定したパロメータが表示されたのに
今日使ってたら表示されなくなった。これってどこの設定変えれば元に戻るの?

969:名前は開発中のものです。
10/02/24 16:19:36 AEul0BlH
インテリセンスはよくぶっ壊れる

970:名前は開発中のものです。
10/02/24 16:56:28 OQn9U246
たまにJavaやるとEclipseの入力支援の賢さに感動する。

971:名前は開発中のものです。
10/02/24 17:28:51 ROg57qmn
いや普通にVS2008の方が賢いだろ C++はダメダメだが

972:名前は開発中のものです。
10/02/24 20:46:20 LFTpl00q
>IntelliSense
最近のは分からないけど、ちょっと変なことやると対応しなくなるしなあ。


973:962
10/02/24 20:46:27 qZkPMJuP
Bccのデバッガは見方がよく分からなかったのでVC++で原因を調べてみた
移植にかなり手間取ったけど、原因はnew,deleteでの
HEAP CORRUPTION DELETEDだった

ごめんよ、DXライブラリ

974:名前は開発中のものです。
10/02/25 00:10:24 wGlYMdYr
VS2008EEC#でDXLib使ってるけど、ゲーム開発はなんでC++が多いいのか・・・?
C#使いやすいと思うんだが・・・


975:名前は開発中のものです。
10/02/25 00:27:31 JfnFuENI
C#とC++と、どっちも知らない人間(俺みたいな)が始めようとしたら
そりゃデフォルトで解説されてるC++使うよ。

976:名前は開発中のものです。
10/02/25 00:40:37 rlWr6nuc
>>974
>>975
素人はメモリ管理で苦労させられる
C#はライブラリの導入・セッティングまでも驚くほど簡単だ

977:名前は開発中のものです。
10/02/25 00:43:57 o6l4NITL
むしろメモリ管理を隠蔽化されると不安になる

978:名前は開発中のものです。
10/02/25 00:57:11 xk33jNpg
C#は動作速度どうなんだ?
あと.NETないと動かないんだっけ それはどうでもいいが

979:名前は開発中のものです。
10/02/25 01:15:00 rlWr6nuc
>>978
今のPCスペック考えると動作速度気にするのは意味無いかな
同人レベルならFFやメタルギアのような実写モーションやるわけではないし
HSPよりは圧倒的に速いよ、ニコ動見てもHSP+Easy3Dで3Dアクション作ってる奴がたくさん居る
C#もJavaもゲーム製作には十分過ぎる

980:名前は開発中のものです。
10/02/25 01:40:51 DXATdGPP
>>974
>>975の理由もあるが、
単純に、C言語覚えたから次はorいよいよC++に~とかって感じじゃない?
JAVAとかの経験がなければガベコレとかも知らないだろうし。
メモリ管理とかはまぁゲ製作以外で活かせる人なら勉強にもなるから良いやー、とか。

981:名前は開発中のものです。
10/02/25 02:07:47 hEXp+gEa
C#は解析が簡単なんじゃないの?
改造し放題だと市販のゲームには向かないと思う

982:名前は開発中のものです。
10/02/25 02:29:34 8SXpDUIf
>>974
公式サンプルがC言語で書かれているし、どれか一つ言語を覚えるとしたら自然にC言語になるんじゃないかな。
DXライブラリ自体もC言語で書かれてるしね。

>>981
難読化ツールというものがある。
それにC言語でも解析は可能なので市販する場合は独自に暗号化する必要がある。
特に画像、サウンド、シナリオテキストは見えてしまうとマズいので。

983:名前は開発中のものです。
10/02/25 02:39:17 hEXp+gEa
そりゃデータは暗号化するだろうけど、それは言語とは関係ない話では?

984:名前は開発中のものです。
10/02/25 05:08:59 SPGhDv+7
>>982
ぜってー使ったこと無いだろ>難(ry
あのスカスカ具合を見てから言えw
データも言語関係ないし

985:名前は開発中のものです。
10/02/25 07:36:27 fv/CwMlZ
C++はWiondows標準のexeファイルを作成でき、そのまま実行できる
C#やJAVAはWindows非標準の中間ファイルしか作れず実行環境のインストールをユーザーに説明し、納得させ、実行させなければいけない
余計なソフトのインストールを嫌うユーザーは多い
速度よりも何よりもこの差があるからC#やJAVAは選ばれない

986:名前は開発中のものです。
10/02/25 07:53:11 xyh/cBvs
インストーラーで強制インストールとかまんこい

987:名前は開発中のものです。
10/02/25 08:25:15 JegjOA7A
デフォルトでインストール済()笑

988:名前は開発中のものです。
10/02/25 08:29:09 8SXpDUIf
>>983
どの言語にしても暗号化は必要と言いたかったのだけど・・・

>>984
>あのスカスカ具合を見てから言えw
どの難読化ツールを使ったか知らないけど、それでスカスカだと感じたんならしょうがないね・・・
そこまでセキュリティが必要なものを作っている人もいないと思うけどなあ。

989:名前は開発中のものです。
10/02/25 09:03:26 PKMfSc2o
>>981
現状の市販ゲームが改造し放題なのばかりなのに何言ってるんだ。


990:名前は開発中のものです。
10/02/25 09:57:05 8oJeVww7
>>984
無料のやつしか使ったこと無いだろ

991:名前は開発中のものです。
10/02/25 10:40:15 olOvytZe
DXライブラリから話がずれてるぞ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch