Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137154
次のページ(過去)
返信[6]
親投稿
おちゃめ ochame_nako
上記コメントはそれをセーブすることまで視野に入れましたが、文字列にしたものをセーブするのではなく表示が前提ならばFORMAT$を使って型変換するのがベターですね。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
文字列に変換する数値が6桁以下の整数であることが分かっているならばSTR$を使うのが最も簡単ですが、7桁以上になったり小数になったりするならばSTR$を使うと丸められてしまうため少し値が変わります。 7桁以上の整数値ならばFORMAT$を使うのが簡単ですが、小数も含むならばプチコン3号の有効桁数を考慮する必要があるため難しいです。(0が連なって良いならばFORMAT$で小数点以下324桁以上指定すれば問題ない) そのため私が作ったPSTR$関数を使うのが最も簡単です。
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
数値をセーブするならば数値配列変数に入れてDATとして保存するのが最も簡単です。 ただし、セーブするデータに数値と文字列が混在している場合は厄介です。 その場合は2回に分けるかどちらかの型に変換する必要があります。 文字列を数値に変換する場合は1文字ずつ取り出してASCで変換します。 数値を文字列に変換する場合は6桁までの整数ならばSTR$を使うのがベターですが、それ以外となると桁数を指定してFORMAT$を使うのがベターでしょう。 小数の場合は桁数指定が難しいですが難しければ小数点以下324桁保存しておけば問題ないです。 あと文字列は適当な区切り記号で区切って一纏めに保存しておいて、ロードの際はその区切りから元の形に戻すプログラムを作る必要があります。 難しければ数値と文字列の2回のセーブを行うのが最も簡単です。
1そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
初期のポケコンは1KB以下だったのでPC-E650もポケコンとしてはすごい機種なのですが、オプションの64KBの拡張RAMカード(何と本体よりも高価!)を使えば最大128KBにできます。 ユーザーの手による自作RAMカードは最大256KBのものがあり、本体も改造することで最大768KBにできました。 漢字フォント(美咲フォントも元々PC-E500シリーズ用に作られたもの)を表示させたりできるしIMEやDOSを作った人もいてプログラミング用ではなく簡易パソコンとして使用している人もいました。 それでもプチコン3号と比べたら大幅に見劣りしてしまいますね。 プチコン3号は物理キーボードが無い以外は当時思い描いていた理想の携帯型プログラミングマシンが実現した感じです。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
プチコン3号を使っていればPC-E650の使い方も分かってくるのではないかと思います。 BASICの基本的な部分は同じですしPC-E650にも実行モードと編集モードが分かれているため普通の8ビットパソコンよりもかなりプチコンに近いです。 PC-E650はプチコン3号と同じく#を付けることで倍精度演算(標準が64bitなので倍精度は128bit)が可能ですし、プログラムスロットはないけどBTEXT$命令を使えば同じようなことがキーボードのボタン数にできます。 ソースコード操作命令はないけどKEY 0命令を使えばプログラムの自己書き換えは思いのままですし、BG画面はないけど私が作ったOPASを使えばBGっぽいことはできます。 とはいえ、処理速度はプチコン3号と比べると1000倍以上遅い(グラフィック描画は数万倍遅い)ため処理の高速化を行うありがたみが実感できてしまいます(笑)
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
PC-E650は私も持っていますが良いポケコンですね。(ポケコンなのにWHILE~WENDやREPEAT~UNTILも使えるし) このシリーズの初代マシンであるPC-E500が出た時には80年代初頭の標準的なパソコンに匹敵する性能を持つ超高性能なポケコンということで震え上がりました。(何と前モデルの5倍以上の処理速度) とはいえ、それでもBASICのみでゲームを作るなら遅いのも事実であり、そのお陰で処理の最適化による高速化技術が身に付きました。雑誌掲載のゲームをマシン語を使わずBASICのみで改造(というか一から作り直し)を行い9倍の速度にしたことがあります。高速化は超楽しいです。 プチコン3号はよほど凝った処理をしない限り簡単に60fps出るので楽で良いですが。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
このプログラムではスライドパッドでカメラ位置を上下左右に動かし、Aボタンでモデルに近づき、Bボタンでモデルから離れます。 現在は立方体モデルのみですが、24行の頂点データ、25行のワイヤーのインデックスデータを書き換えれば自由なモデルを自由なカメラ位置で見ることができます。モデルの形式は私がmkIIで作ったポリゴン表示プログラムと同一なのでデータさえ差し替えれば複雑なモデルも表示可能です。 上記検索で見つかったページに他のモデルデータやモデルの作り方が書いてあります。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ポリゴンの前にまずはワイヤーフレームに挑戦した方がベターですね。 ワイヤーフレームの場合はモデルを回転させない場合は行列やベクトル演算などは一切不要で四則演算のみでOKなので難易度はかなり下がります。 これがそのサンプルプログラムです。
0そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
アイテムを持っているか否かではなく数もカウントする場合にはTHENの後のITEM=1の部分は「INC ITEM」もしくはITEM=ITEM+1にしてください。 その際はアイテムの効果は変数ITEMの値が1かどうかではなく0より大きいかどうかで判断します。
1そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
乱数の範囲が分からないけど0~9の10通りの乱数を発生させてその値が2の場合ならば次のような感じにできます。 IF RND(10)==2 THEN  PRINT"アイテムをてにいれた!"  ITEM=1  BEEP 119 ENDIF あとは変数ITEMが1かどうかでゲーム中の効果を判断すると良いでしょう。 そのアイテムがまだ持ってない時のみ取得できるようなタイプの場合はそのアイテムを持ってないかどうかも判断しなくてはなりません。(IF RND(10)==2 && ITEM==0 THEN 以下略) これ以上は実際にプログラムを書いてこの動作がうまくできないという具体例を提示した方がベターな回答ができると思います。
1そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
乱数というのは、でたらめな数であり法則性のない数のことです。 A=RND(5)とすることで変数Aには0から4の5通り(0、1、2、3、4)のうちからいずれかの値が入ります。 ここで注意するのは0から始まっているということです。 サイコロで使用する場合に1~6の値を発生させたいという場合にはRND(6)+1とすることで1から始まる6通りの乱数を発生させます。 RND(5)*2とすれば0、2、4、6、8という5通りとなる2の倍数の乱数となります。 このように足したり掛けたりすれば自分が希望するような範囲の乱数を発生させることが可能です。
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
私はモバイルノートPCを数台持っていますが、昔からポケコンを使っていた私としてはやはりプチコン3号のお手軽な携帯プログラミング環境はすごく便利です。 5~10インチ程度のノートPCでもやはりお手軽ではないですからね。 最後になりましたが「にぎやかトレイン」はシンプルでゲームバランスも良いため私も好きです。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
すごくざっくりとした説明ですが実際に詳しく説明すると長くなりすぎるので割愛させていただきました。 さらに詳しい説明が必要ならば「プチコン ポリゴン表示」などのキーワードでネット検索すると良いでしょう。 ちなみにプチコンmkIIでは24面体の表示でフラットシェーディングを行った場合に13~14fpsくらい出ました。(実効で300ポリゴン/秒くらい) プチコン3号ではNew3DSで実行時にはmkIIと比べて20~30倍程度の速度が出るし専用命令GTRIによって三角形描画はmkIIと比べて非常に速いため1万ポリゴン/秒以上になりそうな期待がありましたが、配列変数が遅いためリアルタイムゲームを作るにはある程度の工夫が求められると思います。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
ポリゴンの場合は裏表の判断をしなくてはならないし、表示する順番も考慮する必要があります。 順番を考えないとポリゴンが欠けたりします。(この処理はZソートと呼ばれています) 裏表の判断は法線ベクトルを元にすれば計算できます。 あとは光源を設定しておけば陰影を付けることが可能ですが、処理速度の問題からリアルタイムで可能なのは平行光源によるフラットシェーディングくらいでしょう。 これもベクトルの内積を使えば簡単に求まります。 テクスチャマッピングはGPSETを使うと非常に遅くなるしスプライトで処理するならば表示の整合性を採るのが難しいのでリアルタイム表示を行う(実際にポリゴンモデルを動かす)ならばテクスチャマッピングには手を出さない方が無難でしょう。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
あとはそのモデルがカメラからどのように見えるのかを計算してやれば良いだけです。 モデルが回転していたり、カメラが地面(XZ平面)に対して平行ではない場合は回転行列を使えばその座標は求まります。 あとはカメラの描画範囲を決めてやれば画面上での頂点座標が求まります。 これはビュー変換やプロジェクション変換と呼ばれています。 画面上の座標が求まればそれをGLINEでつなげばワイヤーフレームならば完成です。 ポリゴンの場合は単純にGTRIで描画すればOKかというとそうでもありません。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
プチコン3号には3Dポリゴンを扱うための命令はありません。(三角形を描画するGTRIがあるくらい) したがって、すべて自前で記述する必要があります。 大ざっぱな流れを書いておくとまずは頂点データとポリゴン面のデータを用意しておきます。 プチコン3号用のモデリングソフトは公開されてないため自分で作るか脳内で計算するしかありません。 私はプチコンmkIIでポリゴンプログラムを作った時にはすべて脳内で計算しましたが、100ポリゴンくらいまでのモデルならば何とかなります。 頂点データを作る場合には回転の中心座標を原点にしたローカル座標で記述するのが一般的です。 ポリゴン面のデータは多角形であっても三角形を組み合わせて描画が可能であるため表示する三角形のデータは何番と何番と何番の頂点を結んでできたものなのかというデータを用意します。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
公式以外でオススメするとしたら「プチコン3号 入門講座」で検索すると見つかるサイトですね。 各命令の使い方を公式ガイドブックよりも詳しく丁寧に書いています。
1そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
キーボードから直接打てない数字という意味ですか? とりあえず数字もしくは数字っぽいものを羅列すると次のようになります。 上付「1」00B9、上付「2」00B2、上付「3」00B3、「1/4」00BC、「1/2」00BD、「3/4」00BE、行番号を示すE100~E179と数字の「0」~「9」のFF10~FF19くらいですかね。
0そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
簡単な解説をします。 R=(RND(15)+1)*16はA、B、X、Yボタンを示す15通りの乱数を発生させます。 WHILE T~WENDはTの値が0でなければループを繰り返します。 画面上に表示するタイムはTの値を60で割ったものを整数にして表示しています。 この際、切り捨てとなるFLOORだと1秒を切ったら残り時間が0になってしまうため切り上げとなるCIELを使っています。 IF BUTTON()==R THEN F=1:BREAKで指定のボタンを押したらフラグを示す変数Fに1を入れてBREAKでループを強制終了します。 ループから抜けた後はFの値が1かどうかでクリアしたかが分かりますのでクリア処理とゲームオーバー処理を用意すれば完成です。 わざわざフラグ用の変数を用意しなくても残りタイムが0以外かどうかで判定をすることも可能です。
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
プログラムリストはこちらです。
1そうだね
プレイ済み