[過去ログ] 【新作】忍者くん、じゃじゃ丸くん【ファミコン版】 (987レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
250
(3): 2013/10/02(水)14:43 ID:f0T6BsoF(2/3) AAS
void NINJAKUN::stop()
{
  if(isKeyDown(LEFT)){ m_direction = LEFT; m_state = MOVE; }
  else if(isKeyDown(RIGHT)){ m_direction = RIGHT; m_state = MOVE; }
  else if(isKeyDown(JUMP)){ m_jump_direction = m_direction; m_state = JUMP; }
}

void NINJAKUN::jump()
省7
251: 2013/10/02(水)15:30 ID:QYZgGyBZ(1) AAS
>>248
たまたま同じ速度のゲームが多いけど、歩く速度とななめジャンプの速度は本来別物。
人間で考えても「右上にジャンプした」てことがわかるのはジャンプの瞬間のみ。
空中にいる時はすべて惰性の動作。ならジャンプ時にフラグを立て、空中では惰性の動作として処理するべき。

>>249-250
お手本のようなソースだけど、経験則ではキー判定は処理の頭で全部フラグに保持しといた方が良いと思う。
つねにKeyDownで見てると、キーリピートとか同時押しの関係でおかしくならないかな。
省1
263
(1): 2013/10/02(水)22:05 ID:aZq+LRwM(1) AAS
>>250 は、歩きながらのジャンプができないんじゃないかい?

>>247 出来るだけわかりやすくするためステート分岐を使わずに説明すると、こんな感じになると思う。

●向き={左、右}:初期値はどっちでも可
if(右を押す) then 向き←右
if(左を押す) then 向き←左

●水平移動量={-1, 0, +1}:初期値0
●垂直移動量(上がプラス):初期値0
省18
275
(1): 1 ◆ONnp7LRVwg 2013/10/04(金)12:16 ID:3WHY8Ef6(1) AAS
>>249>>250
ありがとう、なるほど、、、勉強になった。
ちょっと作り直すわ。。。

>>263
これまたとてもわかりやすい。
その構造だけでいうならば、俺のプログラムとおもっきり違うのは、
やはりelse{ // 水平移動量は維持 } の存在。
省13
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s