DXライブラリ 総合スレッド その12
at GAMEDEV
[前50を表示]
700:名前は開発中のものです。
12/05/13 18:37:46.05 SIc+R5jE
>>699
ありがとう
例えば敵オブジェクトを1000要素の配列に入れて、存在フラグtrue/falseで管理し、
存在フラグtrueのものだけ処理を行う、という用途で、
要素検索によるランダムアクセスしないなら、
listが向いてるって感じか
用途に応じて選ぶ際の参考になるわ
701:名前は開発中のものです。
12/05/13 18:38:44.99 pSj6hJ1W
map, vector, listでクラス使う際は
ポインタ <T*> を使うのがいいんだな
javaやってて気付いた
702:名前は開発中のものです。
12/05/13 22:06:28.55 4FieMYmt
vectorでどうやって動的にクラス配列確保するんだよ( ;´Д`)
703:名前は開発中のものです。
12/05/13 22:18:11.78 pSj6hJ1W
だからポインタ使えって。コピーコンストラクタ書かずに済むし速い。
プリミティブなら逆にポインタ使わないほうがいいけど。
704:名前は開発中のものです。
12/05/13 23:02:43.31 SIc+R5jE
>>701の<T*>をぐぐったけどよくわからんかった
ので>>702もよくわからんし>>703もわからん
もちろんプリミティブならそのままsecondに代入しちゃってのはわかる
705:名前は開発中のものです。
12/05/13 23:22:05.25 SToQPpoQ
普通にvector使えばいいんじゃないの?
706:名前は開発中のものです。
12/05/13 23:22:50.12 pSj6hJ1W
>>704
Hogeなら vector<Hoge*>ってこと。
するとSTLが管理するのはポインタの配列だけで
ポインタが指すインスタンスは結局自分でnew(), delete()する必要があるね。
vector::push_back()とかにあわせて
参照先new(), delete()するラップクラス作っちゃったり。
707:名前は開発中のものです。
12/05/14 00:20:26.40 nfhDOHHW
ああ、T*というところがわからなかったけど、
要はmapならsecondにはポインタを入れておけばいいってことで、
>>644と同じことをいってるってことね
708:名前は開発中のものです。
12/05/14 12:57:31.44 BTxAOBmy
mapならというかコンテナ全般、プリミティブじゃないなら
ほとんどの場合ポインタかスマートポインタになると思う
インスタインス生成する場合でも生成してからポインタをコンテナに入れる
709:名前は開発中のものです。
12/05/14 20:31:57.64 wi3mQ0Av
敵がドアを破って追いかけてくるゲーム作りたいけど何時間くらいで
作れますか?
マップは平面です。
100時間くらいで作れますかね?
710:名前は開発中のものです。
12/05/14 20:55:24.27 nluLiaGY
>>709
どんなゲームかよくわからないけど、一般に絵描くのに時間がかかると思う
711:名前は開発中のものです。
12/05/14 20:57:44.59 wi3mQ0Av
ドンキーコングみたいなゲーム作るには何時間くらいかかりますかね?
ディクシーのポニーテールジャンプみたいなアクションとか難しいですか?
712:名前は開発中のものです。
12/05/14 20:59:03.55 nfhDOHHW
DXライブラリスレで質問したということは、
ツクールなどでなく、プログラムを0から作るということだよね
プログラムの経験がないなら、プログラムのやり方をつかむまでにも、時間がかかると思う
713:名前は開発中のものです。
12/05/14 21:00:26.92 ARfdhxrz
使う言語が分からん。
使うツールが分からん。
どんな設計するか分からん。
そもそもどんなゲームか分からん。
>>709の技量が分からん。
本当に>>709だけだったら1時間もかからないんじゃない?
__人≡_扉_敵≡_扉___
↑を適当に表示すれば?
714:名前は開発中のものです。
12/05/14 21:13:16.20 fXKpuvEK
手を動かさない限りは100万年あってもできないからw
715:名前は開発中のものです。
12/05/14 21:48:26.61 nluLiaGY
>>711
難しくはないけど、何時間で作れるかはわからない。開発時間なんて測ったことないから。昨年作った自分のゲーム(STG)見たらデバッグでのプレイ時間は今調べたら12時間くらい。だから製作時間は100時間は超えてると思う。
俺は1年で1作品作ってるけど1年の内この期間は言語の勉強して、この期間はライブラリ作って、みたいな感じ。ゲーム作ってる期間は3ヶ月くらい。
参考になりましたでしょうか?
716:名前は開発中のものです。
12/05/14 21:51:45.72 FOic/R1y
話変わるけど、>>715さん。
シンプル500って知ってるかい?
あぁいう感じのゲーム好きなんだわ。
500の脱出ってしってる?
あんな感じのインターフェースが良いな。
初心者です^ω^
言語はCです。(C++は無理)
ライブラリはDxlibraryとvisualC++
717:名前は開発中のものです。
12/05/14 21:58:12.39 nHTiVln5
(C++は無理)
visualC++
718:名前は開発中のものです。
12/05/14 22:28:40.41 Fjz7pfxe
>>716
ああいうのはフラッシュのほうがいい
719:名前は開発中のものです。
12/05/14 22:37:14.19 M7E7ECcT
>>716
ClassはまだしもStringとか使ってないの?
720:名前は開発中のものです。
12/05/14 22:39:41.11 FdCjrB5P
「free game classic(フリーゲームクラシック)」とは?
3ヶ月ごとに開催される個人運営のコンテストでみんなの投票で
順位を決めます。
「プレイ時間は90分内」「先行公開が可能」など、ルールがあるので要注意。
3位までにギフト券3000〜1万円が贈られるます。
ゲームを作ってコンテストに参加するもよし、ただ遊ぶでもよしです。
721:名前は開発中のものです。
12/05/14 22:54:07.17 FOic/R1y
>>718
フラッシュだとツール臭するからな。
CやBASICで10年以上前の簡単なPCゲームみたいなん作るのが楽しいんだよ。
あーコン部思い出すわ。
722:名前は開発中のものです。
12/05/14 23:07:35.73 Y0QiG0Ej
10年程度じゃまだレベルたけーぞ。
723:名前は開発中のものです。
12/05/14 23:13:10.08 ZvZF0l1B
>>720
ぐぐった。そしてなんだこの残念感。
724:名前は開発中のものです。
12/05/14 23:16:49.28 FOic/R1y
>>722
違うって。
12年前くらいのPCゲーム。
Shock Priceの500円の脱出ってゲームしってるか?
あぁいう簡素だけど、コミカルでわくわくする雰囲気の
レトロゲー作りたいんだよ。
昔に戻れる。
パソコン部思い出せる。あーあのころに帰りたい。
725:名前は開発中のものです。
12/05/14 23:21:21.72 FOic/R1y
>>722
お前コン部の楽しさしらないだろ?
公立なのに夏にクーラー利いた部屋に出入りしたら
勉強できないのにコンピュータだけは得意なメガネ君がカタカタやってる。
で俺は話ついていけないから、今度のコンクルール何出そうか?みたいな
話題提供したら乗ってくれる、色々教えてくれる。楽しいぜ?和気藹藹。
女子はパソコン苦手だから、固まってお喋りしてる。可愛い子もいた。
土曜日なら先生少ないから、サッカー部の生徒が可愛い女子目当てに
乱入しちゃったりしてさ。
あのころに戻りたい。
726:名前は開発中のものです。
12/05/15 00:21:21.90 I2SNujz0
コンピュータ部ってX6800、PC98、FMタウンズの勢力争い三国志みたいなとこだった
727:名前は開発中のものです。
12/05/15 01:02:26.15 3TH09wJu
>>725
俺の知ってる部活と違う。クーラーしか共通点がない。
全員でエロゲのセーブデータ解析&先公から頼まれた市販ソフトのコピー遂行。
解析データは投稿。>>725はどこの世界に生きてたんだよ・・・
728:名前は開発中のものです。
12/05/15 01:09:35.50 G9xvbrPp
>>725
俺もdoubtだわw
「パソコン」が通称だった時代は、まだ全く身近じゃなかったんじゃないか?
サッカー部に女子がまとわりついてるってんなら分かるが。
あと、
>Shock Priceの500円の脱出ってゲーム
アマゾンのユーザレビューでボロクソ言われてんなww
729:名前は開発中のものです。
12/05/15 02:01:02.79 G9xvbrPp
「パソコン」はまだ言うなw
スマソ
730:名前は開発中のものです。
12/05/15 02:28:36.70 I26iNYfr
マイコン
731:名前は開発中のものです。
12/05/15 04:55:54.75 l3PfYtxB
コンピュータの話をするとそんなもん何の役に立つんだと
老害教師に鼻で笑われたなー
732:名前は開発中のものです。
12/05/15 06:22:59.75 WoSDo/nx
実際役に立たないから困る
733:名前は開発中のものです。
12/05/15 08:27:06.44 n+C8wzG1
実際ゲームのメイン部分ってwhileじゃないと駄目なの?
GPの館に書いてあったんだが
734:名前は開発中のものです。
12/05/15 08:46:09.63 P26WoJ+E
他の制御構文は
for:初期化式と再初期化式が省略可能だが余分
do〜while:初回無条件に実行が必要じゃない
goto:基本的に使用は避ける
無駄が無いからwhileを使う
735:名前は開発中のものです。
12/05/15 10:45:28.39 /AN6bfUC
while以外に何を使いたいんだ?w
736:名前は開発中のものです。
12/05/15 11:24:27.70 7q5MiGtI
do〜whileを使うプログラマ、使わせるSEはクズ
737:名前は開発中のものです。
12/05/15 13:32:48.02 DvZhu9E1
統一させないといけない仕事ならともかく、
趣味でやる分には好きにすればいいと思うよ
738:名前は開発中のものです。
12/05/15 15:26:41.12 WoSDo/nx
while(true)よりfor(;;)の方が速いらしい
739:名前は開発中のものです。
12/05/15 15:36:07.96 7MbmXZQt
そもそもそれぞれ機能が違うんだから「ループ処理」みたいにバカな一括りにしてないで使い分けろよw
740:名前は開発中のものです。
12/05/15 17:48:29.94 K4tOkwgR
そんな微妙な差をきにするほどのゲームなのかと聞きたい
741:名前は開発中のものです。
12/05/15 18:39:55.59 WoSDo/nx
for, foreach, while, doはforに統一してもいいよな。
for(int i=0; i<5; i++){}
for(Type object : array){}
for(true){}
{}for(true)
742:名前は開発中のものです。
12/05/15 20:11:20.70 jK/Ti//s
>>740
宗教寄りな個々の拘りの問題で、出来上がる物にそこまで影響してこないでしょ
>>736 がそう思う理由を聞きたい。普段から殆ど使わないけど、なにかか不味かったけ?
743:名前は開発中のものです。
12/05/15 20:18:12.31 FJN+ySbI
do〜whileの存在なんて忘れかけてたわw
744:名前は開発中のものです。
12/05/15 20:30:17.74 Q/+zfBD6
do〜whileは一生使わないと思う
745:名前は開発中のものです。
12/05/15 21:38:56.48 NycYNCvV
僕この前使ったことあるよ!!
二次元上の点をランダムな点(ただしPCの半径n以外)を得るコードの時に人生で初めて
746:名前は開発中のものです。
12/05/15 21:42:25.47 I2CLfunR
do whileはstd::next_permutationで使うくらい
747:名前は開発中のものです。
12/05/15 22:14:03.49 AbQ+Urgd
do{
処理;
if(エラーチェック1) break;
処理;
if(エラーチェック2) break;
処理;
return;//正常終了
}while(false);
エラー処理
return;
これでgoto要らず・・・
748:名前は開発中のものです。
12/05/15 22:15:08.62 SjeSUqBD
構文がもし do while(条件) { ... } だったら、もうちょっと使ってたかもしれない
749:名前は開発中のものです。
12/05/15 22:34:26.99 AbQ+Urgd
あと有名なのははDuff's Device
send(to, from, count)
register short *to, *from;
register count;
{
register n=(count+7)/8;
switch(count%8){
case 0: do{ *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while(--n>0);
}
}
750:名前は開発中のものです。
12/05/16 01:14:43.27 E/82p3zm
>>749
なんだこれは
751:名前は開発中のものです。
12/05/16 01:33:14.92 E/82p3zm
>>659だけど
他で作った好きな要素数の配列をnewしてアドレス変数をポンポン交換してって
使い終わったやつはdeleteで開放
で擬似的に動的配列になるかね
日本語意味不明だけど解読してくれると嬉しい
752:名前は開発中のものです。
12/05/16 01:53:38.37 uCI89rGL
配列は定数しか無理だよ
動的配列のvectorじゃだめなん?
753:名前は開発中のものです。
12/05/16 03:41:31.70 veKNCjZ1
vectorが内部でやってることだろ。
基本を抑えずvector使っても結局詰まるよ。
754:名前は開発中のものです。
12/05/16 04:11:42.74 xN96LXhW
vectorとか適当にぶん回しても要素1000くらいまでならマジ優等生
何も考えずにvector使えばいいよ
755:名前は開発中のものです。
12/05/16 20:28:31.12 veKNCjZ1
おまじないプログラマーの甘言を真に受けないように
756:名前は開発中のものです。
12/05/16 21:05:20.10 Zs3i0kMO
プログラマーとして一流になる必要などなくて、ゲームが作れればいいんだから、
さっさとvector使えばええやん
C++ STL vectorとかでぐぐれば資料もたくさんあるから、必要な情報も得やすい
757:名前は開発中のものです。
12/05/16 21:17:43.67 xcEAC60x
名前空間とかわけわからんdせう
758:名前は開発中のものです。
12/05/16 21:22:50.79 xcEAC60x
クラスをインスタンス化する時コンストラクタやiniメソッドでメンバを初期化するとする
この時わざわざ
class Constructor{
private:
int x,y,z;
public:
Constructor(tmpx,tmpy,tmpz){
x=tmpx;
y=tmpy;
z=tmpz;
}
}
って名前変えて一個ずつ代入していくのが面倒なんだけど、この方法しかないの?
Constructor(x,y,z){}
が出来るならいいんだけど
759:名前は開発中のものです。
12/05/16 21:52:32.82 Ii6Gjoka
Constructor(int tmpx, int tmpy, int tmpz) : x(tmpx), y(tmpy), z(tmpz) {}
とかどうよ
760:名前は開発中のものです。
12/05/16 22:06:52.36 xcEAC60x
やっぱなんかダサイねん(´・ω・`)
tmpとか無くしたい
x→tmpx→x
↓
x→x
761:名前は開発中のものです。
12/05/16 22:10:09.69 DWTPf8LX
テンプレートで初期化を自動化するstatic関数作ればいいじゃん
こういうのってC++でもできるよね?
762:名前は開発中のものです。
12/05/16 22:13:40.69 xcEAC60x
なんかこう、パラメータヒントの変数名がtmpでダサい(´・ω・`)
763:名前は開発中のものです。
12/05/16 22:22:46.08 GI6piSjh
大文字・小文字で区別ができるんじゃ?
764:名前は開発中のものです。
12/05/16 22:23:30.21 aRUZ3+na
同じ名前でもいいぞ、混乱しないようにメンバ変数にthis付けたほうが安全だけど
765:名前は開発中のものです。
12/05/16 22:30:48.24 uOBgzP4U
class point {
private:
int x,y;
public:
point()
{
*this = point(x,y);
}
point(int x,int y) : x(x),y(y)
{
}
};
ってダメかね
766:名前は開発中のものです。
12/05/16 22:54:49.23 vXiMaXO2
>>758
内部変数とアクセッサ・引数用の変数ネーミングのルールを作る。
内部変数は省略形で書き易く、アクセッサ・引数用は分かりやすく。
それ以上気にすると先に進まん。
なんかいい方法があれば後で直せば良いや、くらいで。
767:名前は開発中のものです。
12/05/16 23:53:20.10 O28tHfhr
>>764
安全っつーか、thisつけないとアクセスできないでしょ
768:名前は開発中のものです。
12/05/17 00:12:52.18 lbGUPy7y
俺ならこうだな
変数は構造体の中にまとめる
変数が増えても構造体をいじるだけでいい
typedef struct xyz
{
int x;
int y;
int z;
}stXYZ;
class Constructor
{
private:
stXYZ xyz;
public:
Constructor(stXYZ *pstTmp)
{
memcpy(&xyz,pstTmp,sizeof xyz);
}
};
//呼び出し側
stXYZ stTmp = {1,2,3};
Constructor constructor(&stTmp);
769:名前は開発中のものです。
12/05/17 00:24:19.25 Jj8o5dc4
>>768
(・δ・`)
770:名前は開発中のものです。
12/05/17 04:59:40.80 4FnschNb
>>767
初期化子リストじゃだめなの?
class foo
{
public:
foo (int x, int y) : x(x), y(x) {}
private:
int x,y;
};
771:名前は開発中のものです。
12/05/17 08:20:02.90 XdhnKfWC
できればコンストラクタに引数渡したくないな
772:名前は開発中のものです。
12/05/17 09:51:33.09 Jj8o5dc4
よくわからんけど引数から直接メンバにデータを渡す事は変数介さないと無理でok?
773:名前は開発中のものです。
12/05/17 10:48:59.52 72LABUA9
そこは見た目だけの問題だからintとか組み込み型だと最適化で消える場合もある
774:名前は開発中のものです。
12/05/17 12:18:20.00 kt0acN7f
レベル高すぎてついていけない
775:名前は開発中のものです。
12/05/17 12:51:45.63 XdhnKfWC
別にsetter, getterない publicなメンバ変数を持ってもいいし、
visual studio c++ 専用だけどpropertyという機能もある
776:名前は開発中のものです。
12/05/17 16:09:41.33 jk5kVr/j
>>774
安心しろ、俺もだ
777:名前は開発中のものです。
12/05/17 16:36:03.67 LEC6LKtf
C++の構造体ってデフォがpublicなクラスみたいなもんだし
メンバ関数作って使い方の感覚得るとかいんじゃね
778:名前は開発中のものです。
12/05/17 17:43:23.17 ucuijB6C
厨房だけど、何からすればいいか分からん
C言語は入門書一冊熟読した
知識はそれだけです
779:名前は開発中のものです。
12/05/17 17:53:24.70 A/eH0jcf
何すれば良いか分からんやつは大抵できないから好き勝手ゲーム作ったりしてれば良いと思う
780:名前は開発中のものです。
12/05/17 18:19:27.36 Le624jWk
ファミコンのマリオみたいなの作るといいよ
あの滑らかなジャンプの曲線の動きとか作るのすげー勉強になるし、実際に動いてるの見ると楽しい
781:名前は開発中のものです。
12/05/17 18:25:10.94 sA5HBbyr
>>778
作りたいもの作ればいいよ。
作りたいものがなければ違うことやればいいと思うよ
782:名前は開発中のものです。
12/05/17 18:42:01.27 Lq82mTDs
ちょっと待て、熟読したとは言ったが、実際にコードを入力して試したのか?
ともかく、DxLibとC言語で簡単なゲーム作る本があるから探して買うか図書館で借りるかして試してみればいいよ。
783:名前は開発中のものです。
12/05/17 18:44:31.06 CIWlPPKp
昔はベーマガを見て覚えたもんだが
784:名前は開発中のものです。
12/05/17 19:04:17.83 1miPR200
俺は見た(読む)だけじゃ絶対身につかなかったな。
実際に動かして見てやっと理解できる。
785:名前は開発中のものです。
12/05/17 21:17:20.29 MVax3Amg
俺はサンプルプログラムを1個改造して、
次のサンプルプログラムを1個改造して、
気に入ったのがあったら沢山改造して、というのを繰り返して身に着けたな
786:名前は開発中のものです。
12/05/18 00:14:29.29 4zRGqSRr
URLリンク(rpg.nengu.jp)
このサイトのソース読みながら覚えたいのですが
RPG.vcprojをドラッグアンドドロップして
vc++2008に変換しようとすると
「ゲームファイルの初期化に失敗しました」と何度試しても出ます。
VC++2010は低スペなので使えないのですがどうすれば変換できるのでしょうか
もしダメならこれ以外でVC++2008で公開されているrpgのサンプルがあれば教えてください
お願いします
787:名前は開発中のものです。
12/05/18 00:56:44.66 Kw1eEMY1
staticで保持して置いた配列を使い終わったら開放したいんだけどどうしたらいいでしょうか?
788:名前は開発中のものです。
12/05/18 00:58:13.40 gx1xQNnD
staticの固定長配列はプログラムが終了すると自動的に解放されます
それ以外に開放手段はありません
789:名前は開発中のものです。
12/05/18 00:59:03.38 Kw1eEMY1
関数func1,func2でそれぞれstatic変数を宣言した時、中身は共通になりますか?
790:名前は開発中のものです。
12/05/18 00:59:42.96 mamO/m7+
C++なら終了するまでスコープから外れないので解放されない。
解放する必要があるなら、
配列へのポインタで変数を確保してnewでヒープを確保、
必要になったらdeleteすればok
791:名前は開発中のものです。
12/05/18 00:59:50.88 Kw1eEMY1
>>788
ありがとうございます
792:名前は開発中のものです。
12/05/18 01:00:56.05 mamO/m7+
>>789
関数内で宣言されるstatic変数はスコープは関数の内部のみ。
従って別物。
793:名前は開発中のものです。
12/05/18 01:04:36.26 Kw1eEMY1
>>790
なんかよくわからないので具体的にコード書いてくれると嬉しいです。
・配列arrの引数m分だけ要素数を持つint型配列を引数&pに作成する関数
とかだとわかりやすくて自分が喜びます。
図々しくてすみません。
794:名前は開発中のものです。
12/05/18 01:05:51.71 Kw1eEMY1
やはり某製作支援サイトのようにメインループの前に変数宣言した方が良いのかな・・・
795:名前は開発中のものです。
12/05/18 01:20:06.21 mamO/m7+
>>793
//えーと、
// 適当な配列
int[] arr = {0,1,2,3,4,5,6,7,8,9,}
void dynamic_array(int*& p, int length)
{
//lengthnこのintを確保
p = new int[length];
// arrからコピー
for(int i = 0; i < length; ++i)
{
p[i] = arr[i];
}
}
// pを解放するときは、
// delete[] p;
796:名前は開発中のものです。
12/05/18 02:44:50.20 g6CQrJUG
>>793
>>795 のSTL版
#include <vector>
void dynamic_array(int*& p, int length)
{
auto v = std::vector<int>(length);
p = v.data();
}
797:名前は開発中のものです。
12/05/18 12:33:49.02 AXglkRe5
なんでここC++スレになってるんだ
798:名前は開発中のものです。
12/05/18 12:39:42.25 aBuN5zeL
DXライブラリで詰まる人はcなのかライブラリなのか区別が付かないからではないでしょうか
799:名前は開発中のものです。
12/05/18 12:52:20.63 tTxAGc55
俺みたいにDXライブラリに頼らなくてはゲームも作れないレベルの人間だと
C++についてもよくわかってなかったりするからつい、だろうね。
他のスレだと”DXライブラリに頼らなくていい人”ばかりに思えて気後れする。
800:名前は開発中のものです。
12/05/18 14:58:56.44 AqX5CuAi
>>796
dynamic_array終了時に開放されね?
>>787が単にヒープに置きたいということでなければ>>795の方法しかないと思う
もしくはvector自体new/deleteするか
801:名前は開発中のものです。
12/05/18 21:35:11.00 0qQFV47b
今時ダウンロードしてまでゲームやる人いるのかね
802:名前は開発中のものです。
12/05/18 22:52:22.12 Avt8/Znc
>>800
>vector自体new/delete
スマポをnewするとか意味ないだろ。
>>796はドヤ顔でSTL勧める本人がSTLを理解してなかった良い例。
803:名前は開発中のものです。
12/05/19 00:27:03.52 VD4oJ3BE
STLのmapに(キー重複しない)insertを繰り返していくと、
メモリはわずかながら消費されていくと思うんだけど、
それってnewが繰り返されてるってことだよね。
アクション性の高いゲームでメインループ内でnewとか使っていいのかな。
普段は軽い処理でも、メモリ確保と開放が絡むと、どこかでカクついたりしないか心配。
気にせずやってるけどカクつきなんて発生したことないよ、ということなら安心なんだけど。
804:名前は開発中のものです。
12/05/19 00:28:28.08 r1qEY4jZ
冷静に考えて、今時って携帯ゲームやネトゲが主体だろ?
DXライブラリでパソコンで動くゲームって当たり前だが
そういうのが逆に新鮮じゃね?
805:名前は開発中のものです。
12/05/19 00:49:21.53 TBtSNI4j
>>803
もしも、メインループで毎フレームほど行なうっていうのなら、
そういう処理を行なう事自体を、見直す必要があると思うけど。
806:名前は開発中のものです。
12/05/19 01:02:15.71 a+urZXjQ
GCが起動するわけでもないならnew/deleteにあまり神経質になる必要はないと思うけど・・
807:名前は開発中のものです。
12/05/19 01:10:30.26 ZOsD1vO4
>>803
new deleteが重いというけど、なにをnew deleteするかでまた違うのよ。
new int とか new char[32] みたいに1回で終われば気にするほどでもない。
new Hoge で Hogeのコンストラクタの中でまたたくさん new() よばれているような
階層深く大きいクラスのnew, deleteが重いから、
その場合だけオブジェクトプールを検討すればいい。
808:名前は開発中のものです。
12/05/19 01:27:35.13 QmsbQiPL
一応ラウンド(ステージ)管理クラス生成時に
設定されたキャラクターの数だけ配列を宣言する形なんだけど
配列用ポインタを持たせたら、参照先が使い捨てになる。
で、動的に配列の要素数を操作すればポインタで使い捨てじゃなくてもいいんじゃないかと
809:名前は開発中のものです。
12/05/19 02:35:24.88 ZOsD1vO4
それは最大数がステージの開始時にわかってて、
最大数分のメモリを確保しっぱなしにするって話だろ?
それができる(普通な)規模のステージならそれがいい。
ステージだとかシーンと呼ばれる単位で一括確保・解放できればそれがベスト。
810:名前は開発中のものです。
12/05/19 09:17:44.64 9Hyd3HTN
最近のPCの場合、個人制作のゲームなら
全部メモリ確保してもいいともうけどな
811:名前は開発中のものです。
12/05/19 10:43:57.82 lxOdfsYj
new/delete遅い遅いっつーけどwinの実装はくそ速いぞ。
一定サイズ以下ならただのプールからの切り出しだし。
812:名前は開発中のものです。
12/05/19 10:46:39.32 VD4oJ3BE
>>807
オブジェクトはゲーム起動時に最大数をメモリ確保してある前提だったりする。
そこで、mapにinsertするpairが仮にintとポインタだったとして、
insertのときにそのintとポインタ分の小さいnewが起動するし、
eraseのときにはそれがdeleteされると思う。
で、その回数が膨大になったとき、GCみたいな時間くう処理が起動して
カクついたら困るなーと。特にアクション性の高いゲームだと。
たとえばメモリを新たに大量確保する処理が起動して時間くうとか。
そんなものは発生しない、なら、安心してコンテナ使ってゲーム作れるんだけど。
アクション性の高いゲームでも普通にコンテナ使うのが定番だよ、ということなら安心なんだけど、
そのあたりよくわからなくて。
813:名前は開発中のものです。
12/05/19 11:09:09.97 ArUyj87Z
>>809
具体的なコードがわからないんだよ
class RoundAdmin{
Character character[];
RoundAdmin(int i){
for(int t=0;t<i;t++){
character[i] = new Character;
}
}
}
814:名前は開発中のものです。
12/05/19 11:09:37.11 ArUyj87Z
iPhoneスペース無視されてワロタ
815:名前は開発中のものです。
12/05/19 11:24:53.82 8/80f/4q
>>812
メモリを確保する時間よりも、メモリが確保できるかどうかが問題だな
コンテナが定番かどうかはこういうのが詳しい
URLリンク(d.hatena.ne.jp)
個人・小規模でPCゲー製作ならSTLで充分かと
816:名前は開発中のものです。
12/05/19 11:38:54.28 ArUyj87Z
>>813続き
イメージとしてはこれができたら楽なんだ
winmain(~~~~~){
int state;
while(error()){
switch(state){
case 0:
RoundAdmin RAdmin=new RoundAdmin();
break;
case 1:
state=RAdmin.Func();
break;
case 99:
delete RAdmin;
break;
}
}
}
817:名前は開発中のものです。
12/05/19 11:52:46.30 aIMhivPJ
try,catch,throwじゃ駄目なのか?
818:名前は開発中のものです。
12/05/19 12:00:09.24 gXEjt6C9
goto使えば良いんでね?
819:名前は開発中のものです。
12/05/19 12:22:43.39 VD4oJ3BE
>>815
ありがとう。参考になる
自分はまさに個人・小規模でPCゲー製作だから、
out of memoryの心配だけはないんだよな
820:名前は開発中のものです。
12/05/19 12:24:45.52 HSIQMcFD
オーバーライドして作ったクラスのオブジェクトをコンテナに突っ込んでイテレータで回しながら共通関数を実行するんだろ
821:名前は開発中のものです。
12/05/19 12:49:35.26 JpqeYW60
>>820
ポリモーフィズムと言え。ややこしい
822:名前は開発中のものです。
12/05/19 12:58:30.97 zRojJiyg
>>816
OGRE3DのAdvancedOgreFrameworkがシーンの使い分けを解りやすく実装してるよ
仕組みだけなので2Dでも十分使える、ただ3DゲームならOGRE3D使ったほうがDXライブラリより楽だけど
823:名前は開発中のものです。
12/05/19 13:12:00.32 dlfQry7w
メモリ確保かー。
そういえばこの間、少し大きめの構造体の配列を用意しようとしたんだけど
STRUCT_HOGE hoge[1024];
だと実行時エラーで、
STRUCT_HOGE *hoge = new STRUCT_HOGE[1024];
だと問題なく動くってことがあった。
頭では理解してたけど、実際遭遇したのは初めてだった。
824:名前は開発中のものです。
12/05/19 13:46:07.27 PlH7X2T2
>>823
初心者が良くやるミスだね
825:名前は開発中のものです。
12/05/19 14:26:49.52 1CGbweqQ
ちなみにそれ原因は何ですか?
826:名前は開発中のものです。
12/05/19 14:51:44.70 VD4oJ3BE
stackとheapでぐぐれ
827:名前は開発中のものです。
12/05/19 14:53:36.27 ZHekMysl
ただのスタックオーバーフローってこと?
828:名前は開発中のものです。
12/05/19 14:57:27.20 VD4oJ3BE
yes
829:名前は開発中のものです。
12/05/19 15:14:52.35 GOROOjbN
>>823
大文字で書かれると分かりにくいのは俺が初心者だからかな
普通小文字じゃない?
830:名前は開発中のものです。
12/05/19 15:18:21.89 ArUyj87Z
>>817-818
それしか方法ないのかなー
最悪、最大数宣言して存在フラグなんだけど
831:名前は開発中のものです。
12/05/19 16:51:36.07 dlfQry7w
>>824
それなりにプログラムやってるけど、遭遇したの初めてでなー。
>>829
こういう例示だと、結構使い分けることも多い気がする
832:名前は開発中のものです。
12/05/19 17:03:35.58 ZOsD1vO4
>>812
>mapにinsertするpairが仮にintとポインタだったとして、
>insertのときにそのintとポインタ分の小さいnewが起動するし、
>eraseのときにはそれがdeleteされると思う。
ツリーマップは木構造のノードに必要なデータ、キー、バリューを
一つの構造体として1回のnew(), delete()で済ませる。
だからstd::listの追加・削除・挿入は比較的速いアルゴリズムと言われてるが、
これとnew(), delete()の回数自体は変わらない。(木構造を辿る負荷は別計算)
でも毎フレームstd::mapに大量の追加・削除されるのって
そもそも連装配列に向いてないペアなんじゃないか?(キーがHPとか?)
例えば >>816 なら関数ポインタ or クラス継承して
ストラテジーパターンのポインタを使うべきだ。
833:名前は開発中のものです。
12/05/19 17:09:43.18 ZOsD1vO4
>>825
VC++の初期値では、スタックサイズの最大値、ヒープサイズの最大値に
低めの値10MBが設定してあるから、これを超えると例外が発生して終了。
834:名前は開発中のものです。
12/05/19 17:12:49.37 VD4oJ3BE
>>832
>一つの構造体として1回のnew(), delete()で済ませる。
>これとnew(), delete()の回数自体は変わらない。(木構造を辿る負荷は別計算)
同意。
小さい負荷が積もり積もって、トータルでみれば大きな負荷となること、
その負荷軽減のためのチューニングや根本的な設計の方針については、
いろいろ情報も得やすいし、なんとかなる気がしている。
他言語のGCのような突発的大負荷の心配をしてたけど、
このケースでは、その心配はあまりなさそうという気がしてきた。
835:名前は開発中のものです。
12/05/19 17:46:09.07 pWSSP6VZ
DXライブラリ 雑談スレッド その12
スレリンク(gamedev板)
836:名前は開発中のものです。
12/05/19 18:29:25.01 FNz7dsVi
そういえば、ゲーム製作に関わるC, C++全般のスレって無いのか。
837:名前は開発中のものです。
12/05/19 18:50:09.12 aIMhivPJ
>>833
これでエラー回避出来なくなった人って少なくないんだろうな(合掌)
>>834
GCが動き出すぐらいにメモリーをいじってれば、
いずれはフラグメンテーションの餌食になるだろうな。
そうなったら、メモリー管理の方法を根本から見直した方が良いな。
838:名前は開発中のものです。
12/05/19 18:56:35.62 aIMhivPJ
>>836
立てるか?それとも俺が立てる?
839:名前は開発中のものです。
12/05/19 19:20:40.08 +n/uAHmA
>>833
10MBじゃなくて1MB
840:名前は開発中のものです。
12/05/19 19:59:32.27 oQPWMkDd
>>838
あったほうがいいかも。
軽く雑談できるくらいのスレは確かに欲しい。
ム板はstlやら何やらで分かれまくっててメンドイ。
841:名前は開発中のものです。
12/05/19 21:40:01.48 aIMhivPJ
こんな所か?っつーか立てられ無かった。
題名:C/C++総合スレッド Part1
ゲーム製作におけるC/C++全般に関するスレです。
元スレ
DXライブラリ 総合スレッド その12
スレリンク(gamedev板)
842:名前は開発中のものです。
12/05/19 21:51:45.49 VD4oJ3BE
C/C++でDXライブラリ以外のメジャーどころのライブラリも
知ってる人がいたらテンプレに入れてみては?
俺は不勉強ゆえDXライブラリしか知らないけど…
843:名前は開発中のものです。
12/05/19 22:19:17.33 oQPWMkDd
考え出したら色々あるな。
boostとかsdlとかwtlとか
844:名前は開発中のものです。
12/05/20 02:25:40.47 b4J8kKZD
switch分岐でnew-deleteできないのかぁ!!
誰かメインループ中でラウンド管理クラス(キャラクター数、オブジェクト数などのゲーム本体を管理するクラス)
を作りたいんだけど!
全然わからん。綺麗にできない。
ラウンド管理クラスを、例えばゲームのロード画面時にパッとnewして
キャラクターをその分だけパッとメンバの配列を動的に宣言して
リザルト画面に戻ったらパッとdeleteしたい
845:名前は開発中のものです。
12/05/20 02:28:54.36 rvG7rk61
キリがないからやめろ
846:名前は開発中のものです。
12/05/20 02:43:46.36 m1rxCUFY
その前に、自分のできる方法でゲーム完成させて経験値増やしたほうがよいように見える
847:名前は開発中のものです。
12/05/20 03:09:05.33 b4J8kKZD
>>846
キャラクターのクラスをラウンドクラスで配列で持って管理するっていう方法を想定して作ったんだよ
ラウンドクラスをコンストラクタの引数で指定されたファイルでマップやキャラクターや武器を初期化して
このラウンドクラスはその名の通りラウンド中は保持してラウンドが切り替われば新しく作る。
というのがしたいんだ。
だから
switch(hoge){
case 0:
hoge=func();
case 1:
Round round=new Round();
hoge=2;
break;
case 2:
hoge=round.main();
break;
case 3:
delete round;
hoge=0;
break;
}
これがしたい
case0がメニューで1で初期化(つまりロード画面?)2がメインゲーム、3がリザルト画面
みたいな
848:名前は開発中のものです。
12/05/20 03:12:36.92 b4J8kKZD
でもswitchスコープ抜けると開放されちゃうんよ( ;´Д`)
staticにすれば、ひょっとしたら言語特性でできるかもしれないし
でもそうするとdeleteしても消えないかもしれないし
849:名前は開発中のものです。
12/05/20 03:26:03.65 m1rxCUFY
そういう概念をどこかで齧ったのなら、
そのソースごと真似すればいいんじゃないかな
スコープはC/C++では割と基礎的なところなんで、そこの理解がまだ足りないうちに
そこまで高度・大規模なことを「そらで」やろうとしても挫折してしまうと思う
手本があるなら手本を理解するまでやったほうがいい、その意味で、手本の真似が足りない
850:名前は開発中のものです。
12/05/20 04:19:36.26 rvG7rk61
>例えば >>816 なら関数ポインタ or クラス継承して
>ストラテジーパターンのポインタを使うべきだ。
switchをやめろ。
851:名前は開発中のものです。
12/05/20 04:32:17.32 ETYUDOJj
LILO and switch
852:名前は開発中のものです。
12/05/20 05:20:07.65 J67XAZ6b
なんでローカルにnew
853:名前は開発中のものです。
12/05/20 06:11:28.75 rvG7rk61
まず、メモリリークチェックしたほうがいいな。
>>847 のプログラミングからは駄々漏れ臭いがぷんぷんする。
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
ゴリ押しおまじないプログラミングは危険だぜ。
854:名前は開発中のものです。
12/05/20 08:54:21.16 jxpb7tAX
>>847
無理すんな。普通にやれw
855:名前は開発中のものです。
12/05/20 09:17:03.32 GdVgJDsL
綺麗に書く素人が「綺麗に」とか考えて作っても読みやすくはならんと思うぞ
856:名前は開発中のものです。
12/05/20 09:24:37.57 rvG7rk61
DXライブラリのC++ラッパー作ってます。よろしく。
URLリンク(mint.ninja-web.net)
857:名前は開発中のものです。
12/05/20 09:33:19.40 QwDamEGA
>>847
メンバ変数にでも保持しておかないと、
スコープ抜けたらローカル変数は保持できないので、結果的にメモリリークする
まあ、>>849がFAだと思うが
858:名前は開発中のものです。
12/05/20 09:47:55.18 b4J8kKZD
>>849
確かにswitchはオススメしないって言われた
お手本のコードは無いです。
メインループのこの部分(タイトル画面やメインゲームやオプション画面の変異)って
どのようにした方がいいですか?
他の方法がわからない
今思いついたのは
NowState=&Start();
while(~~~){
NowState=NowState();//次に実行するべき関数のアドレスを返す
}
859:名前は開発中のものです。
12/05/20 09:49:23.86 b4J8kKZD
タスクシステム?というのは聞いたけど昔のものだとかする必要が無いとか言われた
860:名前は開発中のものです。
12/05/20 09:50:46.90 GdVgJDsL
グローバルにenumでモード切り替え用の変数作ってswitchが一番簡単
861:名前は開発中のものです。
12/05/20 10:17:37.19 K5FhX9FA
シーン管理でggr
862:名前は開発中のものです。
12/05/20 10:21:43.19 b4J8kKZD
c#やjavaでいいんじゃないかってくらい全部クラス化してる。
クラスは自分が管理クラス(今回の場合はラウンドクラス)から渡されたデータを使って処理を行う。
例えば一連の流れをいうと
キャラクターが攻撃を行ったら判定クラスのメソッドが呼ばれ
判定クラスのメンバ変数ポインタからキャラクターの情報を貰って
判定結果がtrueならダメージ処理クラスに攻撃方法と対象と攻撃者が渡されるメソッドが呼ばれ
ダメージ処理クラスが持っているキャラクターの情報を貰って
HPが0ならキャラクターに死亡フラグを立て、UIクラスのメソッドに攻撃者と対象を渡す。
つまりキャラクタークラス→判定クラス→ダメージ処理クラス→UIクラス
とバトンリレーになってる。
この時、キャラクタークラスや判定クラスやダメージ処理クラスは、キャラクターの情報を持ってないと仕事にならないのでラウンド管理クラスが保持している。
イメージとしてはクラゲと、クラゲの触手
class RoundAdmin{
Character character[];
Judge judge;
Damage damage;
public:
void SetCharaNum(int);
void SetJudgeClassChara(Character* hoge){damage.SetChara(hoge);};
void SetDamageClassChara(Character*);
}
以上のことを踏まえて誰か中央部の設計お願いします。もう設計の最初からやり直しするのは嫌ですヽ(;▽;)ノ
863:名前は開発中のものです。
12/05/20 10:39:42.64 b4J8kKZD
>>861
URLリンク(d.hatena.ne.jp)
関数ポインタ?をスタックしまくるんですか
でもタイトルシーン→ゲームシーン→リザルトシーン
という流れがあった場合リザルトシーンを予めタイトルシーン時にリザルトをpushしなきゃならないってことですよね
864:名前は開発中のものです。
12/05/20 10:48:07.65 rvG7rk61
昨日はアクションでstd::mapが速い遅いの話だったが、今日はRPGの戦闘か?
C++だと相互参照するのに嫌な制限あるから難しいよね。
>>856のサンプルに入ってるソースではデータと振る舞いを分けちゃってますが、
クラスを名前だけ前方宣言してダブルディスパッチするほうが一般的なのかなぁ。
865:名前は開発中のものです。
12/05/20 11:49:53.71 rvG7rk61
>>862
こうか?
class Charactor
{
__int HP;
__bool isDead;
__void Attack(Charactor* target, How* how)
__{
____Judge judge;
____bool is = judge.IsHit(target);
____if( is )
____{
______Damage damage;
______damage.Set(this, target, how);
______if( HP == 0 )
______{
________isDead = true;
________UI ui;
________ui.Set(this, how);
______}
____}
__}
};
866:名前は開発中のものです。
12/05/20 11:56:57.34 rvG7rk61
だめだ、エスパーよろ。
867:名前は開発中のものです。
12/05/20 14:50:25.73 b4J8kKZD
>>865
それぞれの返り値がないから
例えばjudge.ishit()っていうメソッドの中でdamageを定義してメソッドを呼んでる
こう・・・
class Charactor
{
int HP;
int x,y;
double Angle;
bool isDead;
RoundAdmin* Admin;
void Attack(int Kind){
Admin->judge.IsHit(this,x,y,Angle,Kind);
}
};
class Judge{
RoundAdmin* Admin;
void Judge(RoundAdmon tmpAdmin){
Admin=tmpAdmin;
}
void IsHit(Attacker,x,y,Angle,Kind){
for(int i=0;i<Admin->CharaNum;i++){
if(~~~){
Admin->damage.func(Attacker,i,Kind);
}
}
}
}
868:名前は開発中のものです。
12/05/20 14:50:56.96 b4J8kKZD
説明が下手でスパゲティで死にたい
869:名前は開発中のものです。
12/05/20 14:54:58.64 d1pNr8pV
enum
{
TITLE,
MAIN,
ENDING,
};
int state = TITLE;
int main(void)
{
while()
{
func[state]();
}
}
870:名前は開発中のものです。
12/05/20 15:33:37.24 GdVgJDsL
>>863
ゲームオーバー処理の時にゲームシーンをpopして、そのままゲームオーバーをpushすればいいんじゃないの?
871:名前は開発中のものです。
12/05/20 16:09:24.24 b4J8kKZD
>>870
逆だと思ってました(popしたものが実行されると思ってた)
そういうことですか
>>869
func[MAIN]関数内で保持したい変数ってどうすればいいんですか?
func[MAIN]以外が呼び出されたら消えて欲しいです。
あと今更ですが質問厨でウザいですし基本設計の質問はDxlibスレでスレチだった・・・
872:名前は開発中のものです。
12/05/20 18:03:42.86 B+9uILOG
Charactor*のようにポインターのマークが後ろにつくのはどういう意味だっけ?
873:名前は開発中のものです。
12/05/20 18:16:08.20 eBiE/F9z
Character* x; // Characterのポインタ型を表す型名
Character*30 // Characterという変数と30の乗算(演算子オーバーロードがされていない場合)
Character*=10 // Characterという変数に30を乗算し代入(演算子オーバーロードがされていない場合)
/*Character*/ // コメントの終端
どれでもお好きな物をどうぞ
C++のスレがないってのは
ここで質問して良いって言う理由にはならないからな?
874:名前は開発中のものです。
12/05/20 18:30:54.34 rvG7rk61
中高生の黒歴史
875:名前は開発中のものです。
12/05/20 18:44:31.78 iNm25OoA
いい加減、スレ立てるか。>>841でいい?
876:名前は開発中のものです。
12/05/20 18:44:39.45 B+9uILOG
ありがd
Character* x; // Characterのポインタ型を表す型名 ですよね
しかし↓このように書くのはどうなんだろう?
Charactor *target
877:名前は開発中のものです。
12/05/20 18:56:48.04 m1rxCUFY
>>876
個人でゲーム作ってるなら、どっちか好きなほうを選べばいい
URLリンク(www.henshi.net)
URLリンク(ockeysprogramming.blog42.fc2.com)
878:名前は開発中のものです。
12/05/20 19:16:26.37 /AOQLV8Q
>>875
スレタイに「ゲーム製作」入れて、
C/C++ゲーム製作総合スレッド Part1
でいいんじゃない?
879:名前は開発中のものです。
12/05/20 19:19:04.91 B+9uILOG
これは参考になりますね。どうもありがとうございます〜
C++の本には載ってない文法なので疑問でしたが
人それぞれの考え方なんですね
880:名前は開発中のものです。
12/05/20 21:23:14.14 iNm25OoA
立てた
C/C++ゲーム製作総合スレッド Part1
スレリンク(gamedev板)l50
881:名前は開発中のものです。
12/05/20 21:29:41.56 m1rxCUFY
>>880乙
882:名前は開発中のものです。
12/05/21 01:56:01.80 ZnI/WkSf
>>880
おつ
883:名前は開発中のものです。
12/05/21 16:15:45.24 L5xx/kw7
>>879
手元の入門書(2種類)だと載ってるけどな
884:名前は開発中のものです。
12/05/21 18:26:14.29 ffV6Y48y
キャラクターを一瞬真っ白にして描画する方法ってわかる? 例えばダメージを受けたときなんかに使うアレ
885:名前は開発中のものです。
12/05/21 18:30:28.40 I9dpNaEz
>>884
明るさを0にして色反転ってできなかったっけ?
886:名前は開発中のものです。
12/05/21 18:51:02.98 ffV6Y48y
>>885
フィルタか、サンキュー
887:名前は開発中のものです。
12/05/21 18:58:22.65 ffV6Y48y
違った、ブレンドモードか。危ない危ない…
888:名前は開発中のものです。
12/05/21 22:19:42.57 47wV3n9Q
SetDrawBright()とSetDrawBlendMode()使って、
一時的に他の色っぽく表示っていうのがこのスレか前のスレかにあったね
参考にさせてもらったわ
889:名前は開発中のものです。
12/05/21 23:13:34.24 yadbYRsO
別の画像を表示
890:名前は開発中のものです。
12/05/22 00:28:56.82 fGZyqonm
画像を指定した角度座標でマスクできる関数教えてください!
四角く作ったミニマップがダサいです!
891:名前は開発中のものです。
12/05/22 15:12:29.46 mXIdZtP1
上からマスク画像を表示
892:名前は開発中のものです。
12/05/22 20:41:55.22 KEARhB46
>>890
すまんが、その質問からだとどういうふうに描きたいのか分からない。
「○○っていうゲームの△△みたいに」っていう例えでも良いんで
もう少し詳しくやりたいことを説明してはくれまいか。
893:名前は開発中のものです。
12/05/22 23:11:59.34 fGZyqonm
AVAのミニマップ表示と
EXVSの画面右上のミニマップの両方お願いします。
894:名前は開発中のものです。
12/05/22 23:33:05.27 GwTouD/j
EXVSってただの丸だろ。マスクする必要なしw
895:名前は開発中のものです。
12/05/23 10:34:59.14 b4o10B2o
構造体のポインタを引数にする関数がうまく使えない。
クラスのメンバ構造体のポインタを渡そうとしても「CClass::TStructからTStructへ変換できません」と言われる。
わけわからん。お助けくだせえ
896:名前は開発中のものです。
12/05/23 10:36:23.94 b4o10B2o
おっと、それ用のスレがあったんか。スレ汚しすまん
897:名前は開発中のものです。
12/05/23 12:41:41.58 0bw1KTX7
>>889
以前他のライブラリで試そうとしたんだけどどうやっても白いくり抜いたような画像は得られませんでした。
やっぱり出来ないんですよね?
たとえば赤い色の敵がいるとすると青と緑の要素がないからキレイに白くならなかったような
そのときの結論は、手作業で白い敵の絵も作ってダメージのとき
そちらを表示するしかないということでした
898:名前は開発中のものです。
12/05/23 13:39:40.92 fw4B82cQ
シェーダを使うw
899:名前は開発中のものです。
12/05/23 13:59:04.47 EJDtoHbk
>>897
DXライブラリのメモリイメージAPIから作り出すことができる。
ただしDirect3Dは、同じテクスチャを同じ描画モードで
連続して描画すると効率が良いので、
一枚の敵画像の中に白く塗り潰した敵の絵も一緒に入れてしまったほうが
描画するときの効率はいい。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4370日前に更新/240 KB
担当:undef