プチコン3号 SmileBASIC コミュニティ投稿Иあっキー#くさへび akkisato2015/06/09 05:44:33範囲で見る時は、 2つ不等式を書かないといけないんだよなぁ。 もっと良い方法無いかなぁ~。4そうだね 23返信プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿れい rei-nntnd2015/6/9 6:38ないorz 速度とか読みやすさ考えても場合分けするしかない1そうだね プレイ済み2017/11/03 20:35:50に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿ツララ LongIceSword2015/6/9 9:22うえこうさん冴えてる!もしかしたら数直線を模したスプライトで当たり判定を使えば一発で判別出来たりしません? もしくは[判定する変数],[範囲下限],[範囲上限]の3つの引数からTRUEかFALSEを返す範囲判定用の関数を作っちゃうとか。2そうだね プレイ済み2017/11/03 20:35:50に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿けい kei0baisoku2015/6/9 13:14ツララさんに同じですが、範囲とクランプはよくやるので関数作ってやってます。(・ω・)/ DEF RANGE(V,MI,MA) RETURN MI<=V && V<=MA END DEF CLAMP(V,MI,MA) IF V<MI THEN RETURN MI ELSEIF MA<V THEN RETURN MA ENDIF RETURN V END4そうだね プレイ済み2017/11/03 20:35:50に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿Иあっキー#くさへび akkisato2015/6/9 17:57ツララさん» 関数かぁ。それ僕も思った。 けいさん» くらんぷ? なにそれどんなときにおいしいの?0そうだね プレイ済み2017/11/03 20:35:50に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿Иあっキー#くさへび akkisato2015/6/9 18:00ああ!カーソル座標とかに使うのか! 便利そうだから覚えとこ。φ(._.)メモメモ0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿ネタバレれい rei-nntnd2015/6/9 19:01範囲制限したい場合は俺はこんなの使ってる min(max(xx,最小値),最大値) 3そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿Иあっキー#くさへび akkisato2015/6/9 19:22な、なるほど! そんな便利な書き方があったなんて! これでIF文減らして見やすくなる!0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿けい kei0baisoku2015/6/9 19:40既存命令のフル活用凄いw もう伝わってるかもしれませんが一応説明。 「クランプ」と言うのは締めるとか固定するとかいう意味で、プログラムでは「値を最小値と最大値の範囲に収める」意味でよく使われます。 お察しの通り、座標や速度を最大値と最小値の範囲に収めたい時に、IF文使ってよくやってるヤツです。2そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿れい rei-nntnd2015/6/9 20:00IF減らしたら見やすくなるか、っていうとそれは場合によるし 範囲制限にmin max使うのは最小最大の指定あたりが取り違えやすくて混乱する場合もあるので これが最適ってわけじゃないから気を付けて。 短さは最強だが見やすさは最弱、みたいな。 速度は…自分で測って見ると面白いかな。 Ifでやる場合、defで作る場合、それぞれで見やすさ長さ速さ違うから。2そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿MIKI ifconfig2015/6/9 21:27「なんとかしてよ~マスえもん~」 「しょうがないなあ。絶対値~~~~(パンパカパーン)」 「これはある実数が特定の範囲に入っているかどうか一回の比較でわかる道具なんだ」 0 < h かつ h < 60 ⇔ -30 < h-30 かつ h-30 < 30 (各辺から 30 を引いた) ⇔ |h-30| < 30 (|x|<a⇔-a<x<a の公式より) 0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿MIKI ifconfig2015/6/9 21:35仮想インタプリタによるステップ数 (a) 0 < h && h < 60 h<=0の場合 push 0, push ^h, eval, less_than (4step) h>0の場合 push 0, push ^h, eval, less_than, push ^h, eval, push 60, less_than (8step) (b) abs(h-30) < 30 push ^h, eval, push 30, minus, abs, push 30, less_than (7step) 0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿おちゃめ ochame_nako2015/6/9 21:43IF 0<=H && H<60 THEN ならばIF !FLOOR(H/60)THEN に置き換えることができます。 HSVをRGBに変換するための判定ならばあらかじめ60で割って整数化したものを別の変数に入れておけばその変数の値が0の場合、1の場合、中略、5の場合の6通りの場合分けをするだけ済みます。 ただし、この場合はあらかじめHの値を0以上360未満にしておく必要があります。 Hの値がこの範囲外の時はどのようにするかで処理方法が変わりますがH=420をH=60とするならばH=((H MOD 360)+360)MOD 360とすれば良いです。(MOD 360を2回使っているのは負数の場合の例外処理のため) 整数化には様々な方法があるし、0から360の範囲に制限するのも様々な方法があるのでお好きなやり方でいいと思います。0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿Иあっキー#くさへび akkisato2015/6/9 23:49MODってなんだろう? よく見かけるけど、 何してるかはわからない・・・。 ちなみに僕なら H=H-H DIV 360*360 って書きます。(合ってるかな? つまり、360で割った余りを 出せばいいってことですよね? (Hが-だった時の処理がいるけど。 もっと簡単な書き方無いかなぁ? mk2みたいに%使えたらなぁ。0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿Иあっキー#くさへび akkisato2015/6/9 23:58麗(れい)さん» もう完全に覚えちゃったので、 自分で見るならこっちの方が コンパクトで見やすいかも。 (知らない人から見たら混乱しますね。 X=MIN(MAX(X,0),400) Y=MIN(MAX(Y,0),240) SPOFS 0,X,Y 'コンナカンジ みき★さん» もう何がなんだかさっぱりわからない・・・。0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[15]親投稿MIKI ifconfig2015/6/10 0:12え、中学で絶対値習わないんだっけ? |x| = {x (x>=0の場合), -x (x<0の場合)} |x| = (xの符号取ったもの) という理解でもいい。とりあえず。 if 0<h && 0<60 は if abs(h-30)<30 と書けるという意味です。 仮想なんたらがどうしたというのはゴミなんで無視してちょうだい。 0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[16]親投稿Иあっキー#くさへび akkisato2015/6/10 0:26ボク、まだ中2です。 でも、ABSは使うので、 説明できないけど、意味は理解しました。 で、むしろめんどくさくなった気g(殴0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[17]親投稿けい kei0baisoku2015/6/10 1:25>あっキーさん 「MOD」命令のヘルプを見るのだ0そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[18]親投稿れい rei-nntnd2015/6/10 9:31工夫をしたり、一見して理解できないコードを書く場合は理由がいる。 速かったり、メモリ消費が少なかったり、コード量が少なかったり、信心深かったり。 HSV変換の場合、30±30の範囲をみたいわけでも60でわった商が1より大きいかをみたおわけではなく、0~60に入っているかを見たい。 なおかつabsもfloorも遅い。 メモリ消費もコード量もいして変わらん。 他にも三角関数つかったり、ふくそ変換使ったり、スプライト使う方法もあるが、どれも適切じゃない。 宗教上の理由がないなら、今回は普通にifを重ねるのが最良だろうよ。 もちろんいろいろな可能性を探る能力は必要だが。 素直に 3そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[19]親投稿Иあっキー#くさへび akkisato2015/6/10 14:16スナオニヘルプミロヨオレ(°д°;)1そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[20]親投稿MIKI ifconfig2015/6/10 23:41負の場合どうなるのかな? (C言語の % だと処理系定義です) basic は伝統的に a mod b = a - a div b * b だったような気がします。1そうだね プレイ済み2017/11/03 20:35:49に取得
プチコン3号 SmileBASIC コミュニティ返信[21]親投稿ナツキ natukin19782015/6/12 10:20考えた事を考えた通りに書く。簡単な様で何と難しい事よ。0そうだね プレイ済み2017/11/03 20:35:49に取得