Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
130 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50154
次のページ(過去)
返信[2]
親投稿
おちゃめ ochame_nako
消しゴムはLボタン+十字ボタン+タッチで瞬時に4段階で太さを選べます。(消しゴムは同じ数字のペンよりワンランク太い) 大きな部分を消すときは右を押しながら消して細かい部分になったら上に押し替えるだけ最大から最小への太さ調整も瞬時に可能であるため非常に使い勝手が良いです。 スポイトはLボタン+タッチです。 キャンバスだけではなくパレットからもスポイトで色を採ります。 最近選んだ5色はパレットの下にあるので便利です。 スポイトや消しゴムといった色を採る(取る)のがLボタン+タッチ、色を置くのがLボタン無しのタッチなので難しいことは何も無く感覚で機能選択が可能です。(わざわざメニュー画面から選び直すという必要もないため超お手軽!) それに太さ選択として十字ボタンの操作が加わるだけです。 キャンバスの全消しはL+Rです。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
公開キーは【 N34JE4L3 】です。(0.5.x系の更新があった場合はこのトピックスの下の方に新しい公開キーを書いていきます) まずは簡単に操作説明をしておきます。 十字ボタン+A、Bボタンで7段階に瞬時にペンの太さを選べます。 太さはパレット下のツールの所に0~6の数字で分かるようになっていますが、太さとボタンが1対1で対応しているので全く見なくてもブラインド操作で太さ選択が可能でスイスイ描けるようになります。(これができるのはこのソフトだけ!) 十字ボタンを押したままで描けば擬似筆圧にも対応です。 ツールアイコンと太さのインフォメーションのみ画面に残してパレットを追い出せばすっきりとした画面になります。 したがって、パレットを使わず単色お絵かきツールと考えても最高の使い勝手だと思います。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
ちなみに私の自作命令SPANIM2は上記のレベル1、レベル2の段階で悩んでいる初心者には非常に有効ですが、レベル3以上の人にとっては「簡潔に記述ができる」「開始コマ数の設定ができる」くらいのメリットしかありません。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
nobuさんへ 私は「SPANIM実行中にSPANIMをさらに実行させようとさせてアニメーションができない」等で悩んでいる初心者へのアドバイスをする場合には「ボタンを押した瞬間にSPANIMを実行」「ボタンを離したらSPANIMを停止」という解決方法を言っていますが、8方向移動をさせる場合にはボタンだけで判断するのはかなり大変なんですよね。 でんぺんさんのサンプルにもあるように「キャラの向き」で判断するのが一番簡単です。 それならば最初から「ボタン」ではなく「向き」でアドバイスをすれば良さそうですが、向きが必要かどうかも分からないし、ボタンだけで普通に「押した瞬間」と「離している場合」だけを判断して作っても向きを変えるたびに十字ボタンから離せば普通に動くため不具合と断言できず「ボタン」だけでも特に問題はないため「ボタン」でアドバイスしているだけにすぎません。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
nobuさんへ サンプルプログラムを試してみたところボタンを離さずに上から右とか左から下とかの斜め方向を経由して押し替えた際にはアニメーションが止まった状態で移動してしまいます。 これは途中に斜め移動を挟んで上から右に押し替えた時は「上が離された」と判断してアニメが上向きで停止し右上(右と上を両方押している状態)から右に押し替えた場合は右を押したままになっているため新規にSPANIMが実行されることはなく上を向いたキャラがアニメ停止のまま右に移動してしまうわけです。 現状の状態が仕様でないならば細かく場合分けをするかボタンではなくキャラの向きが変化する時のみSPANIMを行うようにすると良いと思います。 キャラの向きで判定するとスライドパッドやタッチでの動作時でもちゃんとその向きに向いてアニメーションさせたまま移動が可能になりますよ。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
プチコン3号において正しく動作するアニメーションしながら歩行させるプログラムを作るのは初心者にとって簡単なことではありません。 難易度レベル レベル1 SPANIMの書式を覚える レベル2 SPANIMでアニメーションしながら移動ができる レベル3 ボタンを押した状態で自在にアニメーションしながら移動ができる やり方さえ分かれば決して難しくないものの覚えることが多いため私が作ったSPANIMを簡単に扱えるSPANIM2命令を使用するのをオススメします。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fsz6Tuqg これを使えばアニメーションさせながら移動が簡単にできます。 8方向移動のサンプルプログラム付きなので良かったら参考にしてみてください。
0そうだね
プレイ済み
返信[29]
親投稿
おちゃめ ochame_nako
ジャンプの高さには拘りがなくイメージ優先でいくならばふんわりとしたジャンプならば重力加速度を小さくして初速も同じ割合だけ小さめにすれば同じ時間のジャンプでもふわふわした感じになります。 VYの初速が-6、重力加速度が0.2だとしたらこれを-3、0.1のようにすればふわふわするということです。-1.5と0.05のようにすればさらにふわふわします。 シャキッとしたジャンプならば同じ割合で数値を大きくすれば良いです。(重力加速度の大きさでふわふわ感が変わる) 割合を変えれば上記のように1回のジャンプに掛かる時間が変化します。 同じ高さまでジャンプしてふわふわした感じを出すには重力加速度を2分の1にしたら初速をSQR(2)分の1にすると良いです。 ジャンプを自在にコントロールできるとゲームを作るのも楽しくなるのでぜひいろいろ試してみてください。
0そうだね
プレイ済み
返信[28]
親投稿
おちゃめ ochame_nako
補足です。 Y方向の初速や重力加速度の決め方がよく分からないというのであれば実際にいろいろな値を試してみて自分がベターだと思うものを選択すれば良いだけなのですが、計算で決めることも可能です。 速度と加速度を使った一般的なジャンプの場合、1回のジャンプにかかる時間はY方向の初速の数値を重力加速度の数値で割ったものの2倍です。 初速が6、重力加速度が0.2ならば6÷0.2×2=60フレームとなります。きちんと割り切れない場合や元の高さに戻らない場合は変わりますが、概算としては十分使えると思います。 ジャンプの高さも概算値であれば初速の2乗÷重力加速度÷2で簡単に求まります。 初速-6、重力加速度が0.2ならば、(-6)×(-6)÷0.2÷2=90ドットなり、およそ90ドットの高さジャンプできます。 したがって、何ブロック分ジャンプさせたいとかあれば簡単に決まります。
0そうだね
プレイ済み
返信[31]
親投稿
おちゃめ ochame_nako
私は10秒であれば調子の良い時ならば素手で150~160くらいできますが、20秒ならば290前後が限界で30秒ならば400前後が限界です。 それ以上は大幅にペースダウンしてしまいます。 したがって、途中休憩無しで90秒で1000は絶対に無理です(笑) ということで、もはや1000を超えるSクラスが当たり前となりつつあるレベルでは私は参戦しませんが、私のプログラム「連射計測 QSP 90秒バージョン」は自由に改造して構いませんのでランク対応させた改造版を作ってみてください。
0そうだね
プレイ済み
返信[26]
親投稿
おちゃめ ochame_nako
正確な物理演算に拘るとジャンプ中に十字ボタンを離した際に左右移動が無くなるのもおかしくなってしまいます。 ありえないくらい超強力な空中ブレーキシステムを搭載ということになるためです。(逆噴射だと反対方向に加速するため一瞬だけ移動を相殺できる何らかの力が働いている必要がある) つまり、ゲームである以上は正確な物理計算の式に拘る必要は全くありません。(空中ジャンプもそもそも物理的にはあり得ない) ジャンプの仕方は無数にあるのですが、自分が「こんなジャンプがいいな」というのができていればそれが正解です。(SIN関数によるジャンプもジャンプなんてどんなやり方でもOKというただの一例にすぎない)
0そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
次に着地判定ですが、地面が平地であれば座標で行うのが簡単です。 ただし、ジャンプの速度も加速度も整数値で速度が加速度の倍数になっている場合を除き正確に元の場所に到達することはありません。 したがって、ジャンプする前がY=224だったとしてもIF Y==224 THEN 着地処理 なんてことをしてしまうと条件を満たさないのでY>=224とするのがベターでしょう。 もちろん地面に埋まったままでは問題なので着地したらY=224としておくのが良いですね。 着地をした時にジャンプフラグを0にすれば再びジャンプが可能になります。
0そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
ジャンプで注意すべき点は「ジャンプボタン入力判定」と「着地判定」です。 上記、三角関数によるジャンプを見ての通りAボタンでジャンプするならばジャンプはAボタンを押した瞬間に行う必要がありますが、それだとジャンプ中にAボタンをジャンプすれば延々とジャンプが可能です。無限ジャンプが可能なゲームならばこれで問題ありませんが、「空中ジャンプはできない」という設定ならばジャンプを開始したらジャンプフラグに1を入れます。ジャンプフラグが0の時のみジャンプ可能にすれば空中ジャンプを無くすことが簡単にできます。
0そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
要するに1回上向きに大きな速度変化があってからそれ以外は下向きに力が加わった状態にすれば良いのです。 プチコン3号の画面座標は上に行くほど小さい値であるためY方向の速度をYV、縦方向の加速度をYAとするとVYの値は最初の一瞬だけYA=-6くらいの値を入れたら良いのですが速度VYは最初は0なので(平地においてジャンプしてない時には上下方向には動いてないため)一瞬しか使わない変数を用意する必要はなくVY=-6(ジャンプした瞬間に上方向の速度がついた状態にする)のようにすれば良いのです。 あとは重力による影響を考えてジャンプ中はVY=VY+0.2とかにすれば良いのです。(もちろん、AY=0.2:VY=VY+AY でもOK)
0そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
「三角関数等によるジャンプっぽいもの」では自分が考えるジャンプにはならないというのであればその時になって物理的な式を考えてやれば問題ありません。 考えるのは速度(1フレームあたりの移動量)とは別に加速度(1フレームあたりの移動量を増減するもの)があるということです。 基本的に速度というのは力が加わっている間は変化します。 ジャンプの場合は一瞬大きな力が上向きにかかります。 その後は力がかからないかというと無重力空間ではそうなりますが、重力があると常に下向きに力がかかった状態になっています。(下向きの力がないと無重力でのジャンプになってしまい宇宙の彼方へと飛んでいってしまう)
0そうだね
プレイ済み
返信[21]
親投稿
おちゃめ ochame_nako
物理シミュレーションではなくゲームであればジャンプなんて適当で何ら問題はありません。 最初は上方向に移動してある地点で下方向に移動するようにすればジャンプです。 Y座標を1ずつ減らして設定したジャンプの最高地点までジャンプしたらY座標を1ずつ増やしてもジャンプです。 それではカクカクなって嫌というのであればカクカクしない方法にすれば良いです。 ジャンプの軌跡に相応しい関数を使ってジャンプを作れば良いです。 例えば三角関数ならばそれっぽくなりそうなので試しに作ってみたので参考にしてみてください。 三角関数を使うメリットはジャンプの最高到達点と1回のジャンプにかかる時間を簡単に決められるということです。 リスト中の99がジャンプ時の最高時の高さ(99ドット分ジャンプ)で60が時間(1回のジャンプが60フレーム)
1そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
mor6anさんへ シフト演算もビット演算も整数型のみ対応しています。(整数型の範囲外の数はOverflowとなる) なお、実数型の数値で計算すると自動的に型変換が行われます。 これは、逆に言えば -1 AND A とか 0 OR A とか A>>0 で整数化できるということです。 ちなみにこの上記の方法による整数化はFLOORとは異なり、絶対値が小さくなる整数化なので負数の場合はFLOORとは挙動が変わります。 またFLOORは整数値にはしてくれますが、整数型にはならないため実数型と整数型で挙動が異なる自作関数を作っている場合には注意が必要です。 myu314さんへ リストを拝見しましたが、現状では絶対値が2の-961乗以下の数は正しく動作しないですね。 正常動作させるためには場合分けが必要になります。
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
この64桁の2進数変換を使い1つの実数型で63個(64個の管理ができないのは上記のようにinfやnanがあるため)のフラグ管理が可能なFLAG関数も作りましたが、実用性という面では微妙です。 整数型ならばこんな面倒なことをしなくても32個のフラグ管理が可能です。 実数型1つでどうしても管理したいというのでなければ普通に整数型を使ってください。
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
任意の実数を2進数に変換するBIN$関数ならば以前作ったので参考にしてみてください。 https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTkBciitw ただし、後から公式に加わったBIN$と関数名がダブってしまっているためリスト中のBIN$はBIN2$等の別の名称に変更する必要があります。 inf、-inf、nan、-nanにもちゃんと対応しています。 これとは逆に64桁の2進数を実数型に変換する関数DECIも用意しましたが、infやnanの組み合わせとなる2進数はたくさんあるため対応させていません。(すべての場合を網羅ではなく一例を用意するだけならば簡単に対応は可能)
0そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
(続き) そもそも、初心者は○○以上のことを手を出すなというのは個人的にはあまり好きなやり方ではなく初心者であろうと自分がやりたいことをやるべきだと私は思っています。 確かにやろうと思っていることがすべて自力でできるようになってから手を出すのが最も失敗がないのですが、できるかどうかなんてやってみないと分かりません。 個人的には初心者はどんどんいろいろなことに挑戦して欲しいと思います。 その上でできない部分があれば質問してできるようになるとか便利なライブラリ等があればそれを使って実現するというのも選択肢としては有用だと思います。
0そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
ツララさんへ 「使えないものは使わない」というのは1つの選択肢であることには間違いないですが、自分が作りたいものを作れる便利なものがあるならばそれを利用するのも選択肢の1つであると私は思います。 例えば、セーブデータをまとめてセーブする方法が分からなければMIKIさんのVFILERを使うのも選択肢としては十分にありでしょう。 ポリゴンを使ったゲームを作りたいならばP3Dエンジンなどのポリゴン表示ライブラリを使えばいいですね。 ポリゴン表示をしてみたいならば1から勉強して自分でライブラリを作れるくらいになれるのがベターには違いないですがそれを初心者にはベターな方法かといったら違うような気がします。
0そうだね
プレイ済み