Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
110 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30154
次のページ(過去)
返信[17]
親投稿
おちゃめ ochame_nako
プログラミングが料理と根本的に異なるのはリスクがないことです。火や包丁を使わないし失敗して食材が無駄になることはないし料理と違って時間制限もないためいくらでも試行錯誤できます。 特にプチコン3号は滅茶苦茶なプログラムを使ってもエラーが出るだけであってプチコン3号が壊れたり3DS本体が壊れるという心配は全くありません。滅茶苦茶は大いに結構なので「失敗を恐れずにやる」ということが重要です。 したがって、時間制限やリスクが全くないためエラーが出て慌てる必要も全くないのでエラー表示を元にどこに問題があるのかをじっくり見て探し出せば良いです。 講座のサンプルプログラムを実際に入力するということも大切ですが、そのプログラムをどんどん弄って(改造して)プログラムの仕組みを覚えるというのが自分の力になります。 プログラムを多く読み書きすることで上達します。誰でも上達が可能なので頑張ってください。
3そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
上達するためには自分の中での「楽しいこと」を見つけてください。 基礎を勉強して少しずつ分かるようになるのが楽しいのであれば基礎からコツコツやるのが良いです。 作品作りが楽しいのであればまずは「自分が作りたい作品」を作り始めてください。実際に作品を作ることで分からない部分が具体化するので基礎はその時になって勉強すれば良いです。 ゲーム制作(自分の作品作り)において最も重要なのは試行錯誤です。 紙と鉛筆だけを使って行うような勉強方法ではなかなか身に付かないため実際にプログラムを作って動かしてそれから何が悪いのかを考えるということが必要になってきます。 したがって、実際に動作可能な最小構成から作ると良いです。 マリオタイプのアクションゲームであればまずは十字ボタンでキャラを左右に動かすことから始めて次にジャンプするプログラムを追加してという感じで少しずつ完成形に近づけていけば必ず完成します。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
誤解を恐れずに言うならば三角関数というのは「角度を長さに変換」したり「長さを角度に変換」したりできるものです。 したがって、角度を少しずつ変えながら何かをしたい場合などに活用ができます。(例:敵の動きを角度を少しずつ変えて自キャラに近づくように動かす) とはいえ、三角関数を使わなくてもそれっぽい表現が可能だったりする場合もあるので必要になってから三角関数を勉強しても遅くないと思います。
3そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
1画面に思い切り詰め込んだプログラムは良いですよね。 ちなみにWIDTH 16で縦横2倍表示時に1画面に詰め込んだプログラムはプチコン界では「QSP」と呼ばれています。 最大293文字でどれだけのことができるかというのを考えてプログラミングするのはとても楽しいです。 ちなみに下記のプログラムはカラー対応のお絵かきソフト「SIMPLE PAINT QSP」です。 https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkuvFo95w
1そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
裏技だけではなく小技や常識的なものも混ざっていますが・・・ 実数型で正しく表現可能な整数値は9007199254740992(2の53乗)まで。(それを超えた場合は、2の54乗までは偶数、2の55乗までは4の倍数で丸められる) VALで数値化できるのは99桁まで。(100桁以上は自動的に0になる) 実数型変数をSTR$で文字列化した場合に有効桁数6桁に丸められる。(整数型は全桁正しく文字列化可能) 数値と文字列の比較演算をすると3になる(これを利用して型判別が可能で私も自作関数SUFFIXを作ったので過去のトピックス参照) VAR関数は普通の関数とは異なり左辺値にもなる。VAR("A")=1というような記述も可能。 GRPの透明色はGSPOITの値が0もしくは正数。 ファンクションキーに入る文字数は256文字(入力できるのは先頭128文字) 他にもたくさんありますが。
5そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
初心者、初級者が中級者になるのは簡単でちゃんと考えてプログラミングを行うだけです。 「そんなことは誰もがやっていることでは?」と思うかもしれませんが、実は中級者以上ならば当たり前とも言える「考えてプログラミングをする」というのが初心者や初級者ではできてない場合が多かったりします。 自分のプログラムを他人から質問された場合に「ここをこうしているのは○○のため」と説明できるくらいになれば中級者と言ってもいいですが、自分が作ったプログラムなのに「何となくそうしている」という回答しかできないならばまだまだ中級者を自称するのは厳しいと感じます。
2そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
初心者、初級者、中級者、上級者に明確な定義はないので私の個人的な考えだとこんな感じですね。 まずは中級者。 中級者は基本的に自分が作りたいものを自力で作れる人です。分からないアルゴリズムは自力で検索しても問題ありません。 というわけで、中級者に満たない人が初心者や初級者ですね。 他の人に頼らないと作るのが難しい人がこれに相当します。 上級者は自分が作りたいものはできて当たり前でよりベターな方法で作れる人です。 例えばゲーム作りに便利なライブラリがあった場合に・・・  ライブラリを使ってみたけど思うように動かない → 初心者  ライブラリを使えばゲームが簡単に作れる → 中級者  もっと良いライブラリを作ったよ! →上級者 とはいえ、普通はジャンルによって得手不得手があるため得意ジャンルでは上級者だけど苦手ジャンルだと中級者止まりの人も多いと思います。
3そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
VAR("プログラムスロット番号:変数名")とすると好きなプログラムスロットのグローバル変数を取得可能ですが、そのためには変数が実体化されてなければなりません。 したがって、EXECを使ってそのプログラムスロットの先頭行から必要な部分までを実行させるか、USE+GOTO(もしくはGOSUB)を使ってその変数の宣言もしくは使用されている行を実行させる必要があるわけです。 これらについて詳しくは「プチコン3号入門講座」に掲載しています。 ぜひ読んでVARをバリバリ使いこなせるようになってください。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
現在鳴っているBGMから定義番号やMMLを取得することはできないため自前で管理するしかないです。 しかし、変数や定数の型の取得は実は可能だったりします。 特殊な方法を用いていますが、私の自作関数SUFFIXで整数型、実数型、文字列型の判別が可能です。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fSfxRUkA とはいえこれくらいのものは標準で用意してくれるのがベターなのは間違いないですね。
2そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
ちなみにUSE 1でプログラムスロット1が使用可能になります。 スロット1に@NEXTというラベルがあるならばGOTO "1:@NEXT"でジャンプできます。 USE 1 GOTO "1:@NEXT"
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
プチコン3号は実行時にプログラムを「プチコン3号が実行できる形式(中間コード)」に変換します。 これは普段(RUNで実行時)は特に使用者が気にする必要はなく自動的に行われていますが、この変換処理を意図的に行うのがUSE命令の役割です。 GOTO、GOSUBで別スロットにジャンプするときにはUSEが必要になりますが、EXECを使い別スロットの先頭行から実行する場合にはRUNと同じく変換処理が自動的に行われるためUSEは不要です。 USEを実行することでラベル(ジャンプ先)がどこにあるのかという情報が取得可能になるわけです。 また、ジャンプはしないけど別スロットの変数を使いたいという場合もUSEは必要になります。(変数は各スロットで別物扱い)
3そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
私の簡易毛筆を使っていただきありがとうございます。 簡易毛筆 ver.2ならばアルファチャンネル(半透明)に対応しているため解像度の低い3DSでも文字の周囲のドット(にじみ処理のドット)はあまり目立ちません。(品質重視設定にすればアルファチャンネルに対応となり透明度も設定が可能) 簡易毛筆 ver.2.3.0はこちら https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0gEsqGTDQ
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
ANDを使ったビット演算は値が分からない状態から特定のbitの値を取り出すのに有用ですが、上位のものから計算してすでに値が分かっている状態においてその分かっている値のbitの部分を削除する(1から0にする)のであれば単純にその値を引けば解決できると思います。 それとも、私が考えているものとは全然別の何かをやろうとしているのでしょうか?
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
プチコン3号のGRPの色というのはRGBAが5551の16bit色なのですが、このようにGRP上で表示される色はAが0の時は透明色であるため実質15bit色となります。しかし、透明色も15bit色存在するわけです。 この透明色はARGBがすべて0のGRPのデフォの透明色と見た目で判別はできませんが、GSPOIT上では異なる色として判断が可能です。そのため「見えない当たり判定」として活用が可能です。 私が作ったPETIT PAINT QSPでは色コード8(A、R、G、Bが0、0、0、8)を「見えない円の塗りつぶし境界色」と使用することで円同士が重なっても正しく円を塗りつぶせるようにしています。 https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTsk6CEtg
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
GSPOITで返す値は32bit整数型ですが、この型においては32桁の2進数で表記した際に最上位のbitが1ならば負数になります。(あくまで補数で負数を表現しているため最上位のbitが符号を示しているわけではないので注意) 32bitの論理色コードではARGBとなっておりAが上位bitを示しています。Aの値が255の時は2進数で表すと11111111となり最上位のbitは1になるため負数です。しかし、Aの値が0の時は2進数で表すと00000000となり最上位のbitは0になるため正数となります。 したがって、GSPOITで読み取った値が16316664(A、R、G、Bが0、248、248、248)ならば透明色というわけです。
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
GRP上の透明色と不透明色の判別は実はシフト演算等を使用しなくてもGSPOITで読み取った色が0以上か否かで判別可能です。 負数ならば不透明色、0もしくは正数ならば透明色です。 知っての通り、プチコン3号のGRPはR、G、Bが各5bitで表現されているため値は8の倍数の丸められます。例えば255(&HFF)という値は248(&HF8)に丸められるわけです。 しかし、Aに関しては1bitで表現されているため0か255で丸められます。例えば、255(&HFF)という値は255(&HFF)のままですが、248(&HF8)という値は0に丸められます。
1そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
1要素あたり1bitしか入ってなければ整数型の配列に入るだけ詰め込めば32分の1にセーブデータを圧縮できます。 セーブデータの読み出し、書き込みのプログラムの共通化はVAR関数を使えば可能になります。 VAR関数についてはこちらのトピックスを見るかさらに詳しく知りたければプチコン3号入門講座を読んでください。 https://miiverse.nintendo.net/posts/AYIHAAAEAACHVRTs1c4kFA ただし、セーブデータは数10KB、数100KBという大幅な短縮が可能ですが、セーブの読み出し、書き込みを共通化してもせいぜい数100バイト程度の短縮しかできないと思うのでそこまで気にする必要性は無いと思います。
2そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
DATは実数型だと1要素あたり8バイト、整数型だと4バイト、TXTは1文字あたり1~2バイトのサイズになります。しかし、実数型の配列に1桁の数値を入れてしまうとそれだけで8バイト消費されます。 1要素あたり実数型ならば64bit、整数型ならば32bitのデータが入るためうまくセーブデータを作れば1要素あたり(1文字あたり)のサイズは異なってもどの型も同じサイズまでセーブデータを小さくすることが可能です。 したがって、セーブデータの作りやすさとの兼ね合いで型を選択すると良いと思います。 セーブデータが文字メインなのにDATで保存したり、セーブデータが数値メインなのにTXTで保存するとセーブデータを作るのが難しくなります。 また実数値を保存するのに整数型配列のDATで保存する場合もセーブデータを作るのが難しくなります。
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
問題点がいまひとつ分からないのですが、セーブデータのサイズを小さくしたいということですか?それともセーブデータの結合、分解処理を短くしたいということですか? セーブデータにおいてはプチコン3号ではDAT(バイナリデータ)とTXT(テキストデータ)が使えますが、それぞれにメリット、デメリットがあります。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
SPANIMを使ってキャラを向いた方向にアニメーションさせる方法はこちらの私のトピックスで詳しく解説しているので良かったら参考にしてみてください。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fxyAvp3g
2そうだね
プレイ済み