- 1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
- 119 名前:名前は開発中のものです。 mailto:sage [2008/02/14(木) 03:21:12 ID:t1F92WGz]
- >>117
>Intel 910GML Express ノートにしては性能いいっぽいな
- 120 名前:名前は開発中のものです。 mailto:sage [2008/02/14(木) 03:39:39 ID:t1F92WGz]
- コンパイルできねぇorz
- 121 名前:名前は開発中のものです。 mailto:sage [2008/02/14(木) 05:37:27 ID:WfFj/EK1]
- >>50に純粋に質問なんだが
マルチバイトとUnicodeの相互互換とかいるのか? API系の関数は自動で入れ替わるし stringは下のよう感じにしといたら 相互変換する手間はいらん気がするんだが。 #ifndef _UNICODE #define _tstring std::string #else #define _tstring std::wstring #endif
- 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
|

|