DXライブラリ 総合スレッド 2008
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/10/25(土) 17:37:53ID:BCFbbKcoGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
過去スレ:DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
0699名前は開発中のものです。
2009/03/01(日) 10:54:11ID:gjx3PjZUごめん。
よく読んだ上で書いたけどわからない。
理解力なくてすまん。きっと俺が間違っている。
が、これは瑣末な問題なので暇なときにでも考えておくとして…
>>693
>一応応用テクニックとして、HSPからDXライブラリを呼ぶ方法とかだったら需要ある?
これ興味あるかな。
0700名前は開発中のものです。
2009/03/01(日) 11:24:01ID:oPHW1ePYハンドル分けたらだめ
一つのハンドルから転送元の領域を指定して描画するんだよ
同じテクスチャを連続して使うときは切り替えが行われないからその分効率が良くなる
0701名前は開発中のものです。
2009/03/01(日) 11:38:25ID:ey11ozVK>>698
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1089
>>699
ここのNo.4に書いてある高速描画云々のところ読めば分かる
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1162
読みこみ速度は同じだけど描画速度は
一枚の画像を読み込み複数に分けハンドルを取得 > 複数の画像を読み込みそれぞれをハンドルを取得
0702名前は開発中のものです。
2009/03/01(日) 11:39:47ID:a7Bg5ATd0703名前は開発中のものです。
2009/03/01(日) 11:44:24ID:oPHW1ePY0704名前は開発中のものです。
2009/03/01(日) 13:22:39ID:gjx3PjZUなるほど
理解したdクス
>>701
読んでみる
>>702
今更HSP使う気はないけどやり方にはちょっと興味が
0705名前は開発中のものです。
2009/03/01(日) 13:39:31ID:9rIzOA3I乙
前にHSPから使ったりしてたけど、わざわざHSPから呼び出す必要があまり無いような気がしたのでVC導入したな
0706名前は開発中のものです。
2009/03/01(日) 14:11:25ID:idjBCaEsなるほど
StateResetFlagは初期値FALSEになってるやつか、完全に見落としてたアリガトウ
>>702
HSP使うメリットってなんだろう、(うろ覚えだけど)3D処理が簡単なDLLかなんかがあったよね?
でも、それ使うなら最初からHSP使えばいいし……
自分から言っといてなんだがメリット見えないやごめんw
DXライブラリの可能性を追求しようと思ってドラッグ&ドロップで画像表示するアプリ作ろうと思ったらこんなに時間かかっちゃったよ
やっぱりアプリ系はおとなしくWINAPI使うに限るorz
http://www3.uploader.jp/t/nico/images/nico_uljp00021.zip
ふ、と思ったんだけどこのスレ結構知識ある人多いしうpロダでも用意しとけばサンプル集みたいなの作れるしいいんじゃね?
人のソース見れるってのは、(俺含め)初心者にはとてもありがたいんだよね
0707名前は開発中のものです。
2009/03/01(日) 14:27:12ID:ZNmLTGrU0708名前は開発中のものです。
2009/03/01(日) 14:51:26ID:lYNtcth60709名前は開発中のものです。
2009/03/01(日) 15:45:22ID:z/eFYQPp一応動いているが、初心者どころの問題じゃない。
0710名前は開発中のものです。
2009/03/01(日) 16:15:26ID:xm1UJhmc指摘されればどこが良くて悪いのかが分かって次に必ず生かせる。
リアル知人じゃなくて2chで晒すのがいいかはよくわからんが・・・
うpするのとは話がちょっと違うけどここでも読んでみるといい
http://www.kojima-cci.or.jp/fuji/mybooks/cdiag/cdiag.0.6.html
0711名前は開発中のものです。
2009/03/01(日) 16:37:16ID:g9LGhZvF0712名前は開発中のものです。
2009/03/01(日) 16:45:33ID:c9LYSV+3きれいに書いたpngだとぜんぜん解像度違うような気がして変になっちまった。
ドット絵の設定ミス?それともpngにそろえるべきかな。。
0713名前は開発中のものです。
2009/03/01(日) 18:31:12ID:a1nbTQe/0714名前は開発中のものです。
2009/03/01(日) 23:17:37ID:2a8K6SCCグラデーションの画像を極座標変換?して
円形の画像を作成しているのだけれど、
これが何をやっているのかよくわからん。
0715名前は開発中のものです。
2009/03/01(日) 23:25:10ID:oPHW1ePY0716名前は開発中のものです。
2009/03/01(日) 23:54:03ID:A8mpIuw80717名前は開発中のものです。
2009/03/02(月) 00:15:56ID:ziDQhibJ0718名前は開発中のものです。
2009/03/02(月) 00:35:55ID:hEBh+N4j多分違うと思うぞ
Pixel氏が以前DirectX2だか3だかを使って作ったって言ってたし
何か勘違いしてああ答えたか、若しくは今作ってるゲームにDXライブラリを使ってるんだろう
0719名前は開発中のものです。
2009/03/02(月) 01:43:24ID:3riYRQc6フルスクリーンにしないといけないから制約はあると思うけど
0720名前は開発中のものです。
2009/03/02(月) 01:47:07ID:7FxY5OR7あれいじればできるんじゃね?
0721名前は開発中のものです。
2009/03/02(月) 01:52:06ID:x0I/gxMTSetGraphMode( 800 , 600 , 32 ); で800*600になる
0722名前は開発中のものです。
2009/03/02(月) 02:06:23ID:3riYRQc6ライブラリ書き換えるのはアウトだろ常識的に考えて……
そのせいでいつどこでバグが起こるかわからぬ
>>721
サンクス
画面モードの変更で解像度が変えれるとは、単語検索で見つからないわけだ
0723名前は開発中のものです。
2009/03/02(月) 02:13:56ID:PBT6djln一覧を一通り目を通せば済むだろ。
0724名前は開発中のものです。
2009/03/02(月) 06:43:49ID:+ax8ZdoD上から下まで読むんだけどなぁ・・・
0725名前は開発中のものです。
2009/03/02(月) 08:17:17ID:vDZSfAmrでも文字表示とかDXライブラリっぽいよな
0726名前は開発中のものです。
2009/03/02(月) 11:57:41ID:6eQe3/TVリファレンスをさらさらっと流して、「これなら俺にも使えるんじゃないかな?」と思って
使い始めたな。
別に覚えなくても、一度目を通しておけば、
後になって「こういう事がしたいけど、それっぽい命令あったよな……」って
探しやすくなるしな。
0727名前は開発中のものです。
2009/03/02(月) 20:14:38ID:hc/QEiU+DirectXでゲームを作るっていうジャンルに関して革命的だし、最早XNAなんかも超えてると言っても過言ではない。
0728名前は開発中のものです。
2009/03/02(月) 20:18:02ID:qXNeI5og0729名前は開発中のものです。
2009/03/02(月) 21:13:54ID:Rv93cI1M0730名前は開発中のものです。
2009/03/02(月) 21:38:18ID:3lZqI4Auそこじゃねーだろwww
0731名前は開発中のものです。
2009/03/02(月) 21:42:53ID:3lZqI4Au0732名前は開発中のものです。
2009/03/02(月) 22:25:14ID:ziDQhibJ一枚一枚画像を作ってパラパラ漫画みたいにアニメーションさせるのとどっちが負荷低いかな
0733名前は開発中のものです。
2009/03/02(月) 22:54:20ID:qXNeI5og原理的に変わらないはず
0734名前は開発中のものです。
2009/03/02(月) 22:57:12ID:qXNeI5ogまあ変わらん
0735名前は開発中のものです。
2009/03/03(火) 01:09:39ID:vuUaUlBc回転ありの描画命令よりは回転なしの方が負荷は軽いだろうけど、
大した差じゃないみたいだし、好きにしていいんじゃないかな。
0736名前は開発中のものです。
2009/03/03(火) 02:53:14ID:l+63ggMa512x512のパーツが回ってるぜ!とか
回転角度に応じて256パターンの画像を用意しました!
みたいな変なことやってなきゃ大丈夫だろう
0737名前は開発中のものです。
2009/03/03(火) 03:53:26ID:wZU6jxH0パラパラ漫画が全部VRAMに乗るとは限らないし、
1フレーム1枚のように別テクスチャ作るのであればさらに重くなる。
1枚でまとめる場合も、作成できるテクスチャサイズ制限があるハードウェアが過去にあり、
(Voodoo時代ではテクスチャサイズが256*256が最大であった)
そのような場合、DXライブラリではテクスチャ分割が行われるので、
大きなテクスチャを作るとパフォーマンスが犠牲になります。
なので、回転・反転・拡大縮小などといった
Direct3Dによるハードウェア支援で記述できる内容であるのなら、前者の方がパフォーマンスがよくなります。
ちなみに後者で実装するのであれば、テクスチャのサイズは正方形が望ましいですよ。
0738名前は開発中のものです。
2009/03/03(火) 04:22:48ID:l+63ggMa最初から画像を用意しておいた方が綺麗に見えることは多々あるな。
プレイヤーキャラの画像など、
重要そうな部分だけパターンを用意しておくのも悪くない。
0739名前は開発中のものです。
2009/03/03(火) 09:38:20ID:HSt7mZci>正方形
一辺の長さが2の倍数の正方形ね
0740名前は開発中のものです。
2009/03/03(火) 14:11:43ID:lmHLCC6G> 2の倍数
2の累乗ね
0741名前は開発中のものです。
2009/03/04(水) 10:39:32ID:IqyXTxRbグラフィックハンドルがintって事は、持てるグラフィックハンドルの最大数は約32000って事?
0742名前は開発中のものです。
2009/03/04(水) 10:43:25ID:OmVViNLoその前にメモリがなくなるだろうけど
0743名前は開発中のものです。
2009/03/04(水) 16:29:04ID:aWTUpMQ10744名前は開発中のものです。
2009/03/04(水) 17:38:35ID:IqyXTxRbintってそんなに長かったっけ?
>>743
ちゃんと1つずつID割り振って読み込んでるみたい。
0745名前は開発中のものです。
2009/03/04(水) 18:29:44ID:Q764ubCY符号無しintは2^32
符号ありintは2^31(符号に1bit使用)
プログラミングしてるなら知ってて当然だろ…
0746名前は開発中のものです。
2009/03/04(水) 18:29:46ID:zCrgAKk6おまえさんのいってるのは short int
0747名前は開発中のものです。
2009/03/04(水) 19:26:33ID:IqyXTxRbなんで勘違いしてたんだろう……
0748名前は開発中のものです。
2009/03/05(木) 00:07:34ID:aVo6G4mJ何を言ってるんだ?
東方はDXライブラリ使ってないぞ
0749名前は開発中のものです。
2009/03/05(木) 10:15:06ID:MO3/QFgO透過処理というのをしたんですけど
下記のコードだと正常に透過処理されます。
LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;
しかし
LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;
LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
とすると透過処理されません
なぜでしょうか?
0750名前は開発中のものです。
2009/03/05(木) 10:26:43ID:ddVb/3t1旧VBのIntegerが16bitなのと混ざってない?
>745
ハードは関係ない。コンパイラが決定する。
16bitアプリを32bitハードやOSで走らせても
intが勝手に32bitになったりしない。
処理系にあわせて決定するのが自然なだけ。
0751名前は開発中のものです。
2009/03/05(木) 11:04:56ID:B3wyDoGNはい? え?
back.bmp を透過処理なしで描いた上に、char.png を透過処理ありで描いたらそりゃちゃんと透過処理されるだろうけど
char.png を透過処理ありで描いた上に、back.bmp を透過処理なしで描いたらそりゃ上書きされるだけだと思うんだが……。
0752名前は開発中のものです。
2009/03/05(木) 12:34:23ID:+9ctDc2hあー、昔に見た資料がかなり古いものだったから間違って覚えてたのかも
0753名前は開発中のものです。
2009/03/06(金) 21:17:00ID:pmzRauOhリファレンス見る限り見当たらないのですが
0754名前は開発中のものです。
2009/03/06(金) 21:34:26ID:+Tdk650S透過の度合いはPal引数
クラス使って透過率とグラフィックハンドルをまとめて管理するようにするといい
0755名前は開発中のものです。
2009/03/06(金) 21:46:01ID:pmzRauOh即レスありがとう^^
うまくできました!!
0756名前は開発中のものです。
2009/03/06(金) 23:45:45ID:HF/v1JaI0757名前は開発中のものです。
2009/03/07(土) 00:24:08ID:3MouTLA1本家DXライブラリにテクスチャ付モデルとフォグ表示機能だけあれば最高なんだが
0758名前は開発中のものです。
2009/03/07(土) 01:56:55ID:JfYg6t6e意外と簡単に組めたよ。
ポリゴン事に情報を配列に落として、座標を変換してVERTEX配列に入れてから描画。
フォグは出来なかったから単色背景+奥の頂点を透過で誤魔化してる。
0759名前は開発中のものです。
2009/03/07(土) 07:03:57ID:pCqKP5AO仕様ですか?
他で初期化するから別に問題ないけど。
0760名前は開発中のものです。
2009/03/07(土) 08:46:35ID:9xqjyk6rでもLoadGraphみたいな失敗しやすいものをコンストラクタで使うのはあまり好ましくない
0761名前は開発中のものです。
2009/03/07(土) 13:25:49ID:d6ZakwC30762名前は開発中のものです。
2009/03/07(土) 20:23:03ID:83odH6gl0763名前は開発中のものです。
2009/03/08(日) 01:02:04ID:sz9LKWkIんなこたないw
0764名前は開発中のものです。
2009/03/08(日) 01:07:09ID:PVP1w5NP.r==x r==x
/三/.|/三/ |
(三(/(三(/_/
l ̄¨'| ̄ ̄¨|
l;::::::::|:::::::::::::l
l;::::::::|:::::::::::::l
l;::::::::|:::::::::::::l
l;::::::::|:::::::::::::l
l;::::::::|:::::::::::::l
l;{==}!::{==}:::l
r|:::::::::::::::::::::::|
_ノ  ̄`ー--、,;;l~ヽ
,∠==、ヽ `i'ー- . l
/ ヽ| 「`'ー、`ー、 .ノ
l ミ| / `ー、ヽ
/j R|イ ー-ァ、. Y゙
{ [`ュハハハr''~] ̄ ___ノ ソースうpお願いします!!!!!!!!!!
0765名前は開発中のものです。
2009/03/08(日) 02:05:16ID:Os5GQobq今PC故障中で携帯から書き込んでるので、一週間後位になるけど……
龍神録プログラミングの館に似たような内容の講座があったので、
それを参考にした方が早いかも?
自分のソースと比べた所、アルゴリズムは大差なかったし
0766名前は開発中のものです。
2009/03/08(日) 03:07:46ID:PA5CtbPk>>762
それだわ。
メインループの外だったよ。
0767名前は開発中のものです。
2009/03/08(日) 07:29:17ID:CGpW+st2そうなの?
憂鬱本かなにかにコンストラクタで複雑な処理はやめたほうがいいって
書いてあったから信じてたよ。
0768名前は開発中のものです。
2009/03/08(日) 11:20:16ID:lUOcnlf/0769名前は開発中のものです。
2009/03/08(日) 11:49:19ID:8uH2yrBU失敗したら絶対に例外を投げること
そうでなければダメ
0770名前は開発中のものです。
2009/03/08(日) 13:15:29ID:sz9LKWkI言語仕様的にはまったく問題ない
>768が言ってるように、
その本には別の理由でやめたほうがいいって言ってるんだと思うよ
ただし、staticなインスタンスは例外で
この場合、mainが呼ばれる前のスタートアップルーチンで
インスタンスが生成されるのでコンストラクタでは
初期化以外のことをやるとまずい
0771名前は開発中のものです。
2009/03/08(日) 15:28:40ID:Os5GQobq0772名前は開発中のものです。
2009/03/08(日) 15:35:38ID:26PtmX+Gそれを気にしてたら、世の中作品なんて生まれない。
大丈夫、何ら問題ない。思う存分やれ。キミは盗作じゃない。
……自分のやりたいことを、他の人が作ったのでそれで満足しちゃったなら知らんw
(こっちもよくある話だけどな!)
0773名前は開発中のものです。
2009/03/08(日) 17:25:05ID:tah76f/h0774761
2009/03/08(日) 18:12:09ID:pjH2xL1q俺も>>767のように憂鬱本で読んで信じてきたんだけど、後学のために教えて欲しい。
まず憂鬱本にはこんな風に書いてある。
・コンストラクタやデストラクタはあまり難しい処理をするのは考え物。
1・返り値を持つことが出来ない。
2・インスタンスが完全な状態ではない。
3・外部変数としてクラスインスタンスがある場合、コンストラクタやデストラクタはmain()の走る前、後になる。
>>770さんが言っているのは3の場合で、この本によると
「ポインタとして宣言しておきmain()が走った後でその中でnewする」
という解決策が書いてある。
で、問題の2にははっきりと
「コンストラクタ、デストラクタが走っているときは、インスタンスは完全な状態ではない」
と書いてあり、
「実は内部的にはそのインスタンスの使用するメモリの取得/解放とそれに伴う複雑な作業も行っている」
「インスタンス自体がまだ生成途中であり、内部的にはまだ不安定な状態」
と書いてあります。
問題点は、
「このような状態で他のクラスのインスタンスのメンバ関数を読んだりすると巡り巡ってまだ生成途中の自分自身のメンバ関数が呼ばれるかもしれないから」
との事です。
C#なんかではコンストラクタでのメソッドの呼び出しなども保障されてますが、C++では言語使用的には保障されていない、と解釈したのですがここらへんどうなんでしょうか?
0775名前は開発中のものです。
2009/03/08(日) 19:09:05ID:CrTNgcou今どき2Dだけじゃなぁ
0776名前は開発中のものです。
2009/03/08(日) 19:25:34ID:tHlNETTLいや、意味が分らん。
碌にDirectXすら使えない人間が3Dに手をだしてどうしたいんだ?
むしろ、本家は本家であの程度でまとまってるからこそ良いライブラリだろ。
もっと色々とやりたかったら海外の3Dライブラリをあさればいい。高機能の多いぞ。
(まぁ、普通に日本語対応がメンドイけど。)
0777名前は開発中のものです。
2009/03/08(日) 19:52:53ID:CrTNgcou0778名前は開発中のものです。
2009/03/08(日) 23:53:47ID:Os5GQobq弾幕毎に名前付けてるから、気を付けないとまんまになっちゃうんだよね
もう開き直っちゃおうかな……
0779名前は開発中のものです。
2009/03/09(月) 00:24:37ID:y+3gsDNg0780名前は開発中のものです。
2009/03/09(月) 05:38:20ID:xYWyf4vJ変なこと気にせず好きにやっちゃえYO!
0781名前は開発中のものです。
2009/03/09(月) 13:06:42ID:Ge4atQjd0782名前は開発中のものです。
2009/03/09(月) 13:28:18ID:1MIteGprなんという屈辱を。
0783名前は開発中のものです。
2009/03/09(月) 14:58:21ID:Yq7DJGmBここで愚痴る前にちゃっちゃと完成させて
もう東方に先を越されないようにすればいいじゃない
0784名前は開発中のものです。
2009/03/09(月) 15:06:44ID:mr6tRDyA0785名前は開発中のものです。
2009/03/09(月) 15:12:00ID:anLE8kz6低速移動時に敵を貫通するとかボム使うとパワーが減るとかその辺りか?
0786名前は開発中のものです。
2009/03/09(月) 15:54:45ID:z4EGzSSUこうやって悩むのもゲーム制作の楽しさの一つなので……
気分を害されたのならすいません
>>785
点レートアイテムとか、特殊アイテムを取るとボーナス敵が出る点が……
0787名前は開発中のものです。
2009/03/09(月) 17:01:47ID:GzA1DnX10788名前は開発中のものです。
2009/03/09(月) 18:04:17ID:dWRPooR0A1.はい、参考にしました。
→盗作イクナイ! 俺の好きな○○を汚すな! ○○の公式サイトのBBSに通報(?)書き込み
A2.いいえ、オリジナルです。似ているのは偶然でしょう。
→嘘を言うな、正直に言えよ
A3.いいえ、○○ではなく△△のパクりです。
→そんなん知らねーよ! △△も○○のパクりだな!
実際にあるから困る。
0789名前は開発中のものです。
2009/03/09(月) 18:28:11ID:aHHsyNV0作ることにも価値がある
0790名前は開発中のものです。
2009/03/09(月) 18:40:02ID:6kYj4gTE何も答えないのがベスト。ただただ、事務的返しで流すべし。
あと、>>786みたいのは 東方以前からあるのばっかじゃねぇかよwww
それこそ、ファミコン全盛の時代(のアーケード)から・・・・
「今更それを先を越されたとかwww」
と言われるのが落ちじゃね?
0791名前は開発中のものです。
2009/03/09(月) 18:51:35ID:z4EGzSSU前作が東方をリスペクトしたものだったので、今回も素直に断り書きを入れてみます
0792名前は開発中のものです。
2009/03/09(月) 19:02:29ID:dWRPooR00793名前は開発中のものです。
2009/03/09(月) 21:33:00ID:Zw6a9bk0知ってるとは思うがこれにはずっと期待してる
0794名前は開発中のものです。
2009/03/09(月) 22:34:04ID:GzA1DnX1char a[256]
GetHitKeyStateAll(char *a)
つかうとうまくできねぇ。。
ポインタをctrcmpやるのはおかしいの?
それとも配列に入ってるのがおかしいの?
俺の頭がおかしいの?
0795名前は開発中のものです。
2009/03/09(月) 23:19:34ID:2qC8QqlY遅レスだがコンストラクタについて幾つか書きます。
さすがに長文書いてコメントが無いのは可哀想だったから。
昔の言語仕様ではコンストラクタではインスタンスの生成途中であるから複雑な処理を書かないようにしていた。これは慣習・慣例の部類の話。
コンパイラの亜種が多くて、C++の仕様外の範疇での動作はどのようになっているのか分からない時代だったからという背景もある。
自分はコンストラクタに初期化処理を噛ませる横着な書き方をしていたときに先輩に指摘された事は、1,2,3以外にも、、、
・クラス設計者とクラス利用者は同じでない
⇒利用者がstaticで外部変数なインスタンスを生成するかもしれないから、
mainよりも先に呼ばれる処理に複雑な記述を置くべきでない。
つまり、利用者の立場になって明示的に初期化処理を宣言するべき。(手を抜くな)
・戻り値を持たない件に関して、例外処理を使うのは怠惰な手段である。
⇒try-catchを用いるのは、デバッグの最終手段である。(例外処理はネストできない為)
例外処理は一般的にコンパイラの最適化の阻害となり遅くなる要因となる。(ジャンプテーブルを生成する為)
つまり、保持値チェックにはassert使えというお話。
⇒メモリ確保に失敗する危険性をもっと認識するべき
特定のハードウェアを対象にする場合、大概は独自のメモリアロケーター(dlmalloc等)を実装していることが多く、
new失敗の可能性(インスタンス生成失敗)は大いにある。
とのことでした。
>問題点は、
>「このような状態で他のクラスのインスタンスのメンバ関数を読んだりすると巡り巡ってまだ生成途中の自分自身のメンバ関数が呼ばれるかもしれないから」
>との事です。
これには同意です。
だから「コンストラクタに記述するのはせいぜいメンバ変数に対して初期値の代入ぐらい」に留めている人が大半で自分もそうしています。
いや〜、バグの無いプログラムって難しいですね。
0796名前は開発中のものです。
2009/03/09(月) 23:31:07ID:2qC8QqlY上手くできないってどういう意味?
char m_cKey[2][256]; //キーバッファ
とでもして
毎フレーム
void GetAllState(){
memcpy(m_cKey[1],m_cKey[0],256);
::GetHitKeyStateAll(m_cKey[0]);
}
を呼んで、
int GetKeyPress(int KeyCode){return m_cKey[0][KeyCode];}//キーが押されているかどうか
int GetKeyDown(int KeyCode){return (m_cKey[0][KeyCode] && !m_cKey[1][KeyCode]);}//キーが押された瞬間
int GetKeyUp(int KeyCode){return (!m_cKey[0][KeyCode] && m_cKey[1][KeyCode]);}//キーが離された瞬間
とでもすればおk
前フレームとの差分で押された瞬間と話された瞬間を検出するべさ
0797名前は開発中のものです。
2009/03/09(月) 23:31:59ID:6kYj4gTE何をやって何ができないのかすら分らん。
とりあえず、×ctrcmp =>○strcmpだと過程しても検討範囲外。
ポインタの使い方とか、関数の使い方は大丈夫だと仮定してもだ・・・・。
そもそも、そのchar a[]が何を入れるか理解してるかい?
そいつらに入るのは、あるキーが押されてるかどうかのon offフラグであって、
押されてるキーがchar型として'o'みたいに入るわけじゃないぞ。
押しっぱなしは、基本的には、
char NowKey[256];
char OldKey[256];
// ....somewhere to initilaize Nowkey[] and OldKey[], to 0.
GetHitKeyStateAll( NowKey );//Now get putting on key
if( NowKey[ KEY_INPUT_Z ] == 1 )
{ if( OldKey[KEY_INPUT_Z] != 1 )
{ PutOnFUNCTION(); // only not on putting Z_KEY.
OldKey[KEY_INPUT_Z]=1;
}
//There is No doing on putting Z_KEY.
}
else
{
OldKey[KEY_INPUT_Z]= 0 ; //No to put Z_KEY, initialize OldKey[] to 0.
}
な感じに書く。
0798名前は開発中のものです。
2009/03/09(月) 23:42:23ID:YtHLVg0Lint pushOK = 0;
とか用意しといて
if (a[チェックしたいキー] && pushOK) {押したときの処理}
if (!a[チェックしたいキー]) pushOK = 1;
とかやればいいじゃない
(※厳密な文法に突っ込むのなしね、あと変数名が良くないことにもね)
■ このスレッドは過去ログ倉庫に格納されています