プチコン3号 SmileBASIC コミュニティ返信[15]親投稿おにぎり EasyPuzzler652015/2/17 7:55順を追ってプログラムを考えましょう. WHILE TRUE 'ここは1/60秒ごとに実行される VSYNC 1 WEND これが基本形.VSYNC 1というのが魔法の呪文みたいなもので,このループの中はほぼ正確に1/60秒ごとに実行されます.VSYNCが時間調整してくれるんです.(つづく)0そうだね プレイ済み2017/11/03 23:31:09に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿おにぎり EasyPuzzler652015/2/17 7:30あなたのやりたいことだと,音はボタンを鳴らしている間だけ鳴っていればいいみたいです.ただしボタンを押してから話すまでの時間を測って,短ければ・を,長ければ-を表示すればいいんだと思います.(つづく)1そうだね プレイ済み2017/11/03 23:31:09に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿おにぎり EasyPuzzler652015/2/17 7:27あー,やっと本当にやりたいことが見えてきたみたいね! わたしの2番目の投稿のプログラムでいえば7行目の N>=120というところをN>=60にすれば1秒になるんだけど これはあなたのやりたいこととは違うみたい.(つづく)0そうだね プレイ済み2017/11/03 23:31:09に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿おにぎり EasyPuzzler652015/2/16 22:575行目、ABDじゃなくてAND 6行目、N+1はN=N+1とかく 9行目と10行目のあいだ、何行か抜けてます。 同じになるように頑張ってみて。 紙にでも一度書き出してみるといいかも。1そうだね プレイ済み2017/11/03 23:31:10に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿おにぎり EasyPuzzler652015/2/16 21:03SPCOL 0,,&H00000001 SPCOL 1,,&H00000002 SPCOL 2,,&H00000003 とやると,0と1はあたり判定が起こらず 0と2,1と2はあたり判定が起きるという具合に できるようですよ(まだ試してない). シューティングで弾の種類がいろいろあるときなどに 便利そうですね.0そうだね プレイ済み2017/11/03 23:31:14に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿おにぎり EasyPuzzler652015/2/16 18:36あー、余計なパラメタつけないとそうなるんだ。ありがとうございます。ほとんどパズルw>でんぺんさん これとこれはあたり、これとこれはスルー、っていうのを、マスクって言ってるやつを上手く使うといいらしいです。うまく使えれば確かに当たり判定がスマートにできそうですが、上手くマスクを設計するのがてごわそう。 0そうだね プレイ済み2017/11/03 23:31:14に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/2/16 17:41もう少し詳しく考えてみてください.意外に奥が深いん ですよ… ・普通の押しと長押しの違いは?何秒押したら長押し? ・もし音は0.1秒,長押しは1秒以上だとすると, 押したらまずピッとなって,1秒たってからピーッと 鳴り続けるということになるけど,そういうこと? ・それとも押している間だけ鳴り続ければいいの? 1そうだね プレイ済み2017/11/03 23:31:10に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿おにぎり EasyPuzzler652015/2/16 17:36そうです.わたしも最初そこでひっかかった人です.デフォルトのあたり判定ってもっていないんですよ.SPCOLしない限りだめなんです…でも考えてみると,あたり判定の必要なものだけつけられるようにしたほうが,たしかにいろいろ合理的なんですね.まあこの辺をあれこれ想像するのもプチコン3号のたのしみなので(自虐的w).0そうだね プレイ済み2017/11/03 23:31:14に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おにぎり EasyPuzzler652015/2/16 14:19メインループの中で、キー入力を受け付けてそれぞれのキャラを動かした次に でした。言葉足らずですいません。0そうだね プレイ済み2017/11/03 23:31:14に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/2/16 14:17SPCOL 0,0,0,16,16 SPCOL 1,0,0,16,16 をメインループの外でやっておいて キー入力を受け付けてそれぞれのキャラを動かし、 IF SPHITSP(0,1) THEN END でできると思います。0そうだね プレイ済み2017/11/03 23:31:14に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/2/15 21:35弾にわりあてるスプライトの番号を決めておいて、弾にふさわしいキャラをセットし、発射ボタンを押すなどのタイミングでそのスプライトを表示、あとは弾の場所をSPOFSでちくちく指定していくことになります。弾の飛び方はプログラムでいちいち書かないといけないです。おおざっぱにいうと WHILE TRUE VSYNC 1 ’フレーム単位で処理する 味方,敵,弾を表示する あたり判定をする キー入力を調べる 味方,敵,弾の次のフレームでの位置を計算する WEND という流れになります。 0そうだね プレイ済み2017/11/03 23:31:45に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/2/15 21:28SPSETで使い始めて、キャラを変更する場合はSPCHRで切り替えます。SPSETでも変わるんだけど、マニュアルにはSPCHRを使ってください,って書いてあります。 SPSET 0,1 SPOFS 0,200,120 SPSHOW 0 FOR I=2 TO 10 WAIT 60 SPCHR 0,I NEXT 上画面の真ん中にスプライトが現れて 1秒ごとにキャラが変わっていくプログラム。0そうだね プレイ済み2017/11/03 23:31:45に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おにぎり EasyPuzzler652015/2/15 20:55!(A && B) と !A || !B は確かに同じになりますね。 !(A || B) と !A && !B が同じになるかどうかはみなさん自分で確かめてみてね!1そうだね プレイ済み2017/11/03 23:31:49に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おにぎり EasyPuzzler652015/2/15 20:47Xが負か、399より大きいとき、って、 結果だけ見ると、なあんだあたりまえ、って感じ。 だけど、条件がややこしくなってきた場合には、 どうしても条件式が正しく作られたかどうかが怪しく なってきます。そんなとき、この法則を使いこなせると こんがらがった頭の整理に役に立ちます。 中学で習うのかな。でも小学生でもできそうでしょ。 できたらCOOL!1そうだね プレイ済み2017/11/03 23:31:49に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/2/15 20:41ちょっとむずかしいね。ではこんな例で、 Xがプチコンの上画面の横座標に入るかどうかは 0<=X && X<=399 で判定できますね。では Xがはみでるときはどう判定すればいいか? 0<=X && X<=399 じゃないとき、だから !(0<=X && X<=399)となります。ここで さっきのド・モルガンの法則を適用すると !(0<=X) || !(X<=399) となります。 さらによく考えると 0<=Xじゃない、というのはX<0と、 X<=399じゃない、というのはX>399と、 それぞれ書き換えられますから X<0 || X>399 とすればいいことになります。1そうだね プレイ済み2017/11/03 23:31:49に取得
プチコン3号 SmileBASIC コミュニティ投稿おにぎり EasyPuzzler652015/02/15 20:40:53プチコンプログラマーの君なら小学生でも覚えて損はない ド・モルガンの法則! !(A && B) は !A || !B と同じ結果になります。 !(A || B) は !A && !B と同じ結果になります。 むむ、ややこしい?!10そうだね 5返信プレイ済み2017/11/03 23:31:49に取得