トップページgamedev
1001コメント347KB

DXライブラリ 総合スレッド その5

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/12/04(金) 16:49:13ID:7SKA4I5z
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
0056名前は開発中のものです。2009/12/07(月) 14:43:37ID:GvCDZJ6F
↑より効率いいやり方ってそうないと思うが
あと、例だからかもしれないが、↑だと処理B→Aが続けて処理されると思うので
int state = 0;
int tab_push = 1;
〜〜〜〜〜〜〜〜〜〜〜〜〜〜
if(CheckHitKey(KEY_INPUT_TAB)==1 && tab_push = 0;)
{
 tab_push = 1;
 if(state = 0)
 {
  処理A;
  state = 1;
 }
 else
 {
  処理B;
  state = 0;
 }
 //  ↑この辺はswitchなりなんなり(処理が2つだけじゃなくたくさんある場合とか)
}
if(CheckHitKey(KEY_INPUT_TAB)==0) tab_push = 0;
//  ↑if(CheckHitKey(KEY_INPUT_TAB)==0 && tab_push = 1) としても変わらない

とここまで書いてすでに>>55でレスされてるのに気付いたが
ほぼ同じだが投稿しちゃう
0057名前は開発中のものです。2009/12/07(月) 14:44:31ID:GvCDZJ6F
あ、「↑より効率いいやり方ってそうないと思うが」
の↑は>>54を指すので
0058名前は開発中のものです。2009/12/07(月) 14:44:45ID:qjhIwQdC
>>54
if (( btn ) && ( ! isPush )) {

 switch ( step ) {
  case 1 :
   doA ( );
   step ++;
   break;
  case 2 :
   doB ( );
   step ++;
   break;
   ・
   ・
   ・
 }

}

isPush = btn ;
0059名前は開発中のものです。2009/12/07(月) 15:00:21ID:SKodZ2cg
みなさんありがとうございます。
制御する変数を使わないとやはり難しいみたいですね。
参考にします。
0060名前は開発中のものです。2009/12/07(月) 16:30:58ID:eqdM01iG
状況がよくわからんが一回の入力で連続して押したと判定されるのがいやということかな?だったら↓が汎用的だと思う

unsigned count[256] = {0};

while(true) { //メインループ
char buf[256];
CheckHitKeyAll(buf);

for(int i = 0; i < 256; ++i) if(buf[i] == 1) ++count[i]; else count[i] = 0; //押しっぱなしならカウント数をインクリメントして保存、押されてないとゼロにもどる

if(count[KEY_INPUT_XXX] == 1) DoSometing(); //カウントが1のとき、つまりボタンが押された最初のフレームのみ反応!

// if(count[KEY_INPUT_YYY] % 10 == 0) DoSometing(); //応用して押しっぱなし中なら10フレームごとにイベント、とかできる(シューティングの等間隔のショット処理とかで使える)
}
0061名前は開発中のものです。2009/12/07(月) 17:30:41ID:03D0QZSj
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/315

315 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 21:23:19 ID:CgQN485t
>キー入力

自分が使ってるルーチンのコードを記事にまとめました
http://d.hatena.ne.jp/kokarage/20090602/p2
0062名前は開発中のものです。2009/12/07(月) 20:24:23ID:5mIc7NoF
>>52
さすがにDXライブラリのサイトで
「○○というソフトを使っても動きません!」という質問はできないだろうw
DXライブラリ側に原因があるなら別だが。

WMEはMSのやつかな。
動画作成に関しては今日初めてやったので詳しくないんだ、すまん。
0063名前は開発中のものです。2009/12/07(月) 20:49:26ID:QTWxMRN0
>>62
2.25で出来て3.xで出来ないならライブラリ側の原因である可能性が多いだろ
とりあえず色んな方法でキャプチャして、上手くいかなかったら本家行き

まあ、WME+SCFH_DSFでは問題なくキャプチャ出来たが。
0064名前は開発中のものです。2009/12/08(火) 02:54:12ID:CEeKe2FB
一々全部のキーに対して押し続けたかどうか判断する必要あるのか
余程多くのキー使うのならともかく普通は押し続けの判断したいキーだけでいいんじゃないのか
まあ今のマシンなら全部やっても負荷的には問題ないのかも知れんが
0065名前は開発中のものです。2009/12/08(火) 08:20:15ID:bmgyrVLx
キー入力関連はゲームだとよく使うし、関数化しておくと便利ですよ。
「何フレーム入力されているか」が解るようにしておけば、ボタン関連の操作は「1フレーム目」または、「キーを離したフレーム」で処理すれば
連続で不必要な処理まで進んでしまう事がありません。
例えば本家のGetHitKeyStateAllを自分で使いやすいようにしたのが
GetHitKeyStateAll_2関数です。こんな感じで使えます。
(→コードは次へ)

この例ではエンターの入力時間によって処理を分岐しています。
キーの入力状態を格納する変数がint型なので
_2関数をさらに「離された時マイナスのカウントをする」ようにすれば
離されてからのフレーム数も解ると思います。
・・ところでコードを見やすいように字下げする方法無いんでしょうか;
0066名前は開発中のものです。2009/12/08(火) 08:21:20ID:bmgyrVLx
/****** エンターキーをおした瞬間だけ四角形を描画する *******/

#include "DxLib.h"
int GetHitKeyStateAll_2(int KeyStateBuf[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++;
else KeyStateBuf[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_RETURN]);//エンター入力カウント
if(Key[KEY_INPUT_RETURN]==1)//今の瞬間押されたら
DrawBox(0,0,640,480,GetColor(255,255,255),TRUE);//画面全体を白い四角で表示
ScreenFlip();
}
DxLib_End();
return 0;
}
0067名前は開発中のものです。2009/12/08(火) 10:08:46ID:ziZ5aZky
実際の入力と、返ってくる値は切り分けた方が便利かもね
0068名前は開発中のものです。2009/12/08(火) 11:20:05ID:U9efz6mV
>>65
ttp://fatalita.sakura.ne.jp/CGI/OKCode/index.html
0069名前は開発中のものです。2009/12/08(火) 15:24:53ID:oCon0Lhk
MakeGraphでウィンドウサイズより大きい空のグラフィックを作成して、そこにマップチップを敷き詰める処理をしたいのですが
グラフィックハンドルを直接指定して描画処理をする方法がわからなくて困っています。
GetDrawScreenGraphを使っていったんウラ画面に描画したものを、空のグラフィックにコピーしようとしたのですが
ウィンドウサイズより大きいところに描画されたものはコピーされないみたいでダメでした。
どなたかこの問題を解決できる方はいませんでしょうか?
0070名前は開発中のものです。2009/12/08(火) 18:10:50ID:EpEGhfoB
描画先にグラフィックハンドルを指定したらそこへ描画できるって話をうろ覚え。
ウィンドウサイズ以上にできるかどうかは知らん。

しかしマップチップ敷き詰めたとしても、どうせ表示サイズ以上には表示できないんだし、
普通に毎フレーム描画でいいと思うが。

まぁ全マップを拡大縮小回転とかガンガンやるならちとずれそうで怖いが。
0071名前は開発中のものです。2009/12/08(火) 19:18:27ID:oCon0Lhk
>>70
ありがとうございます、いろいろ調べてきます!
2Dアクションゲームを作ってましてとりあえずマップ全体をメモリに描画しといて
スムーズなスクロールをしようと思ってました。
0072名前は開発中のものです。2009/12/08(火) 19:27:56ID:EpEGhfoB
その目的なら止めた方が良いと思う。
普通に毎フレーム描画でいくべきだと。

よほどヘボなPC使うか、プログラムがヘボでないかぎり
スムースさに変わりはない。
0073名前は開発中のものです。2009/12/08(火) 19:37:02ID:oCon0Lhk
>>72
そうですか。
しかし自分の知識不足でどうやって毎フレーム描画でドット単位のスクロールをすればいいのかわからなくて
ttp://www.harukitchen.com/rpg_programming/06/06.htm
ここのサイトを参考にしてるんですけど、この方法だと結局ウィンドウサイズ以上の大きさの描画が必要になるし
どなたか知恵を貸していただけないでしょうか?
0074名前は開発中のものです。2009/12/08(火) 19:45:37ID:B6+BeJXV
別にその方法で間違ってない
ウィンドウサイズ以外の描画がしたくないならカメラ座標に映らない座標のオブジェクトは描画しなくていいだけだし、
確かdirectXの仕様で画面外は省略されてた気がする

DXライブラリならオリジナルの描画関数作ってDrawRotaGraphなりに飛ばしてやるのがお勧め
0075名前は開発中のものです。2009/12/08(火) 19:46:26ID:EpEGhfoB
えーとね。

キャラクターの表示はできる?
それをドット単位で動かせる?

それができるならマップもできよ。

マップったって、結局マップチップというキャラクターを並べて表示してるだけだからね。
ドット単位で表示ずらせばいいだけ。

んでもって、画面表示されない位置のマップチップは描画しなければいい。
0076名前は開発中のものです。2009/12/08(火) 20:11:36ID:oCon0Lhk
>>74,>>75
キャラクタの表示もドット単位の移動もできています。
自分の頭の中では
1,ウィンドウサイズより一回り大きいグラフィックハンドルにマップチップを敷き詰める

2,そこから必要な場所だけを切り取って表示する
という流れしか考えられません(´・ω・`)
しかしこれだと1のステップがクリアできなくてダメだし
簡単にアルゴリズムをアドバイスしていただけないでしょうか?
0077名前は開発中のものです。2009/12/08(火) 20:19:13ID:oCon0Lhk
書き込んだ瞬間に何故かひらめいた
マップチップを敷き詰めるはじめる座標を(-32-[主人公の座標.x]%32,-32-[主人公の座標.y]%32)
にしてあげて、主人公の座標から必要なマップチップの情報をウィンドウサイズより一回り大きく取り出してあげて
それを描画すればいいんですよね!!
0078名前は開発中のものです。2009/12/08(火) 20:32:31ID:DQdomlYR
その通り
0079名前は開発中のものです。2009/12/08(火) 20:35:04ID:EpEGhfoB
おめでとう。それが解れば大丈夫だ。
0080名前は開発中のものです。2009/12/08(火) 20:39:47ID:oCon0Lhk
皆さん大変おさがわせしました。
今プログラム組んでみたら上手くいきました:)
ありがとうございました、これからもよろしくお願いします。
0081名前は開発中のものです。2009/12/08(火) 20:40:20ID:EpEGhfoB
あ、そうそう、君が>>73で示したサイトにもあるけど

「主人公の位置」じゃなくて「カメラの位置」で考えてね。

基本的に主人公の位置とカメラの位置は同じだけど、
マップ端に行った時は違ってくるから。
0082名前は開発中のものです。2009/12/08(火) 20:55:01ID:8T1WO6Nw
DxLib使えるだけじゃ無理だと悟った
なんかC++&DxLibがちょっと使えるレベルの人間にふさわしい本とかないすかね
0083名前は開発中のものです。2009/12/08(火) 21:05:16ID:B6+BeJXV
何作りたいのかにもよるが
アクションゲームアルゴリズムマニアックスとか?
0084名前は開発中のものです。2009/12/08(火) 21:09:08ID:EpEGhfoB
>DxLib使えるだけじゃ無理だと悟った

俺だってC++とDxLibがちょっと使える程度だが、ちょっと使える程度のものを作るには不自由ないぞ。

C++&DxLibで何がしたいのか次第でしょ。
0085名前は開発中のものです。2009/12/08(火) 21:33:24ID:8T1WO6Nw
特定ジャンルのゲームというより、共通の基礎的な部分を勉強したい
最終的にはシレンっぽいのを作りたいんだが、その前になんか根本的な部分が抜けてるような気がしたんだ
0086名前は開発中のものです。2009/12/08(火) 21:47:15ID:trfhK022
試しにシレンっぽいの作ってみたら何が足りないかわかんじゃね
作りたい物だったらモチベーションも保ちやすいし勉強にも身が入る
わからなさ過ぎると嫌になるかもだけど
0087名前は開発中のものです。2009/12/08(火) 21:47:25ID:B6+BeJXV
http://www.kumei.ne.jp/c_lang/
ほらよ

あとは作るしかない
ゲーム作りのノウハウは他人に教えてもらうのではなく経験で身につけるもの
0088名前は開発中のものです。2009/12/08(火) 22:23:40ID:nVGvorfQ
>共通の基礎的な部分を勉強したい

プログラムの基礎を勉強したいのか、
プログラムはわかるが、ゲーム作りの基礎を勉強したいのかでまた違ってきそうだね。

ちなみに俺は独学でゲーム作りしてきたから、ゲームは作れても基礎が全然できてねぇ;;
俺も勉強しなおすかな……。
0089名前は開発中のものです。2009/12/08(火) 23:54:13ID:JpJMUeIi
プログラムの基礎に不安があるなら、C++だったらeffective C++とかを
読んでみるといいかもね。あとはデータ構造、基本的なアルゴリズム、
デザインパターンあたりがわかると、汎用性があるかな。

でもまあ、趣味でやるなら勉強と思ってやることはないと思うぞ。
問題を解決しようとして見つけた情報の中で、便利そうなのがあったら
その周辺を重点的に調べる、で結構いろいろできるようになる。

ところでDXライブラリって、core以外のソースは公開されていないよね?
掲示板ちょっとみたら、ソース公開に関する質問はスルーされていたので、
全て公開するかは未定ってところかな。
0090名前は開発中のものです。2009/12/09(水) 00:17:14ID:5fGPGOQD
eff c++はもう読んだし、デザインパターンもある程度知ってる
知りたいのはアニメーションの統一的な制御法とか、膨大(になりそうな)画像やデータファイルの生成・管理法とか
この辺がうまくできなくてコードに直接埋め込んじゃってるからどんどんスパゲッティになっていってわけわからなくなるんだと思う(たぶん)
0091名前は開発中のものです。2009/12/09(水) 00:20:33ID:q6H67G0j
うんゲームって極論すればプログラム自体はどうでもいいんだよね
データの設計や管理などの方がずっと重要
0092名前は開発中のものです。2009/12/09(水) 00:31:54ID:oBlr8zOS
>>90
今書いてるコードがスパゲッティになるかどうかは、ゲームを完成させるまで分からない。
幾つもゲームを作りながら、「この書き方だと後々こういうケースにハマって困る」というのを学んでいく
そうやって最適化されていくもんだよ

そこら辺に落ちてるゲームの作り方的な例は最初から最適化されてることが多いが、
何故そのように最適化されてるのか述べてるものはほとんどない
そういう意味も考えながらだと上達が早いと思う
0093名前は開発中のものです。2009/12/09(水) 00:47:35ID:f8b9o6Br
ぶっちゃけ、デザインパターンようしらんが、
stlとboost使った自作のデータ管理クラスでなんとかなってるよ。
配列の番号とかいちいち覚えてられねーよwwwってことで。

ファイル名と画像なら表示されてるレイヤとか指定すれば色々操作できる仕様。
ただ、俺ゲームどころかまともに作るのすらはじめただから正解かどうかはわからん。
基底クラスのデータ管理で使ってるのは、unordered_map。
0094名前は開発中のものです。2009/12/09(水) 01:30:17ID:+dPnel+v
>>85
同じにおいを感じるッ!
ゲームの設計に多少時間をさくのがいいんじゃないかな。
シーケンス制御とか、どのクラスがデータを持つのかとか。

俺もとりあえず動くもの作ってみてあれこれ機能つけたしてくってしてたけど
ちょっと規模が大きくなるとワケワカメになってきたから
丁寧に設計してみようと勉強&作成中。

「ゲームプログラマになる前に覚えておきたい技術」って本、高いけど
その辺の要求に答えてくれてる気がする。

あ、DxLib使ってないけど、読めばより使いこなせるようになると思うよ。
0095名前は開発中のものです。2009/12/09(水) 01:41:52ID:OFLUsKk5
おいしくない創作料理を作るようにクソゲーは作ることに意義がある
0096名前は開発中のものです。2009/12/09(水) 01:44:54ID:uL4RaiqG
俺もデザパタなんて必須のものかね
俺は使わずにやれてるし、ある程度使わずにやってみずして必要性実感できるものかね
デザパタ学んでからやるべきものかね
ある程度C++使ってから見てみると多少参考にはなるけど
0097名前は開発中のものです。2009/12/09(水) 01:46:31ID:LrcOl5Bl
口より手を動かせ
0098名前は開発中のものです。2009/12/09(水) 06:23:23ID:kFKKgCNe
俺の状態

適当に作る

設計に無理があって、どこかで詰まる

作り直しになる

最初よりマシになるがそれでも設計に無理があってどこかで詰まる

作り直しになる。しかも作り直してる最中にまた詰まることがなんとなく分かる。
だが、具体的にどう詰まるのかは分からないし、その解決策も現スキルでは分からない。

どうせまた作り直すことが分かってしまうとモチベが下がる。

今のところ、この繰り返しでいずれゲームの作り方が身につくと信じて
程ほどに考えて、手を止めすぎないようにしている。
0099名前は開発中のものです。2009/12/09(水) 06:50:15ID:aw1FDcJg
決して他人にアドバイス出来るような身の上ではないけれど、1つだけ。


途中で良い設計が思いついたり、飽きてしまうこともあるけれど、
まずはどんなミニゲームでもいいから、とりあえず完成させるべき。

昔の電子ゲーム(ゲーム&ウォッチ)みたいな単純なゲームなら
悩んだり飽きたりする前に、それこそ勢いだけで完成しちゃう場合も。
0100名前は開発中のものです。2009/12/09(水) 08:10:26ID:cydXuseL
>>98
俺の自己紹介文をなぜ書けるw
0101名前は開発中のものです。2009/12/09(水) 13:02:55ID:zYgTW+cQ
ちょっとした作業を自動化するバッチ処理をスクリプト言語で
書いてみたりすると案外プログラム書けて俺スゲーと思うはず
ゲームって作りたいもののイメージが先行して
それを実現するために要求される技術が高すぎるからorzになりやすい
0102名前は開発中のものです。2009/12/09(水) 14:56:36ID:njV6Yik+
俺もなんとなくC++のサンプルが載ってるとこからコピペで動かしながらゲーム作ってて
そろそろちゃんと基礎からやっとくかーとか思って言語の基礎から説明してくれてる解説サイトを見てみたら
C言語に関しては勉強する部分があんまり残ってなかった
0103名前は開発中のものです。2009/12/09(水) 15:09:50ID:cydXuseL
eff c++的な本やデザパタ本の境地に地力で達していると
読んだときにニヤニヤする
0104名前は開発中のものです。2009/12/09(水) 23:48:43ID:Wiib7oc4
DXライブラリで"あaいiuうeえお"という文字列を

あa
あaい
あaいi
と一文字ずつ表示させていく方法について教えて下さい
0105名前は開発中のものです。2009/12/10(木) 00:24:34ID:qpivaZnn
1文字づつ読み込み、
その文字がASCII(1バイト)文字か、そうでないか(2バイト)を関数で判断
それからstringまたはchar型の変数aに代入
→1バイト文字なら、DrawFormatString(a,%s)
→2バイト文字なら、Forループと文字幅関数を組み合わせて文字を横に表示

とかやった記憶がある。
0106名前は開発中のものです。2009/12/10(木) 11:23:34ID:o5AOUra2
超初心者です。
新規プロジェクトからDXライブラリを使う場合
どのようにつかったらいいの?
単にプロジェクトに追加すべきファイル_VC用の内容をコピーして
新規プロジェクトで作ったフォルダーに入れただけではリンクでエラーが
でます。新規プロジェクト作成からDXライブラリを使ったコンパイルまでの
流れを易しく教えてください。
0107名前は開発中のものです。2009/12/10(木) 11:29:59ID:hZmtje4B
ttp://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html

公式のこれはちゃんと読みながら設定した?
0108名前は開発中のものです。2009/12/10(木) 12:20:31ID:o5AOUra2
設定したつもりで、下のようにエラーでます。
なぜなのか分かりません。
1>リンクしています...
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
01091082009/12/10(木) 12:26:42ID:o5AOUra2
単に今まで人が書いたソース(DX経由)を上書きしたり消したりしていましたが、
単にそれを新規プロジェクトに移したいだけなんですけど、
よく分からないです・・・。
0110名前は開発中のものです。2009/12/10(木) 12:57:31ID:1HVns5Nx
おそらく
プロジェクト→設定→C/C++タブ→カテゴリをコード生成にする
使用するランタイムライブラリをマルチスレッド(デバッグ)にする
(このとき左の方の設定の対象がWin32 Debugになっている場合)
それをやったら左の方の設定の対象をWin32 Releaseに変えて、
使用するランタイムライブラリをマルチスレッドにする
→OKボタンを押せばおk
01111082009/12/10(木) 13:01:44ID:o5AOUra2
>>107
>>110
アドバイスから先程できました。
>>110さんがいってる通り、プロジェクトのプロパティは毎回
設定しなおさなきゃならないんですね。一度やったから継続
されるものだと思っていました。ありがとうございました。
今までの疑問が解決されました。
0112名前は開発中のものです。2009/12/10(木) 23:02:01ID:XglTjGxz
>>108
http://www.play21.jp/board/formz.cgi?action=res&resno=43733&page=&id=dixq&rln=43742
ここに同じ質問があります
0113名前は開発中のものです。2009/12/11(金) 23:03:13ID:Iqulp5dV
描画領域のクリッピングってできないんだろうか
0114名前は開発中のものです。2009/12/11(金) 23:42:17ID:HuvsxFxE
出来る
01151082009/12/12(土) 00:31:17ID:E1BPSoBb
画面の最大化ってどうしてます?
ChangeCallback使ったらの画像ハンドルはすべてグローバルにしなきゃならないの?
0116名前は開発中のものです。2009/12/14(月) 00:33:25ID:8p9lCz90
画像管理クラスみたいなのを作って
そいつにフルスクリーンにされた、という情報を通知してやるとか
0117名前は開発中のものです。2009/12/14(月) 01:18:53ID:UpilfluK
最大化ってやっぱフルスクリーンの事なのか。
0118名前は開発中のものです。2009/12/15(火) 12:51:33ID:RIHdLK0r
自分好みのサウンドノベル作ろうと思ったのですが、ノベルって60fpsもいらなくてフレームレート下げたいと思ってます。
しかしどのようにやればいいのかよくわからず困っています。
何か調整する関数などないでしょうか?
0119名前は開発中のものです。2009/12/15(火) 13:11:08ID:CgintmXt
フレームレート下げる理由はなに?
画像更新の回数を減らすため? もしそうならフレームレート関係なく、画像更新しなきゃ済む事でしょう。

キー入力処理だけループさせて適当にSleepでもはさんでおけばいいんじゃない?
0120名前は開発中のものです。2009/12/15(火) 14:01:22ID:RIHdLK0r
なるほど!ありがとうございます
0121名前は開発中のものです。2009/12/15(火) 22:43:42ID:9aF+TrWP
わざわざフレームレートを下げる必要があるのでしょうか?
サウンドノベルでも画面の切り替わりであったり、
何らかのエフェクトであったり、後から60FPSで滑らかに表示させたくなるかもしれないので、
60FPSで作っておいて損はないと思うのですが。

もし60FPSにするなら、1フレーム(ループ1周)の時間を計っておき
1/60秒(16.6666...ms)になるまで待機させます。
30FPSなら1/30ですね。

しかしSleep関数は指定した時間「以上」待機してしまうので、
正確にFPSを制御したいなら、少し工夫が必要です。
大した工夫ではありませんが、前回の誤差を次回で修正するような作業が必要です。

モニタは60FPSが一般的で、裏画面描画なら、何もしなくても60FPSになります。
ですから、試してみて待機関数が正常に動作していると勘違いしがちですので、
お気をつけて
0122名前は開発中のものです。2009/12/16(水) 07:34:00ID:nhTnsvqc
グルグル回しっぱなしの方が楽だな。
カーソルの点滅とか地味に動かすところもあるのにそこだけ描き換えるのも面倒。
0123名前は開発中のものです。2009/12/16(水) 18:27:09ID:GKpjO21V
下手に部分描画頑張っても画像崩れ対策とかが面倒だしな
最近のPCの性能にまかせて60回更新余裕です
0124名前は開発中のものです。2009/12/16(水) 18:44:25ID:CpLVLwh1
まぁまぁ。
CPU使用率とかメモリアクセス減れば電気代節約にもなるだろうし(?)
色々挑戦する分にはいいんじゃないかな。
0125名前は開発中のものです。2009/12/16(水) 18:52:02ID:O9VqeVrK
ゲーム中の状態異常としてFPS強制低下を組み込もうと考えた事はあるわ
0126名前は開発中のものです。2009/12/16(水) 19:20:23ID:zY3Wrvaf
俺のゲーム、30fpsだ
0127名前は開発中のものです。2009/12/18(金) 18:57:42ID:1+hLha67
すいません。
DXライブラリのド初心者です。><
2Dアクションでキャラが歩いてる感じの表現をだしたいのですが。
どうすればいいでしょうか??
詳しいサイトを教えていただけるだけでもうれしいです><
おねがいします><
0128名前は開発中のものです。2009/12/18(金) 19:09:02ID:B2G1gHKW
http://dixq.net/g/#0
0129名前は開発中のものです。2009/12/18(金) 19:16:05ID:fEqZwGFp
>127
RPGの歩いてる感じであれば上のサイトでも書いてありますが、
2Dアクションとなると少し違うかも知れませんね。
歩いてる感じといっても、描画だけできればいいのか、
地面とのあたり判定を求めて描画するのかなどで
回答は色々変わってくると思いますが、とりあえず描画だけすればいいんですかね?

アクションゲームは初めて作るゲームとしてはとても難しいと思いますよ。
特に斜め坂、曲面大地とか作らないといけなくなると
マップ管理とかも結構面倒です。

で、描画だけすればいいのであれば、
いくつか歩行グラを読み込んでループ描画すればいいのではないでしょうか?
0130名前は開発中のものです。2009/12/19(土) 02:45:18ID:ettFnh3/
ありがとうございます。
基本はRPGにしようとおもっています><
ただ、戦闘がめんをアクションみたいにしたいとおもっています。
テイルズシリーズみたいなかんじです><
RPGの要領で画像分割で挑戦してみたのですがなにかいわかんがありましたので
迷惑かもしれませんがご教授おねがいいたします><。
0131名前は開発中のものです。2009/12/19(土) 02:46:33ID:5USgcct8
3Dゲームを作りたいのですが
0132名前は開発中のものです。2009/12/19(土) 02:50:33ID:6/6f/NLc
質問のレベルがDXライブラリを使うとかどうとか以前の問題な気が
0133名前は開発中のものです。2009/12/19(土) 02:53:29ID:5USgcct8
3Dのゲームを作りたいです。
僕が作るのは主観視点の剣劇アクション。
山や森、遺跡を冒険するのです。
グラフィックはXBOX360くらいを目指します。
DXライブラリを使えばできますか?
0134名前は開発中のものです。2009/12/19(土) 02:58:12ID:7KIcg3Ok
グラフィックはもう少し現実的な目標をだな…
0135名前は開発中のものです。2009/12/19(土) 03:04:45ID:5USgcct8
グラフィックはよく研究してるます!
0136名前は開発中のものです。2009/12/19(土) 03:14:03ID:7KIcg3Ok
そうかそうか
DXライブラリは3Dも扱えるが2D向けなのは違いない
http://www.libsdl.org/index.php
DXライブラリの代わりにこっちでやれ
0137名前は開発中のものです。2009/12/19(土) 10:41:46ID:bRqniW+f
>>133
>グラフィックはXBOX360くらいを目指します。
DXライブラリではできないのでDirectXを使いましょう。
0138名前は開発中のものです。2009/12/19(土) 10:44:35ID:aeC7U3rq
XNAを使うのがいいでしょう
0139名前は開発中のものです。2009/12/19(土) 11:10:32ID:5eLz8Bt1
Unity3Dとか?
0140名前は開発中のものです。2009/12/19(土) 11:22:56ID:Mkh38zVU
UDKでもいいんじゃね?
【UDK】Unreal Development kit ver.1【無料】
http://pc11.2ch.net/test/read.cgi/gamedev/1257586779/l50
0141名前は開発中のものです。2009/12/19(土) 14:48:51ID:EBmq0OgA
仮にDirectXでFPSを作るとしたら政策時間は何時間くらいになるのか。
DXライブラリで作る場合と比べてどれくらいながくなるのか
0142名前は開発中のものです。2009/12/19(土) 14:54:22ID:bRqniW+f
>>141
人にもよるし作るモノにもよるので何とも言えない。
DirectXで作る場合はDXライブラリに相当するライブラリを自作することになるのでそれだけの期間が必要になる。
0143名前は開発中のものです。2009/12/19(土) 15:13:02ID:R8+wJcL7
なんで最初から作る話になってるんだ
DirectXでやってるやつは自分で自前のライブラリぐらい作ってるだろ
0144名前は開発中のものです。2009/12/19(土) 15:27:22ID:jOWfP0B6
自分でライブラリ作ってるくらいの経験あるなら
ゲーム製作時間の見当ぐらいだいたいつくだろ。
0145名前は開発中のものです。2009/12/19(土) 15:34:09ID:FRLZB9mk
そんなあなたに3D Gamestudio
http://pc11.2ch.net/test/read.cgi/gamedev/1219363848/
0146名前は開発中のものです。2009/12/19(土) 23:55:31ID:WQuVN0Mv
>>130
今年のHSPコンテストでテイスズオブに近い戦闘システム再現した作品あるぞ
機能の低いHSPでさえ出来るのだからDXLibでもやれると思ってもいいだろう
画面分割に関してはDXLibでは良くわからない、自分はSlimDXで開発しているので
SlimDXはDirectXとほぼ同じようなプログラミングなのでデバイスやビューポート調整して簡単に画面分割できる
0147名前は開発中のものです。2009/12/20(日) 01:17:43ID:sO/QX8MT
ありがとうございます〜〜><
普通のRPGの戦闘画面よりかはむずかしいのでしょうか
少し、HSPのコンテストのほうをしらべてみようとおもいます><
ありがとうございなした><
0148名前は開発中のものです。2009/12/20(日) 01:35:28ID:bOWZLmUi
ニコニコのランキングに上がってるDXライブラリ使った動画見て感動した
0149名前は開発中のものです。2009/12/20(日) 01:41:14ID:sO/QX8MT
まさに神言語!!
だとおもった。
0150名前は開発中のものです。2009/12/20(日) 02:40:03ID:yjWmlZsc
>>148
どれ?
0151名前は開発中のものです。2009/12/20(日) 02:44:10ID:8HD3DPTi
>>147
2Dのみか3Dを使うのか分からないけど、戦闘画面作るだけなら難しくない
RPGのHP,MPパラメータにしても2Dスプライト重ねるだけでいいし、画面分割の必要性も無い
しかし、RMB再現するって言ったらリアルタイム衝突判定とか移動のAIも必要になってくる
こっちの方が難しいかもね、かなり頭脳巡らせないと
0152名前は開発中のものです。2009/12/20(日) 02:48:23ID:AKlh0ZUE
http://www.nicovideo.jp/watch/sm9127380
ぷるんぷるん
0153名前は開発中のものです。2009/12/20(日) 03:07:29ID:yjWmlZsc
>>152
再生数多過ぎわろたw
0154名前は開発中のものです。2009/12/20(日) 08:59:33ID:k8v3yd7d
>>152
天才だな
0155名前は開発中のものです。2009/12/20(日) 09:37:34ID:fyZALbEa
>>152
ワロタw
■ このスレッドは過去ログ倉庫に格納されています