[管理用]プロジェクトボードに関する質問はなるべくプロジェクトボード内にてお願いします。「関連記事を探す」で,似たトピックを検索することができます。(自分の記事を削除時に使用。No.11805もしかして。・$pat_何とか+0と$pat_何とかは同じなのでしょうか。No.11786スーパーマ○オブラザースや星のカ○ビィのように、一点の座標が画面からある距離に達するとオブジェクトを発生し、それがいなくなるまで発生しない、というプログラムを考えています。発生したときのpにX座標の千倍とY座標を足した数を指定し、作られたオブジェクトは第一にnanbにpの数値を代入し、X座標の千倍とY座標を足した数がnanbの数に一致する者がいない場合にのみ発生する。((t01x<指定のX座標>*1000)+t01y<指定のY座標>==tage.nanb)の後どうすればいいのかわかりません。指南よろしくおねがいします。(screenOut()>0)を使うと画面外にx座標を持つ者を対象にしちゃうのですね。画像を表示させるわけですからそれすると突然画面に半分だけ発生してしまいます。...〔Y座標が続く〕)でいくつもり。これはいいのですが問題は“同じオブジェクトがたくさん発生しない、(座標にあるひとつの点に貼り付けるオブジェクトはひとつまで、そのひとつは同じ座標で作られた...つまり同じオブジェクトと同時に存在してはいけない。)ひとつまで発生し、おのオブジェクトがいなくなると、画面外という条件を満たして発生する”というプログラクをどううてばいいのかなって事。...したいことの表現、分かりにくいですよね。答えてくれようとした方、ごめんなさい。゚)どうぞよろしく「カー○ィ」とほとんど一緒の「つもり」ですw難しい文は作れないので自分なりのものを書いてみました。No.11792皆さんScreenOut()>0やScreenOut()==0のような書き方をしていますが、実際、ScreenOut()だけですみます。理由ScreenOut()が返す値は真(0)か偽(1)で、これらは省略できます。(と自分は思っている。)なので、if(ScreenOut()==0)ではなくてif(screenOut())とかくことができるのです。ちなみにこれは、真と偽で違います。真if(screenOut())偽if(!screenOut())ちなみにgetkey関数についても同じです。No.11797返答ありがとうございます。...で、実はと言うとまた自己解決してしまいました。$chars){文でnanb(前回参照)がt01x×1000+t01yと等しい者がいる場合、存在の有無に真を入れる。変数に偽が入っている場合、オブジェクト出現...という風にしました。die();お騒がせしてすみません。No.11798ちょっと蛇足ですが・・・SuperSSさんのレスに対してです。そのオブジェクトの座標が画面からはみ出しているドット数を返すメソッドです。画面から離れれば離れるほど返す値が大きくなります。(ScreenOut()==1)って指定しては危ないですね。こっちでは画面外判定するときは、画像の大きさほど外に出るくらい(32ドットの画像なら(ScreenOut()>32)くらい)にしてますけど。0か1が帰ってくる場合ではないですね。指定されたキーが押されてからのフレーム数ですので、「上キーを1秒経ったら」という条件は「getkey()>60」でできますね。亀レス・蛇足レスですいませんでした。No.11806>Umintyu-さんgetkeyの返す値がようやくわかりました。・getkeyはそのキーを押しているフレーム数を返すであっているでしょうか。No.11795Tonyuでマリ○カート見たいな3Dカーレースゲームは作れないでしょうか。2Dカーレースしか作れません。No.11801最近、Xenonさんによって実現されました。ttp://tonyu.jp/project/pages/viewProject.cgi?mainkey=394&ただし、初代マリオ○ートのような擬似3D処理です。No.11802つづけて質問ですが、コンピュータの動きをどうしたらよいでしょうか。No.11803一番合理的なのは、カーブ地点を設定しておき、オブジェクトにそこを通らせる方法でしょう。前ページの「線をたどる、たどっていくプログラム」スレッドにサンプルを示してあります。自分からのほかのキャラの見え方をどう処理するかが難しい課題となるでしょう。No.11791$se_何とかみたいなグローバル変数(オブジェクト?)をファイルから読み込んでちゃんとした$se_何とか("$se_何とか"はだめ)にならないでしょうか。getglobalはどのように使えばよいのでしょうか。簡単な手段はローマ字名に直しておくというところでしょうか。ちなみにgetglobalは、指定したグローバル変数名に入っている値を取得します。これは色々な応用方法がありますね。getglobal("$BOX"+i);}・・・とまとめることができます。逆のsetglobal(ヘルプには載ってないけど・・・)はsetglobal(値を入れたいグローバル変数,入れる値);と使うことができます。応用方法は上と同じですね。これらのメソッドはセーブ&ロードに役立つといったところでしょうか。(GoAndBattleも同じような使い方をしています)説明が長くなりました。No.11800ありがとうございました。無事ゲーム作成を進めることができます。No.11789ローグ系のゲームを作ろうとしているのですが、アイテムに関するデータをプログラム内でどのように保持すべきか疑問に思ったので、質問します。いうオブジェクトを格納していくことで表現しようかと思ったのですが、(item.no、item.kind、item.name、で番号、種類、名前を参照する。各値は、itemオブジェクト生成時(アイテムを拾った時)に代入される。一度に保持しておくデータの量が少なくなって良いでしょうか?なお、アイテムの最大所持数は20個くらいで、アイテムの種類は200種類くらいの予定です。No.11794appearで作られるオブジェクトは、x,y,p,f,zOrderなど、目に見えないアイテムとしては余分な変数を持ってしまいますので、メモリの損になるかもしれません。x=no;y=kind;・・・というように有効活用できるでしょうか。wait()状態にしておけば、処理負荷は最低限にできますが、データだけの存在には及ばないと思います。一方で、止めておいたアイテムデータオブジェクトをnotify();して効果発動できたりする利点はあります。私の場合は、それぞれのアイテムを"no,kind,name"という文字列で表し、あたかもオブジェクトのように、複数の変数を同時に受け渡ししています。ここから個々の変数を抽出するには、次の関数を呼び出します。No.11796ご返答ありがとうございます。参考にさせていただきます。