[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 11/13 16:36 / Filesize : 243 KB / Number-of Response : 900
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DXライブラリ 総合スレッド



1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

144 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 23:33:46 ID:Wl8axOrh]
とりあえずDXライブラリを勉強してゲームを何本か完成させるといい。
ライブラリはたいした問題じゃないから。


145 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 23:35:56 ID:7tiGy6L5]
ゲームの作り方がわかればどうにでもなるもんだ

146 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 23:46:50 ID:TpuEiTEb]
逆に聞きたいが、どの会社に入ってどんなゲームを作りたいんだ?

まぁ、DXライブラリで作れるレベルのゲームなら
ライブラリそのものから自作するのが普通だよな
3Dバリバリになってくると、ミドルウェアの購入を検討するかもしれんが…

そもそも、PCゲーを作ってるのはファルコムかエロゲぐらいしかしらねぇ…
あとはねとげか?

147 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 23:53:41 ID:7tiGy6L5]
実はカプコンがすごい

148 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 00:09:09 ID:z2VaPk26]
プロの方々は基本自社の開発部門が作成したライブラリを利用します。

149 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 00:10:33 ID:IcyEM27M]
プロの方々はその場のノリと勢いで直接DirectXを利用します。

150 名前:50 mailto:sage [2008/02/19(火) 00:44:48 ID:Aqd0JPlI]
>>139さん
多分ベータ5以前の古いバージョンだったのでは無いでしょうか?
それか>>134さんの言うALT+F7で開くC/C++→コード生成→ランタイムライブラリが
マルチスレッド(/MT)状態になっていたとか。。
(本家DXライブラリではこの設定にする必要がありましたが、
 DXライブラリ3Dではこの設定にするとコンパイルできません。
 でもデフォルトの設定のままでOKなので導入の手引きには掲載していないですが)
まぁ動いているなら今更なので気にしなくて大丈夫だと思います。

>>140さん
アマチュアの意見なので参考程度にしておいて欲しいのですが、
私も1年半前にDXライブラリでゲームプログラミングに入門してそれを足がかりに
色々技術を吸収していったクチなので、ライブラリや使う技術は何でもいいので
とにかく色々作品を作ってみるといいと思います。完成したら作品をオープンソースに
するとソースコードがいつまでも頭に残りやすいのでさらにいいかもしれません。
もしまだ中学生とかなら少し遠回りしてHSPもいいのではと個人的に思ったりしていますが・・。

>>147さん
MTフレームワークとかいうやつでしたっけ?バイオ5とかの。
どんなのか一度くらい拝んでみたいです。

151 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 08:12:59 ID:7nQF2ZwG]
>>150
139です。
動かなかった方をマルチスレッド(/MD)に替えてみたら
コンパイル通りました
お騒がせしました。

152 名前:126 mailto:sage [2008/02/19(火) 12:43:37 ID:TX94i0/5]
>>144>>149さん
いろいろありがとうございます。とりあえず何か一つくらい作れるくらいになってみようと思います。また分からないことがあれば質問させてくださいね



153 名前:名前は開発中のものです。 mailto:sage [2008/02/20(水) 18:35:04 ID:2XUwUXxz]
前使ってたとき妙にCPU使用率が高くなると思ったんだけど
どういう仕組みになってる?

154 名前:126 mailto:sage [2008/02/20(水) 23:48:36 ID:T3SELVJu]
どうも。
こんな僕に、なにかオススメの本はないでしょうか?とりあえず学びながらゲームを作っていくことが出来る、というものがうれしいです。
ちなみに今は「アクションゲームプログラミング 藤田 和久」という本がいいのでは?と思っているのですが、必要なもの(アマゾンレビュー参照)にDirectX9 SDK・Platform SDKと、聞いたことの無いものがあるので悩んでおります・・・
どうかアドバイスをお願いします。

155 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 00:03:03 ID:QvK3uI1X]
>>150
MTフレームワークとは行かないけど、UnrealTournament3やらHalf-Life2・Crysis・Doom3・Call of duty4
等々の海外PCゲーならゲームさえ買えば拝めるぞ。実際にそれを元手にゲームを作って製品化された
ケースもあるし。向こうの連中は、時間と根性と愛が凄い。

>>126
まぁ、DXライブラリは書籍まで出ているのでゲームライブラリとしては使いやすいと思う。
DXライブラリの制作者のHPにも載っていたが

・「14歳からはじめるC言語わくわくゲームプログラミング教室」
・「14歳からはじめるC++ わくわくゲームプログラミング教室」
・「14歳からはじめるリアルに動く!ゲーム物理プログラミング教室 C言語編」

初心者向けゲームライブラリ解説書としては出血大サービスしている様なレベル。

156 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 00:07:50 ID:c8uZTMYe]
>・「14歳からはじめるC++ わくわくゲームプログラミング教室」
これはCを使える前提で書かれてるから初心者はやめたほうがいい

157 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 00:17:24 ID:QvK3uI1X]
書いた奴が言うのも何だが、C言語でも結構前提意識は強い方ですな。基本書は有る上勉強した方が良い罠。

158 名前:126 mailto:sage [2008/02/21(木) 01:57:17 ID:vC78HCyB]
とりあえず自分は やさしいC++第2版という本で基本的な勉強をしています。
こういうのって似たような本がいっぱいあるんですね…当たり外れが多そうですね。

159 名前:50 mailto:sage [2008/02/21(木) 03:11:35 ID:d9wnlOLj]
>>155さん
そうなんですか?いい情報をありがとうございます。
調べてみたら海外のゲームにはMODが存在するものが多いようですね。
今の私のPCじゃ推奨スペックに達していないのでいずれ触ってみようと思います。

>>158さん
それ1年ほど前に私も使ってました。C++の入門書は4冊ほど
(やさしいC++、C++の絵本、明解C++、独習C++)
買って5:10:6:9位の割合で読んで、個人的には導入部はC++の絵本が
分かりやすかったかなと思ったりしています。でもやさしいC++もいい本だと思いますよ。

160 名前:126 mailto:sage [2008/02/21(木) 12:08:11 ID:vC78HCyB]
>>159さん
たくさん持ってるんですね。絵本かぁ〜…なんか面白そうですね

161 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 02:01:36 ID:n/EC8VLW]
DXライブラリ3Dってどうなったの?

162 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 02:54:22 ID:jbB5M8UJ]
「DXライブラリ3D」でこのスレ検索したらいいんじゃね?



163 名前:50 mailto:sage [2008/02/23(土) 05:43:13 ID:v30yPbpo]
>>160さん
規模の大きな古本屋とか図書館に行ってもいろいろ本が手に入ったりするので
よさそうなのがあったら何でもトライしてみるといいと思います。応援しています。

>>161さん
続いていますよ。詳しくはサイトの更新履歴にも今までの履歴を載せています。

164 名前:126 mailto:sage [2008/02/23(土) 17:37:54 ID:P0melG7o]
>>163
ありがとうございます。頑張ります!!

165 名前:名前は開発中のものです。 [2008/02/23(土) 19:49:16 ID:dwAlKyqQ]
いつの間にこのスレこんなにのびてんだよ・・・

166 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 20:20:24 ID:n/EC8VLW]
ありがとう神さま

167 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 22:21:11 ID:t2RNXHyS]
>>50に期待カキコ。....〆(・ω・` )

168 名前:50 mailto:sage [2008/02/23(土) 23:47:51 ID:n/EC8VLW]
>>167
どうもどうも

169 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 23:56:49 ID:pfdSWKrQ]
これは一体

170 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 00:11:49 ID:8fPwe+HI]
(´・ω・) 頭がカワイソス

171 名前:50 mailto:sage [2008/02/24(日) 05:29:34 ID:bAaCNQDb]
初の偽物ですね・・。
まぁトリップを付ける気はあまり起きないのですが。。
どれが偽物なのかは想像にお任せしますw

172 名前:名前は開発中のものです。 [2008/02/24(日) 09:42:19 ID:gPT1EW+g]
餌から釣り針が見えてますよ



173 名前:50 ◆GmgU93SCyE mailto:sage [2008/02/25(月) 20:30:02 ID:PBPhXVWX]
何か上を見るとカオスなことになってるので今更ながらトリップをつけることにしました。

>>167さん
どうもありがとうございます。

174 名前:126 mailto:sage [2008/02/25(月) 22:44:04 ID:J8Foetq/]
どうも。質問させてください。一つ目のソースがエラーで出て、二つ目は問題ないです。しかしなぜかが分かりません。定義する場所でこんなに変わってくるものなのでしょうか?
#include "DxLib.h"

struct buta{
int x,y;
};
buta pipu;
pipu.x=320;
pipu.y=240;
char Key[256];
int PIPURU[16];

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理

SetDrawScreen(DX_SCREEN_BACK); //裏画面に設定
LoadDivGraph("pipuru.png",16,4,4,32,32,PIPURU);//画像ピプル読み込み

while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了

if( Key[ KEY_INPUT_RIGHT ] == 1 ) //右ボタンが押されたら
pipu.x++;
DrawGraph(pipu.x,pipu.y,PIPURU[0],FALSE);
ScreenFlip(); //裏画面を表に反映
}
DxLib_End();
return 0;
}

175 名前:126 mailto:sage [2008/02/25(月) 22:46:32 ID:J8Foetq/]
#include "DxLib.h"

struct buta{
int x,y;
};
char Key[256];
int PIPURU[16];

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
buta pipu;
pipu.x=320;
pipu.y=240;
SetDrawScreen(DX_SCREEN_BACK); //裏画面に設定
LoadDivGraph("pipuru.png",16,4,4,32,32,PIPURU);//画像ピプル読み込み

while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了

if( Key[ KEY_INPUT_RIGHT ] == 1 ) //右ボタンが押されたら
pipu.x++;
DrawGraph(pipu.x,pipu.y,PIPURU[0],FALSE);
ScreenFlip(); //裏画面を表に反映
}
DxLib_End();
return 0;
}
長々と見にくいソースをすみません。何故ダメかを詳しく教えてくれればうれしいです。

176 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 22:56:21 ID:x5b49b15]
どこでエラーが出たかくらい書けるだろ

日本語が不明だからエスパーすると

struct buta{
int x,y;
};
buta pipu; ←これは宣言
pipu.x=320;←これは処理
pipu.y=240;←これも処理

わかるよな?



177 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 23:02:24 ID:x5b49b15]
buta pipu = { 320,240 };
初期化したいならこうとでも書いておけ


178 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 00:48:56 ID:FRQ5rRB+]
>>174-175
butaをtypedefしてないとか?

typedef struct buta{
    int x,y;
}buta;

みたいな感じで。

よくソース読んでないから分からんけど。



因みに俺は構造体使うときは必ずtypedefしている。

179 名前:126 mailto:sage [2008/02/26(火) 01:11:41 ID:LnSY+BT3]
ビルド?したときにエラーみたいになります。多分エラーはpipu.x=〜、pipu.y=〜のところだと思います。
>>176さん
…すいません。よく分からないです…。
>>177さん
初期化したいというかよく分からないのですが、とりあえず基本となる値を決めたかったのですが…よく分からなくなってしまい…。
>>178さん
typedefですか〜。…typedefがどういうものなのか調べてみます…。
二つ目のソースなら問題なく動くのですが理由がわからないのは嫌だったので

180 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 01:25:57 ID:WaIh8C19]
>>178
C言語時代の化石乙
C++から、お前がやってるそれを自動的にしてくれるようになった

>>179
pipu.x=320;
pipu.y=240;
この2行消せって事だ

181 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 03:40:37 ID:opOCJbaI]
久しぶりに見に来たら、何やら面白そうな物作ってるみたいですね。
埃被ってるVS起動して、弄って遊んでみようかなぁー

182 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 04:54:55 ID:Do4X3wBs]
DXライブラリ3DはCPU使いすぎジャマイカ?
SeleneとかIrrlichtは5%の内容を90%も使ってる
3Dにするなら簡単も重要だけど速いも重要だと思うんだ がんばれ



183 名前:50 ◆GmgU93SCyE mailto:sage [2008/02/26(火) 13:57:52 ID:Jpu7ixkL]
>>182さん
サンプルは私の環境での実行速度を常に一番早い状態でテストするために実行FPSを
かなり高めに設定しているので多くの場合私の環境でもPCが貧弱なのでどうしても処理が追いつかず
CPU使用率はフル回転になってしまって100%近いのですが、mL.AdjustFPSのところの値を下げると
30%程度にはできます。
(そうした場合はモーションなどの増やす時間値もそれに合わせないとスローモーに見えてしまいますが)
とは言え、おっしゃられる通り、簡単さを優先した仕様上、他のライブラリと同等の高速性を実現するのは
難しい面があるので、遅くなりすぎないようにはしようと思います。

184 名前:126 mailto:sage [2008/02/26(火) 14:18:49 ID:LnSY+BT3]
>>180さん
なるほど。ありがとうございます

185 名前:178 mailto:sage [2008/02/26(火) 14:36:26 ID:FRQ5rRB+]
>>180

>C言語時代の化石乙
>C++から、お前がやってるそれを自動的にしてくれるようになった

恥ずかしながら知らなかった。


が、言い訳させてもらうとそれは改悪だ。

JAVAなどでは変数を定義しただけで勝手に0クリアされる為、0クリアを忘れた場合でも正常に動作する場合がある。

しかし、そうした機能にプログラマが甘えることにより、ソフトウェアの品質が向上するかもしれないが、
その結果にプログラマの品質が低下してしまい、言語が変わっただけで使い物にならなくなる、
低品質なプログラマを量産する事になる。 (うちの大学教授の理論を引用。)

ですから私はtypedef宣言が本来必要な場合には明記します。
それが「動くだけで良いプログラム」と「可読性の良いプログラム」の分岐点の一つとなる事でしょう。

だから>>179はtypedefするニダ!


以上火病でした。

186 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 21:38:30 ID:WaIh8C19]
C++だと、コンストラクタあるから、POD型ならしゃーないにしても
非POD型は自動初期化に身を任せるしかないんだけどな…
そこで、memsetなんか使った日にはvfptr潰してえらい目にあうぞ

187 名前:126 mailto:sage [2008/02/27(水) 00:09:17 ID:m5mBCwej]
何度もすみません・・・キャラが動いて、壁(hantei[]の1)より先には進めない、というものを作っているのですがどうしても左に移動したときがうまくいきません。
右の壁にいったときは問題ないのですが、左の壁の場合は歩く途中の動作中にキャラが止まってしまいます。ちなみにこの間でもFPS関数は動作しております。長すぎるので2回に分けて書き込ませていただきます。
#include "DxLib.h"
struct buta{
int x,y,img,muki,flag;
};
int RefreshTime;
int count=0,FpsTime[2]={0,},FpsTime_i=0;
int color_white;
double Fps=0.0;
char Key[256];
int kabe_e;
int PIPURU[16];
int hantei[20] = { 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 } ;
void SetColor(){
color_white=GetColor(255,255,255);
return;
}
void FpsTimeFanction(){
if(FpsTime_i==0)
FpsTime[0]=GetNowCount(); //起動〜1周目の時間
if(FpsTime_i==49){
FpsTime[1]=GetNowCount(); //1周目〜50周目の時間
Fps=1000.0f/((FpsTime[1]-FpsTime[0])/50.0f);//50周分の平均を出す
FpsTime_i=0; //平均を出した後カウントをリセット
}else
FpsTime_i++;
if(Fps!=0)
DrawFormatString(565,460,color_white,"FPS %.1f",Fps);//FPSを表示
return;
}


188 名前:126 mailto:sage [2008/02/27(水) 00:12:07 ID:m5mBCwej]
int can_or_cannot(int x,int y,int muki){//進む方向が通れるか通れないかを判定
if(muki==2)//左向きなら
if(hantei[x/32-1]==1)//通れないなら
return 1;//エラー
if(muki==1)//右向きなら
if(hantei[x/32+1]==1)//通れないなら
return 1;//エラー
return 0;//正常
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
buta pipu;
pipu.x=320;
pipu.y=256;
pipu.flag=0;
pipu.muki=0;
kabe_e=LoadGraph("kabe.png");
SetDrawScreen(DX_SCREEN_BACK); //裏画面に設定
LoadDivGraph("pipuru.png",16,4,4,32,32,PIPURU);//画像ピプル読み込み


189 名前:126 mailto:sage [2008/02/27(水) 00:14:13 ID:m5mBCwej]
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
RefreshTime=GetNowCount(); //今の時間を取得
FpsTimeFanction();
if(pipu.x%32==0&&pipu.y%32==0){
pipu.flag=1;
if( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら
pipu.muki=3;
else if(Key[KEY_INPUT_LEFT]==1)
pipu.muki=2;
else if(Key[KEY_INPUT_DOWN]==1)
pipu.muki=0;
else if(Key[KEY_INPUT_RIGHT]==1)
pipu.muki=1;
else
pipu.flag=0;
}
if(pipu.flag==1) //もし歩くなら
if(can_or_cannot(pipu.x,pipu.y,pipu.muki)==1)//行き先が歩けないなら
pipu.flag=0; //歩かないフラグを立てる。
if(pipu.flag==1){
if (pipu.muki==3)
pipu.y--;
else if(pipu.muki==2)
pipu.x-=2;
else if(pipu.muki==0)
pipu.y++;
else if(pipu.muki==1)
pipu.x+=2;
}
すみません、4回になりそうです。ながながとすみません・・・

190 名前:126 mailto:sage [2008/02/27(水) 00:14:37 ID:m5mBCwej]
pipu.img=PIPURU[(pipu.x%32+pipu.y%32)/8+pipu.muki*4];
DrawGraph(pipu.x,pipu.y,pipu.img,TRUE);
ScreenFlip(); //裏画面を表に反映
count++;
while(GetNowCount()-RefreshTime<17);//1周の処理が17ミリ秒になるまで待つ
}
DxLib_End();
return 0;
}


191 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 08:01:50 ID:tzifsiC4]
x/32-1 が0になる条件は x=32〜63

つまり、x=63になった瞬間、もう0番目の壁にぶつかってるんだよ

192 名前:126 mailto:sage [2008/02/27(水) 13:48:20 ID:9wtxnZrA]
>>191
[x/32ー1]の結果は、hantei[]の中身なので、例えば[x/32ー1]==1の計算の結果が8だとしたら、hantei[8]となるので、hanteiの八番目に1が入っているか?ってことです。…よね?間違ってたらすみません




193 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 14:42:16 ID:r6hHH13Q]
hentai[i]

194 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 14:43:36 ID:2UlhBHC9]
わからないならそーゆーコード組むなよ

195 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 20:01:15 ID:tzifsiC4]
>>192
63/32-1 がいくつになるのか表示してみろ

196 名前:126 mailto:sage [2008/02/27(水) 22:03:24 ID:9wtxnZrA]
>>194さん
あるサイトを参考にしながらその通りにやっているはずなのですが、こうなっちゃいました…。
>>195さん
多分0だと思います。

197 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 22:32:11 ID:tzifsiC4]
ソース丸々貼り付ける馬鹿は放置した方がいいんだろうが、まぁ暇なんで

x/32-1 って部分ををx/32 に書き換えろ
1ドットめり込むが、今よりましだろ

198 名前:126 mailto:sage [2008/02/27(水) 23:17:08 ID:Lmz6Mp6I]
>>197さん
・・・無理でした・・・画像がサイズがおかしいのでしょうか・・分からない・・。右は問題ないのに左がってのがよく分からないです。
別の方法でやってみることにします・・・。手間をかけさせてすみませんでした。

199 名前:126 mailto:sage [2008/02/28(木) 23:34:59 ID:lrVcbRPz]
どうも。結局 } の位置がおかしいだけでした・・・orz・・・
書き込み3回目の16行目の}を19行目の後につけると上手くいきました。本当にご迷惑をおかけしましたm(_ _)m

200 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 23:37:42 ID:lyjUYwSe]
なんだそのオチwwwwww

201 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 23:58:39 ID:FQsD2ZWz]
#゜盆゜) チッ

202 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 09:49:34 ID:22Ye9aiQ]
だまれクソガキ!



203 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 01:30:34 ID:jHbAeu6Y]
ママのミソニをガツガツたべるのよ
ママの

204 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 23:51:58 ID:7W3pOYl3]
現在メニュー画面を作ってるんですが
カーソルキーを押すとものすごい勢いで下の選択肢までいってしまいとても選択しにくいです;
カーソルキーを押すと選択肢を1個ずつ選択したいのですが、どういう風に制御したらいいのでしょうか?

205 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 23:56:18 ID:JAQ9m5p4]
前回のキーの入力状態を覚えておいて、
前回は押されてない、かつ、今回は押されている ならカーソルを移動

みたいにすれば?

206 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 23:57:07 ID:op6e8BAL]
キーを押したときにフラグを1にする
キーを離したときにフラグを0にする
フラグが0の時のみキー入力を受け付ける

もしくは

キーを押したときにカウンタをセットする
カウンタが0の時のみキー入力を受け付ける
カウンタが0以外の時は、常にカウンタが減少する


207 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:12:44 ID:VhKgaVm5]
>>205,206
ありがとうございました
フラグ使えばよかったんですね^^;

208 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 02:30:34 ID:VhKgaVm5]
すみません;
もう一つ質問です。
ソースファイルを2つ以上に分けたいのですが
元々のソースファイルで定義した変数などは二つ目以降のほうでは再定義しないと使えないのでしょうか?


209 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 02:42:30 ID:fbxb/49s]
それはここで聞くことじゃないだろう。
externでググってみろ。

ちなみに、「定義」は一回しかできない。だっけ?

210 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 15:45:08 ID:EDwm2w/G]
DXライブラリスレで聞くことじゃありませんでしたね><
ありがとうございます。

211 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 04:23:07 ID:XzVTChSu]
最近プログラミングの勉強を始めたんですが、質問があります

かなり黒に近い画像についてなんですが
ウィンドウモードで起動したときは表示されるのに
フルスクリーンモードで起動したときには表示されない(透明になってしまう)という現象が起きてしまいます

SetGraphModeでカラービット数を16から32にしたところとりあえず解消されたんですが
理屈が気になって夜も寝られないので誰か教えてください

あと直接関係の無いことなんですが
他のソフトに比べて自分の作ったソフトはやたら残像が気になります
どういう条件だと残像がでやすい等、解る方がいたらご教授願えませんか?



212 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 05:54:27 ID:vE/cGK1a]
16ビットだと一番近い色になるから透明色の黒と同じになるんだよ
ウィンドウモードはいくら16ビット指定してても
画面モードが32ビットならそっちにひきづられる

あと、教授する気はない



213 名前:名前は開発中のものです。 [2008/03/04(火) 15:11:44 ID:sCnHkz0D]
おちんちんびろ〜ん

214 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 16:13:23 ID:sCnHkz0D]
投稿先まちがえた すいませんでした

215 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 22:29:59 ID:XzVTChSu]
>>212
ありがとうございます
大体解りました

216 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 00:07:48 ID:UpAWpF+1]
>>211
60FPSじゃないから?
30とか20だと、3Dだと気にならないけど2Dだとかくかくする。

あるいは描画タイミングを考えてないのでは
垂直回帰線割り込み中に画像を更新しないと。


217 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 13:20:46 ID:BuKXzo6D]
>>216
レスありがとうございます

垂直回帰線割り込み中・・・ってのは正直よくわからないのですが、
FPSはScreenFlip()をループの最後に付けてリフレッシュレートと同じにしてあります
DXライブラリ置き場のゲーム開発講座を参考にしてるので問題ないとおもいます



218 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 00:57:39 ID:giCaDUuD]
1週間前からDXライブラリを始めた者です。

作っていて思ったのですが、画像を貼り付けるときにどのぐらいの数値を入れたら
どこらへんに表示されるか、というツールがあればいいかなと思ったのですが
そういうツールってありますか?

219 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:31:47 ID:9NfoINcs]
>>218
paint

220 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 06:09:57 ID:EtSoXOKU]
てか、仮にそんなツールがあったとしてもそれで調べて数値入力って手間が面倒
真ん中に表示したけりゃ
x = (640 - width) / 2; y = (480 - height) / 2;
って感じで計算式で書くほうが多いしな

221 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 07:49:34 ID:AU7mnU6+]
おれのちんちん3cm

222 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 10:03:18 ID:aX3Pcn7r]
もし解像度変わるフルスクリーンだとしたら、そもそもリフレッシュレートが低下してたりしないか



223 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 18:08:40 ID:5nuIPPAq]
ウインドウ出すだけのプログラムなのに
デバッグするとPCフリーズする時がある
前はこんな事なかったのになあ

224 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 20:21:52 ID:eLS9geKN]
スレチかも知れないけどマップエディタのPlatinumの使い方が分からんorz

16ビットでパーツを指定したら2段目が数字がおかしくなる。
2段目の一番左が259番目・・・

225 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 14:44:04 ID:xohZmW8l]
パーツの番号が256*256で固定だからそれでいいんじゃなかったっけ

226 名前:名前は開発中のものです。 mailto:sage [2008/03/19(水) 19:30:36 ID:xnHHCjpL]
2段目の一番左は256の筈。
ウチでは問題なく動くよ。

227 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 14:21:29 ID:A3AMVRXa]
DirectX SDKというものを使いたくてダウンロードしようとしたのですが、種類がたくさんあるようでどれをダウンロードすればいいか分かりません。どなたか優しく教えてください。そもそもただのDirectXとどう違うのかも分からないです

228 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 14:31:06 ID:tpvwQlhL]
SDKは開発者向けのライブラリやファイル群。(DirectXSDK)
Runtimeがエンドユーザー向けのファイル群。(DirectXRuntime)

とりあえず、最新版・・・といいたいけどファイル削除されてたりするから。
指定されてる日付のSDKが無難。指定なければ最新版でいいと思う。

229 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 20:21:03 ID:A3AMVRXa]
親切にありがとう

230 名前:名前は開発中のものです。 mailto:sage [2008/03/22(土) 22:07:35 ID:uQ9EOL6U]
ビルドでエラーが出ても、そのままプログラムが起動して
Run-Time Check Failure #3 - The variable 't' is being used without being initialized.
というエラーが出る事があります(ウインドウモードの場合)。
フルスクリーンでこうなってしまうとキー入力を一切受け付けなくなって電源が切れなくなってしまいます。
どういう理由でこういう事が起こるのでしょうか?Microsoft Visual C++ 2008を使っています。


231 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 00:28:36 ID:gXt17wxp]
適当な訳
変数tは初期化されずに使われているぜ

変数tを初期化してから使おうってこった。
なんでフリーズするかはソース見てないからしらね

232 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 14:00:40 ID:K823BI6u]
このライブラリ使ってるとstringクラス使えないことない?



233 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 19:47:36 ID:h1ArVFrf]
stl使うときは何たらとヘッダに書いてる

234 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 11:39:34 ID:jiphjYhJ]
int i ;
for( i = 0 ; i < 300 ; i ++ )
{
ClearDrawScreen(); // 裏画面のデータを全て削除
LoadGraphScreen( i, 0, "×××.png" , TRUE ) ; //裏画面へ画像を描写
ScreenFlip() ; // 裏画面データを表画面へ反映
}


このようにして画像を動かす場合、動かすスピードを遅くする時はSleep関数を使用するのですが、
逆に速く動かしたい場合はどうすれば良いのでしょうか?

235 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 12:16:50 ID:zqWlrSL1]
>>234
え?ほんとにプログラマなのか?

236 名前:234 mailto:sage [2008/03/28(金) 12:23:17 ID:jiphjYhJ]
いいえ素人です。
スレ違いでしたらすいません。

237 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 13:05:36 ID:cZZYfOnr]
同じく素人の俺が適当にレス

ぱっと見、画像を移動するように俺には思えるのだが、
遅く移動するためにSleepを使うのはどうかと思う。
fps制御をしたりするようになると、酷いことになる。
早く動かすには、i * 2でも i * i * i * i * iでもすればおk
というかもっかい数学でもやっとけ

238 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 14:36:00 ID:Kvv7Pk7V]
>>236
DXライブラリとは関係ないんで確かにスレ違い
237の言うとおり i++ を i+=10とかに増やしてやれば早く動く
でもそのやり方でSleepなしだと i を弄らなくても十分過ぎるほどに速いと思う

239 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 14:37:58 ID:nf/wnuhO]
もう数学どころか算数レベルだと

240 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 15:28:43 ID:VOhx+Y2g]
ベーマガのコードは>>234みたいなやつたくさんあったね。
fpsを気にせずforループでウェイトかけたり。

241 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 15:41:17 ID:cZZYfOnr]
iをdouble型にして、
i += 0.5;
とでもして、int型にキャストしたものを座標に入れればいいんじゃね?
forでループかけるとCPUの処理速度に依存とかしないか?

242 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 20:08:54 ID:nZaMbvad]
速い遅いの議論とは離れるけど、ループ中でLoadGraphScreenを使って
毎回ファイルから読み込むのはどうかと。
最初にLoadGraphでメモリに読み込んでおいて、
座標を変えながらDrawGraphで描画するのが一般的なやり方だと思う。



243 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 21:39:37 ID:CBraLr7F]
LoadGraphScreenって中で一回だけ読み込んで
しばらくキャッシュしとくような実装にはできないのかな
実用にならないことがはじめから明らかな関数なんて何考えて付けたんだろう

244 名前:名前は開発中のものです。 mailto:sage [2008/03/28(金) 22:50:56 ID:whlEiLTD]
れらりんがそばにいるよとささやいてくれると聞いて






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef