Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
次のページ(過去)
返信[4]
親投稿
おちゃめ ochame_nako
ASAさんへ 私のサイトのプチコン講座のコンソールの項目に書いていますが、プチコン3号の文字色はRGB(赤・緑・青)とYMC(イエロー・マゼンタ・シアン)が順番に並んで最後にホワイトという順番でそれぞれ暗い色、明るい色が2色ありmkIIよりもパターン化されていて覚えやすいです。(RGBで言えば概ね&H80と&HFFのみで構成されたWebカラー基本16色にほぼ準拠) りょうまさんへ デフォが白文字なのは昔からの伝統もあると思いますが、デフォで黒背景だからでしょう。実際は黒ではなく透明色なのですが。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
GCOLORを設定している変数がCOLとした場合には39行を次のように変更すれば改善できるはずです。 GCIRCLE TX,TY,HNK,8:GPAINT TX,TY,COL,8:GCIRCLE TX,TY,HNK,COL
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
数当てゲームはRNDによるコンピュータが考えた数(乱数)の発生、INPUTによるプレイヤーが考えた数値入力、IFによる(正解か間違いかの)条件判断、PRINTによる結果表示ができれば作れます。 どれも順を追っていけば初心者でも容易に理解が可能なので恐らく作れない理由はプログラムというのは処理の手順を記したものというのがまだ理解できてないためだと思います。 まずは、プチコンの命令ではなくどんな処理をどんな順番で実行すれば数当てゲームができるかを考える必要があります。 数当てゲームで無くても自分が作りたいもので同様に考えれば問題ありません。ネット上を検索すれば初心者向けのプチコン3号入門講座を書いた個人サイト、ブログは多数見つかるのでそれを参考にしてみると良いでしょう。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
上記の解説を見ての通り、常時60fpsで動作しているプログラムの場合はWAITとVSYNCは全く同じ動作となります。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
一見すると似たような命令ですが、すでに多くの方が書かれているようにタイミングを取るならばVSYNC、ウエイトならばWAITと覚えておくのが一番でしょう。 細かい動作の違いについて知りたいならば「VSYNCとWAITでタイミングを取れ」で検索すれば詳細な図解による解説があるので参考にしてみてください。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
2056bitのRSA暗号を暗算で解くゲームですか?
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
VSYNCの位置を変えて2フレーム以上タッチ(TM>=2もしくはTM>1で判別可能)していたら線でつなぐようにすれば改善できます。 前回のタッチ座標はわざわざ再取得しなくても変数に入れておけばいいのでこのようにできます。 XSCREEN 2 DISPLAY 1 GCLS @P MX=TX:MY=TY TOUCH OUT TM,TX,TY IF TM>1 THEN GLINE TX,TY,MX,MY VSYNC 1 GOTO @P
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
BASICに限らずプログラムは処理の手順を書き記したものにすぎないので簡単なものから少しずつ作ったり改造したりしていくのが良いと思います。 それと、目的もなくプログラミング言語を覚えようとするのではなく「具体的に作りたいものがある」というのは上達には欠かせないでしょう。 3月に発売予定のプチコン3号の公式ガイドが待てないならば「プチコン3号 ゲーム制作講座」などでネット検索すると良いかもしれません。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
FPSを表示するプログラムにタイプミスがありました。 正しくはこれです。 INC FPS:IF MAINCNT-CNT>59 THEN LOCATE 0,0?"FPS";FPS:CNT=MAINCNT:FPS=0
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
やはり、自分が作りたいものは何かを具体的に考えられるか否かが重要だと思います。 作りたいものが決まればそれを自分にできる範囲で簡略化してその手順を書いていけばそれがプログラムになります。 最初は覚えることが多いですが、それさえ乗り越えればプログラミングは非常に楽しいですよ。 「プチコン3号 ゲーム制作講座」で検索すればプチコン3号の入門講座があるのでそれを読めば様々な疑問点が解決できると思います。
1そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
FPSを表示するには1秒間(60フレーム)の実行回数をカウントすれば良いだけです。 やり方が分からないというのであれば次の1行プログラムをメインルーチンの適当な部分に挿入すれば画面左上にFPSを表示できます。 INC FPS:IF MAINCNT>CNTTHEN LOCATE 0,0?"FPS";FPS:CNT=MAINCNT:FPS=0
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
数値の特定の桁の数字が何かを取り出す関数GETNUMを作りました。 DEF GETNUM(NUM,DIG) RETURN NUM MOD (DIG*10) DIV DIG END これを使えばSCOREの100の位の数字を知りたい場合はGETNUM(SCORE,100)で簡単に分かります。良かったら使ってみてください。
1そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
X軸回転は簡略化しているとはいえテーブル化によって私が作った2軸回転プログラムのプチコン3号最適化改造版と同じくらいの速度が出ていますね。 簡略化のため高解像度にすると誤差が目立ってしまいますが、低解像度ならばそれほど問題ないと思います。
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
New3DSは旧3DSと比べてCPUそのものが速くなっています。 旧3DS用ソフトは互換モードで動作するため速くなりませんが、New3DS対応ソフトでは高速動作が可能になります。 プチコン3号はNew3DS対応なのでNew3DSで実行時には高速になります。(プチコン3号は現時点で唯一New3DSの性能を引き出せるソフト) VSYNCを使えばNew3DSで実行時でも旧3DSと同じ速度で動作が可能です。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
ループで1回につき1増えるというのならばFOR~NEXTを使うのが最も簡単です。 FOR I=1 TO I+1  PRINT I NEXT いくつまでカウントするのか分からないで無限ループにしました。ちなみにFOR~NEXTでもINC Iでも9007199254740992までカウント可能です。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
タッチした座標を元に数式で判定してもよいのですがGSPOITを使って色で判定も可能です。 ここで注意しなくてはならないのがRGBは8の倍数で指定するということです。この方法ならば円に限らず自由な形の範囲を簡単に判定が可能です。
1そうだね
プレイ済み
投稿
おちゃめ ochame_nako
他人に教えたり、講座を書いたりすることは自分にとってもすごく勉強になります。 言語化することで自分の理解度を客観的に確認できるからです。 分かってない人に分かるように伝えられるということはちゃんと理解していないとできないです。自分では分かっているつもりであって言語化できない部分は「分かっている」かもしれないし、「分かってない」かもしれない部分だからです。 私自身も自サイトでプチコン講座、プチコン3号講座を書いてかなり理解度が高まりました。 だから、自分であまり考えず、教えてもらってばかりの人はせっかくのレベルアップの機会を失うことになるため非常にもったいないと思います。
24そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
私の場合は1画面プログラムのように文字数を制限してその範囲内でいかにすごいものを作るかとか、処理の最適化によってどれだけ高速動作するようになるかとか、といった1つのことをとことんまで追求するタイプです。 まぁ自己満足にすぎないのですが、プログラミングなんて自分で楽しんでナンボだと思います。
1そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
攻撃力100、相手の防御力が50の時に与えるダメージを求めたければDAMAGE(100,50)とするだけで良いです。 こういった自作関数をたくさん作っておけばそれを組み合わせるだけでゲームも簡単に作ることができます。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
DEF命令を使うとRPGで使える攻撃時に与えるダメージを求める関数も簡単にできます。 DEF DAMAGE(AP,DP)  DM=ROUND(AP/2-DP/4)*(1+RNDF()/5))  IF DM<=0 THEN DM=!RND(3)  RETRUN DM END こんな感じで既存の命令や関数を組み合わせて新しい命令や関数を作れるのがDEF命令です。
0そうだね
プレイ済み