DXライブラリ 総合スレッド その12 at GAMEDEV
[2ch|▼Menu]
[前50を表示]
600:名前は開発中のものです。
12/05/10 02:09:50.75 ETRl6Ipe
ゲーム製作では、アークタンジェント(タンジェントの逆関数)で、座標から角度を求める。
自機狙い弾を撃たせる時とか、使用頻度は高い。


601:名前は開発中のものです。
12/05/10 02:25:10.92 iDwpb+K6
実際にそんな処理をやってたら重くてしょうがないw
数学関数の呼び出しはループの中では極力行わないのが常識。

602:名前は開発中のものです。
12/05/10 06:18:14.97 vzflkD1H
昔はゲームコンテストに中学生が入賞して大金を手に入れたり
ゲームプログラマーデビューしたと聞いた

603:名前は開発中のものです。
12/05/10 06:35:35.77 UZbNhvsp
中村光一のことかなと思ったけどちょっと違うか…
昔はネットも普及してなかったけどそういう夢はあった時代だねえ

604:名前は開発中のものです。
12/05/10 07:38:40.06 8vGyKgxt
中村祐一

605:名前は開発中のものです。
12/05/10 10:05:38.16 tesXth+b
ゲームはオワコン

606:名前は開発中のものです。
12/05/10 12:09:07.74 ZDbcr+Is
>>601

そんなに重い?
想定するPCで処理落ちしない程度に抑えるのは当然として、仕様を諦めるほどのものか?
マウスカーソルの方に向きが変わるエフェクトだって毎フレーム角度を取らなきゃ出来ないだろうし、そういう表現を全部諦めなきゃいけないほど今のPCって遅い?
私も実際そういうの作ったけど、重いと言われた事はないなぁ。もっと重くなりそうな処理はたんまりあったのに。

607:名前は開発中のものです。
12/05/10 12:16:27.13 tfJkmKLP
sinテーブルとか使ってた頃の常識じゃないかな

608:名前は開発中のものです。
12/05/10 12:34:52.15 4XOda0N/
10数年前の常識だから、今はバンバン使ってもいい
つーか使わなきゃ3Dゲーム作れないよ・・・

609:名前は開発中のものです。
12/05/10 13:22:25.06 v9pLXRdM
sin cos テーブルなら俺今も使ってるけどね。
同じ計算何度もさせるのに、いちいちsin cos 再計算させるとか無駄だし。

610:名前は開発中のものです。
12/05/10 15:04:57.12 kc9Z57zY
テーブルなんて使ってたら超長距離の狙撃ゲーとかできなさそう

611:名前は開発中のものです。
12/05/10 15:11:34.69 tfJkmKLP
テーブルの間の値を取るときに線形補完でもすれば結構使えそうな気はするな

612:名前は開発中のものです。
12/05/10 15:21:30.43 VHianwBM
内積とか使わないの?

613:名前は開発中のものです。
12/05/10 15:23:18.02 v9pLXRdM
そんなピンポイントな仕様の時だけテーブル使わなければいいだけじゃ。

CPU性能が上がったからテーブル使わなくていいじゃん、て理屈なら
メモリ増えたからテーブル大きくしてもいいじゃん、って手もあるし。


614:名前は開発中のものです。
12/05/10 16:45:22.46 dVfrJx5F
でかいテーブルにキャッシュ圧迫される位なら素直に計算したほうが速いと思う

615:名前は開発中のものです。
12/05/10 16:58:49.22 dtfgAWXR
インタプリタで弾幕STGが作れる時代だぜ?

616:名前は開発中のものです。
12/05/10 18:55:39.93 v9pLXRdM
俺も最初は普通に計算させていたが、「これテーブルでいけるんじゃね?」と思って
テーブル処理させるようにしたら、スピードは変わらなかったがCPUファンが急に静かになった。

また、随分前に別のスレで同様の議論が起こった時、サンプルコード作って実測値を求め、
コードとその結果を晒すと、今までなんだかんだと言ってた連中は黙り込んだ。
つまり比較検討すらせずに論じてたわけだ。

よって俺は、PC性能が向上したからテーブル処理は不要という説は机上の空論だと思ってる。

617:名前は開発中のものです。
12/05/10 19:02:46.00 sVBnl2Jo
三角関数のコストの話題をsinテーブルで例えたのは俺だけど
特に誰もそれを不要とか言ってないからね
俺もちゃんと的確な場所で使えば今でも十分通じる最適化の手法だと思っております

618:名前は開発中のものです。
12/05/10 20:11:40.30 ZR8vamBu
テーブルで処理してる人って固定小数点数とか使ってるの?
俺は浮動小数点数使ってるんでテーブル化の恩恵とかいまいちピンとこない
グラフィックの処理限界が先に来るんでCPUの処理速度に無頓着なのもあるんだろうけど

619:名前は開発中のものです。
12/05/10 20:51:13.05 mUHUEJ/5
VCで数学系の関数を高速化する命令ってなかったっけ? 内部でテーブル作ってくれるやつ

620:名前は開発中のものです。
12/05/10 21:35:16.35 2KkjXKar
アプリケーションの計算頻度しだいで必要としか言いようがない。

621:名前は開発中のものです。
12/05/10 21:41:39.79 dtfgAWXR
数年前のCPUでさえ、普通に毎回計算しても弾幕シューで一万発60フレーム出せるし
core2とかなら更に数倍計算できるだろうし

622:名前は開発中のものです。
12/05/10 21:52:54.52 e/HoFmGV
1日目 dxlibraryをインストール
2日目 visual c++をインストール
3日目 Dxlibraryのサンプルプログラムを観賞
4日目 リファレンスを見て関数勉強
5日目 リファレンスサイトを探す
6日目 you tubeを見て作品観賞
7日目 ニコニコ動画を見て作品観賞
8日目 Dxlibraryの普及度をネットで調べる

こんな感じで一向にゲーム作る気になりませんでした^o^
やる気はあるんだよ?
バイトしてるほうがマシだなでもww

623:名前は開発中のものです。
12/05/10 21:56:57.00 8OIpRinM
sinテーブルなんかは最適化には有効だけど、
わざわざsinテーブルなんて作るよりベタ書きでいいじゃんって話でしょ。
毎秒何フレーム描画したいかにもよるけど、どんな酷い書き方しても今のCPUなら最低でも60fpsは出るぞ。

そもそもcore2なんて化石だしなあ。
三千円出してSandyのCeleronでも買えばいい。

624:名前は開発中のものです。
12/05/10 22:01:40.33 8OIpRinM
>>622
お前みたいなやつに限ってやる気はあるってのが口癖だったりするんだよな。
自分でもう一度眺めてみろよ。

既にdxlibをインストールしてるのに、後から普及率を調べたり
リファレンスがあるのに、別のリファレンスサイトを探したり、
今までいろいろなゲームを見たことがあるはずなのに、今さらゲーム作品を鑑賞している。

全部プログラムを書くことからの逃げでしかないだろ。

1時間程度でvc++インストールしてdxlib入れて、リファレンスとにらめっこしながら書きはじめない時点でやる気が無いのと同じ。

625:名前は開発中のものです。
12/05/10 22:01:42.65 K6/fMJqa
atan2は普通に使ってるけど、

1/60sec.内に必ず処理が終わるようにしなければならない、っていう決めのもとで、
newとdeleteなど動的なメモリ確保する処理がこわくて使えない
具体的にはSTLのmapがこわくて使えない

低確率であろうとも負荷が集中して1/60secを超えるリスクがもしあるのなら、と思って使ってない
そんなことがあるのか、よくわからないんだけど

で、全インスタンスを予め確保して使ってる
アクションゲーならあらかじめ敵最大1000匹とか決めておいて、インスタンス1000個を配列で確保して、
で1個1個に生死フラグをもたせてる

626:名前は開発中のものです。
12/05/10 22:07:23.83 feNuwH83
>>621
自分弾幕やらないからよく分からないのだけど
解像度800x600 で 8x8の小さなドット敷き詰めても 7500発にしかならないと思うんだ
一体どんなゲーム(計算方法が分かっているならツール?)なんだろ

627:名前は開発中のものです。
12/05/10 22:08:02.47 e/HoFmGV
>>624
石橋を叩いて渡るタイプだから俺はw



628:名前は開発中のものです。
12/05/10 22:12:18.01 e/HoFmGV
どっちかっていうと勉強できない奴がゲーム作るのに逃げたって風潮なのに
回転座標とか行列とか、三角関数とか嫌にならないのかね。

629:名前は開発中のものです。
12/05/10 22:15:05.37 dtfgAWXR
>>626
あくまで昔作ってたゲームでどこまで弾が出せるかの計測の結果だから、実際のゲームでそんなに出したわけじゃないよ
なので、普通にゲーム作る分には三角関数は最適化しなくても余裕はあまりまくるって意味

>>627
やらない奴のテンプレすぎるw

630:名前は開発中のものです。
12/05/10 22:15:53.49 e/HoFmGV
内積はベクトルが作る面積、外積は体積だよな。

631:名前は開発中のものです。
12/05/10 22:17:05.95 dtfgAWXR
高校の頃は、ゲームに活用できる単元だけテストの点数高かったな
ゲーム制作に活かせることなら興味モリモリだろ普通

632:名前は開発中のものです。
12/05/10 22:39:01.08 yUL5kazs
>>627
渡ってないだろw

633:名前は開発中のものです。
12/05/10 23:03:40.82 um7ucooq
目的なくリファレンス見ても何も頭に入らないと思うんだが

634:名前は開発中のものです。
12/05/11 00:12:18.56 7pB6w4/u
ロダやパス聞いて叩かれてるタイプ

635:名前は開発中のものです。
12/05/11 00:16:59.89 IxDfbQFz
グローバル変数使いまくってたのをクラスにまとめてすっきりしたと思ったら100エラー越えて泣いた。
オブジェクトの宣言てどこですればいいの。もうexternは使わんと決めたお…

636:名前は開発中のものです。
12/05/11 00:19:27.34 GbmOtmCH
同じスタイルでやるならexternの数を減らせる以外の効果は無いと思うよ
externが一個で済むようになるならいいじゃん

637:名前は開発中のものです。
12/05/11 00:46:06.52 IxDfbQFz
>>636
散らかってた変数や関数を複数のクラスにまとめたってこと。そして素人の俺はクラスの数だけexternすることに。
もっとゲーム設計に適したやり方はないの?とお前さんらに泣きついた次第

638:名前は開発中のものです。
12/05/11 00:53:39.42 N2bOf4fY
セーブ・ロードするんでもなきゃ、下手にクラスにまとめないほうがいいよ
クラスにまとめるくらいなら、ネームスペースで囲っとけ

639:名前は開発中のものです。
12/05/11 01:04:26.09 IxDfbQFz
>>638
クラスは便利って聞いたから慣れようとしたんだけどね。いろいろ試してみる

640:名前は開発中のものです。
12/05/11 02:39:58.68 bSxE0QNK
クラスの実体をグルーバル変数にしない→どうやって実体化したクラスにアクセスするか?→ポインタ(リファレンス)を渡す
後はメンバのアクセス権とかを設定すればなんとなくC++っぽいプログラムになる

641:名前は開発中のものです。
12/05/11 02:51:15.70 B2rtNnmh
基本的にexternてextern "C"位しか使わないはずだけどな
ポインタの引数渡しだとかシングルトンとかでポインタ返したりするので間に合うし
#pragma once等で多重インクルード防止してるよね?

642:名前は開発中のものです。
12/05/11 08:33:33.00 ZM042uCS
目的が達成されればやり方はなんでもいいんだよ

643:名前は開発中のものです。
12/05/11 10:30:32.73 3e5VHKoo
クラス設計見てないからなんとも言えんが、
ゲーム総括クラスを一つwinmainで
メッセージループ入る前やWM_CREATEで生成、終了時破棄ってのが普通じゃないか?
ってかDXライブラリ関係ないな。クラス設計スレあったと思うよ。

644:名前は開発中のものです。
12/05/11 10:45:55.87 vcjHam5B
>>625
毎フレームmapに自前でnewはあんまやらないと思う
別コンテナにすでにインスタンス確保してあるなら、
そのポインタかスマートポインタを入れたらいんじゃね


645:名前は開発中のものです。
12/05/11 17:14:52.22 ROU9gqxB
DXライブラリって直接半透明に画像描画することって出来ないのかな?
透明メッセージ枠やりたかったけどSetDrawBlendModeが必須なのか…

646:名前は開発中のものです。
12/05/11 18:12:28.51 dJRyU0/j
普通は、それができるようにDXライブラリを更にラッピングして描画関数やフレームワークを作る

647:名前は開発中のものです。
12/05/11 18:21:46.43 ZalIzh5v
α情報ある画像ならいけるよ

648:名前は開発中のものです。
12/05/11 19:17:48.33 3dGi95mh
透明メッセージ枠くらいならアルファ画像の方がいいんじゃないかな。

649:名前は開発中のものです。
12/05/11 22:34:22.76 4SsxSVut
フリーゲーム紹介サイト一覧(登録関係) 
URLリンク(www.geocities.jp)

ゲームを制作したらここへ

650:名前は開発中のものです。
12/05/11 23:02:20.93 y/guoP93
自貼りするのは構わんが、あちこちのスレにマルチはするなよ。

651:名前は開発中のものです。
12/05/11 23:46:30.66 o/+Gc2jH
透明画像なんて使えたのか…

652:名前は開発中のものです。
12/05/12 00:05:05.70 c1qmluZz
>>644
ありがとう
STLのmapでのinsert/eraseでsecondをポインタにするのなら、
ほとんどnewとかdelete発生しない
(か発生してもサイズが小さいから、負荷が集中しても1/60sec超えるほどにはならない)
ってことか
mapが内部的に保持している要素数をオーバーしたときに再配置が生じるくらいかな…
先に大量に配置してからclearしておけばいいのかな

1/60secに常に収まることが必要な敵オブジェクトやタスクの管理にもmapは使えそうな気がしてきた
必要に応じてvector/set/multimapあたりになるのかもしれんけど

653:名前は開発中のものです。
12/05/12 00:12:48.35 nwxeejja
宣言した変数に文字を代入したいんだけどcharやintじゃダメなのかな
char Sound = BGM1; みたいにやってるんだけどどうも美味くいかない
文字はcharだと思ってたんだが

654:名前は開発中のものです。
12/05/12 01:06:33.81 nwxeejja
ごめん分かり辛かったかもしれない

--main.cpp-----------------------------------------------
int BGM001 = LoadSoundMem( "BGM/音声.mp3" );

int BGMVol = 255; //BGM音量
int SEVol = 255; //SE音量

char SoundSet,SoundVol = BGM001 , 255;
void Sound_On();
--Sound.cpp----------------------------------------------
char SoundSet = 0;
int SoundVol = 0;

void Sound_On(){
ChangeVolumeSoundMem( SoundVol, SoundSet );
}
--------------------------------------------------------

こんな感じで指定するだけで流すBGMとその音量を楽に変えられるようにしたいんだけど
文字列が使えないとなるとここからどうすればいいんだろう全く分からない

655:名前は開発中のものです。
12/05/12 01:14:46.09 Sk4hsssu
Cの基礎文法から地道に勉強したほうがいいよ
勉強するのが嫌ならchar[]とかstringで検索

656:名前は開発中のものです。
12/05/12 10:20:02.82 oiw6jIIK
おっぱい

657:名前は開発中のものです。
12/05/12 11:08:26.00 4PAPvi2J
>>654
ツリーマップとかハッシュマップがしたいんじゃないか?

658:名前は開発中のものです。
12/05/12 11:33:22.89 pM6R2rdg
stringってなんだよ
char*やchar[]となにが違うんだ

659:名前は開発中のものです。
12/05/12 11:44:07.77 pM6R2rdg
動的に配列を確保したぃだけどできる?

kurasu hoge[] = new kurasu[i]

660:名前は開発中のものです。
12/05/12 11:44:13.65 7ZI1drDU
なにって、文字列長可変できることに決まってるじゃまいか

661:名前は開発中のものです。
12/05/12 11:46:31.53 7ZI1drDU
>>659
vector使っとけ

662:名前は開発中のものです。
12/05/12 13:15:24.26 Y7LnpGkk
>>654
色々とダメすぎ。
char型にint型を代入しようとしているし、
char SoundSet,SoundVol = BGM001 , 255;
こんな代入ってできたっけか?
少なくとも、このコードで文字列を使うようなところはないぞ。
LoadSoundMem()の引数で使うのなら別だけど。

最低でも、配列ぐらいは勉強しようぜ



663:名前は開発中のものです。
12/05/12 13:20:23.81 scKJS9wa
>>654
"BGM/音声.mp3"以外に文字列使ってるところないと思うけど
あとcharは+-127で 255いれるならアンサインドしないといけない。
SoundVol = BGM00はキャストしないといけないけど
int型のハンドルからcharにいれるとおかしくなる


664:名前は開発中のものです。
12/05/12 13:33:12.14 e6ix4ssi
charがsignedとは決まってないぞ?
unsignedとも決まってないが

665:名前は開発中のものです。
12/05/12 14:03:15.85 Cm45Qp6Q
>>664
釣乙と思って調べてみたらマジで処理系依存だった。
今まで何も意識してなかったんだぜ。

666:654
12/05/12 14:28:24.06 6R8HK7WJ
ダメ過ぎてごめんなさい
charもstringも使わずに出来ました、レスくれた人ありがとう

667:名前は開発中のものです。
12/05/12 16:54:50.46 MLybp27S
atan2って0渡すと落ちない?

668:名前は開発中のものです。
12/05/12 17:17:40.32 aTzzNn3r
c#用のdxlibがあるらしいけど、
使い心地はc用と比較してどう?



669:名前は開発中のものです。
12/05/12 17:49:08.27 bBRavtqR
>>667
処理系依存なのでVCは0を返す
BCCならエラーになるかも
GCCは0だったかな?

670:名前は開発中のものです。
12/05/12 18:04:49.21 e6ix4ssi
>>667
C99対応処理系の場合、設定次第で例外を生成する

671:名前は開発中のものです。
12/05/12 18:47:25.96 dhHNv3dR
>>668
構造体名が全部大文字だったり
C#ならenumを使うようなところが全部const静的メンバだったり
C#を使い込んでいる人ほど使いにくいと感じるかもしれない

個人的な感想をいうと
「どうしてもC#で使いたい人向けにとりあえず用意しました」
という感じが強い
使い心地という観点では、正直あまり良くない
まぁ、もともとCやC++用のライブラリだから仕方ないんだけどね

672:名前は開発中のものです。
12/05/12 19:15:17.60 qdtYJdCq
enumで定義して欲しいとかはC/C++でもあるけどね
演算に利用するような定数でもなければ、型で縛っといてくれた方が安全だし

673:名前は開発中のものです。
12/05/12 22:25:31.97 0khMsYy7
練習に簡単なじゃんけんゲー作ってたら面白くなってきた

674:名前は開発中のものです。
12/05/12 22:35:13.58 vkMbVikO
どうせ軽いフレームワークは自作するんだろ?
そのついでにC#らしからぬ所を隠してしまえばいい。

675:名前は開発中のものです。
12/05/12 23:07:24.89 zvVDUBCv
>>652
再配置ってvectorなんかで起こるメモリの再割り当て?
↑ならmapでは特に気にしなくていんじゃないかな

676:名前は開発中のものです。
12/05/13 00:34:39.15 a5SCC/ey
ゲームプログラミング作り難しすぎ。
O型のやつは大雑把だから細かいプログラミングは絶対不向きだな。

677:名前は開発中のものです。
12/05/13 00:59:03.31 2yoWSG9U
言い訳乙

678:名前は開発中のものです。
12/05/13 01:59:31.47 SIc+R5jE
>>675
そうなん?
例えば10個の、敵その他オブジェクトへのポインタをmapにinsert/eraseをしてて、
場面によってオブジェクトが1000個に増えるようなときって、
mapが持ってるメモリ上の領域って10個分から1000個分に拡張されるんじゃないかなとか思う
でそのときに再配置というか、追加割り当てが発生するんじゃないかなとか
まぁその規模の処理で1/60秒食われるわけもないから、気にする必要もないのか…

679:名前は開発中のものです。
12/05/13 02:18:54.50 oOXluPnN
プログラミングが難しいとか正気か?

680:名前は開発中のものです。
12/05/13 02:30:01.68 ClwAHpRU
こういう場で血液型占い持ち出すやつは文系でも最下層の人間だろうから難しくても無理はない

681:名前は開発中のものです。
12/05/13 05:10:58.13 lpryfgyO
>>678
最初にリザーブしとけばいいんじゃね?

682:591
12/05/13 08:53:27.43 8OrJeLU+
>>591
DXライブラリをビルドして試してみました。
>>399 さんの推測で当たりのようです。

DxGraphics2.cppの4134〜4168行をコメントアウトして
GRH.FrameTime=16;
にしたら動きました。(16という値は1000(ms)/60(fps)=16.666...ですよね多分)
上の行番号はDXライブラリ3.05での値で3.07だと変わっていると思うので、
// 1フレームの時間を取得しておく
のコメントの部分を探して、そこを同様に変更すればとりあえず回避できると思います。

ログ出力を埋め込んで見たところ、当該処理の中で呼び出している
GetRasterStatus()×4のうち、2番目のfor(;;)ループ
(// VBlank が終わるのを待つ)が無限ループしてるようです。

回避策は分かったけど、正しい修正方法までは分かりませんでした。
当該処理の中で呼び出しているGetRasterStatus()がおかしな値を返して
来ている?ようですが、原因まで調べるだけの知識・スキルは有りませんでした。

公式サイトの掲示板の方にも報告しようと思いますが、VirtualBox固有の問題
だと思うので、作者さんのところに環境が無いと調べて対策するのは難しいでしょうね...


683:名前は開発中のものです。
12/05/13 09:01:44.64 9MSRAsYc
>>679
じゃあジャンケンのプログラムを余計なとこは省いてレス行以内で書けるか?

684:名前は開発中のものです。
12/05/13 09:21:17.97 NHkyJdx+
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void shoubu(int a, int b) {
  char* hand[] = {"グー", "チョキ", "パー"};
  printf("あなた:%s vs 相手:%s\n", hand[a], hand[b]);
  if (a == b)
    printf("あいこだった\n");
  else if ((a+1)%3 == b)
    printf("あなたの勝ち!\n");
  else
    printf("相手の勝ち!\n");
}
void main() {
  unsigned int a;
  srand(time(0));
  printf("あなたの手は?(0=グー, 1=チョキ, 2=パー):");
  scanf("%d", &a);
  shoubu(a%3, rand()%3);
}


685:名前は開発中のものです。
12/05/13 09:29:20.51 EZnOWHsv
なにこれうごかない

686:名前は開発中のものです。
12/05/13 09:30:56.65 oOXluPnN
ちょ、俺書いてたのにw

687:名前は開発中のものです。
12/05/13 09:52:50.74 w1fS3w9l
w

688:名前は開発中のものです。
12/05/13 09:58:44.99 AAmzPGEo
>>671
ありがとう
公式に機械的にc#用に変換したとあったね

おとなしくxna使うわ

689:679
12/05/13 10:02:11.55 oOXluPnN
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
if( DxLib_Init() < 0 ) return -1;
int game=0,zibun=-1,aite=0,hantei=0,temp=0;//ゲームの状態・自分・相手・判定・勝敗チェック用の
char* hand[] = {"グー", "チョキ", "パー"};//パクった グー=0 チョキ=1 パー=2
char* win[] = {"勝ちました", "負けました", "あいこでした"};
SRand(GetNowCount()); SetDrawScreen( DX_SCREEN_BACK ) ;
while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 ){
switch(game){
case 0://初期化
aite=GetRand(2); game=1;
break;
case 1://入力待ち
DrawString(0,0,"グー=Z チョキ=X パー=C 選んでからスペースキーでバトル",GetColor(255,255,255)) ;
if(zibun!=-1)DrawFormatString(0,32,GetColor(255,255,255),"現在の選択は「%s」",hand[zibun]) ;
if(CheckHitKey(KEY_INPUT_Z))zibun=0;
if(CheckHitKey(KEY_INPUT_X))zibun=1;
if(CheckHitKey(KEY_INPUT_C))zibun=2;
if(zibun!=-1 && CheckHitKey(KEY_INPUT_SPACE))game=2;
break;
case 2://判定
DrawFormatString(0,0,GetColor(255,255,255),"自分の手は「%s」、相手の手は「%s」",hand[zibun],hand[aite]) ;
if(zibun==aite)hantei=2; else{
temp=zibun;if(temp==2)temp=-1;if((temp+1)==aite)hantei=0;else hantei=1;}
if(zibun!=-1)DrawFormatString(0,32,GetColor(255,255,255),"%s。エンターキーで再戦、ESCで終了",win[hantei]) ;
if(CheckHitKey(KEY_INPUT_RETURN))game=0;
break;
};
ScreenFlip(); ClearDrawScreen();
}
DxLib_End(); return 0;
}

690:名前は開発中のものです。
12/05/13 10:06:18.59 oOXluPnN
コード汚すぎるけどDXライブラリで動く的な

691:名前は開発中のものです。
12/05/13 10:07:06.00 W1RKjCLb
DXライブラリ関係ない話が多いなw

>>685
全角スペース消せ

692:名前は開発中のものです。
12/05/13 10:09:01.24 Ls9MBT4q
ksに付き合うなよ…w

693:名前は開発中のものです。
12/05/13 10:18:47.38 oOXluPnN
問題を出されると組みたくなるのはプログラマの性

694:名前は開発中のものです。
12/05/13 10:27:17.86 pjQ/YiEQ
>>689
いいね

695:名前は開発中のものです。
12/05/13 11:18:22.18 SIc+R5jE
>>681
reserveはvector系にはあるけど、map系にはないみたい
>>652のやりかた(最初にたくさん確保してからclear)をすればいいのかもしれない

696:名前は開発中のものです。
12/05/13 12:16:43.99 8C9TJ7oh
mapって配列で保持してるとでも思っているか…

697:名前は開発中のものです。
12/05/13 12:17:22.35 2jBPxDkl
>>678
再配置ってのが
push_backしまくってvectorが確保したメモリ超えたときに起こる
メモリの再確保&要素全コピー&古い領域解放のことだと思って
mapじゃ起こらないから気にしなくていんじゃねって思ってレスした
vectorは>>681に同意でreserveとセットだと思ってる

698:名前は開発中のものです。
12/05/13 12:38:55.03 SIc+R5jE
>>696,697
たしかに、その話ではないね。

言いたかったのは、
・mapの実装が、要素間をポインタでリンクしてるものだとする。
・mapに要素を追加した場合は、
 既存の要素が持っているポインタ値が、新要素へのリンクを示す値になる
だから…
あっごめん再配置の問題ないわー

699:名前は開発中のものです。
12/05/13 17:18:26.44 JYF+zVYV
途中で何度も挿入と削除繰り返す場合は
要素でアクセスする必要ないならlistのが良いし
ソート不要ならunordered_maptも考慮してもいい

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にあまり神経質になる必要はないと思うけど・・


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4370日前に更新/240 KB
担当:undef