プチコン3号 SmileBASIC コミュニティトピックSTiNGER STiNGER89012016/01/24 22:08:36質問十字キー操作で右と左の操作が違う。この画像のような、IFを使わない書き方だと、右と左で移動速度が変わってしまうのですが、式を二つに分けたりするしかないでしょうか。 0そうだね 19返信プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿よっぱらい yopparai19652016/1/24 22:16(b and 8)等の式をもう一段深く((b and 8) != 0)としてみては?2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿STiNGER STiNGER89012016/1/24 22:24よっぱらい様 これでうまくいきました。ありがとうございます。0そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿ΖΕΧ ZEX2562016/1/24 22:25 X=X+(1AND B>>3)-(1AND B>>2)2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿みけらんジェロ chikuwaxx2016/1/24 22:54それですが、B AND 4と書くと 返す値が1ではなく「4」を返すようになります。 つまり移動量が4になり、反対側は8となる訳です。 なので!=0で無理に1を返すようにしてる、と。 私も同じ事で悩んだ事がありますので。2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿STiNGER STiNGER89012016/1/24 22:58なるほど、ボタン操作の時は考えを変えないといけないわけですね。 うえこうさんのやり方がスッキリしていていい感じ。0そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿GRS grs80012016/1/24 23:18X=X+((B AND 8)/8-(B AND 4)/4) 右を押した場合 (B AND 8) -> 8 [8が加算される] 左を押した場合 (B AND 4) -> 4 [4が減算される] なので、8 加算を 1 加算にするために 8 で割る 判定式の下に ? (B AND 8);" ";(B AND 4) を、書けば良く解りますよw 個人的には論理式系の演算はバグの温床になりかねないので… (システムやCPUによって結果が異なることがあるので余りお勧めしないです) Z-80脳な人なので難しい事は不得意です(^^;2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿ΖΕΧ ZEX2562016/1/25 2:10除算は効率悪いのでビットシフトを使う アセンブラ使わない人には解らないだろうけど3そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿SquidSky ugomemo_gorohati2016/1/25 7:30K=BUTTON() MY=MY-(K AND 1)*2+(K AND 2) MX=MX+(K AND 8)/4-(K AND 4) MY=MY-(MY>212)*2+(MY<-12)*2 MX=MX-(MX>376)*2+(MX<0)*20そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿SquidSky ugomemo_gorohati2016/1/25 7:33この方法では、*2の部分を*1や*5にすれば移動スピードを変えられます。0そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿あまさと しおん ShionAmasato2016/1/25 16:38誰か論理反転どぞ X=X+!(4AND B)-!(8AND B) 4と8が入れ替わるのがミソね3そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿でんぺん DENPEN2016/1/25 18:11二進数の11→110なら、 3<<1ですね。 <<がどっちにシフトしてるかの矢印みたいなイメージです。 3そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿あまさと しおん ShionAmasato2016/1/25 18:15字数削りの観点から言うと演算子の後ろの数が1桁なら/、多ければビットシフト。1そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿でんぺん DENPEN2016/1/25 18:47ちなみに個人的にはわかりやすさとのバランスを考えて、 X=X+(((B AND 8)>0) - ((B AND A)>0)) * 4 ぐらいにしておくかなぁ? ちなみにわかるとは思いますが4は移動量(スピード)です。 2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿でんぺん DENPEN2016/1/25 18:49Aは4の間違いです…2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[15]親投稿おちゃめ ochame_nako2016/1/28 23:12左右移動の計算式は思いつくだけでも20通り以上ありますがどれを使っても問題はありません。 自分のプログラムに適したものや自分で理解しているものを使えば良いだけです。 例えば右方向移動が2倍速くなるというのが分かっているならばX=(B AND 8)/2-(B AND 4)とすれば良いということです。なぜ、2倍速くなるのかはB AND 8は0(右を押してない場合)か8(押した場合)の値を返し、B AND 4は0(左を押してない場合)か4(押した場合)の値を返すためです。2そうだね プレイ済み2017/11/03 18:23:30に取得
プチコン3号 SmileBASIC コミュニティ返信[16]親投稿STiNGER STiNGER89012016/1/30 8:37ビットシフトに真偽反転、役に立つ技を覚えることができました。 皆さんありがとうございました。 では、これにて。1そうだね プレイ済み2017/11/03 18:23:30に取得