プチコン3号 SmileBASIC コミュニティ返信[4]親投稿おちゃめ ochame_nako2015/4/30 23:472 インクリメント専用命令INCの速度 INC A・・・578ナノ秒 INC A%・・・582ナノ秒 INC A・・・581ナノ秒(OPTION DEFINT時) 結果:INC Aは速そうだけどver.3.1.0においてはINC AはA=A+1より遅い(ver.3.0.0ではINC AとA=A+1は同じ速度)1そうだね プレイ済み2017/11/03 21:33:54に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿おちゃめ ochame_nako2015/4/30 23:461 整数型と実数型の速度の違い A=A・・・302ナノ秒 A=A+1・・・345ナノ秒 「+1」の部分が43ナノ秒 A%=A%・・・305ナノ秒 A%=A%+1・・・330ナノ秒 「+1」の部分が25ナノ秒 結果:整数型の方が1.7倍くらい速いけど代入処理が遅いので実質5%しか速くなっていない。0そうだね プレイ済み2017/11/03 21:33:54に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おちゃめ ochame_nako2015/4/30 23:45あとは好きな処理を計測しても良いのですが、TIMER関数の仕様上連続で8秒以上の時間は計測できないため重めの処理で1回の計測が8秒を越えてしまう場合にはループ回数をデフォの100万から減らしてください。(8秒を越えた場合にはエラー表示を行っています) その場合は補正値も変更する必要があります。 ループ回数を増やせば計測結果が安定し減らせば不安定になるため可能な限りは100万回より減らさない方が望ましいです。 ループ回数は4行目のK#の値、計測回数はNの値を変えると変更できます。 先日書いた処理時間はループ回数100万回、(計算を暗算で済ませるため)計測回数3回で行いましたが誤差が大きかったのでループ回数500万、計測回数10回で改めて計測して再検証してみました。 最後に表示される平均値を記述しましたがこの試行回数でも1~2ナノ秒は誤差の範囲として考えてください。0そうだね プレイ済み2017/11/03 21:33:54に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おちゃめ ochame_nako2015/4/30 23:43使用方法 10行目に行いたい処理を記述してください。 ループにかかる時間を除外して処理にかかる時間のみを表示しているのですが、そのためにはループにかかる時間が分からなくてはなりません。 5行目のR=953というのがNew3DSでver.3.1.0を動作させたときにループの時間です。 これ以外の環境では正しく補正を行うため計測部分に何も記述してない状態でLボタンもしくはRボタンを押しながら実行すると空ループの時間が計測できます。 そのかかった時間を5行目のRに入れてください。 例えば空ループが3500ナノ秒ならばR=3500とします。0そうだね プレイ済み2017/11/03 21:33:54に取得
プチコン3号 SmileBASIC コミュニティ投稿おちゃめ ochame_nako2015/04/30 23:42:121ナノ秒単位で処理速度を計測するプログラムを作ったのでこれを使ってプチコン3号の様々な処理速度をまとめてみました。12そうだね 86返信プレイ済み2017/11/03 21:33:50に取得
プチコン3号 SmileBASIC コミュニティ返信[22]親投稿おちゃめ ochame_nako2015/4/30 6:28「たまたま」か「必然」かは使っている人の理解による部分がすべてです。 論理式とビット演算を熟知していれば両者が同じ動作をするのは必然だし、熟知していなくても「比較演算を省略せずに書く」ということを心がけているだけでも必然になります。 それが「たまたま」というのであればビット演算を理解していない状態でIF (B AND 16)==16 THEN ~をIF B AND 16 THEN ~と記述して同じ動作になるのも「たまたま」になってしまいます。1そうだね プレイ済み2017/11/03 21:37:20に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おちゃめ ochame_nako2015/4/28 22:27敵キャラではなく味方キャラですが、レベルを入れると必要経験値を返すEXPL関数を作りました(笑) DEF EXPL(LV) RETURN POW(LV,3) やっていることはレベルを3乗しているというすごくシンプルなものですが、レベル2は経験値8、レベル3は27、レベル10は1000という感じで何となくそれっぽい数字になります。(ちなみにこの式は昔ポケコン用のRPGを作ったときに実際に使ったもの) 0そうだね プレイ済み2017/11/03 21:38:04に取得
プチコン3号 SmileBASIC コミュニティ返信[29]親投稿おちゃめ ochame_nako2015/4/28 22:13れいさんへ 私が描く絵はMiiverseだと削除対象になりかねないような絵ばかりなのでここで晒すのはやめておきます(笑) 興味があれば私のサイトやpixivで公開していますので自由に見てください。(ちなみに私のサイトはPCやスマホを使わずとも3DSのWebブラウザからでも普通に見ることは可能です)0そうだね プレイ済み2017/11/03 21:39:11に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿おちゃめ ochame_nako2015/4/28 22:00プチコン3号のVAL関数は文字列の中に数字以外の文字が含まれている場合には0を返します。(例外は数字の後に!、# 、,が付いている場合で、その時はその文字以降のものは無視される) そのため、「:」が含まれるTIME$はVALで正しく数値に変換できません。0そうだね プレイ済み2017/11/03 21:38:06に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿おちゃめ ochame_nako2015/4/28 21:47あとプチコン3号は多くの命令が追加されましたが、その分だけ初心者には難しく感じてしまう要因になってしまう気がします。 そういう面では(制約を克服する楽しみを得るという中上級者ではなく)3DSで初めてプログラミングに挑戦する人にもmkIIはオススメです。 ・・・とmkIIのメリットを羅列しましたが、エディタが貧弱だし、プチコン3号のDEFや制御命令など便利な命令がたくさん追加されていてmkIIにはなかなか戻れない感じです。 GRPを使いまくっても32GBのmicroSDならば無制限といった感じなので保存領域が一杯になることはないですし(笑) 4そうだね プレイ済み2017/11/03 21:38:31に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おちゃめ ochame_nako2015/4/28 21:37mkIIの最大のメリットはPTC→QRコードがスマブ経由でなくても可能なので本体が壊れるまで現役で使い続けられるということですね。 プチコン3号はスマブが公開用サーバを停止時点で事実上の終了です。 QRコードのお陰で公開の自由度は極めて高いです。 あとQRコードのお陰でプチコン3号のマイク経由の転送よりも遙かに安定したPCとのやりとりが可能というのもメリットでしょう。 mkIIは機能面や性能面ではほとんどの面においてプチコン3号に劣りますがその制約を克服するのが楽しいという人もいるでしょう。 1画面プログラムも29文字×24行と制約が大きい分やりがいがありました。(プチコン3号ならばほぼぴったり1画面に収めるのは極めて簡単だし、リスト短縮をしなくても1画面に収まりやすい) 私はTALKでボーカロイドみたいなものも作りましたが、それもmkIIの強みですね。2そうだね プレイ済み2017/11/03 21:38:31に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿おちゃめ ochame_nako2015/4/28 21:24第3回プチコン大喜利 技術賞入賞おめでとうございます。 ワイヤーフレームの方が立体視を感じやすい件ですが、私も大喜利に投稿した3Dポリゴン立体視プログラムを作っていて同じように感じました。 これは立体視というのが左右視差を元にしているのにフラットシェーディングのポリゴンだとエッジ付近でしか立体視を知覚できないためだと思います。(端的に言えば三角形を立体視するのではなく三角形の輪郭部分を立体視している感じ) その点、ワイヤーフレームであれば立体視を知覚している部分のみを表示しているため立体視を感じやすいのでしょう。1そうだね プレイ済み2017/11/03 21:39:26に取得
プチコン3号 SmileBASIC コミュニティ返信[21]親投稿おちゃめ ochame_nako2015/4/28 21:16名称だけをまとめるならば簡単にできてもバージョンアップのたびに公開コードが変わるのでよほどまめに更新できる人でないと面倒くさくて手を出さないと思います。 というか、言い出しっぺの法則で(以下略)1そうだね プレイ済み2017/11/03 21:39:12に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おちゃめ ochame_nako2015/4/27 21:08昔あった「PONG」みたいな真上からの見下ろしタイプのゲームならば難易度はかなり低めなので初心者でも十分作れると思います。 玉が跳ね返る時は基本的に面(壁やラケット)を基準にすると入射角=反射角になるためそのスクリーンショットのように上から下へとボールが移動して下のラケットに当たった場合はYの移動量の正負を反転すればいいです。(例えばY方向に2ずつ移動していたならば跳ね返った後は-2ずつ移動になる) ただし、これだと非常に単調なゲームになるためラケットに当たる位置で移動量を変化させると良いかもしれません。例えばラケットの右側で打てば右方向に跳ね返り、左側で打てば左方向に跳ね返るという感じです。こうすることで任意の打ち分けが可能になるため戦略性がアップします。 あとゲームバランスが崩れない程度に乱数を加えるのもありだと思いますよ。0そうだね プレイ済み2017/11/03 21:40:41に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿おちゃめ ochame_nako2015/4/27 20:39GPUTCHRで表示する内容は引数を文字列で指定した場合にはその文字列が表示され数値で指定した場合はその文字コードの文字を表示します。 「ゆいと」さんのように数値を文字列に変換する方法がベターですが、表示する数字が1桁の整数ならばANSの部分はANS+48に変えれば問題なく表示が可能です。0そうだね プレイ済み2017/11/03 21:40:05に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿おちゃめ ochame_nako2015/4/26 22:57あまさとしおんさんへ STR$では変に丸められるから困る(FORMAT$でも大きな数字や小さな数字はゼロが羅列されてしまう)という意見を何度も見たため数値を無劣化で文字列に変換するPSTR$を作ったのですが、セーブで使う機会は私も無さそうです(笑) あくまで分かりやすい表示を行うのが本来の目的でしたので。 mkIIも32bit固定小数点を誤差無しで文字列に変換できる32bit整数演算ルーチンを作りましたがこちらも誤差無しがメインの目的ではなく524287という上限値以上の数値を簡単に扱えるようにするためのものでした。2そうだね プレイ済み2017/11/03 21:41:21に取得
プチコン3号 SmileBASIC コミュニティ返信[33]親投稿おちゃめ ochame_nako2015/4/26 22:55IF 条件式 THEN GOTO @ラベル は、GOTOもしくはTHENを省略可能です。2そうだね プレイ済み2017/11/03 21:44:18に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿おちゃめ ochame_nako2015/4/26 22:02セーブプログラムはセーブするものの内容によって変えなくてはいけないため難しいですが、プチコン3号はプチコンmkIIと比べるとかなり改善されています。 何せmkIIはセーブが可能な変数はシステム変数のMEM$だけでした。 mkIIは文字列は最大で256文字しか扱えないため1度に256文字分しか保存できないわけです。 これではデータ量の多いゲームでは辛いためGRP(1つ48KB)を使って保存する方法が考えられました。 しかし、mkIIは保存するための領域が小さかったためGRPでバンバン保存していったらすぐに一杯になりました。 そこで、GRPをスプライトなどのCHRリソース(1つ8KB)に変換して保存する1行プログラムを作りました。(256バイトの1つ上がいきなり48KBというのはさすがに辛いけどCHRリソースは特殊であるため直接セーブ用には使いにくいため変換プログラムで代用した)0そうだね プレイ済み2017/11/03 21:42:22に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿おちゃめ ochame_nako2015/4/26 20:21スーファミのマリカみたいなタイプ(2軸回転)でもプチコン3号@New3DSであっても30fpsが限界ですね。 解像度を荒くすれば60fpsは可能ですが少し微妙になってしまいますし。1そうだね プレイ済み2017/11/03 21:41:41に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おちゃめ ochame_nako2015/4/26 20:16他のとこからパク・・・ではなく参考にします。 参考にするものは他者のプチコンプログラムでもいいし、市販ゲームでもいいし、そもそもゲーム以外のネタでも何でもありです。 私の経験からすると「アイデアが出ない」という時は良いネタが身の回りにあるのにそれに気づいてないだけのことが多いです。1そうだね プレイ済み2017/11/03 21:41:30に取得