S-H-GAMELINKS / Novel.Game.Engine.LINKS

ノベルゲームエンジン「LINKS」
Other
13 stars 1 forks source link

[proposal]CheckHitKeyではなくCheckHitKeyAllを使う #21

Open yumetodo opened 7 years ago

yumetodo commented 7 years ago

現在、DxLib::CheckHitKey関数でキー判定している部分と、MoveKey関数内でDxLib::CheckHitKeyAll関数を呼び出してグローバル変数Keyにバッファリングして判定している部分が混在している。

これをCheckHitKeyAllを使うように書き換える。

https://github.com/takeokunn/DoNotPushGame/blob/690bad470932df21c2ccfccd54fc5d3bd91b04f8/Don't_push/Don't_push/source/Dxkeystate.h https://github.com/takeokunn/DoNotPushGame/blob/74c1029008e45a08890005b31aab2e42c45a071c/Don't_push/Don't_push/source/Dxkeystate.cpp にあるkeystateクラスを持ってくる予定。上記はMITライセンスのコードだが、もともと私が書いたコードなのでライセンス的には問題ない。

利点

欠点

S-H-GAMELINKS commented 7 years ago

キー判定が残らなくなるのであれば、導入するのが良いように思います。

キー判定のタイミングが変わるとのことですが、WaitTimer()を使う(#20)よりは良いと考えます。

WaitTimer()を使う場合、処理がストップしてしまうので、どうしても動作が……

yumetodo commented 7 years ago

あ、あのWaitTimer()ってそのためのものだったんですか・・・ずっと首を捻ってました。

yumetodo commented 7 years ago

@S-H-GAMELINKS キー判定消去待ち目的ではないWaitTimer()の呼び出しがどれか、コメントを書いていただけないでしょうか?

//少し待って、次の文字列を描画

となっているのは明らかに違うとわかるのですが、他が私だと判別できないです・・・

S-H-GAMELINKS commented 7 years ago

実は、そういう処理用に使っていたんです……。

実際手元のブランチで試しにWaitTimer()追記してみましたが、一応は問題なく動作しそうです。

承知しました。チェックしておきますね。

S-H-GAMELINKS commented 7 years ago

一通りチェック致しました。

どうやら、ほとんどはキー判定用の遅延処理のようです。

一部、それ以外のものもありました。

が、描画時のちらつき防止のために使っているものとなります。

以下がコミットになります。

https://github.com/S-H-GAMELINKS/Novel.Game.Engine.LINKS/commit/50c67ee6a405bd44fa4ecfc8f127f8b30ac3d090

https://github.com/S-H-GAMELINKS/Novel.Game.Engine.LINKS/commit/f456910a64a3839032b68c20aa9a5cfd22a7ab22

yumetodo commented 7 years ago

現在作業を進めていますが、巨大な変更になりそうです・・・。しかもcommit分割しづらそうで、巨大commitの予感・・・

S-H-GAMELINKS commented 7 years ago

ご苦労様です。

ううむ、かなり大きなcommitになりそうですか…

yumetodo commented 7 years ago

https://github.com/yumetodo/Novel.Game.Engine.LINKS/commit/a05b63c82ff4df1c4fa0dca0701694f3e04ca5a6 ざっとこのデカさですね。どうしようか・・・

とりあえずそちらで追加でconflictを作った場合はこちらで解決するようにしますので。

ここからもうすこし手直しします。

yumetodo commented 7 years ago

可読性の観点からキー操作クラスはすべて引数経由で伝播することにして、const lvalue referenceでない引数の関数はその関数内で副作用を完了させるように目指しています。

yumetodo commented 7 years ago

しっかし、履歴継承しようとしたら https://teratail.com/questions/80749 https://stackoverflow.com/questions/44605145/githow-to-extract-history-of-specific-files-and-write-out-to-new-empty-branc/44606125 どえらい苦労した。継承しなけりゃよかったか(今更

S-H-GAMELINKS commented 7 years ago

お疲れ様です。

とりあえず、今のところは何かしらの変更を加える予定はありませんので。 ですので、conflictすることはないかと思われます。

S-H-GAMELINKS commented 7 years ago

と持っていたのですが、一つだけcommitしました。

キャラクター名描画関連の修正です。

https://github.com/S-H-GAMELINKS/Novel.Game.Engine.LINKS/commit/d406d1cbd5e80fc3f1ad4ac278cc615de3a2048a

yumetodo commented 7 years ago

ちょっとコード書いてて頭がこんがらがってきたので、しばらく時間をおいて作業をすることにします。

S-H-GAMELINKS commented 7 years ago

了解です。

その間に、 こちらで#23 と #22 を 対処しておきますので

yumetodo commented 7 years ago

おねがいします。私のノートPCのモニターが逝ったことでメイン開発環境を失ったので辛いです。