[表示 : 全て 最新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ライブラリユーザのスキルの向上に役立てたら幸いです。

122 名前:名前は開発中のものです。 [2008/02/14(木) 08:47:39 ID:xKFMg5Ms]
>>117
1>..\myLib\mL_Text.cpp(21) : error C3861: 'vsprintf_s': 識別子が見つかりませんでした

123 名前:名前は開発中のものです。 mailto:sage [2008/02/14(木) 09:58:14 ID:v9KvJp5J]
>>119
ノートにして性能悪いと思うが・・・。
最近はRadeonX1600とかGeForce8600積んでるノートがデフォかと思ってた。

124 名前:名前は開発中のものです。 mailto:sage [2008/02/14(木) 16:16:13 ID:HH1MEW/i]
>>123
それ・・・・単に今、売ってる最新機種のミドルレンジクラスだろ。


125 名前:50 mailto:sage [2008/02/14(木) 19:11:10 ID:nzQZAZue]
>>118さん
麻薬は(ry

>>120さん
状況を詳しくお願いしますm(_ _)m

>>121さん
それだと90%はOKでも10%でダメなんですよ。DirectXAPIの中にはLPCSTRやLPCWSTRなど
どちらか片方のみのコード系での引数しか用意されていないことが稀にあるので
その書き方だとそういうときに面倒が起こります。(相互変換できないとDXライブラリ3Dに引数の不揃いが出てしまいます)
そういうときに非常に面倒が少ないので自動的に相互変換ができるCStringを愛用していたという経緯があります。
(今はCStringが使えない環境があると知り自作のTStringを使っていますが)

>>122さん
環境はVisualStudio2003以前ですよね?申し訳ないです。
セーフ系の関数はVisualStudio2005より前では使えないというのを忘れていました。
ちょうど今ベータ5を作っているところなのでそれで修正しときます。
情報ありがとうございました。

>>123さん
そうなんですか?少し前に使っていたノートPCなどはこれの半分以下の性能だったので・・

126 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 16:06:03 ID:bOykvXe+]
バカなことを聞いているとは思いますが、僕はマジなのでお願いします。
DXライブラリではC++は使えないのでしょうか??

127 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 16:09:14 ID:VPTgSQiM]
全く問題ない
逆にCで動かない事が問題になった事さえある

128 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 16:10:01 ID:4sibGp92]
>>126
ttp://homepage2.nifty.com/natupaji/DxLib/dxuse.html

129 名前:名前は開発中のものです。 [2008/02/15(金) 17:38:14 ID:GkeoXIUs]
コンパイルできねぇorz

1>リンクしています...
1>mL_Text.obj : error LNK2019: 未解決の外部シンボル "
__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> >
& __cdecl std::operator<<<char,struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> >
&,char const *)" (__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?
$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) が関数 "
public: void __thiscall myLib_c::LogOut(char const *)" (?LogOut@myLib_c@@QAEXPBD@Z) で参照されました。

1>mL_Text.obj : error LNK2019: 未解決の外部シンボル "
__declspec(dllimport) public: void __thiscall std::basic_fstream<char,struct std::char_traits<char> >::
open(char const *,int)" (__imp_?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z)
が関数 "public: void __thiscall myLib_c::LogOut(char const *)" (?LogOut@myLib_c@@QAEXPBD@Z) で参照されました。


130 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 18:37:04 ID:yTSKGH/r]
stl使ってる?



131 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 19:49:23 ID:GvwbKPwJ]
boost使っててリンクしてないという懐かしいオチは?

132 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 19:51:21 ID:Rkucko5s]
>>130
>>131
俺には標準ライブラリ周りのエラーにしか見えないのだが

133 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 20:00:16 ID:nUvrkQvl]
ESPを使って透視してみると、
iostreamとfstreaがincludeされていないんだが、
ageる奴が困っても俺にはどうでもいいことなので、どうでもいい。

134 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 23:13:29 ID:SRqMXzTx]
ああ、iostreamはライブラリもリンクしないといけないんだよな
そのエラーを消すにはALT+F7で開くオプション画面の
アレをアレにかえればいいんだろうけど、
どーせマルチ先で答え出てそうだし、間違えてると恥ずかしいのでパス

135 名前:名前は開発中のものです。 [2008/02/15(金) 23:32:35 ID:XAXzf6Jj]
>>127、128
ありがとうございます。

136 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 20:39:10 ID:yYTsC494]
DXライブラリ3Dβを
VisualC 6.0で やりたいのだが どうやればいいのか 教えてください。

137 名前:50 mailto:sage [2008/02/16(土) 21:12:15 ID:HZPD09Yw]
体調を崩し2日寝込んでいました。
まだ頭が上手く回りませんが・・。

>>129さん
そんなエラーが出るんですか?
良ければ開発環境を詳しく教えてください。

>>136さん
6.0は使用経験が無いのでちょっと良く分からないです・・

138 名前:名前は開発中のものです。 mailto:sage [2008/02/17(日) 14:23:53 ID:XZCo5WTC]
>>136
プロジェクトファイルをテキストエディタで開いて何がリンクされててどのソースが必要か
確認してそれをそのまま6.0のでやればいいよ



139 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 16:14:11 ID:0NsXAvH0]
>>137
129です。BETA8では、普通にコンパイル出来、うごいた。
エラーがでたやつをもう一度やってみたらコンパイル出来なかった

なんでかな
VC++ Express Edition2005 (はじめて使ってみた)



140 名前:126 mailto:sage [2008/02/18(月) 22:05:33 ID:2TWjsJUr]
どうも、>>126です。作るものにもよるとは思うのですが、実際にゲーム会社などでもDXライブラリを使っていたりするのでしょうか??
自分は将来そういう仕事につきたいと思い勉強をしているのですが、気になったので・・・



141 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 22:13:39 ID:Wl8axOrh]
ゲーム会社では使わん

142 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 22:56:39 ID:aRjMeg92]
DX自体そういったプロ用途は一切考慮して作られてないし。

143 名前:126 mailto:sage [2008/02/18(月) 23:02:14 ID:2TWjsJUr]
ではプロの方たちはどういったもので作っているのでしょうか??

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]
もし解像度変わるフルスクリーンだとしたら、そもそもリフレッシュレートが低下してたりしないか






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

前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