10/01/31 14:32:44 CuC3sxxQ
>>754
| |/ノ二__‐─ァ ヽニニ二二二ヾ } ,'⌒ヽ
/⌒!| =彳o。ト ̄ヽ '´ !o_シ`ヾ | i/ ヽ !
! ハ!| ー─ ' i ! `' '' " ||ヽ l |
756:名前は開発中のものです。
10/01/31 15:25:26 JBJvvpkE
>>754
',::r、:| <●> <●> !> イ
|:、`{ `> .:: 、 __ノ
|::∧ヘ /、__r)\ |:::::|
757:名前は開発中のものです。
10/01/31 17:18:12 2P10BkIV
アニメーション作りたかったから
double owari;
do{
DrawGraph(0,0,player[3],TRUE);
DrawGraph(0,0,player[4],TRUE);
DrawGraph(0,0,player[5],TRUE);
DrawGraph(0,0,player[6],TRUE);
owari = FALSE
}while(owari = TRUE);
やったらパソコンが動かなくなったよ!
誰か助けて
758:名前は開発中のものです。
10/01/31 17:22:47 JBJvvpkE
owari==true
759:名前は開発中のものです。
10/01/31 17:25:48 2P10BkIV
出来ました!!
ありがとうございます
しかし画像が動いてない・・・
760:名前は開発中のものです。
10/01/31 17:43:27 PA+3lzr7
そりゃScreenFlip挟んでないからな…
761:名前は開発中のものです。
10/01/31 17:45:11 2P10BkIV
画像も動いたし一件落着かと思ったんですが
double owari;
do{
SetDrawScreen( DX_SCREEN_BACK ) ;
ClsDrawScreen() ;
DrawGraph(0,0,player[3],TRUE);
ScreenFlip() ;
WaitTimer(500);
ClsDrawScreen() ;
DrawGraph(0,0,player[4],TRUE);
ScreenFlip() ;
WaitTimer(500);
ClsDrawScreen() ;
DrawGraph(0,0,player[5],TRUE);
ScreenFlip() ;
WaitTimer(500);
ClsDrawScreen() ;
DrawGraph(0,0,player[6],TRUE);
ScreenFlip() ;
WaitTimer(500);
owari = FALSE;
}while(owari == FALSE);
これじゃあゲームが終わりません
誰かアニメーションの書き方を教えてください
762:名前は開発中のものです。
10/01/31 17:52:12 PA+3lzr7
ClsDrawScreen();
static int a = 0;
DrawGraph(0,0,player[3+a],TRUE);
if(a<3)a++;
WaitTimer(500);
ScreenFlip() ;
763:名前は開発中のものです。
10/01/31 18:01:12 2P10BkIV
ありがとうございます
試してみたんですが、画像が動いてくれません
これはwhileの中に入れて使用するんでしょうか?
764:名前は開発中のものです。
10/01/31 18:13:29 c9TXpFDF
コピペするだけじゃなくて、その命令の意味をよく考えてみよう。
765:名前は開発中のものです。
10/01/31 18:16:33 JBJvvpkE
とりあえず龍神録読んで来い
766:名前は開発中のものです。
10/01/31 18:29:11 W0mdJ7eW
それ以前にリファレンスを嫁
あんだけわかりやすいのがあるんだから・・・
767:名前は開発中のものです。
10/01/31 18:31:18 HHPX/Q69
基本的な考えを理解してないな。
例えば絵が1ドットずつ動くプログラムだとすると
座標0に表示
↓
座標1に表示
↓
座標2に表示
↓
座標3に表示
↓
:
って書くんじゃなくて(これは>761の書き方)、
座標xに表示 ←―┐
↓ |
xを+1する | 繰り返す
↓ |
└―――┘
って書くのを意識するといいよ
768:名前は開発中のものです。
10/01/31 18:35:18 1VFB3DYv
かわいいなw
769:名前は開発中のものです。
10/01/31 19:00:00 2P10BkIV
double owari;
do{
ClsDrawScreen();
static int a = 0;
DrawGraph(0,0,player[3+a],TRUE);
if(a<3)a++;
WaitTimer(500);
ScreenFlip() ;
owari = FALSE;
}while(owari == FALSE);
こうやってみました
aが0に戻らなくて[6]がずっと表示されてしまいます
あと、できればdo{}while();は使いたくないです
770:名前は開発中のものです。
10/01/31 19:07:41 dC7YcGqj
static intがまずいんじゃなか?
771:名前は開発中のものです。
10/01/31 19:10:47 PA+3lzr7
>>769
>aが0に戻らなくて[6]がずっと表示されてしまいます
わかってんならaを0に戻せよ…
whileでもforでも好きなもんを使えよ…
>>764-767無視すんなよ…
772:名前は開発中のものです。
10/01/31 19:13:09 CfyGLtto
まずはC言語勉強してこい
773:名前は開発中のものです。
10/01/31 19:23:57 2P10BkIV
>>771
すいませんでした
if(a>3)a=0;を追加したんですが止まってしまいます
>>764
考えて>>769をつくってみました!
>>765
そのサイト、アニメーションについて載ってなくて…
>>766
URLリンク(homepage2.nifty.com)
このページでしょうか?
何回か読んだのですがアニメーションについて載ってなかったです…
>>767
座標を動かさないようにするんですか?
>>768
ありがとうございます
>>770
消してみたんですが、動きすらしなくなりました
774:名前は開発中のものです。
10/01/31 19:32:13 JBJvvpkE
アニメーションでなく根本的な所から理解出来てない
龍神録一通りやってゲームプログラミングの基礎を学べ
775:名前は開発中のものです。
10/01/31 19:36:09 2P10BkIV
すいませんでした
まだ自分はなにも理解していないみたいなので
もう一度最初から学び直してきます
みなさんありがとうございました
776:名前は開発中のものです。
10/01/31 19:36:15 PA+3lzr7
>>773
もうDXライブラリ以前の問題だからVIPで聞け
スレリンク(news4vip板)
777:名前は開発中のものです。
10/01/31 19:36:48 GeAXL5Qw
a=3になってるから
778:名前は開発中のものです。
10/01/31 19:37:45 Di+guFUQ
>>770
>>772
>>773
if(a<3)a++;
if(a>3)a=0;
こうしたんなら a=3 の場合はどっちも掛からないから a=3 のまま止まるわなあ
779:名前は開発中のものです。
10/01/31 19:43:39 2P10BkIV
>>777
>>778
if(a>=3)A=0;
にしたらきちんと動いてくれました!
でも学び直してきます
ありがとうございました
>>776
ありがとうございます
次からはそこで質問しますね
780:名前は開発中のものです。
10/01/31 19:44:26 2P10BkIV
うそです
Aじゃなくてaです
781:名前は開発中のものです。
10/01/31 20:01:10 uYVfFOYk
このライブラリって64bit windowsでも
問題なく動くの?
782:名前は開発中のものです。
10/01/31 20:09:34 CfyGLtto
動かないんじゃね?
ライブラリをDLLにすれば動くかも
783:名前は開発中のものです。
10/01/31 20:09:49 0ATLaas4
なんで?
784:名前は開発中のものです。
10/01/31 22:57:51 W0mdJ7eW
普通に動くよw
ネイティブでって意味ならたぶん動かないけど、そういう事じゃないだろ?
785:名前は開発中のものです。
10/01/31 23:29:30 CfyGLtto
ゲームが実行出来るかじゃなくて
正常にビルド出来るかって意味かと思った
つーかそれだとDLLでも動かないねすまん
786:名前は開発中のものです。
10/02/01 00:07:00 2kqPhNjN
ビルドもVSとか使ってるなら通るはずだよ
俺この間までWin7の64bitと、XPの32bitで出先<->家での開発してたし
787:名前は開発中のものです。
10/02/01 01:01:10 YQ/gjtQh
本体のビット数とDLLのビット数が違うとダメだけどね。
DXライブラリでもゲーム制作の話でもないけど
この間それで問題が起きてね……w
788:名前は開発中のものです。
10/02/01 16:57:45 Lf2Nvhz5
なんで?
789:名前は開発中のものです。
10/02/01 17:45:18 ooYrGYNe
なんだっていいさ
790:名前は開発中のものです。
10/02/01 18:32:39 864q13BL
long doubleとか使って試せば
787かいいたいことがわかるとおもう
たぶん
791:名前は開発中のものです。
10/02/01 18:36:19 PxBHY40/
いや、32bitアプリからは64bitDLLは使えないし
64bitアプリからは32bitDLLは使えない。
だから通常、DLLまで用意する場合じゃ無けりゃ32bitで作ればいいんだけど
.NET FrameworkでAny CPUで作った場合はまることがある。
DLLはネイティブで32bit固定なのに、EXEは実行環境によって32/64変わるから
開発時の環境が32bitだと気がつかない。
ということじゃないかなあ。
792:名前は開発中のものです。
10/02/01 18:52:33 Lf2Nvhz5
それで?
793:名前は開発中のものです。
10/02/01 18:58:44 xufADCF/
ググレカス
794:名前は開発中のものです。
10/02/02 13:39:47 EWwGB+Nl
libを32bitで作って64bitマシンでコンパイルしたオブジェクトとリンクしても問題ないの?
795:名前は開発中のものです。
10/02/02 13:53:12 ZXzo3Aq8
なんで?
796:名前は開発中のものです。
10/02/02 13:54:59 6T1hs+2r
ビルド時のターゲットはビルド環境とは関係ない
797:名前は開発中のものです。
10/02/02 18:27:35 NU2kONNz
「64bitマシンでビルドする」というのと、「64bit用アプリとしてビルドする」というのは別物ってことよね。
コンパイラが対応しているかどうかは別として。(比較的最近のVisualStudioなら問題なし)
もちろん、32bitでも同様。
で、開発マシンが32/64問わず、
64bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → 動かない
32bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → たぶん動く
であると。
798:名前は開発中のものです。
10/02/02 21:43:09 ZXzo3Aq8
それで?
799:名前は開発中のものです。
10/02/02 22:29:37 ocqUn9yT
なにが?
800:名前は開発中のものです。
10/02/02 23:35:47 3geZi3lZ
つーか64Bitアプリにするほどメモリ使うゲームを作るのかと。
801:名前は開発中のものです。
10/02/03 05:04:33 U8Pd5rkG
なんで?
802:名前は開発中のものです。
10/02/03 05:54:02 XTUJJ4Iu
基本的には32bitアプリでも動くって話だけど
その基本的って部分がちょっとだけ気になる。
803:名前は開発中のものです。
10/02/03 08:44:53 g7fkj8BM
64BitOSで動かすことを気にしてるなら
従前どおりの32Bitアプリが何の問題もなく動くので徒労。
メモリを4GB以上使いたい場合以外にあえて64Bit化する意味は薄い。
804:名前は開発中のものです。
10/02/03 14:05:09 5f3a6r9D
シューティングの画像ってサイズ奇数にして中心にオブジェクトのxyを持ってきた方が作り易い気がするんだが、みんな普通にx1y1x2y2でやってるの?
805:名前は開発中のものです。
10/02/03 14:18:36 gyXnlokN
場合による。
長方形のキャラ(回転なし)とかだと後者の方が便利だし。
806:名前は開発中のものです。
10/02/03 15:51:20 U8Pd5rkG
なんで?
807:名前は開発中のものです。
10/02/03 22:19:22 WAfqMpru
お前を食べるためさ!
808:名前は開発中のものです。
10/02/03 22:40:10 U8Pd5rkG
変態
809:名前は開発中のものです。
10/02/03 23:31:20 y+n9ea+J
DxLIBだとインストール済みのフォントデータしか使えないのかな?
思っていたより使い勝手悪いな…
810:名前は開発中のものです。
10/02/03 23:39:52 mUdTkHdF
よくわからんがフォントリソースとして読み込んでから使えとか見た気がするな
811:名前は開発中のものです。
10/02/04 01:32:44 9yr7SgZz
㌧
AddFontResourceを使ってゲーム起動時に追加出来た
812:名前は開発中のものです。
10/02/04 10:22:35 B+CnvqXs
思っていたより使い勝手悪いな…
813:名前は開発中のものです。
10/02/04 15:03:56 0uWBCETA
DXLIBのデータファイルの暗号化機能を使おうかと思うんだけど
パスワードってリテラルでEXEに埋め込んじゃってダイジョブなん?
814:名前は開発中のものです。
10/02/04 15:08:11 WAZ4oke5
思っていたより使い勝手悪いな…
815:名前は開発中のものです。
10/02/04 18:53:49 QxyExYir
なにがどう大丈夫なのか解らんが、
自分で何とかできないのなら諦めて普通に使うしかないだろう。
816:名前は開発中のものです。
10/02/04 18:55:51 0uWBCETA
いや、キーがバイナリエディタとかで見えちゃうんじゃないかなと思って・・・
817:名前は開発中のものです。
10/02/04 19:04:15 1Mq3yDnQ
>>816
ようは
「入力された文字」==「キー」
ってやってもだいじょうぶかきいてるんだろ?
キーはみえる
818:名前は開発中のものです。
10/02/05 01:25:04 a9qwHvOS
乱数とかつかって謎の文字列を生成する関数とか作って
それをキーに使ったほうがわかりにくくていいんかな
819:名前は開発中のものです。
10/02/05 01:30:13 y9Rl8Gqj
自分でそれができるのならやればいいのでは。
どうしてそこまで隠したがるのか知らないけど。
俺は、俺の作ったゲームをプレイした人が
「このゲームの生データ見てみたい!」
って思ってくれるほど魅力があるデータを作れた自信がないから
そこまで心配はしてないな。
820:名前は開発中のものです。
10/02/05 01:31:15 RCBVAjHS
>>816
暗号鍵を何かでエンコードしてリテラルとしてソースコード埋め込んどいて、SetDXArchiveKeyStringにデコードして渡すとか?
821:名前は開発中のものです。
10/02/05 02:23:43 9VhG5z2Z
暗号化の機構と、暗号鍵と、暗号化の対象が全て一箇所にある以上
どうしようもない気はする
822:名前は開発中のものです。
10/02/05 16:46:58 N9JJZcSG
キャラのポリゴン数ってどれくらいが理想?
今のところ10000ポリゴンはあるんだが。
ちなみにメタセコでCark(分割)4の曲面化つかったデータね
ちなみに胴体だけです
これじゃ動かないかなあ
823:名前は開発中のものです。
10/02/05 16:50:07 qcSvBbHw
みんな画像や音声のロードってどうしてるの?
NowLoading...のアニメーションを動かしながらロード、ってのをしたいんだけど、
読み込みとアニメーションを並行してやる方法が分からないんだ
824:名前は開発中のものです。
10/02/05 16:52:34 Ir4+43zS
>>822
>>492
825:名前は開発中のものです。
10/02/05 19:50:51 EoD901Y8
マルチスレッドじゃね
826:名前は開発中のものです。
10/02/05 20:17:16 Ir4+43zS
>>823
1フレームに1つずつファイルを読み込みながらアニメーション表示させる。
マルチスレッドを使ってもいいけどこっちの方が簡単。
827:名前は開発中のものです。
10/02/05 20:25:49 qcSvBbHw
>>825
公式の掲示板の過去ログで、2007年にLoadGraphはマルチスレッドに対応してないみたいな事を管理人さんが・・・
>>826
音声ファイルとかだと1フレームの間にロードし終わってくれますかね・・・?
828:名前は開発中のものです。
10/02/05 20:30:27 g1+Hi/0a
俺も>>826の方法だけど
たしかにちょっと止まるな
829:名前は開発中のものです。
10/02/05 20:30:28 EoD901Y8
起動時に全部読み込んで後でNowLoadingだけ表示しとけばいいんじゃね
830:名前は開発中のものです。
10/02/05 20:38:57 XWwIt0Ve
本末転倒w
831:名前は開発中のものです。
10/02/05 20:58:53 Ir4+43zS
個人的な感覚でだけど>>829の方法が可能ならこれでいいんじゃないかな。
そもそもプレイヤーにストレスを与えないようにするのが目的だし、実際「NowLoading...」と表示しておきながら読み込み以外の処理もしてたりするしね。
あと>>826の方法は確かに処理落ちする可能性はあるけど何か問題あるの?
どうせプログレスバーを表示させるぐらいじゃないの?
832:名前は開発中のものです。
10/02/05 21:03:23 g1+Hi/0a
>>829はネタレスだろw
833:名前は開発中のものです。
10/02/05 21:04:42 qcSvBbHw
>>831
起動時に全部読み込むと、読み込みファイルのサイズが大きくなったときにちょっと・・・。
できるだけ逐次ロードしたいから・・・。
あと、最初に読み込もうとすると数秒止まっちゃって、それが気にくわないというかストレス。
834:名前は開発中のものです。
10/02/05 21:37:34 RBAQ2+kz
マルチスレッドなしならなうろーでぃんぐはアニメーションさせないのが一番
835:名前は開発中のものです。
10/02/05 21:58:05 RjYJfLjO
かなりいい加減なコードだけど、スレッドを使った Now Loading のサンプル
URLリンク(codepad.org)
836:名前は開発中のものです。
10/02/05 22:31:40 qcSvBbHw
>>835
おお・・・ 参考にしてみまする
837:名前は開発中のものです。
10/02/05 22:43:27 Xzk70bEL
i=0;
なんかループ{
なんかロード1コ
なんかナウローディングとか表示
なんか四角とか描画(x, y ,x+i, y);
画面更新
}
CとかDirectXライブラリの記述方法は忘れた
838:名前は開発中のものです。
10/02/05 22:55:33 9VhG5z2Z
DXライブラリはともかく、Cの表記とゲームプログラミングの作法は忘れんなw
839:名前は開発中のものです。
10/02/05 23:11:28 a9qwHvOS
ファイル単位で読み込もうとするからデカイファイルのせいで処理落ちするコマが出てくるんじゃね?
while(!end())
{
read( Nバイト );
draw();
}
これならフレームレート安定するだろう
でもわざわざ読み込み速度を意図的に落としてまでやるべきなのかは疑問
840:名前は開発中のものです。
10/02/05 23:14:04 +ZQFEOdr
DXライブラリで
>read( Nバイト );
ってどうやんの?
841:名前は開発中のものです。
10/02/05 23:19:28 qcSvBbHw
スレッド使ってロードしようとしたらエラー吐いて落ちた・・・。
やっぱりLoadGraphはマルチスレッド対応してないってことなのかな・・・。
>>839
kwsk
842:名前は開発中のものです。
10/02/05 23:29:20 ax38IgEf
>>835のコードだったらわざわざマルチスレッドにせずとも>>826でやればいいような気もするが
843:名前は開発中のものです。
10/02/05 23:31:09 9VhG5z2Z
自己満足で!(超重要
844:名前は開発中のものです。
10/02/05 23:45:43 tUrF1ELA
スレッド系はきっちり作らないと他人の環境限定で
ある日突然落ちたりしてデバッグで泣くことになるぞ。
CPUのコア数によって出たり出なかったりとかするからな。
845:名前は開発中のものです。
10/02/06 02:01:00 npht8xA6
Now loading...のアニメーションを動画にしたらどうかな?
846:名前は開発中のものです。
10/02/06 02:46:06 Y+vgz54E
その動画を読み込ん出る間のNow Loading画面が欲しくなるね!
847:名前は開発中のものです。
10/02/06 03:13:17 ryKI6KOb
Now loading...をLoading Complete!に修正すればよくね
848:名前は開発中のものです。
10/02/06 04:54:47 sLGxAtvo
「ロードした」なら使ってもいい!
849:名前は開発中のものです。
10/02/06 07:42:28 heYW4fwh
>>829はネタのつもりで書いただろうけど、実際にやってる人を見たことあるよ。
静止画を表示しながら読み込み(2秒間)⇒「NowLoading...」(0.2秒)
本人曰く「ただ気分を味わいたかった」と。
でも実際のゲームを見てみるとプレイヤーからはそれは分からないし、むしろ「ロード早いなあ」という印象すら受けた・・・
これも一つの答えなんだと思ったよw
マルチスレッドを使う方法は↓に書いてある。
URLリンク(hpcgi2.nifty.com)
あと画像はLoadDivGraphで分割読み込みができる。
850:849
10/02/06 07:48:32 heYW4fwh
すみません。
掲示板のリンクがダメですね・・・
記事No「1896」です。
851:名前は開発中のものです。
10/02/06 09:42:16 AjOTNEN+
>>849
LoadDivGraphで分割読み込み、ってアレはひとつの画像を複数の画像に分割するんであって、
分割してひとつの画像読み込むわけじゃないっていう
マルチスレッドの方は読んでみた
応用してやれないか試してみる
852:名前は開発中のものです。
10/02/06 13:12:13 6i+WO82B
そもそも円滑にアニメーションさせる必要なくね?
要所要所で動作が若干止まったりしたほうが読み込んでるっぽくてユーザも安心するし
853:名前は開発中のものです。
10/02/06 13:15:04 m1I5HW8a
じじいの酷い言い訳
854:名前は開発中のものです。
10/02/06 13:30:09 xpV9NzXE
じじいくらべならまけませんよ?
855:名前は開発中のものです。
10/02/06 14:19:32 heYW4fwh
アニメーションの種類によるんじゃなかな?
読み込みの進捗を表示させるようなタイプなら>>823で多少カクカクしても問題ないと思うし、むしろマルチスレッドにすると同期を取るのがめんどくさいし。
逆にもっと派手なアニメーションだと処理落ちすると見栄えが悪くなるのでマルチスレッドにするしかないと思う。
ただ個人的には同人ゲームなら静止画で「NowLoading...」と表示させておくだけで十分だと思うんだけど・・・
856:名前は開発中のものです。
10/02/06 15:27:53 hilmmGtE
静止画1枚だとフリーズしてんのかな?って不安になる
857:名前は開発中のものです。
10/02/06 16:16:36 +7JZw7l0
カクカクでもいいならマルチスレッド必要ないよな
858:名前は開発中のものです。
10/02/06 16:21:12 AjOTNEN+
せめてNowLoading... [ ココ ] で何かのアニメーションはさせたいよね
859:名前は開発中のものです。
10/02/06 22:28:44 fMJ0B1gK
そこは操気弾のアニメを
860:名前は開発中のものです。
10/02/06 23:38:51 cCb1U7aq
これって3dもつくれるんだよね?
Blenderにも対応してる?
861:名前は開発中のものです。
10/02/07 07:39:53 cnkJTmx7
>>860
>これって3dもつくれるんだよね?
作れるよ。
>Blenderにも対応してる?
モデリングソフトの対応状況は過去レスを見てみて。
BlenderはFBXが使えるみたい。
862:名前は開発中のものです。
10/02/11 23:41:27 AgKonL0C
メタセコで武器だけ作って、それを3Dのキャラモデルに持たせるのはどうやるんだろう。
DXライブラリの範疇ではないのかな。
なにか調べる取っ掛かりはない?
863:名前は開発中のものです。
10/02/12 02:48:39 iGppiI+j
位置とか角度の親子関係を作れればいいんじゃないかな
864:名前は開発中のものです。
10/02/12 04:35:23 Z51oc7q7
>>862
DXライブラリは知らんけどリアルタイムレンダリングがデフォじゃない?
865:名前は開発中のものです。
10/02/12 07:46:33 gSVuHgsF
>>862
「コンストレイント」で検索してみるといいよ。
やり方は簡単で>>863の言う通り、「手」の移動と回転を「武器」に加えるだけ。
866:名前は開発中のものです。
10/02/12 15:42:11 9oJmNhGP
DrawChipMapってどうやって使うの
867:名前は開発中のものです。
10/02/12 21:24:07 m/RgGbdM
GetNowHiPerformanceCount()の内容をprintfしたいんですが%dの部分を何に変えたらいいですか
868:名前は開発中のものです。
10/02/12 21:53:10 5g1bekrX
g
869:名前は開発中のものです。
10/02/12 22:17:37 gSVuHgsF
>>867
試してないけど戻り値がLONGLONG型なので「%I64d」か「%lld」じゃないかな。
870:名前は開発中のものです。
10/02/12 22:39:37 3A3ijQ60
>>863-865
サンクス!
やり方、納得です。
取り敢えず手の回転並進行列とって、そのまま武器に適用させてみる。
871:名前は開発中のものです。
10/02/12 23:19:30 gSVuHgsF
>>866
チップグラフィックを使ったマップ描画
int MapWidth, MapHeight : マップデータ全体の幅と高さ
int *MapData : マップデータが格納されたアドレス
int ChipTypeNum : マップに使うチップの種類の数
int *ChipGrHandle : チップのグラフィック配列のアドレス
int TransFlag : 透過色処理の有無
int MapDrawX, MapDrawY : 描画するマップの起点となる左上座標
int MapDrawWidth, MapDrawHeight : 起点座標から描画するマップの幅と高さ
int ScreenX, ScreenY : マップを描画する画面上の座標
(2004/02/08)
2.11 DrawChipMap 関数を非公開関数に変更。
872:名前は開発中のものです。
10/02/13 00:47:58 lykIm1Dn
>>868-869
サンクス!
lldでいけました。
873:名前は開発中のものです。
10/02/13 18:36:09 nVI35ftX
1つの画像に対して、縦横で別倍率の拡縮、および回転を同時に行うとき、
何か簡単な方法って無いものかな?
拡縮してから回転させたときと、回転させてから拡縮するときとで結果が異なるけどさ。
無いなら無いで、自前で座標を計算してDrawModiGraph()に投げるつもりだけれど。
874:名前は開発中のものです。
10/02/13 19:30:01 pV6Ocbxc
ないので俺は自分で関数作った
875:名前は開発中のものです。
10/02/13 22:38:54 nVI35ftX
そっか、ありがと。
876:名前は開発中のものです。
10/02/14 21:14:56 9DOaOyQ2
半透明処理で
ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・
ScreenFlip()
って書いたら、1箇所使っただけなのにかなり処理が重くなる
DrawGraphが悪い?
フレームスキップするしかない?
877:名前は開発中のものです。
10/02/14 21:20:54 lH/o5bwf
いや、俺普通に何箇所も使うけど重くなんないよ?
本当にその四行だけで試してみた?
878:名前は開発中のものです。
10/02/14 21:21:28 I7ZtRrpB
フレームスキップは基本過ぎるだろ
879:名前は開発中のものです。
10/02/14 21:24:26 9DOaOyQ2
>>877
ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・ // 半透明させるの画像
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
ScreenFlip()
こうやってます
画像を重ねる都合上、
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) を2回やってます
もっと効率よい方法があるんでしょうか?
880:名前は開発中のものです。
10/02/14 21:26:43 9DOaOyQ2
>>877
フレームスキップってどうやればいいでしょうか?
画面処理を別スレッドにして、処理時間オーバーしたら放棄、
でいいの?
881:名前は開発中のものです。
10/02/14 21:27:36 9DOaOyQ2
すみません
880 は >>878へのレスです
882:名前は開発中のものです。
10/02/14 21:32:50 r2nQlTSv
>>879
いちいち戻さない方が速いかも
883:名前は開発中のものです。
10/02/14 21:34:14 I7ZtRrpB
>>880
ググれば幾らかサンプルコードが出てくる。確か龍神録でも触れてたと思うし。
PC上で動くゲームを作るのなら秒間60回更新するように調整するのは基本中の基本。
DXLIBに限った話じゃない。CPU使用率が異常に高かったりしたら間違いなくこっちの問題でしょ。
884:879
10/02/14 21:58:05 9DOaOyQ2
3番目の↓
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
が処理を重くしてる原因だったので、これを削ることにしました
ありがとうございます
龍神録というサイトを初めて知ったので、質問してよかった
>>883 ありがとうございます
885:名前は開発中のものです。
10/02/15 08:08:26 BUryD20y
何故そこだけ問題があったんだろう。気になる。
>873だが、色々な変形に対応させようと思うと結構面倒だな。引数も増えるし。
回転と拡縮だけにしてしまうか。
……とここまで書いて、
画像クラスを作ってしまえば簡単だということに気づいた。
886:名前は開発中のものです。
10/02/15 20:26:12 ccjc3ij8
平面だけでいいなら2*2行列に行列演算を繰り返して
最後にその4点にあわせてDrawModiGraphするってのが汎用的で記述もわかりやすくていいんじゃね?
どっかからできの良い数学ライブラリ持ってきてもいいし
回転拡大スライド程度なら簡単な行列計算だけに絞れるから自分で作ってもいい
887:名前は開発中のものです。
10/02/15 20:55:41 BUryD20y
行列とか完全に忘れてて愕然とした orz
>>886
結局のところ、妥協して回転、拡縮、左右/上下反転の3つだけ関数にしたんだが、
どっちかっていうと、コーディングよりも設計に悩んでた。
変形する順番によって最終的な結果が変わる場合があるから、
それらに対応しようとすると、その分だけ引数も増えるわけで、結果として使いにくい関数になっちゃうのよね。
で、画像をクラスにして
ImageClass img;
//中略
img.rotate(3.14); //180度回転
img.extend(1.0,2.0); //縦2倍
img.rotate(1.57); //90度回転
img.draw(0,0); //0,0に描画
とかでも良かったかな、と思った。
888:名前は開発中のものです。
10/02/15 21:00:03 K58uOKXK
・画像内での基準点の位置
・上の基準点が実際に描画される位置
・基準点を中心としたスケール
・基準点を中心とした回転角度
で十分だと思うけど
889:名前は開発中のものです。
10/02/15 21:57:09 BUryD20y
>>888
それだけで引数7つあるぜ?
各変形の優先度を決める(もしくは同じ変形を複数回行う)とか、
回転と拡縮以外の変形も出来るようにするなら、どれだけ増えるんだ。
890:名前は開発中のものです。
10/02/15 22:01:20 8F/ucvej
回転と拡大縮小って別に順不同じゃね
基点となる座標が変われば別だが
891:名前は開発中のものです。
10/02/15 22:17:52 BUryD20y
>>890
ゲームの都合上、縦横で別々に拡大率を設定できるようにする必要があった。
正方形を、90度回転させてから、横に2倍
□□ → ■□ → ■■□□
■■ → ■□ → ■■□□
横に2倍にしてから、90度回転
■□
□□ → □□□□ → ■□
■■ → ■■■■ → ■□
■□
みたいに変わる。
892:名前は開発中のものです。
10/02/15 22:23:00 8F/ucvej
>>891
それって渡す引数のほうを工夫すればいいんでねーの
二つ目は90度回転してから縦に二倍しても同じものを得られるわけだし
DrawExRotaGraph2(int x,int y,int cx,int cy,double ExtRateX,double ExtRateY,double Angle,int GrHandle,int TransFlag,int TurnFlag);
10個だな
893:名前は開発中のものです。
10/02/15 22:29:12 BUryD20y
>>892
質問、90度以外でも渡し方次第で出来る?
894:名前は開発中のものです。
10/02/15 22:31:47 8F/ucvej
>>893
出来るんじゃね
895:名前は開発中のものです。
10/02/15 22:57:23 ccjc3ij8
引数が多いと見苦しいし、書く順番でちょっと混乱しそう
それに回転と伸縮どっちが優先か見た目に明らかじゃないのも気になる
896:名前は開発中のものです。
10/02/16 00:28:56 ytIVItbu
なんに使うのかがそもそも想像できない俺……。
897:名前は開発中のものです。
10/02/16 03:07:21 JDL3KQO6
>>896
こんな感じでどう?
URLリンク(gamdev4.hp.infoseek.co.jp)
898:名前は開発中のものです。
10/02/16 04:51:49 iDbvu+FE
>>897
( ゚д゚)ポカーン
899:名前は開発中のものです。
10/02/16 05:23:23 g5MLEwas
ようやく理解できた
900:名前は開発中のものです。
10/02/16 06:40:46 OQUeahIO
3Dでやれば簡単だぜ
901:名前は開発中のものです。
10/02/16 09:20:21 aK6xRRB6
把握。
そういう力技、嫌いじゃないぜw
902:898
10/02/16 10:16:29 JDL3KQO6
すまん、いい例えが思い浮かばなかったんだw
903:名前は開発中のものです。
10/02/16 10:17:15 JDL3KQO6
名前間違えた、897だ
904:名前は開発中のものです。
10/02/16 11:28:24 iwCPzVGw
GetDrawStringWidthの第二引数StrLenはどういう意味があるのでしょうか?
マニュアルには
> StrLen として文字列の長さをわざわざ指定する ようにしたのは色々な側面から見て文字列の長さを指定できるよう にしたほうが良いと思ったからです。
と書いてありますが、どういうケースで指定が必要になるのか想像がつきません。
905:名前は開発中のものです。
10/02/16 12:41:35 ghUeZnk+
>>904
DXライブラリの作者さんがそう考えただけで、別に必要なければ使わなければいいだけでは?
例を挙げておくとこんな感じ。第二引数は指定できなくても書けるけど複雑になってしまう。
char Str[] = "今日もいい天気だ";
int MaxWidth = 50; // この幅に収まるように描画したい
int MaxChar = 0; // MaxWidthに収まる最大文字数
for( int i = 0; i < strlen(Str); i++ )
{
StrWidth = GetDrawStringWidth( Str , i ) ;
if(StrWidth < MaxWidth)
{
MaxChar = i ;
}
}
Str[MaxChar] = '\0' ;
DrawString( 0 , 0 , Str , GetColor( 255 , 255 , 255 ) ) ;
906:名前は開発中のものです。
10/02/16 12:56:47 iwCPzVGw
>>905
なるほど、理解しました。
907:名前は開発中のものです。
10/02/16 13:02:27 JDL3KQO6
辛うじて一度だけ使った記憶があるな。
メニュー画面だったかな。文字列をセンタリングして表示するのに利用した。
文字列の前後に空白や記号がある場合、
それらも含めた文字数で横の長さを決めると、ちょっとズレて見えることがある。
……ぶっちゃけた話、
他にも方法は色々あるだろうとか、メニュー画面くらい画像にしろよとか思うので
使う機会はあんまり無い気がする。
908:名前は開発中のものです。
10/02/16 17:38:15 S7mGVY2n
C/C++以外からDLL経由で使おうとするとnull文字で終わってない文字列とか渡すのに便利です
909:名前は開発中のものです。
10/02/16 21:28:56 QXMNjoNk
>>873
DrawModiGraph()とアフィン変換
アフィン変換 クラスでググるといいかもしれない
910:名前は開発中のものです。
10/02/16 22:33:22 7n/4grgh
逆に文字列の長さよりもStrLenの方が短い場合とかに使うんじゃね?
デバッグ文表示で最後まで表示しないで途中で切ることとかよくあるんじゃね?
911:名前は開発中のものです。
10/02/16 23:25:40 b96KcuEj
アフィン変換か・・・左右反転と拡大縮小って同時にできるもんなんだな、しらなかった
でもこれってソースになる元画像を読んでからやるの?格納してからメモリ上の画像をハンドルで指定して操作したりできるんだろうか
912:名前は開発中のものです。
10/02/16 23:50:46 QXMNjoNk
あ、左右反転もなのか
DrawModiBillboard3Dのがいいと思う
913:名前は開発中のものです。
10/02/17 00:19:59 BMwZx7QF
>>912
いや自分は873ではないんだけれども、参考になったので書かせてもらった。横槍すまんね
DrawModiBillboard3Dって左右反転できるのか。x1を右上の座標、x2を左上の座標、x3とx4も同様に交換ってやれば反転するのかな?
914:名前は開発中のものです。
10/02/17 02:18:28 V7zWpnOB
ゲームで銃の連射中の音を作りたい
例えば 「ドッギュウン」て音声のファイルがあったとする。
そのファイルを使って単発発射で「ドッギュウン」、連射で「ドッドッドッドッドッギュウン」ってなカンジにしたいんだけど
音声の再生中かを CheckSoundMemで調べて、再生してなかったら再生してもヨシってすると案の定
「ドッギュウン・ドッギュウン・ドッギュウン・ドッギュウン」ってカンジになってしまう。
なので、ソレをナシにすると1ループごとに再生するんであまりにも早くて
「ドドドドドドドドドドッギュウン」ってカンジになる。
音声の再生位置を調べて、ある程度達してたら再生ってやろうと思ったけどそんな関数は無かった。
だから適当に変数用意して3ループ目ごとに再生ってカンジにしようとしているんだけど…(ゴチャゴチャする気もするが)
一般的なゲームの場合ってこういう時どうしてるの?
音声を二つ「ドッドッドッド」「ドッギュウン」用意して、ボタン押しっぱなし時は「ドッドッド」、離す・もしくは一押しの時は「ドッギュウン」とか?
915:名前は開発中のものです。
10/02/17 02:32:31 ccv1Zplj
ボタン押してる間「ドッ」をループ
離したら「ッギュウン」でいいんじゃねーの?
916:名前は開発中のものです。
10/02/17 05:47:58 9a0E55gk
そんなめんどくさいことしなくても
弾の発射間隔を広げるか、数発ごとに発射音を鳴らすようにすればいいじゃん
917:名前は開発中のものです。
10/02/17 06:26:15 CMLdNZJw
弾を撃つと開始されるカウンタを作って
そのカウンタが条件を満たしたとき音を鳴らせばいいんじゃないの?
1ループごとだと早すぎるんなら1おきにするとかもできる。
918:名前は開発中のものです。
10/02/17 08:34:48 MHINozGj
>>912
自前で変形させるなら、2Dでも3D(ビルボード)でも大差なくない?
919:名前は開発中のものです。
10/02/17 13:16:50 WoQHqNki
>一般的なゲームの場合ってこういう時どうしてるの?
FFのデータ見たら、あらかじめ重なった時の効果音も
組み合わせごとにいっぱい入ってて、意外だった
とかいう話を、どこかのスレで見たような、見なかったような。
手間と配布方式とかによって変わってきそう。
920:名前は開発中のものです。
10/02/17 19:53:18 b05sIrPr
>>918
カメラ使って視点操作で楽できるからじゃね?
921:名前は開発中のものです。
10/02/17 21:17:38 MHINozGj
ああ、なるほど。
カメラで視点操作ってことは、一括だよな。
メリットでもあるしデメリットでもあるという感じか。
922:名前は開発中のものです。
10/02/17 22:06:32 BMwZx7QF
DrawModiBillboard3Dって描画位置が変にならない?
前にDrawBillboard3DをDrawModiBillboard3Dにそのまま置き換えてみたら同じ位置に描画されなかったから使うのやめちゃったんだけど
923:名前は開発中のものです。
10/02/17 22:17:31 V7zWpnOB
>>915-917
多彩な案サンクス!やってみるよ俺
924:名前は開発中のものです。
10/02/18 02:17:33 artpUogb
アフィン変換ってのとDrawModiGraphでよくね?
DrawModiGraphで左右反転は入れ替えで普通にできたよ。
アフィン変換の使いやすそうなクラス公開してたりするし、よくわからんまま使えそうだ。
925:名前は開発中のものです。
10/02/18 16:24:17 wXmsheL/
スクリーンではなくバッファに描画するにはどうすればいいのでしょうか?
例えば、画像描画や文字列描画を組み合わせて描画する物である「メニューウインドウ」をバッファに描画して、
それを透過やら拡大縮小してスクリーンに描画したいです。
926:名前は開発中のものです。
10/02/18 16:47:24 S5tbEoCa
>>925
URLリンク(hpcgi2.nifty.com)
これでどう?
927:名前は開発中のものです。
10/02/18 17:21:51 wXmsheL/
>>926
まさに求めていたものはこれです。
ありがとうございました。
928:名前は開発中のものです。
10/02/18 18:10:44 UX2j7dSO
dxlibで書き込める画像って作れるのか・・・
レイヤーシステムどうやって作るのか悩んでたところだよ
929:名前は開発中のものです。
10/02/18 18:19:30 sI5JnKeC
BaseImageでもやろうと思えば出来るんじゃない?
SoftImageにも転送付いてたような
930:名前は開発中のものです。
10/02/18 18:37:31 UX2j7dSO
SoftImageは変形とかブレンドを自前でやんないといけなくて面倒だった気がする
931:名前は開発中のものです。
10/02/18 18:41:04 yr41/JmB
>>897
の右側の魔法陣みたいな斜めにして回転、みたいな変換・表示するのにはどうすればいいかわからない・・・。
というか、アフィン変換した画像というか、DXライブラリでどうアフィン変換利用すれば良いかわからないんだけど、
誰か分かる人頼む・・・。
932:873=897
10/02/18 19:07:00 7/BIGMNa
結局アフィン変換がよくわからずに、三角関数で画像を変形させた俺。
おかしいな、大学は理系だったはずなんだけどなー。
行列なんて普通に使ってたはずなのに…… orz
933:名前は開発中のものです。
10/02/18 19:28:11 wsPY0Q5n
>>931
斜めにして回転って2Dでやるほうが難しいんじゃないかな。
DrawModiBillboard3Dってカメラ関数使って斜めから見れるん?
>>897の魔方陣のように傾けて見れるならなんとかなりそうだけど。
934:名前は開発中のものです。
10/02/18 19:30:18 sI5JnKeC
いわゆる「習う」数学は公式を持ってきた後に「解く」からいけない。そこが重要だと思ってしまう
解くのは別にコンピュータがやればいい。大切なのは解き方
935:名前は開発中のものです。
10/02/18 19:40:26 UX2j7dSO
ひょっとして3Dつかって2Dゲーム作る方が楽なのかな
最近はそういうゲームも結構あるよね
936:名前は開発中のものです。
10/02/18 19:43:40 cSNnQmS/
DXライブラリ使ってるならまさにその方式を使ってることになるけど
937:名前は開発中のものです。
10/02/18 20:41:03 S5tbEoCa
>>931
つまり、画像を2回回転させて描画したいっていうことだよね?
DrawModiBillboard3D関数の引数x1, y1~x4, y4に各頂点を2回回転させた座標を指定すればいけると思う。
ビルボードじゃなくてモデルとして扱った方が簡単なような気もするけど・・・
938:名前は開発中のものです。
10/02/18 20:49:00 7/BIGMNa
>>937
自分みたいに3Dサッパリな人間には、モデルデータを用意するだけでハードルが高いからなあ。
そうなると、従来の画像で扱えるビルボードの方が良さそう。
あとは動的に画像を生成するような場合(スクリーンショットとか)にも向いているかもしれない。
モデルデータを使わずにやるなら、素直に2Dでも良いわけだが。
939: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ライブラリから話がずれてるぞ。