Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
132 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52184
次のページ(過去)
返信[14]
親投稿
あともう一つ。 今ちゃんとプログラム見て気づいたけど、飛び越え判定しているところってFORループを抜けている気がするんで、そしたらもう全ての敵に対しての判定対象にならないんじゃないのかな?
0そうだね
プレイ済み
返信[13]
親投稿
なるほど。それなら原因はわかってるっぽいですね。 sayさんのやり方は、X座標の完全一致での判断ではX座標が完全に一致しないケースでは飛び越えたとにならないので、そうじゃなくて移動前と移動後の座標の両方を比較してきちんとX座標をまたいだかを判定している感じですよ。 なので判定さえきちんとすればsayさん以外のやり方でも大丈夫ですが、その辺の感覚的なところはわかってきてる感じかな?
0そうだね
プレイ済み
返信[11]
親投稿
みなさんの回答を元に、解決方法はともかく駄目な理由はわかりましたか? それがわかってないと解決方法以前の問題になっちゃうんで…。
0そうだね
プレイ済み
返信[2]
親投稿
わからないのでレベルがわからないので適したコメントかわからないけど、GOTOは飛びっぱなしなのに対して、GOSUBは戻ってくるのが前提です。なのでGOSUBはその場所に飛ぶ前に内部的に戻ってくるための目印(栞?)のようなものを記録してあって、RETURNを見つけるとその目印の場所(正確には命令の次)に戻ってきます。 逆に戻る予定もないのにGOSUBで飛んでしまうと目印の記録が溜まってしまって何度も呼び出すといずれメモリー的なエラーになります。なのでGOSUBでとんだ際は、必ずRETURNで戻ってください。 逆にGOSUBで飛んでないのにRETURN命令が見つかると目印がない状態なので戻る場所がわからないので、そこでエラーになります。 ただしRETURNはDEFの戻りとしても利用出来るので、DEFの中のRETURNの場合は、GOSUBとは違う扱いになる場合もあるので注意。
2そうだね
プレイ済み
返信[4]
親投稿
sayさん: 正攻法。定石みたいなもの。 ようすけさん: 変数上は0〜5で扱い、表示の際に工夫する手法。 ゆうさん: とりあえず0〜6で、希望しない0が出てしまったときは再抽選(RND)するやり方。今回は適さないけど、場合によってはこういうやり方もあり。 みたいな感じですよね。基本的に乱数は0〜範囲の値しか取得出来ないので、それを加工して欲しい値にするのが定石です。なのでサイコロに限らずN1〜N2の数値が欲しいなら、 R = N1 + RND(N2 - N1 + 1) が基本形かな。N2 - N1 + 1は値の範囲を求めてます。+1するのはRND命令が0から指定した値-1の値を返すので+1しないと範囲として足りないからです。
4そうだね
プレイ済み
返信[1]
親投稿
RNDはQは初耳…。僕はRNDの時は、RかNが多いかな…。 それはさておき、変数名は別に決まってるわけではないので当然Aでも大丈夫ですよ。命令と被って使えない名前とか出なければなんでもOKです。 BUTTONがBが多いのは頭文字からとる人が多かったんでしょう。FORでIが多いのはプログラムの歴史的な話が絡むことが多いので自分で調べてみると面白いかも…?
8そうだね
プレイ済み
返信[47]
親投稿
GOTOを使わないにはDEFをマスターしないとかもですね〜。そうじゃないとGOTOとかGOSUBを使うことが出てきちゃうかもです。 で、確かにいつの間にやら長くなってしまいましたね、笑 では、一旦区切りで、また何かあったら気軽に聞いてくださいな。 最後にお礼のお礼で、ちょっとだけ最適化して文法改善しますね。 WHILE 1 C = (C MOD 13) + 1 LOCATE 5,5:COLOR C:PRINT "がんばって!!" WEND あまりいじるところないのでポイントだけ書いておくと、 1 命令の区切りはスペースじゃなくてきちんと:(コロン)にする。 2 Cの処理を頭に持っていくことで必ず値が入るのを保証する。(そうしないと例えば始めにどっかでCに18とかカラーコード以上の数値が入ってたらエラーになっちゃいます) 3 Cを計算で求めた。
0そうだね
プレイ済み
返信[44]
親投稿
いろいろ書きましたが、一番大事なのはやる気と諦めない心だと思うので、これからも頑張ってください〜。
0そうだね
プレイ済み
返信[43]
親投稿
あとしっかりとプログラムを組めるようになりたいのだとしたら、プチコンでも、 OPTION STRICT を必ず頭につけて、使う変数は宣言してからじゃないと使えないようにした方がいいです。これは他の言語では宣言しないと使えないものもあるので、それに合わせるというのもありますが、実際は多少の面倒と引き替えにバグを見つけるのが楽になるので、僕はテスト的な短いプログラム以外でちゃんとプログラムを組む場合は必ずつけるのをオススメします。(自分でもつけてます) 他にはGOTOを使わないようにする、というのもありますね。BASIC以外ではGOTOはほとんど使いません。なのでGOTOを使わないプログラムに慣れておくと他の言語に移行しやすいです。 あとDEF(自作命令)も使いこなせるようになるといいですね。というかGOTOを使わない場合、DEFが使えないととても大変です…。
0そうだね
プレイ済み
返信[42]
親投稿
ちなみに言語的に難しいという差はほとんどありません。ただ何をやるかで難しさは変わってきますね。例えばポリゴンとか物理演算とかをやろうとすると、その手の知識が必要になるので、どの言語をやっていてもそれを知らなければ難しいです。 実際には何をやるかで言語も変わってきますね。例えばWEB系のプログラムだとJavaScriptとかPHPとかの割合が増えてきます。ゲーム系だとやっぱりC++が強いところもありますが、最近はUnityなども増えてきてるんで、UnityならC#でも組めますよね。 という感じで、目的に合わせてって感じになると思いますが、どちらにしてもプログラムの基本はしっかり抑えておいた方が何をやるにしてもいいので、その為にもプチコンで基礎をマスターするのはいいと思いますよ。
0そうだね
プレイ済み
返信[41]
親投稿
BASICに限らず一つの言語をきちんとマスターするのは他の言語の役に立つと思いますよ。なのでBASICでも大丈夫です。ただ正しくインデントをつける、命令の区切り(1行の時)なら:を入れるなど正確な文法で組むようにした方が他の言語に応用が効きますね。 正直言語はたくさんあるのでメジャーなものならなんでもいいんじゃないかなと思います。あとはとにかくちゃんと作れるようになるのが重要ですね。僕はさっき上げた言語以外にも色々使ったことがありますが言語の差で苦労することはあまりないというか、それぞれの言語で個性があるなーって感じです。まあ文法的な好き嫌いはありますけどね。 ただBASICはオブジェクト指向言語ではないので、オブジェクト指向言語を初めて使うときはその差に少し混乱する可能性もあるので、そのぐらいですかね〜…。
0そうだね
プレイ済み
返信[38]
親投稿
仕事はプログラムに大いに関わっていますがゲーム専門というわけではないですね〜…。 プログラム言語は色々と使ったことありますよ。とくにメジャーなものなら。 C#、C++、Javaなども使ったことありますね〜。
0そうだね
プレイ済み
返信[12]
親投稿
JavaScriptはプログラムだけど、HTMLやCSSはプログラムとはちょっと違うような気も…。 まあでもページを作るのであれば全て大事な要素ですね。
4そうだね
プレイ済み
返信[5]
親投稿
音声にしても画像にしてもパターン認識というAIの分野になってくると思います。なので、まあ精度にもよるけど、その辺りの勉強が必要になるかな。あとは擬似的に誤魔化せればもっと楽な方法がみつかるかもしれないけど…。 滑れたんですね。良かったです!
1そうだね
プレイ済み
返信[3]
親投稿
あ−、そういうことか。勘違い…。コードで3行って事かと思った…。 表示が1行ならいいならGodotさんの言われている通りですね。 ちなみにコードで1行(:つかってもいい)だったら、 COLOR #WHITE:?"あなたの名前を";:COLOR #BLUE:?N$;:COLOR #WHITE:?"として登録します。" みたいな感じかな?
1そうだね
プレイ済み
返信[1]
親投稿
音声認識はマイク入力があるので原理的には可能ですが標準命令として認識が用意されてるわけではないので、やるとしたらとても大変な事になるような気がします…(^^; 滑らす処理は、今どうやってるのがイマイチよくわからないので駄目なら駄目のプログラムを載せるといいかもです。 また配列を使うのではなく、滑るというのは要するに摩擦抵抗が低くてすぐに止まれないのが原因なので、移動方向に対する速度を用意して止まろうとしたときに、その速度がすぐに0にならない(少しずつ0になる。この0になるまでの時間が滑る時間)ようにすれば目的に近い感じにはなると思います。
3そうだね
プレイ済み
返信[1]
親投稿
基本命令では1行は無理(:で繋げるのは別)なので、どうしてもやりたいなら、そういう命令を自作するしかないかもですね〜…
0そうだね
プレイ済み
返信[35]
親投稿
ツールも使ってくれてるんですね。ありがとうございます〜。色々出してるんで活用してもらえると嬉しいですし不満や改良点、バグなどがあれば言ってくれれば対応出来る感じだったら対応しますんで〜。 実はゲームはプチコンでは作ってないんですよねー…。何か作りたいと思って始めたことはあるんですが結局忙しくなって事もあって中断・開発中止になってしまいました…。 ツールはたまたま時間があったときにまとめて作っていたのと、その時はプチコン始めたばかりで興味本位で色々やってたら不満が出てきたところをツール作って…みたいな感じになってました。 そのうちプチコンでも何か作ってみたいですけどね〜…
0そうだね
プレイ済み
返信[10]
親投稿
偉くはないけどアリだとは思いますよ〜。 なんども呼び出すなら一度配列に入れてしまった方が良さそうですが、頻度が低いのであれば方法としてはアリだと思います!
0そうだね
プレイ済み
返信[33]
親投稿
そういえば僕が改良したやつ、メインループ中のWAIT命令をVSYNCに書き換えていたのも伝えるのを忘れていました。 VSYNCはメインループ中の同期をとるのに適した命令なので、ループの中のスピード調整ではWAIT命令よりもVSYNCの方がいいと思います。WAITは逆に本当の意味で時間を止めたいときに使う感じのイメージです。 ただVSYNCの場合は必ずウエイトが入るとは限らず、その場合はボタン情報などが更新されない可能性があるんで、ボタン入力待ちを作るときなどはループの中でもあえてWAITにしている場合もあります。 まあでも基本的にゲーム中のループならVSYNCで大丈夫だと思います。
0そうだね
プレイ済み