ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

プチコン

PRINTデバッグ

当たり判定の方法を根本的に変更中。 動作を確認するためにデバッガが欲しなる。ステップ実行しながら変数の値をチェックしたい。もちろん、プチコンにはデバッガが無いので、PRINTデバッグ。

コリジョンに苦戦中

マップとのコリジョンに苦戦中。 根本的に考え方を変えたほうがいいかもしれない。 あるいは、いまわりと自由に移動できるのを、マップチップのグリッド単位で移動するように変更するというのもありかも。

マップのコリジョン

BGマップの中をプレイヤーキャラクターが動くように実装中。 しかし、床や壁とのコリジョンチェックが大変。足元や頭の位置でチェックしたりしているのだが、角に斜めに当たったりすると抜けてしまったりする。 チェックのIF文が多くなって、コードもカオス…

プチコン Ver.3.0.2 更新データ配信

SmileBasic – 『プチコン3号 SmileBASIC』公式サイト プチコンの更新データが配信開始されたので、さっそくダウンロードした。 とりあえず、今のところ自分の使い方では問題になったところは無い。今のところ、一番関係ありそうなのは、スプライトの原点位置…

BG

プチコンでBGの設定を行う。BGでマップを表示するだけで、ゲーム画面っぽくなった。 作業中、キャラクターのスプライトがおかしくなってしまって、原因がしばらく分からなかった。結局、途中で他のツールを使ったために画像データが書き変えられてしまってい…

画面端

キャラクターの移動で画面端の処理を実装。 いま使っているスプライトの定義はキャラクターの中央下が原点となっているもの。それを考慮して座標の判定を行っている。 ただ、キャラクターの左右と上は1ドットの空きがあるが下は無いので、画面下に来た時だけ…

キャラクターの移動とアニメーション

プレイヤーキャラクターをパッドの上下左右で移動させるのを実装。さらにスプライトを切り替えて歩くアニメーションも付けた。 デフォルトで用意されているキャラクターのスプライトでは歩くアニメーションが4枚で出来ていたので、それを繰り返すようにした…

プレイヤーキャラクターの表示

プチコンでプレイヤーキャラクターを表示する部分を作成中。 コードを書いているとクラス化して機能実装したくなってくる。やっぱりC++でコード書いている時間が一番長いので、考え方がそちらになってしまう。

スプライトのテンプレート定義を変更

デフォルトで用意されているスプライトは16x16のものが多い。このスプライトのサイズを変更するには、SPDEF命令でテンプレートを定義する。 プログラム実行中に一度、変更するとプログラムを終了しても設定はそのまま。デフォルトに戻すにはACLS命令を使う。…

デフォルトのスプライトの定義番号2048以降は基準点が変わる #petitcom

デフォルトで用意されているスプライトは定義番号が2047までは左上が基準点となっており、それ以降はX座標は真ん中、Y座標は下端となっている。キャラクターでいえば、足元の位置。 左上が基準点のスプライトの定義番号に2048を足せば、下端が基準点のものに…

SPANIM機能を試す

プチコンのスプライトのアニメーション機能を試した。最初はよく理解できなくて、いろいろ試してやっと理解した。 アニメーションのデータを指定しておけば、そのデータ通りに移動したり回転したりすることが出来るというもの。 これで、スプライトの座標を…

サブルーチン化

いろいろとテストしたプログラムコードでよく利用する処理をサブルーチン化して、ちょっとライブラリっぽく利用できるように書き換え中。ある意味リファクタリング。 でも、やっぱり3DSの画面でタッチペンで作業するのは大変。PCとプログラムコードのやりと…

@BACKUP.PRGは上書き保存した直前のファイル #petitcom

FILESでファイルリストを見ていたところ、@BACKUP.PRGというファイルが出来ていた。これはファイルを上書き保存したとき、上書きされる直前のファイルとなっている。間違って上書き保存してしまった場合、この@BACKUP.PRGをロードすれば取り戻すことが出来る…

タッチした位置のスプライトを取得する #petitcom

タッチした位置のスプライトの管理番号を取得するには、矩形との衝突判定を行うSPHITRC命令を使えば良い。 TOUCH OUT STTM,TX,TY IF STTM>0 THEN NO = SPHITRC(TX,TY,1,1) ENDIF タッチした位置はTX,TYで、幅と高さが1の矩形、つまり点と衝突判定を行ってい…

設定されたスプライトの再設定はSPCHRで #petitcom

スプライトを2倍の大きさで表示しようとSPSCALE命令を使っていたところ、スプライトがちらついて表示されるという症状が発生。 原因はSPSET命令で同じ管理番号のスプライトを設定しようとしていたため。 WHILE 1 SPSET 0,1 SPSCALE 0,2.0,2.0 SPOFS 0,100,10…

タッチ情報の取得

下画面のタッチ情報は TOUCH 命令で取得できる。 TOUCH OUT STTM,TX,TYSTTMはタッチされている時間。タッチされていないときは0。TXはX座標(0~319)。TYはY座標(0~239)。 実際に試してみたところ、付属のタッチペンでは端5ピクセルくらい取れないみたい。なの…

スプライト同士の当たり判定

プチコンでスプライト同士の当たり判定には SPHITSP 命令を使う。 まず、SPCOL 命令でコリジョンの設定を行う。始点や大きさを設定することが出来る。省略すれば、そのスプライトの大きさとなるようだ。 SPHITSP()の引数にスプライトの管理番号を指定すると…

プチコンのサンプルプログラム

SmileBasic – 『プチコン3号 SmileBASIC』公式サイト プチコンのサンプルのコードを見るために毎回ロードしていたのだが、公式サイトにサンプルプログラムのコードが載っていることを知った。もっと早くから気が付いていれば…。 やはりPCの画面で見たほうが…

スライドパッドと十字ボタンで自機を移動する

プチコンのシューティングゲームのサンプルプログラムから、自機を移動させるコードは次の通り。そのままではなく、範囲チェックは1画面のサイズに変更してあり、スプライト番号の部分は省いてある。 AX=0 '自機のX座標 AY=0 '自機のY座標 AD=3 '自機スピー…

スプライト表示

プチコンで上下の画面にスプライトを表示するプログラムを書いてテスト。 さくっと簡単にいけるかと思ったけど、前準備や設定が足りなくて最初はうまくいかなかった。そのあたりの処理はサンプルプログラムを参考に実装。 次はパッドでスプライトを動かして…

プチコンのファンクションキーの設定は保存されない

別のゲームをプレイした後に再びプチコンを起動したら、ファンクションキーの内容は初期状態に戻っていた。 ファンクションキーの設定は保存されないのか。毎回、設定し直すのは大変なので、保存する方法は無いのだろうか。

ファンクションキーに画面クリアを設定

実行中のプログラムを途中で止めると、上画面にグラフィック画面やスプライト、テキストの立体視設定などが残ったままになって見づらい状態になってしまうことがある。そんなときは画面クリアを命令を呼び出している。 テキストはCLS。グラフィックはGCLS。…

ニンテンドードリーム購入

ゲーム雑誌「ニンテンドードリーム」の最新号にプチコン3号のプチ・ガイドブックが付くというので買ってみた。 プチとはいえ、命令のリファレンスがあったり、スプライト定義やBG定義の画像データが載っているので、プログラミングするときに非常に便利。 完…

プチコン3号でいろいろお試し

プチコン3号でサンプルプログラムを実行したり、公開されている作品をダウンロードして実行してみたりと、いろいろとお試し中。 LOCATE命令でテキストのZ値を変更すると、その後のテキストもその位置になるので、上画面のテキストが見づらくなってしまう。こ…

プチコン3号購入

SmileBasic – 『プチコン3号 SmileBASIC』公式サイト ニンテンドー3DSでBASICのプログラミングが出来るプチコン3号を購入。 さっそくサンプルプログラムをいくつか実行してみた。思っていたよりも立体視が良い感じ。最も手軽にプログラミングできる立体視環…