DXライブラリ 総合スレッド その10
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2011/08/18(木) 17:18:15.54ID:vXmrN4yDGUIのゲームを比較的容易に作成する事を可能にする、
「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/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
DXライブラリ 総合スレッド その9
http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
0897名前は開発中のものです。
2011/11/25(金) 17:36:20.43ID:iXddPxkH自分の管理しやすい方でやればいい
0898名前は開発中のものです。
2011/11/25(金) 17:39:12.68ID:BAy23hAgやったー
ありがとうございます
0899名前は開発中のものです。
2011/11/25(金) 17:44:22.70ID:1SzTAqNb1関数内で収まるなら256バイト位ならスタック上のローカル変数で十分
その変数が必要ないソースから見えなきゃグローバル変数は絶対悪でもない
0900名前は開発中のものです。
2011/11/25(金) 18:14:44.87ID:GB5t8CRi出来る限り変数のスコープは小さく保つべき。
同じ変数を使いまわすと今その変数に何の値が入ってるのか把握するのが難しくなり、思わぬバグを引き起こす。
特に初期化し忘れを防ぐために可能ならば宣言と同時に初期化値を代入するのが望ましい。
ちなみにメモリの確保と解放は確かに多少重くなるかもしれんが、
最近のコンパイラは最適化が優秀でそういうのは勝手にやってくれるため気にする必要は全く無い
0901名前は開発中のものです。
2011/11/25(金) 18:17:36.24ID:9+8knjT5色々変更するかもしれないなら、コマンドクラスを作ったほうが保守性が高いんじゃないか?
0902名前は開発中のものです。
2011/11/25(金) 18:48:39.04ID:X/JXm5DVソースは俺
0903名前は開発中のものです。
2011/11/25(金) 19:50:24.03ID:girb6CSA全体の何%だよ!って部分を少しだけ速くしたところで、見た目に変わることがないというのも、やっぱり正しいと思うよ。
0904名前は開発中のものです。
2011/11/25(金) 20:07:31.31ID:iXddPxkH0905名前は開発中のものです。
2011/11/25(金) 20:16:08.85ID:0IE6eIFl自分で問題点が分からないのなら実際にやってみた上で判断すればいいと思う
歴史に学ぶか経験に学ぶか、だな
0906名前は開発中のものです。
2011/11/25(金) 20:27:54.71ID:D4NDQSDv0907名前は開発中のものです。
2011/11/25(金) 20:31:32.79ID:Aue2OhIn配列に値を一括で入れたい場合って宣言のときしか無理だよね
こういうのはグローバルにしてもいい?
それともコンストラクタか何かでループで入れていった方がいい?
0908名前は開発中のものです。
2011/11/25(金) 20:39:02.38ID:YLcAYCYjcalss KeyStatus {
private:char Buf[ 256 ] ;
public:getHitKeyStateAll(){GetHitKeyStateAll( Buf ) ;} ;
public:char getKeyBuf(int key_input){return Buf[ key_input]; }
};
とりあえずこうしとけ、クラスはグローバルにしていいから
0909名前は開発中のものです。
2011/11/25(金) 21:53:03.64ID:8iac4M0d0910名前は開発中のものです。
2011/11/25(金) 22:04:45.85ID:OU9WDBg2よろしくお願いします。
(1)
ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか?
このような場合は、「DxLib_End();」をしなくても良かったりしますか?
今のところは異常を見たことがありませんが。
(2)
ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか?
「玉当てゲーム」のソースコードを読んでみているのですが、そういう設定を行う関数を呼んでいるところを見つけられないです。
関数か、ソースコードの行番号か、教えていただけませんか。
(3)
「SetWindowSize」という関数がヘッダにありました。
リファレンスには載っていません。使ってほしくない関数なのでしょうか?
0911910
2011/11/25(金) 22:06:08.08ID:OU9WDBg2言葉足らずですみません。
0912名前は開発中のものです。
2011/11/25(金) 22:21:40.39ID:hjCazteIis_push_key();
みたいな関数経由で中でBufを見るかな
0913名前は開発中のものです。
2011/11/25(金) 22:32:39.23ID:RwVxSi+4>見た目に変わることがないというのも、やっぱり正しいと思うよ。
見た目変わらないというのはそうかもしれないが、見た目以外は変わるのも正しい
以前にも言ったかもしれないが「そんな事しなくてもいまどきのPC性能なら問題ねーよ」と
よく言われるような事を実装したところ、確かに見た目は変わらなかったが
それまでうるさかったCPUファンが急に静かになった、ということがあった。
だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
むしろ「やらなくても一緒だ」と主張する人達は実際に試して比較してもいないんだろうと思ってる。
(前述の件とは別件でそういう主張する人達に、実際に計測した結果を示して
それぞれの環境でも計測してくれるよう頼んだところ急に黙り込んだという事があった)
0914名前は開発中のものです。
2011/11/25(金) 22:36:50.46ID:b5Tmlmkb用途に因るがテーブルとして持ちたいならconst付ければOK
>>910
1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い
2. ウインドウを動かすって何?
ウインドウの位置を決める関数なら
// ウインドウモードのウインドウの位置を設定する( 枠も含めた左上座標 )
int SetWindowPosition( int x, int y ) ;
3. 説明省いてるだけで普通に使って良し
0915名前は開発中のものです。
2011/11/25(金) 22:41:14.57ID:5Y0bAE1tSetWindowUserCloseEnableFlag
SetDxLibEndPostQuitMessageFlag
0916名前は開発中のものです。
2011/11/25(金) 22:42:19.50ID:b5Tmlmkb>だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
その主張が出来るのはコンパイラ毎の最適化の内容を熟知してアセンブラ叩ける奴だけ
組み込みには正義だろうよ
普通の開発ではソースコードがやたら難読化して要らぬバグを引き起こす事がほとんど
0917名前は開発中のものです。
2011/11/25(金) 22:44:21.25ID:8iac4M0d>ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか?
「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。
>ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか?
DxLib_Init()を呼ぶ前にChangeWindowMode( TRUE );を追加すればOK
ウィンドウサイズはここを読んでみるといいかもしれません。
ttp://www.play21.jp/board/formz.cgi?action=quote&resno=57924&id=dixq&lognum=177
私の見当違いだったら申し訳ない・・・。
0918917
2011/11/25(金) 22:45:13.87ID:8iac4M0dリロードすればよかったorz
0919910
2011/11/26(土) 01:00:02.64ID:OK82FRmW>1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い
そうでしたか。呼ばずに終了すると、何かとてつもないことになる、とどこかで見た気がしたのですが、妄想だったようです。
>SetWindowUserCloseEnableFlag
>「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。
おぉぉ!勉強になります。
>3. 説明省いてるだけで普通に使って良し
ありがとうございます。リファレンスだけではなく、ヘッダも読むようにします。
(2)についてなのですが、私が作ったプログラムでは、タイトルバーをつかむことも、×を押すことも出来ない、というか、ウィンドウ内にマウスアイコンが入るとマウスアイコン表示が消えてしまいます。
何を言っているかわからないと指摘を受けたので、「DrawTriangle3D」のサンプルに対して、「ChangeWindowMode(TRUE);」を追記して試したところ、普通にウィンドウバーをつかむことができ、移動も×も出来ました。
どうも、おかしなことになっているようです。チェックしてみます。
ここはとても暖かいスレッドですね。また、どうぞよろしくお願いします。
0920名前は開発中のものです。
2011/11/26(土) 01:14:20.19ID:hoqn6g74そりゃ速度を改善する行為なんだから正しいさw
「やるだけ無駄」って言うやつや、実測値を見て黙るやつなんて、元からPG以外の人間なんじゃないの?
0,1%の改善を狙うよりも *先に* 他のところを高速化したほうが良いんじゃないの?とか、
ソースを難読化、定番から外れるような作り方をするだけのメリットがあるの?とかさ。
ただ、特に悪意があるわけじゃないんだけど、
冷静にツッコミを入れたり、事実のみを言ったりすると、敵対してると思われることはあるよね…。
0921名前は開発中のものです。
2011/11/26(土) 01:31:44.66ID:jFrD62uWここで「たとえ0.01%だろうと軽くするほうが正しい」と結論が出るのは変だろw
0922名前は開発中のものです。
2011/11/26(土) 01:37:10.00ID:hoqn6g74それもそうだw
誰もが見逃してたけど、致命的な部分がその0.1%から見つかることもある、くらいか?
0923名前は開発中のものです。
2011/11/26(土) 02:27:57.61ID:DhGX758L0924名前は開発中のものです。
2011/11/26(土) 10:13:58.10ID:OEZEPVDp二年くらい使うとよくあること
0925名前は開発中のものです。
2011/11/26(土) 23:17:39.27ID:QH0bOgq0GetWindowCRect( &Rect ) ;
if( Rect.bottom - Rect.top != WinY | Rect.right - Rect.left != WinX )
{
WinX = Rect.right - Rect.left;
WinY = Rect.bottom - Rect.top;
SetGraphMode(WinX,WinY,32);
}
このコードだとウィンドウサイズが次々変化してしまうんだが
何がおかしいのか分からん
0926名前は開発中のものです。
2011/11/26(土) 23:44:57.27ID:2yTQNpigそれぞれの数値表示させてみればわかるんじゃないかな?
知らんからわからんが、GetWindowCRectのright,bottomって「右下の座標」を返すんだよな?
だとしたら640*480なら639,479だったりするんじゃないのかな。
0927名前は開発中のものです。
2011/11/26(土) 23:59:51.82ID:OK82FRmW「namespace DxLib{}」
でも、「DxLib::」と書かなくても使えますよね?
ヘッダのどの部分がそのようにしているのですか?
と、ここまで書いてみて、ヘッダを眺めていたのですが、ファイルの最後の方に書いてある「using namespace DxLib ;」ですよね?
おぉ、納得。
これは初心者がとっつきやすくするためでしょうか?
確かにc言語しか知らなかった私が、「DxLib::DxLib_Init()」とか書かれたら、盛大に挫折したと思います。
他に何か良い点があれば、せっかくなので教えて欲しいです。
0928名前は開発中のものです。
2011/11/27(日) 00:47:50.41ID:hpd7z3rfヘッダファイル読むと、結構世界が変わるんだよねー。
向こうでは、ちょっと厳しい言い方になってしまってすまない。
ご想像通り、DXライブラリは基本的にC++用のライブラリだが、
C言語だけの知識だけでも使えるような設計になっている。これは昔から変わっていないはず。
そういった設計思想に従い、最初は名前空間なんかも用意してなかったと思うんだけど、
作者さん自身も、VisualStudioのクラスビューが使い物にならないと感じていたらしい。
たぶん規模が大きくなると追加しにくくなるし、他にやりたい機能もあるだろうし、ということで後回しになってたんだろうね。
しかし、そこは仕事の早いことで有名なDXライブラリ作者さん。
BBSで名前空間の要望が出された直後、テスト版ライブラリにて実装してしまったという。
で、確か2.25cあたりから、名前空間が設定されるようになった。
using〜 がセットで記述されているのは、ライブラリとしての互換性を維持するためというのもある。
0929名前は開発中のものです。
2011/11/27(日) 04:02:26.21ID:ebscUfh5FFTとかタクティクスオウガみたいな2.5Dのゲームのシステムを
DXLibで作るのってとてつもなく難しそうなんだけど・・・
0930名前は開発中のものです。
2011/11/27(日) 04:08:43.98ID:OmS8bxuYだってFFTのアレは奥行きを考慮せずに3Dで描画してるだけだもの
0931名前は開発中のものです。
2011/11/27(日) 04:11:28.82ID:ILIUqM7Tちょっとググればいろんな言語でサンプルコードまで出てくるのにDxLibに責任転嫁するとかもうね
0932名前は開発中のものです。
2011/11/27(日) 04:13:24.75ID:OmS8bxuY多分補助ライブラリなしでクォータビューをやるのが大変そうって意味だと思う
0933名前は開発中のものです。
2011/11/27(日) 05:01:37.89ID:Dmi7YjZ+2.5Dなんて考えるから難しそうに思えるだけ。
発想の転換ができてない。
ファミコンですらできてた事なんだからできないはずがない、と思って頭をひねればいい。
0934名前は開発中のものです。
2011/11/27(日) 05:07:42.13ID:Dmi7YjZ+トップビューだと、上下横の3種の素材が必要だが
クォータービューだと、斜め奥向き、斜め手前向きの2種だけで済む。
(無論8方向方式だと話は別だが)
0935名前は開発中のものです。
2011/11/27(日) 06:04:04.91ID:OmS8bxuY0936名前は開発中のものです。
2011/11/27(日) 06:10:34.11ID:Dmi7YjZ+でもパース考えなくていい(というより考えちゃいけない)分
普通の絵よりは難易度下がるよね。
0937名前は開発中のものです。
2011/11/27(日) 12:04:59.96ID:ebscUfh5そういえばマップが回転できるし
クオタービューだと思ってた
0938名前は開発中のものです。
2011/11/27(日) 12:08:36.95ID:rzpnQ2GY内部がどうなってるとかあんまり考える必要はないと思うよ
0939名前は開発中のものです。
2011/11/27(日) 12:09:49.04ID:bWgxc/Sq0940名前は開発中のものです。
2011/11/27(日) 12:43:33.32ID:ebscUfh5ああ、複合してるのか
それは俺には無理っぽい
とりあえず、ポリゴンなしで作ってみるとしよう
サンクス
0941名前は開発中のものです。
2011/11/27(日) 13:19:06.73ID:uvGu1O5g難しさを心配してもしゃーないだろ
0942名前は開発中のものです。
2011/11/27(日) 14:39:58.77ID:riAOuRuW0943名前は開発中のものです。
2011/11/28(月) 06:37:15.23ID:9qyN3uEA例えば、専用のスレッドを起動して、他のスレッドが通常継続中である限り、秒間60回程度動かす、といった使い方でもよいのですか?
これからメッセージループについて資料を漁ろうと思いますが、いまいち意味がわからないです。
0944名前は開発中のものです。
2011/11/28(月) 09:45:53.84ID:9PA9AeWa描画でおかしい動作が見受けられたため
私は諦めました
0945名前は開発中のものです。
2011/11/28(月) 10:46:40.94ID:SQA41oy8好きなようにしたらいい、メッセージが無けりゃたんに戻ってくるだけだし。
0946名前は開発中のものです。
2011/11/28(月) 10:50:40.44ID:F666hCcs中身ソース見てないから知らないけど
0947名前は開発中のものです。
2011/11/28(月) 11:04:54.17ID:9PA9AeWaただし、一度やってみる価値はあります
0948943=910
2011/11/28(月) 21:12:59.17ID:9qyN3uEA皆さんレスありがとうございます。
とりあえず試しで、スレッドを追加して、秒間60回程度ProcessMessageしてみましたが、
Windowのタイトルをつかむことすら出来なかったりな状況は変わりませんでした。
画面の更新は出来るし、CPU使用率もほとんど上がってないのですが…。
画面更新してない停止状態のときは、別のウィンドウが上にくると、その色に塗りつぶされちゃいます。わけわかめ。
スレッド自体は10位起動しているが、描画をするしてるのは主に描画用の1スレッドだけなんだがなぁ…。
つд`)
マルチスレッドはだめだ!
いや、そんなばかな。あばばばば。
0949名前は開発中のものです。
2011/11/28(月) 21:42:37.86ID:uCsl9daM=ウィンドウを作成したスレッドでメッセージ処理をしないとならない
Windowsの基本な
0950943=910
2011/11/28(月) 21:51:22.62ID:9qyN3uEA当たり前なのかも知れないですけど、後進の役に立てばとおもい、スレ汚ししていきます。
@DxLib_Init() は、描画を行うスレッドでおこなう。DXライブラリのウィンドウはそのスレのもの。
(これは、Win32APIに詳しい人なら当たり前にわかることなのかも?)
AProcessMessage() は、ウィンドウの持ち主=描画を行うスレ=DxLib_Init()をしたスレが行う必要がある。
(他のスレにやらせても、意味ないくさかった。)
B描画を行う内容がなくても、最新の内容orすっからかん で描画(ScreenFlip()とか)しないと画面更新されないのね。
(そういうものだと言われれば納得だけど、自動で最新を維持してくれるのかと妄想してた。)
C描画スレが管理している裏画面へ別スレッドに書き込みを委譲するのは試していない。
(けど、気になるからそのうちやるかも。)
サーセンでした。ありがとうございました。
0951943=910
2011/11/28(月) 22:05:25.03ID:9qyN3uEAどもです。
ということは、もしかして、
DxLib_Init()したスレで何とかしてMessageProcess()できれば、
描画スレとは別でもいいってことですかね。今度試してみよう、今日は疲れた。
0952名前は開発中のものです。
2011/11/28(月) 22:19:27.20ID:A9iTiZ3Aうろ覚えだけど、それって公式の掲示板の過去ログになかった?
「スレッド」で検索して、、、わしも昔マルチスレッド+DX ライブラリのわなにはまった。
0953名前は開発中のものです。
2011/11/29(火) 00:31:56.08ID:c68IVOZBなんか見たことないオブジェクトとプロパティが多すぎて、使いこなせるわけがない
DXlibでも3dできるからこっちにしようか迷ってる
0954名前は開発中のものです。
2011/11/29(火) 00:45:59.99ID:W1qfXSqu前者はゲームエンジンだし
0955名前は開発中のものです。
2011/11/29(火) 02:00:50.86ID:1OufULBQ迷わずインスコして手を動かしてなんか作れ
言語を選ぶのはそれからだ
0956名前は開発中のものです。
2011/11/29(火) 10:27:01.33ID:6DNMifKqそれさえ出来れば後はなんとかなるんだが
0957名前は開発中のものです。
2011/11/29(火) 10:31:22.65ID:E9cixHcQそもそも選択肢がメタセコイアかブレンダーぐらいしかない
有料でも使えそうなのは高いのばかり
0958名前は開発中のものです。
2011/11/29(火) 12:08:06.95ID:9GvbSTd10959名前は開発中のものです。
2011/11/29(火) 12:12:42.35ID:c68IVOZBメタセコで遊び半分で龍とか妖怪とか色々作れて、モデリングとか楽しいわとか思ってたのに
いざこれをUnityで使うとなると、2Dゲームの様には行かなかった
まあ、でもなんとなく分かってきた感じはあるからもう少し頑張ってみるわ
つかUnityはスクリプトでクラス継承しすぎなんだよ、ボケ
0960名前は開発中のものです。
2011/11/29(火) 12:16:25.82ID:6xrRYLVJ0961名前は開発中のものです。
2011/11/29(火) 12:16:45.40ID:AQofl8BGちょっとしたゲームエンジンとか物理演算いれると難易度上がるし
DXライブラリで利用しずらいけど
0962名前は開発中のものです。
2011/11/29(火) 15:23:27.75ID:Pe8/Zu5Mという質問をしようとして、ヘッダファイルを覗いたところ、SetAlwaysRunFlag()をみつけました。
本当にありがとうございました。
関数の戻り値なんですが、Get系じゃないものは、
正常:0
異常:0じゃない
というくらいでOKですか?
これもヘッダをかなり覚える必要があるのでしょうか?
0963名前は開発中のものです。
2011/11/29(火) 16:10:23.93ID:oCb3GT8y大体は公式サイトにあるだろうし。
0964名前は開発中のものです。
2011/11/29(火) 17:50:44.24ID:woc2O05sあってもよさそうなんだが
0965名前は開発中のものです。
2011/11/29(火) 18:02:57.53ID:OYPVNw+c0966名前は開発中のものです。
2011/11/30(水) 00:49:23.03ID:e5eHbRnzエンジンとかで活かせるものなのかね?
0967名前は開発中のものです。
2011/11/30(水) 00:53:09.43ID:siAw3bpNDXライブラリは描画だけしかしないし、他の環境に移ったときにも身につけた技術を活かせるのをウリにしてる
関数一つで描画できるからライブラリ色が薄い
むしろ他ライブラリで身につけた技術ほど他に活かせない
なぜならガッチガチに独自仕様で固めてるから。
描画するならこのクラスに命令飛ばせーだの角度は256が最大の独自形式で指定してな!だの
0968名前は開発中のものです。
2011/11/30(水) 12:09:31.75ID:KoxRdVm8セーブデータ作りとか
自前だと破損調べるのとか面倒で
0969名前は開発中のものです。
2011/11/30(水) 12:39:30.09ID:4B3OKb0l0970名前は開発中のものです。
2011/11/30(水) 12:52:41.70ID:3oPNQCX+0971名前は開発中のものです。
2011/11/30(水) 13:27:53.54ID:NhGul0e7拡張子変えただけのZIPにして処理を丸投げでも十分すぎる
0972名前は開発中のものです。
2011/11/30(水) 15:07:01.63ID:DDM/+rbCまず「俺のゲームのデータ改変してまで遊んでくれるやついねーだろうな」
という気持ちが先立つわ。
0973名前は開発中のものです。
2011/11/30(水) 17:09:20.30ID:rIlC0MtK0974名前は開発中のものです。
2011/11/30(水) 17:12:03.42ID:OwyyYVWt0975名前は開発中のものです。
2011/11/30(水) 17:16:03.46ID:DDM/+rbCチェックサムと聞くと昔雑誌のマシン語プログラムを
バイナリエディタでせこせこ入れては暴走させて
ちまちまチェックサム確認してた思い出が頭をよぎるだけで。
0976名前は開発中のものです。
2011/11/30(水) 17:16:42.06ID:3oPNQCX+そういう人っているのかな?
0977名前は開発中のものです。
2011/11/30(水) 18:04:50.04ID:rLIwVb2Dまあ、ハイスコアと隠しステージ出現フラグくらいしか無いけどな。
[Game]
HighScore=10000
SecretLevel=1
Debug=0
こんな感じで。
0978名前は開発中のものです。
2011/11/30(水) 18:18:16.55ID:shPTgyIh自分がプレイ中のゲームで厨房が改造の話を始めたりすると俺は萎えるけど
そもそも起動中プロセスのメモリいじくれば何でもできちゃうからなー
0979名前は開発中のものです。
2011/11/30(水) 19:32:48.28ID:1kartXUkGetRand(360)と<math.h>をランダムに傾けたいのですがインクルードし、三角関数で頂点を求め・・・
というのは思いつきますが、かなり面倒です。
具体的には↓の動画(素人の実況なので、苦手な方はお手数ですがミュートをお願いします)
http://www.nicovideo.jp/watch/sm13480051
の6:17秒の標的をロックオンした時のエフェクトを作りたいと思っています。
0980名前は開発中のものです。
2011/11/30(水) 19:47:24.87ID:rLIwVb2D面倒なら、画像として用意しておいて DrawRotaGraph しちゃえば?
0981名前は開発中のものです。
2011/11/30(水) 20:05:21.03ID:1kartXUkあ、なるほど。こういう使い方ができるのですね
ありがとうございます
0982名前は開発中のものです。
2011/11/30(水) 20:30:44.91ID:7fBGf6TYランダムと言うよりは、四角形を回転させながら縮小させている気がする。
位置とタイミングがずれてるのが重なってるからそう見えてるだけで。
0983名前は開発中のものです。
2011/11/30(水) 20:38:21.81ID:1kartXUkあ、ホントですね。こういうののほうがカッコイイのかなぁ
エフェクトは難しいですね
0984名前は開発中のものです。
2011/11/30(水) 20:45:46.65ID:QKMdxPPN四角のグラフィックを用意して、DrawRotaGraphで回転させれば良い感じになりそう。
0985名前は開発中のものです。
2011/11/30(水) 20:53:00.87ID:OwyyYVWt0986名前は開発中のものです。
2011/11/30(水) 23:25:41.92ID:F64/yx6U正方形なんだからかなり面倒どころか一番単純じゃない?
現在三角関数がわからないから三角関数の理解が面倒臭いという意味かな?
ぶっちゃけ中心点からランダムなx方向、y方向の距離を取ってやって、
符号変えたりx方向とy方向を入れ替えてやったりすりゃ計算すらしないで正方形の頂点4つ作れるじゃん。
後エフェクトがかっこいいかどうかは少し突っ込みどころ。
0987名前は開発中のものです。
2011/12/01(木) 14:08:24.04ID:Yep5bMoDコードが冗長になって困っています
現在は↓のような感じです。
/*キー押下状態の配列*/
char Buf[ 256 ] ;
/*F8キーを押下 処理1*/
if( Buf[ KEY_INPUT_F8 ] == 1 )
{
syori1();
}
/*F7キーを押下 処理2*/
if( Buf[ KEY_INPUT_F7 ] == 1 )
{
syori2();
}
/*F6キーを・・・
これらをまとめたいのですが、何かいい方法はありますか?
/*理想*/
if(・・・ Buf[ KEY_INPUT_F7 ] == 1 || Buf[ KEY_INPUT_F8 ] == 1 || Buf[ KEY_INPUT_F9 ] == 1 ・・・ )
{
syorix();
}
・・・ Buf[ KEY_INPUT_F7 ] == 1 || Buf[ KEY_INPUT_F8 ] == 1 || Buf[ KEY_INPUT_F9 ] == 1 ・・・
の部分をまとめたいのです
それとも
syorix(Buf);
と言う風に配列を渡し、関数を毎回実行するものなのでしょうか
0988名前は開発中のものです。
2011/12/01(木) 14:15:29.74ID:cOSg0SVs0989名前は開発中のものです。
2011/12/01(木) 14:26:41.93ID:Yep5bMoDありがとうございます
関数ポインタ挑戦してまみす
0990名前は開発中のものです。
2011/12/01(木) 15:32:29.24ID:3DnzThw0syorix(Buf)は最初の処理が関数化されただけかもしれないが結局は細かく分けると一番いい気がする
同じ優先度のキーコードと関数ポインタの構造体配列を作りループで回すと
斜めとか同時押し処理は面倒だけど綺麗にはなるのかも
0991名前は開発中のものです。
2011/12/01(木) 22:52:49.54ID:8OKTnJs1どうしたらいいでしょうか?
Key[256];
int keyclip(){
char tkey[256];
GetHitKeyStateAll(tkey);
for(int i=0;i<256;i++){
if(tkey[i]!=0){
Key[i]++;
}else{
Key[i]=0;
}
}
}
int inputkey(char input){
return Key[input];
}
↑別ファイル
呼び出し
if(inputkey(KEY_INPUT_W)%=2){}
エラーで左側のオペランドが左辺値になってませんといわれます
KEY_INPUT_Wの定義がD_DIK_Wとかいう文字列?なんですが、これは一体どうしたら
0992名前は開発中のものです。
2011/12/01(木) 22:57:41.66ID:b3NpsyN80993名前は開発中のものです。
2011/12/01(木) 22:58:44.68ID:AzCz4IDeエラーメッセージは %= の演算子は変数に対して使うものって言ってる
0994名前は開発中のものです。
2011/12/01(木) 23:00:07.89ID:g6g3WWlu0995名前は開発中のものです。
2011/12/01(木) 23:57:31.59ID:8OKTnJs1>>992
それはどういう・・・?
レス数が950を超えています。1000を超えると書き込みができなくなります。