トップページgamedev
818コメント302KB

Windowsゲームプログラミング 質問スレ

■ このスレッドは過去ログ倉庫に格納されています
0001うゆ ◆vvvK3Fcqdg 2008/11/06(木) 21:28:45ID:lNn2skuQ
※回答する人も、質問する人も必ず読んでください

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
0561名前は開発中のものです。2010/04/03(土) 07:11:45ID:ML07Lysw
分解能
0562名前は開発中のものです。2010/04/11(日) 21:47:05ID:Ko/6dSa+
ようやく規制が切れた

>>560
Windows7は全く使ったことのない俺だが、

>そもそもフレーム処理時間は安定して一定時間に終わっているようなのです。
ってことは描画に遅延が入っているか、GDIの描画先がオフスクリーンバッファで
それが表面に更新されていないかだろうね

1フレームの描画が終わったらGdiFlushを呼んでるか、HDCを開放しているか
くらいしか思い浮かばん
05635602010/04/12(月) 10:16:43ID:6QZI5wHp
>>561
ループで描画しているので分解能は関係ないんです。
QueryPerformanceCounter使ってるし。

>>562
おっしゃるとおり、GDIレイヤで遅延しているように見えます。
でもGdiFlushなども使ってみましたがダメでした。。。
0564名前は開発中のものです。2010/04/12(月) 16:29:39ID:Ub/aw0v4
7からはgdiはレガシーになった云々、ハードウェアアクセラレーションが云々。
0565名前は開発中のものです。2010/04/12(月) 22:16:40ID:ohJzuPYP
>>563
最終出力を自分のプロセスで行えない場合、システムに余力がないと更新が滞ることもあるな
全てのCPU使用率が常時50%以下になってるか確認してみるとか
05665602010/04/12(月) 22:49:05ID:6QZI5wHp
>>564
Direct2Dでごり押ししてみないと真相は不明でしょうか・・・。
GDIが全体的に遅くなるのなら理解できるんですが、
0.5秒という長すぎる間隔でカクつくのが腑に落ちないっす。
DWMがアンチティアリングをしているせいかとも思うんですが、確認するすべも思いつきません。。
05675602010/04/12(月) 22:50:32ID:6QZI5wHp
>>565
常時1%〜4%です。
タスクマネージャで確認するレベルですが。
0568名前は開発中のものです。2010/04/13(火) 00:32:26ID:mniTafWA
>>560
#これで、結局バックグラウンドでインデクシングが
#発生しているだけだったら笑える。ディスクアクセスしてない?

ところでそのループは描画しているウィンドウを生成したスレッドで動作してるの?
05695602010/04/13(火) 01:43:29ID:nmFp0o6d
>>568
ウインドウを生成したスレッドでしています。
何もしていない状態でもかくつきます。


いろいろ試してみたら、やはりDWMのアンチティアリングが影響しているようです。
0.5秒間隔のカクつきはV-sync待ちとのタイミングが最悪な時なのかも?
Aeroを切ったり、CreateWindowのスタイルパラメタを変更しても挙動が変わることが分かりました。
一番安定したのはAero状態のD2DでV-sync待ちで描画したとき。

正直大混乱中。よくわかんねーっす。。。
0570名前は開発中のものです。2010/04/13(火) 11:00:59ID:mniTafWA
>>569
Aero off と on で動作が違うと言えば、例えば::InvalidateRect()で、第3引数のbEraseをFALSEにすると
Aero off の時クライアント領域が更新されないことがあったりしたな。
ただこれはVISTAも同じだから、7だけおかしいと言うことだと関係ないかも知れないが。

GDIを利用して作成していると言うことだけど、どっかで更新をOSに任せてたりしないか?
一度全部明示的にアップデートしてみるといいよ。
0571名前は開発中のものです。2010/04/15(木) 22:39:37ID:oS8V8JHF
3Dのゲームを開発しています。

キャラクターが毎フレーム移動するんですが
その際に前回いた座標と今回いた座標を結んだベクトルを計算し、
壁などのポリゴンを通過したら押し戻すという処理をしています。
しかしポリゴンに対して直角(90度)に進めば押し戻されるのですが
10度くらいの角度で進むといずれはめり込み、
計算の誤差のようなもので通り抜けてしまいます。

こういう場合はどうしたら意図した動きになるでしょうか?
普通壁にめり込まない処理というものはベクトルで処理をするものではないのでしょうか?
0572名前は開発中のものです。2010/04/15(木) 22:56:32ID:oS8V8JHF
age
0573名前は開発中のものです。2010/04/16(金) 08:49:10ID:E7soBA+n
スレタイも読めない池沼さんはお帰りくださいね
0574名前は開発中のものです。2010/04/16(金) 15:39:17ID:tfuXF2uQ
>>571
移動してから次フレームで衝突判定するんじゃなくて
移動させて衝突判定させて移動量減らしてから移動確定
0575名前は開発中のものです。2010/04/17(土) 18:34:27ID:YPPhHYQE
>>574
その方法をとっているのですが上手くいきません
ベクトルとポリゴンは諦めて
球とポリゴンの当たり判定にしたいのですが
参考URLなどご存知ないでしょうか?
0576名前は開発中のものです。2010/04/17(土) 20:49:33ID:g85Nq5+3
DL版のMSDNが2GBもあるってどういうことだよ
おとす気が失せるな・・・
0577名前は開発中のものです。2010/05/02(日) 13:48:47ID:qwH1pwxC
_CrtSetDbgFlagがメモリリーク検出してくれないんだけど
心当たりある?
WinMainの最初で呼んでんだけど.
0578名前は開発中のものです。2010/05/02(日) 21:18:23ID:Fty9ttWn
>>577
デバッガで起動してないとか
0579名前は開発中のものです。2010/05/03(月) 00:13:29ID:G8fNhcut
してます...

別に仕様変更で,最近機能がなくなったとかじゃないですよね...?
0580名前は開発中のものです。2010/05/03(月) 00:24:48ID:G8fNhcut
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>

int main()
{
_CrtSetDbgFlag(
_CRTDBG_ALLOC_MEM_DF //メモリリークチェック用のヒープ使用
| _CRTDBG_LEAK_CHECK_DF //プログラム終了時にメモリリークチェック
);

int* p_int = new int();

return 0;
}

このプログラムでエラーメッセージがでません.
ちなみに,当方VCですが,メッセージは
出力ウィンドウでの確認で間違いないでしょうか?
0581名前は開発中のものです。2010/05/03(月) 17:53:02ID:F+lE+L/N
試しにやってみたら上のコードでメモリリーク検出されたよ

以下、出たメッセージ >>
Detected memory leaks!
Dumping objects ->
{59} normal block at 0x008F4D40, 4 bytes long.
Data: < > 00 00 00 00
Object dump complete.
<<ここまで

_CrtSetDbgFlag()をコメントアウトすると出なくなるからちゃんと機能してるみたい
環境はwin7 64bit VS2008で、win32コンソールアプリケーション
コンパイルの設定は、プリコンパイル済みヘッダを使用しない、にした以外はデフォルトのまま
0582名前は開発中のものです。2010/05/04(火) 04:57:17ID:2vXYcehC
SFCの奇々怪界〜謎の黒マント〜の丸パクリゲーを作りたいんですけども、
ゲーム製作に関する技術が0の状態です
プログラミングもまったく技術がありません
このゲームを作るのに向いているプログラミング言語がありましたら教えてください
勉強しようと思います
私のPCのOSはwin7です
windows系列で動作するゲームにしたいです
0583名前は開発中のものです。2010/05/04(火) 06:05:40ID:2vXYcehC
ちなみにwin7の64bitです
32でも64でも動くものにしたいです
0584名前は開発中のものです。2010/05/04(火) 09:47:00ID:N7bMdxX7
.>>581
ありがとうございます.
コードはおかしくないってことですね.
こちらでも別環境で試してみます.
なんでだろう...
0585名前は開発中のものです。2010/05/04(火) 11:18:45ID:ATvQPLh8
>>582
C言語
0586名前は開発中のものです。2010/05/04(火) 15:19:34ID:3AEGCGVU
+DXLIB
0587名前は開発中のものです。2010/05/04(火) 17:08:55ID:2vXYcehC
>>585-586
thx
0588名前は開発中のものです。2010/05/04(火) 21:18:06ID:I3BOmytc
vsyncがスマートに待てるんならDIBでやりたくなるけど、何かいい方法ないかな
0589名前は開発中のものです。2010/05/05(水) 00:46:35ID:I28q1E30
Vista以降ならIDXGIOutput::WaitForVBlankでできんじゃね
使ったことないから的外してるかもしらんけど
0590名前は開発中のものです。2010/05/30(日) 22:41:11ID:/03sGIqd
VRAMに直で書き込むのって、Windows環境だとやっぱり、DirectXを使わないと出来ないもの?
まだ学生だから、車輪の再開発をしまくって勉強したいと思ってるんだけど、なんらかの
コンポーネントを使用しなきゃ出来ないのなら、割り切ってコンポーネントの勉強をしようと思うんだけど
0591名前は開発中のものです。2010/05/30(日) 22:59:33ID:hMrpRgoR
DirectXを使わないと出来ない
0592名前は開発中のものです。2010/05/30(日) 23:01:41ID:hMrpRgoR
そういや、CreateDIBSectionを使うという手もあったな。
0593名前は開発中のものです。2010/05/31(月) 00:00:56ID:y4dMI0mp
newとかで確保したメモリに書いた画像を出力するならSetDIBitsToDeviceが手っ取り早いと思うけど、
VRAM自体のアドレスを取得してロックしようと思ったらDirectXを使うしかないと思う
0594名前は開発中のものです。2010/05/31(月) 23:03:43ID:QJNjNz5n
アクションゲーム作ってるんだけど、敵の処理どうやってる?
全ての敵の行動をクラスに纏めたEnemyクラスっていうのを作っちゃって、
そこに敵の種類ごとに動作とか設定しちゃおうかなって思ってたんだけど、
それじゃ敵の種類が少ないマップでもロードに時間がかかるとかってなる?
0595名前は開発中のものです。2010/05/31(月) 23:06:46ID:QJNjNz5n
あと、敵の残りHPとか座標とか時間管理のデータってどこで管理すればいいんでしょう?
グローバルな変数を作るとか?
0596名前は開発中のものです。2010/05/31(月) 23:13:40ID:+7YvNv71
>>595
Enemy クラスに HP、時間、座標を定義して
Enemy を継承した EnemyA、EnemyB … を作ってそこに種類ごとの行動を書けばいい
ロード時間はといより Enemy で全部やろうとすると処理コストが増えるかと
0597名前は開発中のものです。2010/05/31(月) 23:30:20ID:SBpXG6MJ
大体それぞれの敵データ管理するためにクラス作ったんじゃなかったのか・・・
0598名前は開発中のものです。2010/05/31(月) 23:31:08ID:QJNjNz5n
なるほど継承ですか
そういうのがあるんですね
ありがとうございます
0599名前は開発中のものです。2010/05/31(月) 23:58:57ID:OsgCe482
OpenALでMIDIを再生したいのですが、どうすれば良いですか?
0600名前は開発中のものです。2010/06/01(火) 00:53:23ID:8zniKIGy
無理です
0601名前は開発中のものです。2010/06/01(火) 11:05:50ID:HlkdJvUb
MIDIデータをWavにする部分を全部自分で書けば何とか
06025992010/06/01(火) 18:31:41ID:zaH3D1aV
>>601
正にそれです。
MIDIパーサ、MIDIレンダラーを作りたいのですが、何をどうすれば良いのか
さっぱりな上、そういった事を解説してるサイトも皆無なので困っています。
0603名前は開発中のものです。2010/06/01(火) 19:13:55ID:jI99bfoW
そんな事言ってる奴にはまず無理。
0604名前は開発中のものです。2010/06/01(火) 22:07:22ID:02kRTTDw
>>602
FM音源とかにしといたら?
そこそこのクオリティを持ったMIDI音源とか個人でなんとかなるレベルじゃなさそう
0605名前は開発中のものです。2010/06/02(水) 11:17:16ID:eHTKFESg
まず音源データそのものを集めないとね
こればっかりはプログラムだけじゃ無理だろう
0606名前は開発中のものです。2010/06/02(水) 22:56:16ID:Ggr0fEGO
>>591
>>592
>>593
やっぱりそうなのか…
回答ありがとう。とりあえず、Direct3D9の勉強を少しやってみようかと思う。ありがとう
0607名前は開発中のものです。2010/06/03(木) 22:58:45ID:N5aCEzsm
>>602
ソフトウェアシンセとSMFファイルを解析する部分が要る
とりあえずGM規格の仕様書でも読んでみたらいい、やる気なくすから
0608名前は開発中のものです。2010/06/04(金) 16:44:04ID:Vz1OVRZS
ソフトシンセもSMF解析も言うほど難しくは無いだろ
0609名前は開発中のものです。2010/06/04(金) 17:04:27ID:tnAvyTGm
この世にそういうソフトが存在している以上不可能ではないな
いずれにしてもまずはGM互換の版権フリーか自前の音源データが必要
0610名前は開発中のものです。2010/06/04(金) 18:16:01ID:vIQ5MHoj
音をサンプリングしてまともにPCMシンセとして使えるレベルまで
編集するだけでも、どれだけ機材と時間と技術と手間がかかるんだか…
0611名前は開発中のものです。2010/06/04(金) 20:43:58ID:uFMmgqFi
音なんてプログラムで波形データ作ればいいだけだろjk
0612名前は開発中のものです。2010/06/04(金) 20:48:59ID:Q9UNwKBA
vistaや7で効果音が複数重なると音量が小さくなることってないですか?
xpだとそんな事なかったのですが
0613名前は開発中のものです。2010/06/05(土) 06:53:33ID:yudDpx9T
>>611
実際にやってみるとわかるけど、自分でサイン波とかのオシレータ作って
合成して実際の楽器の音出すのってすごく難しいぞ。
FM音源なんてとても素人がどうにかできるもんじゃない。G
M規格だけでも128種類の音色とドラムセットがあるのに。
0614名前は開発中のものです。2010/06/05(土) 14:15:02ID:D1eyiAx2
結局出せる音がFMレベルなら、FM音源最初から使えばいいじゃん
>>611はVAクラスか打楽器系の音もサンプリング音源レベルの音質をソフトだけで作るって言ってんでしょ
まあ何も知らないただのバカだろうけど
0615名前は開発中のものです。2010/06/05(土) 19:21:06ID:1y0Oq8xy
>FM音源最初から使えばいいじゃん
どうやって?
今のサウンドカードは標準でFM音源なんて付いてないぞ?
0616名前は開発中のものです。2010/06/05(土) 21:05:53ID:XfBBOv5P
おうおう、やらない理由ばっか述べるねぇ
ま、別にいいんだけど
0617名前は開発中のものです。2010/06/05(土) 22:44:24ID:yudDpx9T
多分、周波数変調かけて結果をPCMで出力しろってことだから、
ハードウェア的にはFM音源ついてなくてもPCM音源があればおk
そんなことも分からないんじゃ自分で音源作るのなんて無理
0618名前は開発中のものです。2010/06/05(土) 22:48:00ID:1y0Oq8xy
そんなのエミュでやってるやつ沢山あんじゃん。参考にすれば
0619名前は開発中のものです。2010/06/08(火) 17:58:37ID:++DOtdab
FM変調でPCMサンプリング音源レベルのクオリティの音を出してるエミュを教えろよ
0620名前は開発中のものです。2010/06/08(火) 20:08:11ID:SUdoOdZh
>>619
話がズレてない?FM音源エミュレート結果の出力先にPCMを使用するってだけだろう
いやもうどれが話の本筋なのか分からんけど

ところでちょっとグレーな話になるけど、スーファミエミュから抽出したSPCファイルって
容量が64KBしかないのに結構綺麗な音がでるよね
再生プラグインも100KBそこそこだから波形データを再生機側に大量に持ってるわけでも
なさそうだし、スゲーなーと思ってた
0621名前は開発中のものです。2010/06/08(火) 21:18:46ID:++DOtdab
サウンドドライバのプログラマがすごい頑張ってたんじゃない?
FF4は、アクトレイザーのストリングスの音聴いて影響されて、
サウンドドライバ作り直しを命じたらしいし
0622名前は開発中のものです。2010/06/09(水) 09:21:16ID:pmTsWhEo
すいません、今からゲームを作る上で、質問というか相談というかちょっと1つお聞きしたい事があります。
今の同人というかフリーゲーム開発の中でDirectXを使ってる場合、9.0と10.0どちらが主流なんでしょうか?

よっぽど凝った物でもない限り現状普及率が高い9.0のほうがいいのだろうかと思うのですが、この先の事を
考えると10.0以降の仕様に慣れておいたほうがいいのかもしれないし、もしかしたらそれほど10.0でも影響少ないのかと思って悩んでるのですが。
0623名前は開発中のものです。2010/06/09(水) 10:22:21ID:rHuJZWIL
ここでこんな質問してるうちは、10.0で組んでも10.0独自の機能なんて
使いこなせないからどっちでも同じです。10..0だとXP切捨てになるし。
10.0以降の仕様に…ならもう11に行った方がいいんじゃない?
今から10.0を一から勉強すると、10.0独自の機能使う頃には12が出てると思われ
0624名前は開発中のものです。2010/06/09(水) 10:40:14ID:IiMYCbgY
>>622
9.0と10.0の比較だと今OSとハードの過渡期真っ最中だから
移行するならもう1・2年待った方がいいかもな、まだゲームはXPがメインって奴も多いだろうし
逆に言えばソフトの公開が1年後2年後とかなら10.0に移行してても良いのかもしれん
0625名前は開発中のものです。2010/06/09(水) 10:42:22ID:fYI9N/70
9切り捨てられるなら11でいいと思うよ。
0626名前は開発中のものです。2010/06/09(水) 13:45:50ID:pmTsWhEo
なるほど・・・レス感謝。

10向けのソフトなんてまだそれ程ないし、自分も知識や技術不足等あるので9を扱いきれるようになってから
様子見て10.1以降のに目を向けるようにします。
0627名前は開発中のものです。2010/06/09(水) 16:54:49ID:bi7/yVM/
>>620
SFCの音源部は、
・SPC700それ自体がCPU(6502系)なので、ドライバ書くときに、サウンド処理以外の負荷を考える必要がない。
・当時としては大容量の64KiBのSRAM(実際に音色データを置けたのはもっと少ない領域だったようだが)。
・32KHz/8chのADPCM。なので、容量自体はそんなに食わない(高音域の音が歪むという欠点はあるが)。
・再生波形のガウス補間、ピッチ/モジュレーション変更、エコー/リバーブ、フィルタをハードウェアでサポート。
てな具合で、無論、ドライバの工夫もあるんだろうけど、業務用ゲームも含めて、当時のゲーム用としては、もともと最高クラスのPCM音源だったのが要因。
0628名前は開発中のものです。2010/06/09(水) 20:44:25ID:yKxBirAe
midi→PCMってムズいの?
0629名前は開発中のものです。2010/06/09(水) 21:15:34ID:rHuJZWIL
ムズイっていうかMIDIは楽譜的な情報なのにPCMは波形だからなあ
自分で一からやるとそりゃあもう死ねます
実装によって仕上がりの音も全然違うし
0630名前は開発中のものです。2010/06/09(水) 22:32:28ID:qkJYSXJu
楽譜をCDにするのと似たようなもん、何処まで自分でやるかによる。

演奏者雇って楽器は買ってくれば(Windowsにファイルごと丸投げ)、たいした労力はいらんし。
自分で演奏して楽器も自作する(自分でSMFを解析し、シンセサイザーを自作する)となれば、相当な労力がいる。
0631名前は開発中のものです。2010/06/09(水) 23:59:35ID:eDbPYTsH
>>627
詳しい解説をありがとう、なんだか音のプログラマブルシェーダみたいですね
なぜSPCファイルが皆同程度の容量なのか不思議だったんだけど、ようは処理系のスナップショットなのか
0632名前は開発中のものです。2010/06/11(金) 12:50:28ID:hBamGraD
すいません、少々質問です。
>>622ですが、9.0c用のSDKを探しているのですがどのSDKを使えばいいのでしょうか?
0633名前は開発中のものです。2010/06/11(金) 12:54:06ID:hBamGraD
ageるの忘れたのと追記ですが、一応今DLしてあるものは June 10と最新の物なんですが、この中に
ソースとして10ってのと9っての2種類があるのですがもしかしてこのSDKって別に過去の物を使う必要がなく、
9.0cで使える関数等をつかえば9.0c向けのプログラムということになるのでしょうか?
0634名前は開発中のものです。2010/06/11(金) 12:58:26ID:WclTY3DZ
>>633
概ねそう。windows APIだって同じだろ。
0635名前は開発中のものです。2010/06/11(金) 16:24:22ID:b46tP7Yu
DirectSoundとかの古い機能を使わなければ問題ないな
0636名前は開発中のものです。2010/06/11(金) 22:30:53ID:WRoLJZOq
C++で実装する場合、敵データって何で管理すべき?vector?list?
shared_ptrは使うべき?
ここらへんの作法的なものがさっぱり分からなくて困る
0637名前は開発中のものです。2010/06/12(土) 08:19:34ID:odsGwdrC
私もこの質問に便乗して
私は追加削除は list の方が vector の方が速いと思ってたんですが
どっかで実は vector の方が速いとあったのでやっぱりそうなんでしょうか
しかもそれらSTL自体が遅いと聞いたので自分で作るのも考えたのですが
似たものは作れるのですが、全く同じ使い方のものを作ろうとすると今の自分にはちょっときついので
どこかで自作してるものを探したのですが、見つからなかったのでどこかにありませんでしょうか
自分で参考にもしたいと思ったもので
それとこれらの質問はゲームプログラミングを想定したものです一応念のため
0638名前は開発中のものです。2010/06/12(土) 09:36:07ID:MfFcNHJl
速さに関しては今のPCの方が優秀なのでよっぽどのことが無い限り気にするだけ無駄。
画面に何百万発の弾幕張るような仕様を実現できるかどうかはPCやグラボの性能次第。
速さの限界チャレンジは開発用PC上で”しか”意味が無い。
0639名前は開発中のものです。2010/06/12(土) 10:08:18ID:odsGwdrC
そうなん?じゃ無難に list でも使っとくか
0640名前は開発中のものです。2010/06/12(土) 10:22:20ID:ISREFi7t
描画が重いからって描画以外の部分の高速化を図るのはお門違いってこと?
0641名前は開発中のものです。2010/06/12(土) 10:31:19ID:IAfNttk3
list<effect>とlist<enemy>があってeffectからenemyにランダムアクセスしたいんだけど、
これって低速なのを承知してイテレータ使って探すしかないの?
それともなんか定石みたいのあるの?
0642名前は開発中のものです。2010/06/12(土) 10:49:27ID:Z4c//xCX
>>640
お門違いかどうかは、プロファイラで計測してみないとわかんないね。

>>641
本当にその検索がボトルネックになってるなら、同時にIDがindexのベクタに登録するとか。
つかそれ以前に、enemyに対するeffectって、enemyオブジェクト内にeffectアドレスでも
登録して、effectの寿命はCOMみたいに管理すれば、検索自体が不要な気が…
0643名前は開発中のものです。2010/06/12(土) 11:12:44ID:IAfNttk3
>>642
なるほど。後者の方法はいいかもしれないけど寿命管理が良く分からない
万が一先にオブジェクトが消えてしまて存在しないものを参照してアクセス違反とならないか不安
0644名前は開発中のものです。2010/06/12(土) 13:20:38ID:nozhbs64
>>640
よほどの数の敵が出てくるとかでなければ、コンテナの違いは
速度的にはあまり意味がない。
コンテナの違いは中身が万単位になってやっと意味が出てくる程度で
数百程度だと優位な差がなかったり、速度の逆転が起こったりする。

要素の挿入や削除でイテレータが無効になるとかの性質の方が重要。

速度に問題があれば、コンテナを変える前にアロケータを変えることを
考えた方がいいかも。
0645名前は開発中のものです。2010/06/13(日) 04:37:42ID:B+np0z/d
アロケータ調べてみたけど難しかったのでもう最初に new で一旦それぞれ使う分とっといてそれを使いまわすことにするわ
0646名前は開発中のものです。2010/06/14(月) 07:50:15ID:+L/wTpB0
アロケータとかリストとか自分で頑張って作ろうとしてみたけど疲弊しただけだったわw
もっと実力上がってから挑戦してみることにする
当面は大人しく new と STL 使ってるわ
いやね、言い訳になるが単純にリスト作るだけなら出来ると思うけど
汎用化させたりいろいろ絡んでくるとちときついわ今の自分の力では
0647名前は開発中のものです。2010/06/22(火) 16:48:44ID:TOC+2Opi
おれは動的配列を自分で作ってしまったよ。
ただ、配列のサイズ変更も自動でやってくれるとか、
自分なりに使い易い形にカスタマイズはした。
趣味の人ならこういう部分を楽しむのもアリだと思う。
0648名前は開発中のものです。2010/07/17(土) 22:15:17ID:84ym2+jv
おれは道程だから自分でオナってしまったよ。
ただ、ちむこのサイズ変更が自動でなってしまう朝立ちとか、
自分なりにイキ易い形にカスタマイズはした。
趣味の人ならこういう部分を楽しむのもアリだと思う。
0649名前は開発中のものです。2010/07/20(火) 09:31:58ID:9KeZQpZV
動的配列ってパイソンのリストみたいなやつ?
0650名前は開発中のものです。2010/07/20(火) 12:09:38ID:IRMyEe9a
std::vectorみたいなものでは?
0651名前は開発中のものです。2010/07/20(火) 13:18:37ID:ka0nTHRg
2D横スクロールアクションを創りたいんだけど、マップとかを作るのが大変すぎる
RPGツクールみたいな感じで創りたいんだけど、それには自分で専用のエディタをプログラミングしなきゃ駄目?
出来れば画面のある場所をクリックするとイベントが配置されて、画像とかイベント内容とかを
プログラムに書き加えてくれるような仕組みにしたいんだけど・・・
そういうのは難しいんだろうか
(モンスターAをどの位置に配置する、という地図をテキストデータにまとめて保存ということ
なら今の俺の技術でもできると思うんだけど、エディタの設定をもとにプログラムを自動生成して
書き加えてくれるようなのって可能?って質問です)
0652名前は開発中のものです。2010/07/20(火) 13:43:17ID:4zAYS/8u
>>651
普通にレイヤー編集が出来るマップエディタでだいじょうぶでしょ
マップチップをモンスターやらイベントやらに割り当てればいい

地形レイヤー(あれば便利な当たり判定レイヤーを分けるといい)
イベント配置レイヤー(アイテム・モンスターレイヤーで分けてもいい)

好きなだけ必要なレイヤー作ればいいと思うよ
0653名前は開発中のものです。2010/07/20(火) 13:48:33ID:ka0nTHRg
>>652
レイヤを作ってモンスターの配置・上層マップチップ・下層マップチップに分けて、
それの位置と内容をテキスト化何かに保存、というのは俺も考えてるんだけど、
問題はイベントの内容をエディタの中で決められないかな、ということ
RPGツクールだと「文章の表示」だの「画面を暗くする」だの「場所移動」だのの
コマンドを組み合わせるだけでいいでしょ
それと同じことをオリジナルエディタでやろうと思ったらどういう技術を使えば可能かってこと
0654名前は開発中のものです。2010/07/20(火) 13:51:20ID:9KeZQpZV
ツクールなんて普通知らねえよw
0655名前は開発中のものです。2010/07/20(火) 14:20:13ID:4zAYS/8u
>>653
オリジナルなら聞くまでも無くどうとでもなるじゃん。
フリーのマップエディタでどうにかならんかってことじゃないわけ?

イベントレイヤにマップチップ1を貼り付けて、
別ファイルたとえば"ev_1.txt"にメモ帳で内容を書くとすると、
簡単にマップチップとイベントを繋げられる。

・・・・ということじゃなく、そういうエディタを作りたいなら
最低WindowsGUIに関するプログラム(C#あたりなら楽)、
ツクール並みのイベント内容を解析したいならLuaあたりの知識、
1からスクリプト作りたいなら、構文解析に関する技術が必要だけど?
0656名前は開発中のものです。2010/07/20(火) 14:34:33ID:ka0nTHRg
>>655
そういうんじゃなくて、プログラムとエディタをいったりきたりする手間を省けないかなってことです
例えばエディタ上でイベントを配置したい場所をクリックするとウインドウが出てきて、
そこにプログラムを書いてOKを押すと、そのプログラムをCファイルに書き足してくれる、
というようなものです
0657名前は開発中のものです。2010/07/20(火) 15:03:14ID:4zAYS/8u
うーん、それだったら自分のニーズに合うものを作るしかないね。
プログラムとエディタを行ったり来たりしたくなければ、
スクリプトとしてイベントを外部に追い出すしかないだろうから。

>>651 で考えているのはCに直すんだから一種のトランスレータだろうけど、
その方法は、動かすたびにコンパイルしなおさにゃならんので、
結局エディタとプログラムを行ったり来たりすることになるよ。

しかし、そこから作るよりもあるものを使って作ったほうが最初はいいと思うけどね。
マップエディタと、メモ帳があればいいんだし。
マップチップに対応したイベントファイルにたとえば、

HP=10
移動パターン=1
攻撃力=12
防御力=3
落とす金=10

それをプログラムで読んでパラメータ設定したら、かなりエディタだけでよくなる。
これでも、経験が無いなら四苦八苦するだろうけど。
0658名前は開発中のものです。2010/07/20(火) 15:04:48ID:4zAYS/8u

×マップチップに対応したイベントファイルにたとえば、
○モンスターレイヤのマップチップに対応したイベントファイルにたとえば、
0659名前は開発中のものです。2010/07/20(火) 15:40:33ID:FFEjXre5
スト2の昇竜拳の軌道計算でつまってます。
下記の画像の逆放物線のような軌道計算は、
どのように行っているのかご存知でしょうか。
もしくは参考サイトなどありますでしょうか。

http://iup.2ch-library.com/i/i0121467-1279607725.jpg

入力情報としては

・頂点座標
・頂点到達時間(フレーム)
・現在再生フレーム(相対)
・横方向の力

出力情報としては

・フレームの進行度に対する前フレームからの相対位置
 要するに計算結果を加算するだけにしたい。

を考えています。
0660名前は開発中のものです。2010/07/20(火) 15:55:52ID:4PiPc8U0
1フレームずつ座標をプロットして結果をテーブル化
■ このスレッドは過去ログ倉庫に格納されています