Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138154
次のページ(過去)
返信[14]
親投稿
おちゃめ ochame_nako
「フレーム」という単位を使って3秒間をカウントします。 1フレームは1/60秒なので3秒間は3秒×60で180フレームに相当します。 それを使って画面に3秒からのカウントダウン表示をしながらミッションクリアを判定するプログラムを作りました。 今回のミッションは画面に出る数字と同じボタンを押すというものです。(16ならばAボタンを押す) 使用するボタンはABXYの4つのみです。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
自作関数(命令)は引数を省略はできませんが、TEST "100,200,300"のように引数を文字列にすればTEST "100,200"やTEST "100"みたいな省略した記述も可能になります。 ただし、DEF内で省略した場合の処理を記述する必要があります。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
課金しないと使えない
1そうだね
プレイ済み
投稿
おちゃめ ochame_nako
グラフィックを半透明処理して乗算や加算などで重ね合わせ表示ができるGBLEND命令を作りました。表現力アップをしたい人はぜひ使ってみてください。詳しくはコメントにて。
33そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
変更点は描画GRPページの引数を削除したことです。これでGPUTCHRと引数は同じになりました。 あとは乗算の色計算処理の修正を行い少しだけ短く、高速化しました。 新しい公開キーは【 KE2XH3 】です。
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
GPUTSPをバージョンアップしました
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
ぺんこさん、Newあっキーさんへ それは発表したタイミングが良かったですね。 ぜひお使いください。 実は私もいちごスタンププログラムを見て「そういえばmkIIのGPUTCHRはスプライトキャラが表示できたけどプチコン3号はコンソール文字のみだけだよね」と思い即興で作ったものです。 アトリビュート設定に対応しない理由は書いてませんでしたが、少しリストが長くなるというだけではなく設定変更して定義されているキャラのみ桁違いに遅くなるのが嫌だからです。 ヨッシーさんへ ピクセル単位でRGBの演算をするだけなので遅くなるだけであって難しいことは何もありません。 スプライトは乗算で重ね合わせ処理が行われていますが、自前で計算すれば乗算だけではなく加算だろうと減算だろうとオーバーレイだろうと自由自在です。 アルテマソード!さんへ 今更ハカセブームに乗りました(笑)
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
難しく考えずに自分がよく使う処理をDEFで登録しておけば簡単に利用できるという程度の認識でもいいと思います。 他の人がDEFで作った命令や関数も簡単に利用できるため便利な命令や関数をたくさん用意しておけばプログラムを作るのが非常に楽になります。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
10進数は0~9の10個の数字で表現されていますが、16進数は0~9とABCDEFの16個の数字で表現されています。 Aが10、Bが11、Cが12、Dが13、Eが14、Fが15です。 プチコン3号では&Hを付けることで16進数を10進数に変換できます。 その計算方法ですが、10進数だと例えば789というのは7×10^2+8×10^1+9×10^0となります。(^は累乗を表す記号) FFFFFFは15×16^5+15×16^4+15×16^3+15×16^2+15×16^1+15×16^0=16777215となります。 こんな計算をしなくても999が10^3(=1000)から1を引いたものと同じくFFFFFFは16^6(=16777216)から1を引いたものなのですぐに求められます。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
ちなみに回転や半透明やアトリビュート設定には対応していません。 回転や半透明は処理も遅くリストが長くなるため使用する用途を考えると不要だと判断したので必要な人は自分で改造してください。 アトリビュート設定に対応していないため右や左や下を向いて定義されているキャラもすべてデフォルトの方向を向いている状態しか表示されません。 GPUTCHRもATTRによる指定には対応していないためGPUTCHRのスプライト版と主張するだけならばこれで問題ないと判断しました。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
書式は GPUTSP 描画GRPページ,表示X座標,Y座標,スプライト定義番号,横拡大率,縦拡大率,色 です。 画面の中央付近に定義番号1433のハカセの顔を横5倍、縦3倍で赤っぽい色で表示するにはGPUTSP 0,150,50,1433,5,3,RGB(255,100,100)とすれば良いです。 色は「1」を設定すればデフォルトの色が表示されます。 縦横拡大率、色がすべて「1」の時は16x16ドットのスプライトならば1秒間に18500個くらい表示可能ですが、拡大縮小をしたり、色を変えたら桁違いに遅くなります。 スプライトを使わずこのGPUTSPを使うメリットはあくまでグラフィックであるためSPSETは不要であり表示できるキャラ数に制限がないという点です。 しかし、キャラを動かすのには向いていません。 公開キーは【 N34KN5JM 】です。
1そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
プログラムリストは、こちらです。
3そうだね
プレイ済み
投稿
おちゃめ ochame_nako
スプライトキャラをグラフィック面に描画する命令、GPUTSPを作りましたので良かったら使ってみてください。端的にいえばスプライトキャラに対応したGPUTCHRです。詳しくはコメントにて。
12そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
Iが整数型ならばPOW(2,31)でoverflowになりますが、実数型ならばPOW(2,53)でカンストするため無限ループとなります。 もっともカンストする前にユーザーの寿命が尽きるでしょう(笑)
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
スプライト以外、矩形以外での当たり判定を行いたいというのであれば座標を元にした判定は有用ですが、スプライトで矩形による当たり判定を行うならば専用命令を使う方が速度も利便性の面でも上ですね。 基礎知識として知っておくということに関しては意味はありますが。 矩形ではなく見た目通りの判定に拘るならば当たり判定用のGRPを用意するという方法もあります。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
FOR I=0 TO M INC M NEXT は FOR I=0 TO I+1:NEXT と記述が可能です。 プチコン3号のFOR~NEXTは終了値やきざみ値を常に評価しているためそこに条件式を置くことも可能で非常に奥が深いです。 WHILE~WENDやREPEAT~UNTILが無かったプチコンmkIIではそれを使ってFOR~NEXTでWHILE~WEND的な使用が可能でした。
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
☆Tatsukin★さんへ 1と128はBUTTON関数では上とYボタンになります。 上とYボタンの両方を押したかどうかを判定する場合には変数BにBUTTON関数の戻り値が入っている場合次のようになります。(&&の方は演算優先順位の関係でカッコは不要だけど便宜上カッコを付けている) IF (B AND 1) && (B AND 128) THEN ~ IF (B AND 1) AND (B AND 128) THEN ~ &&の方は正常に動作しますが、ANDの方は正常に動作しません。 IF ((B AND 1)==1) && ((B AND 128)==128) THEN ~ IF ((B AND 1)==1) AND ((B AND 128)==128) THEN ~ このように比較演算を省略せずに書いた場合には&&もANDもほぼ同じ動作になります。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
数値は6桁以下の整数ならばSTR$で問題なく文字列化できますが、7桁以上になったり、整数ではない場合には文字列にする段階で丸め誤差が発生するため注意が必要です。 丸め誤差が発生しないためには私の自作関数PSTR$などを使う必要があります。 そもそも、数値をTXTでセーブする必要があるかどうかから考えても良いかもしれませんね。
0そうだね
プレイ済み
投稿
おちゃめ ochame_nako
私は初心者の人にはAボタン入力判定は変数BにBUTTON関数の値が入っている場合 IF B AND 16 THEN ~ ではなく IF (B AND 16)==16 THEN ~ というように比較演算子(この場合は==を示す)を書くことを強く勧めています。 この1つの理由は比較演算子を書くことで複数の条件を判断する場合に「かつ」はANDでも&&でも正常に動作するし、「または」はORでも||でも正常動作するようになります。 比較演算を省略した場合にはANDやORでは正常動作をしなくなるため&&や||を使った判定を覚える必要があります。 これは初心者にとって簡単ではないのです。(以下コメントに続く)
13そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
個人的には初心者ならば「条件式の比較演算子(==や!=や>や<など)を省略しない」というのがベターだと思います。 比較演算子さえ記述していればtrueとfalseが1と0になるためANDで条件式の「かつ」を正しく処理することが可能です。 ||や&&も正しく使うためには論理演算の知識が必要になります。 もちろん論理演算の正しい知識がある人ならば||や&&を使うのがベターです。
1そうだね
プレイ済み