Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
13 4 5 6 7 8 9 10 11 12 13 14 15 16 17
次のページ(過去)
投稿
bigslope bigslope
『ユーザー定義命令のルーチンは、メインよりも先に書かないと、メインと同名のローカル変数の定義が出来ない』という現行の仕様(バグ?)。ムダな処理を省く為、全ての処理は基本的にメインに詰め込むのが当然と思っていた自分だったが、この仕様がきっかけで、命令を作っているうちに、『必要そうな部品を先に作っておき、メインルーチンでそれらを使う』という考え方がある事に気付く。自分の考えは絶対ではないと今更悟った。
6そうだね
プレイ済み
投稿
bigslope bigslope
プログラムをセーブする時、プログラム名の拡張子は".BAS"にするのが俺のジャスティス。いや特に意味は無いんだけどさ。
3そうだね
プレイ済み
返信[9]
親投稿
bigslope bigslope
アイデアやアルゴリズムは、著作権の保護の対象にはならないと聞いた事はあるのですが、一方で特許としては(発明という観点からすると)認められているとか何とかで、その辺りややこしいですね。 一例として、SDXCカードのフォーマットであるexFATは、マイクロソフトが特許を持っているので、SDXCカードにアクセスするソフトを開発する為には、マイクロソフトに対し、exFATに関する特許の使用料を払う必要があります。 3DSがSDXCに対応していないのは、その特許絡みのせいではないか…と推測されます。
2そうだね
プレイ済み
返信[4]
親投稿
bigslope bigslope
サンプルプログラム。 ZLから↑まで全12ボタン、未使用(1024)1つを含めて13ボタン分判定処理を繰り返し、13個分ある配列変数に、ボタンが押されている場合は1、押されていない場合は0を入れている。 ちなみに、仮に全てのボタンが押されたとすると、1+2+…+512+2048+4096=7167になる。 ↑+↓みたいに同時に押せない組み合わせも存在するので、実際にはこの通りにはならないが、8行目の'B=7167のコメントを外すと、全部のボタンが押された状態を再現出来る。
0そうだね
プレイ済み
返信[3]
親投稿
bigslope bigslope
例として、↑、→、A、B、Rのボタンが同時に押された場合。 BUTTON関数の戻り値…569 ZL(4096)…無し。残り569 ZR(2048)…無し。残り569 未使用(1024)…無し。残り569 R(512)…有りなので512を引く。残り57 L(256)…無し。残り57 Y(128)…無し。残り57 X(64)…無し。残り57 B(32)…有りなので32を引く。残り25 A(16)…有りなので16を引く。残り9 →(8)…有りなので8を引く。残り1 ←(4)…無し。残り1 ↓(2)…無し。残り1 ↑(1)…有りなので1を引く。残り0(終了)
0そうだね
プレイ済み
返信[2]
親投稿
bigslope bigslope
逆に、この戻り値から、どのボタンが押されているかを判別する為には、この足された数字を分解していけば良いという事になる。 ボタンの中で一番大きい数は、ZLボタンの4096なので、まず4096以上かどうか判定する。 (4096以上だった場合) ・ZLボタンが押されている ・戻り値から4096を引く (そうでなかった場合) ・ZLボタンは押されていない ・戻り値はそのまま 次は、判定する数を4096から半分の2048にして、同じように判定する。2048以上ならばZRボタンが押されており、その場合は2048を引く。 そして、その半分の1024、512、256…と判定を繰り返しながら引いていき、戻り値が0になったら終了。
0そうだね
プレイ済み
投稿
bigslope bigslope
BUTTON関数は、ビット演算を使って判定を行う方がスマートだけど、ビットとかの意味がよく分からないという人もいると思うので、自分なりに噛み砕いて説明してみる。と言うか、すでにそういう説明がいくつかあるようなので、『BUTTON関数が分からない人向け説明選手権』状態。
4そうだね
プレイ済み
返信[1]
親投稿
bigslope bigslope
とりあえず、ヘルプのbit云々の説明はすっ飛ばして、その下の方の、『各ボタンが単独で押された場合の10進数戻り値』という所を見てみよう。 1:十字ボタン上 2:十字ボタン下 4:十字ボタン左 8:十字ボタン右 ・ ・ ・ となっている。 単純に押されたボタンが1つだけなら、この数字かどうかだけを判断すれば良いが、これらのボタンは、複数同時に押される事もある。 その場合、+1、+2、+4…のように、これらの数字をどんどん足していった結果が、戻り値として返ってくる。 上と左ならば、1+4=5、更にAボタンも押されたならば、1+4+16=21、という具合。
0そうだね
プレイ済み
返信[2]
親投稿
bigslope bigslope
あら本当!元々配列変数って参照渡しだったんですね。 正直、「まあBASICだし、出来なくても仕方ないか」ってなめていましたが、意外と融通が利くもんですね。
0そうだね
プレイ済み
投稿
bigslope bigslope
OUTを使用して、2つ以上の戻り値を返すユーザー定義命令における暗黙の了解(追加)  ・必ず全ての戻り値に値を入れる  ・実は、引数に配列変数をまるごと指定出来る  ・戻り値に配列変数は指定出来ない(まるごとで出来た人います?)  ・戻り値の変数を使って計算させる場合は、最初に戻り値の初期値を設定しておく  まあ、配列はC言語だったらポインタ渡しで行けるけど、こっちはグローバル変数で頑張るしかないか。
6そうだね
プレイ済み
返信[1]
親投稿
bigslope bigslope
それから、オンラインヘルプの例では、CALL "命令名"と引数1の間に,(コンマ)が入っていないが、実際はコンマが必要(説明書等ではコンマが入っている)。 あと、公式の障害情報に出ているが、DEFを使って定義した命令を、ダイレクトモードで使用するとハングアップするそうなので注意…思いっきりやってた。
1そうだね
プレイ済み
投稿
bigslope bigslope
各種命令を使うというのは、『暗黙の了解』との戦いでもあるね。OUTを併用して、2つ以上の戻り値を返すユーザー定義命令は、必ず全ての戻り値に値を入れないと、CALLで呼んだ際に"Type mismatch"のエラーになる。ユーザー定義命令の使い方を確認する為、DEF~ENDの間に何も入れない命令を作ってみたら、何度やってもエラーになるのでハマりかけた。
9そうだね
プレイ済み
返信[3]
親投稿
bigslope bigslope
(ひとりごと)フェスタで購入したストラップ、今もこの3DSに付けてますヨー…。
0そうだね
プレイ済み
返信[1]
親投稿
bigslope bigslope
高校の頃は文系で、数学は細かく習わなかったもので、そもそも三角関数自体、『サインカーブを描く為のもの』(あるいはその応用で円が描ける)程度の認識しか無かったりしますが、途中で円の半径を変えながら描いていくと、色々楽しい事になりますね。 ただ、BASICの三角関数は引数にラジアンを指定するので、最初はちゃんと描く事が出来ずにハマっていた(そのまま度数を入れていた)時期がありました。 と言うか、何で度数じゃなくてラジアンを使うのか、未だ分からなかったりしますが。
1そうだね
プレイ済み
返信[2]
親投稿
bigslope bigslope
確か、NEWと入力して、ENTERキーを押そうとしたら、うっかり隣の:(コロン)まで押してしまい、そこで一度エラーになった覚えがあります。 そして改めてNEW(ENTER)を入力したらハングアップ…という状況だったような。再現性は不明。
0そうだね
プレイ済み
投稿
bigslope bigslope
たった今、プログラムを全消去しようとしたら、確認ダイアログの所でハングアップして、強制的に再起動がかけられた。随分大袈裟なNEW命令だこと。
6そうだね
プレイ済み
投稿
bigslope bigslope
ふと、X68000のディスクマガジン『電脳倶楽部』を引っ張り出してみる。起動すると、絵や音楽の鑑賞が出来たり、記事が読めたりするフロッピーディスク形式の雑誌。その中に『イカプロんぷと』というコーナーがあり、ある人はゲーム用のスプライトデータ、またある人はBGMを投稿していた。これらの蓄積されたデータは、コーナー内に限り自由に利用可能で、それらを使って別の人がゲームを作るというような流れがあった。自分はスプライトデータも音楽も作れないけど、ここでもそういう流れがあると良いかもしれないね。
10そうだね
プレイ済み
返信[11]
親投稿
bigslope bigslope
恐らく3D表示をオフにしていると思いますが、3Dオンだと、目の部分が浮いて表示されますね。
1そうだね
プレイ済み
返信[2]
親投稿
bigslope bigslope
多分、強烈にハマる人と、「分かんない!買って損した!」という人と、まっ二つに別れると思います。
1そうだね
プレイ済み
返信[3]
親投稿
bigslope bigslope
ねこはちさん> 大抵のBASICの場合、RENUM(リナンバー)命令を入れれば、行番号を10単位で綺麗に振りなおしてくれました。
1そうだね
プレイ済み