[管理用]プロジェクトボードに関する質問はなるべくプロジェクトボード内にてお願いします。「関連記事を探す」で,似たトピックを検索することができます。(自分の記事を削除時に使用。No.1597皆さんmapうまく描けてますか?なにかこつがあったら教えてください。No.1598おそらく、マップの絵が変になるんだと思いますが、それはサイズがあっていないのと、透過色の設定がしっかりしてないのが原因です。そこらへんのソフトで、均一なサイズ(32×32等)でマップに使う絵をそろえた後、その絵の中で使われてない色を一ドット分絵を囲むようにして塗りつぶします。すれば、きれいなマップがかけます。No.1599あ、なるほど。No.1604http://www.tkb-soft.hmcbest.com/ここのEDGEを使っています。最高に使いやすいですよ。No.1606http://www3.to/BearFactory/ここのPictBearを使用しています。Photoshopのプラグインフィルタが使用できます。No.1601初めてです。(多分)よろしくお願いします。「ワールド座標のここにきたらこのオブジェクトを出す」という動きはどう書けばいいのでしょうか。自分で何とかやってみたのですが、全然成功しません。p=+1が止まらなかったり・・・。すればいいのでしょうか。No.1602初めまして。○○(x,y,$pat_○○+○));↑このようにすればxとyが100以上200以下の場合オブジェクトが出ます。○○(x,y,$pat_○○+○));↑このようにすればワールド座標X,Yが100以上200以下の場合オブジェクトが出ます。○のところを出すオブジェクトと画像にしてください。このファイルを実行して画面端にいくと『oはオブジェクトでないのでメンバー変数xを参照できません』とでます。どこいらへんなのかも分かる。oがなんだかはさっぱり分からない。oとは何ですか?ついでに、ホントはこういう形にするんでなく、masasiのsxを使って同じ事をするつもりだったのですが、そっちでも同じエラーが出てきます。問題点は全て添付Fileに記してあります。補足だけ掲示板でさせていただきます。グローバル変数とクラスの名前が重複していたために問題が生じたのですが、基本的にグローバル変数は使用しないことをお勧めします。後に大きなProgramを作成されることかと思われますが、グローバル変数が足りなくなることが予想されます。『0はオブジェクトでないのでメンバー変数xを参照できません』ですが、0は0の事をあらわしておりまして、このエラーメッセージは正しかったことになります。scoreクラスで$score=0;と書かれていたので、$score.xで$scoreを読み込もうとしたときに、0.xとなったので、0がオブジェクトではないとエラーが出ました。どのようなエラーが出るのか(『0はオブジェクトでないのでメンバー変数xを参照できません』)programが短い場合には、Programを貼り付けていただいたり、添付Fileを載せて頂くといった形式が最も解答しやすいのではないのかと思います。programの注釈をたくさん書いていただけますと、読むほうも容易に理解できると思います。面白そうなゲームになりそうですね。No.1591ありがとうございました。あと、質問の形式とプログラムの注釈については今後気をつけます。No.1544機能紹介デモ風のAVGを作っているものの...やはり台詞が一番の課題だ。{update();}は使えなかったので(エラー)文の代入で行っている。{text="オレは生派です。変数はちゃんと用意してある。gg=1;この部分です。{update();}>は使えなかったので(エラー)どんなエラーでしょうか。文法エラーですか?この一文を実行するかぎりエラーはでないはずです。いった文章は表示されません。No.1553ありゃ?朝書いたのがアップされてないや正確にはエラーではないんです。先に進まないだけでして...。(まぎらわしい書き方ですみません)ちなみに、最初の『おにぎり...』はちゃんと表示されます。二番目の『オレは...』に会話が進みません。gg=1;の部分が期待通りに動かないようなので、『おにぎり...』が表示中にスペースキーが押されたらggを変更し、次の『オレは...』に表示を変更したいんです。gg=1;}//この時点でもgetkey(32)は「1(もしくは「1」より若干おおい数)」。{text="オレは生派です。{」以下の行が行われると思われます。問題点としては、textを変更しても、「update();」を行わない限り、元のTextが描写されつづけます。if文は分岐として扱われますので、その時点における一瞬の状態を表現ます。よって、Programによりますが、While文で待機させる状態(命令待ち)にした方が良いかもしれません。・抜本的に方法を変える(少し考えますと、もっと効率よくできる方法も考えられそうです。例、Textを配列に変える等々)、か、または・途中でgetkey(32)を0にするか、指定範囲を広めるにする。頑張ってみてください。No.1585ありがとうございました。No.1506シューティングの、機体が、やられたら、ゲームオーバーにするのは、どうしたら、いいんですか?それと、敵から、玉を発射する事もうまくできないんです。Over",color(0,0,0),20));die();}ちなみにこのまま使う時はoverというテキストオブジェクトを作っておいてください。ほかにもいろいろ方法があります。tama(x,y,$pat_○○+○));弾オブジェクトwhile(y<$screenHeight){y+=3;}そのまま使う時は○の部分を修正してください。敵が2秒に一回ぐらいの割合で弾を撃つはずです。No.1510$pat_○○+○の○は自分で作った画像ファイルの名前と番号を入れればいいと思います。サンプル画像を使うとるすると$pat_Sample+数字となります。ゲームオーバーの方は上ののどちらかを自機オブジェクトに入れればいいと思いますよ。上は敵に当たると自機が死ぬ。下は敵に当たるとoverオブジェクトが出てきてGameOverという表示が出ると思います。No.1520どうすれば、エラーがでませんか?教えてください。No.1521ファイルをアップしてくれると、どこが悪いかわかると思います。したら、どこかに余計なかっこがあるかもしれません。No.1525これは、関数の前に命令を書いているからです。,$pat_Sample+4));}↑これは、間違いです。命令は、関数の後に書くようにするとちゃんとできるようになります。,$pat_Sample+4));}〜その他の処理〜↑このように、function(関数)を先に書くようにするとできるようになります。どのオブジェクトも同様です。No.1529機体のプログラムを見てみるといろいろと問題点を見つけました。while(1)がたくさんあります。whileはカッコの中の条件が合っていれば{}←の中を実行するという意味があります。1はいつでも成り立つという意味です。ふつうの場合while(1)は1つでいいと思います。それと、自機のプログラムでゲームオーバーのif文が{}←の中に入っていません。これでは、1度しか実行されません。他のオブジェクトにも同様のミスがあるので修正すればうまくいくはずです。Over",color(0,0,0),20));die();}update();}このようにします。それと、ほかのオブジェクトも同じです。No.1535ゲームオーバーを表示するには、オブジェクトを用意するのではなくdrawTextを用いると良いと思います。付け加えるといいと思います。(crashTo($teki))ですが、これでは当たり判定があまりうまくできません。{mx=$screenWidth/2-100;//だいたい真ん中my=$screenHeight/2-50;//だいたい真ん中die();}}とするとうまくできるようになります。これは、オブジェクトがtekiであり、さらにそのオブジェクトにあたったときということになります。No.1536同じ処理はなんども書いているので消しましょう。onDie(){〜〜〜}のあとにナオヤンさんのプログラムを入れてみてください。それと、もういちどチュートリアルを読むことをおすすめします。基礎編にも大事なことが書いてあります。プログラムをコピペして作るより、文章を読んで理解しながら自分で打ったほうが上達が早いです。No.1537あ、すいません。重なった上にミスってました。No.1541すみません、tekiをEnemyに変えてください。No.1543for文を入れるところが違います。whileの中に入れてください。Over",$clBlack,20));をどこにも入れていません。Textに入れてください。(whileの中に)敵が弾を撃つようにするには、適のための弾を作成するか変数をつけるといいと思います。Over",$clBlack,20));をどこにも入れていません。Textに入れてください。//テキストで表示される文字update();}↑こうすると時期が死んだときにうまく表示されます。ありがとうございます。OVERとのるようになりました。tama2(x,y,$pat_Sample+1));を、敵のオブジェクトに貼り付けてください。それと、tama2というオブジェクトにwhile(1){x+=5;update();}を貼り付けてください。これだと自機が破壊されません。No.1556すみません、ミスです。カッコが足りませんでした。いれたんですけど、なにもかわりません。No.1559初めましてKTXです。die();update();}このように書きなおして下さい敵の弾が縦方向になります。No.1570エラーが発生する部分と、エラーの場所に移動でジャンプする場所は違う場合もあります。一度、そのプログラムを確認してみてはどうでしょうか。したら、カッコが多かったり少なかったりしているかもしれません。die();↑このように全角スペースが入ってます。No.1573できました!ありがとうございます。No.1577No.1556に書いてます。No.1584できました!いろいろ、ありがとうございました。