1184987
Tonyu BBS
[再読み込み] [ホームページ] [使いかた] [ワード検索] [管理用]

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
ききたいことが… 投稿者 : chocobu(ntngno067197.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2006/12/16(Sat) 18:09 No.10613
 


Download:10613.zip 10613.zip 今、ダンジョン系ゲームを作っています。
↑↑がそれです。

聞きたいことは、
2つ以上のマップでいけない所を作る

相手の動き(Enemy)を、32ドットずつ自機(Danzyon_Mychar)に近ずけていく
です。
よろしくお願いします


Re: ききたいことが… 投稿者 : chocobu(ntngno067197.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2006/12/17(Sun) 10:05 No.10616
 
あ!!もう一ついいですか

HPとLVの動きです。
いつも画面の上に表示するようにしたいのですが
まったく考えが浮かびません。どうしたらよいのでしょう…


Re: ききたいことが… 投稿者 : ごま太郎(i60-47-202-48.s02.a002.ap.plala.or.jp)
- 2006/12/17(Sun) 19:46 No.10618
 
Download:10618.zip 10618.zip >>2つ以上のマップでいけない所を作る
がよく分からないんですが、mycharに書いてあるmapgetを駆使すればできるはずです。少し動作は変ですが、すでに実装されているような…?
もう少し詳しくお願いします。

>>相手の動き(Enemy)を、32ドットずつ自機(Danzyon_Mychar)に近ずけていく
こんな感じです。
こういう動きはローグライクと言ったりするんですが(私だけ?^^;)、主人公が一歩動いたらほかのオブジェクトを一歩移動可能にします。ほかのオブジェクトが動作し終わったら、また主人公が移動できるようになります。

>>いつも画面の上に表示するようにしたいのですが
$viewXは、画面の左端のワールドX座標を記録しています。
$viewYは、画面の上端のワールドY座標を記録しています。
詳しくはトップページからいけるサンプルページ? シューティングの解説をしているページの説明をご覧ください。
よーするに、$viewX+○;$viewY+□ってやっとけば、常に画面の(○,□)の座標にそれが表示されるわけです。

全体に、かるーくプログラムを入れたので、動作はところどころ変です^^;


Re: ききたいことが… 投稿者 : 昔の人(cc-h7032.hc.cc.keio.ac.jp)
- 2006/12/18(Mon) 15:25 No.10619
 
画面の上に表示を固定する方法は、レシピ→カテゴリ「スクロール」にも載っています。
せっかくの多機能ツールですから、すべての機能を一度は触ってみてはいかがでしょうか。


Re: ききたいことが… 投稿者 : chocobu(ntngno067197.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2006/12/18(Mon) 17:53 No.10622
 
2つ以上のマップでいけない所を作る…
自己解決しました。
(ただの、うっかりミス)


Re: ききたいことが… 投稿者 : chocobu(ntngno067197.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2006/12/18(Mon) 18:05 No.10623
 
それと、もう一つです。

オブジェクトが、通り抜けてしまいます。手前で止まるようにさせるにはどうしたらよいのでしょうか…?


Re: ききたいことが… 投稿者 : chocobu(ntngno067197.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2006/12/18(Mon) 18:08 No.10624
 
すみません書き足りませんでした。

オブジェクトとオブジェクトがです。


Re: ききたいことが… 投稿者 : ごま太郎(i222-150-115-181.s02.a002.ap.plala.or.jp)
- 2006/12/19(Tue) 09:42 No.10625
 
えと、ようするに、オブジェクトがとなりにあるかどうかを判定すればいいわけです。

やり方は二つあって、まずは座標で計算する方法。自分の座標+32のところに敵オブジェクトがあれば、となりにいるということです。そのときは移動処理をしないようにすればいいです。

次に、マップ座標(ttp://www4.atwiki.jp/gomatarou/pages/20.html)を使う方法です。以前は座標を使っていたんですが、今は私はこちらを利用しています。理由は色々ありますが、圧倒的にプログラムし易くてプログラムが分かりやすいからです。だいたいのRPGプログラミングの本でもこちらを利用しています。

ここらへんはちょっと難しい内容なので、うちのHPの講座を見てみてください(ttp://gomatarou.hp.infoseek.co.jp/out/rpg_hokou.zipがサンプル。ttp://www4.atwiki.jp/gomatarou/pages/11.htmlが書きかけで今回はあんまし役に立たない講座)。

サンプルの例ではマップとのあたり判定しかしていませんが、キャラクターとのあたり判定をする場合、それ専用の二次元配列を用意します。サイズはマップと同じです。
キャラクターがいて移動できないマップ座標には1などと入れておいて、移動できるところは0にしたりします。
あとはマップ取得と同じように、上下左右のキャラクターとのあたり判定をチェックします。
今の説明では分からないと思いますが、マップ座標を使う場合はまずはマップのあたり判定から必要ですし、すぐに詳しいサンプルがほしいようでしたら、後ほど上げる…こともできる…かな?^^;

今は旧アップ板の検索リンク機能が死んでいるので使いづらいですが、古いTDRCのプログラムからちょこちょこ見ていただけると、同じ悩みを解決する方法が色々見つけられます笑


追記 投稿者 : ごま太郎(i60-47-200-214.s02.a002.ap.plala.or.jp)
- 2006/12/19(Tue) 18:36 No.10628
 
ちなみに、昔の人さんのご紹介してくださった方法は、対象のオブジェクトをスクロールの影響から除外するもの。
私の方法は、スクロールしても視覚的には同じ位置にあるというもの。

私の方法は、update()との位置関係に気をつけないと少し変な動作をします。今回のようなテキストを表示するだけのオブジェクトであれば、昔の人さんの書いたレシピを使う方がいいでしょう。


Re: ききたいことが… 投稿者 : chocobu(ntngno067197.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2006/12/20(Wed) 15:42 No.10633
 
あの、ttp://www4.atwiki.jp/gomatarou/pages/20.html
のページはできたんですけど、
ttp://gomatarou.hp.infoseek.co.jp/out/rpg_hokou.zip
このページは、できません…


Re: ききたいことが… 投稿者 : ごま太郎(i60-47-198-58.s02.a002.ap.plala.or.jp)
- 2006/12/20(Wed) 21:04 No.10634
 
Download:10634.zip 10634.zip あ、すみません、サンプルのは移動だけでしたね^^;
マップのあたり判定については講座のほうのサンプルをご覧ください(ttp://www4.atwiki.jp/gomatarou/?cmd=upload&act=open&pageid=11&file=howtorpg_exe.zip)。

で、私が書いていたのはこういうことです(添付ファイル)。

改行 投稿者 : R.Sato(61.126.88.206)
- 2006/12/08(Fri) 15:59 No.10595
 


こんにちは、R.Satoです。テキストの改行についての質問
です。

改行を行ったとき、某育成ゲームみたいに書いてある文字
を1つ上の行に移動したいのですが、出来ますか?


Re: 改行 投稿者 : タコチュウ(謎)(KD124210095214.ppp-bb.dion.ne.jp)
- 2006/12/08(Fri) 20:00 No.10596
 
1行ごとにテキストオブジェクトを作って
(最大三行の場合)
新しい文字列がきたら
1行目.text="2行目のテキスト"
2行目.text="3行目のテキスト"
3行目.text="新しい文字列"
みたいにすれば表示できると思いますよb


Re: 改行 投稿者 : 昔の人(actkyo078094.adsl.ppp.infoweb.ne.jp)
- 2006/12/08(Fri) 22:14 No.10597
 
タコチュウさんの方法では、会話のたびに全ての行の文章を設定しなければならなくて、プログラムの長さが大変になってしまいますね。
一行をテキストオブジェクトにするならば、
1行目.text=2行目.text;
2行目.text=3行目.text;
3行目.text="新しい文字列";
とすれば、会話を追加する時は"新しい文字列"を書き換えるだけですみます。

行を多くすると、会話のたびに5行目.text=6行目.text;……と書かなければならず、長くなりますので、関数にしてみてはどうでしょうか?
function talk(txt){
 1行目.text=2行目.text;
 2行目.text=3行目.text;
 3行目.text=txt;
}
と文頭に書いておけば、talk("新しい文字列");と書くだけで行送りと文章の追加を自動で行ってくれます。

会話の窓が出たり消えたりする場合は、パネルに収めたほうが便利です。
この場合、配列を使ったテクニックが必要となります。

なお、変数"1行目"、"2行目"、"3行目"がそれぞれの行のテキストオブジェクトを指定していることが前提です。


Re: 改行 投稿者 : タコチュウ(謎)(KD124210095214.ppp-bb.dion.ne.jp)
- 2006/12/09(Sat) 20:38 No.10598
 
あたしかにダブルクオで囲ってたからこれじゃ文字列ですよね
一応ノリ的には昔さんとおなじようなノリだったんですけど(^^;)
(そういえば某育成ゲームってなんだろ ヨウカイザーか?)


Re: 改行 投稿者 : R.Sato(61.126.88.206)
- 2006/12/12(Tue) 15:55 No.10605
 
返信遅れてすいませんでした。
全体的に何となく分かるんですが、少ししっくりきません。
もうちょっと詳しく解説してくれるとありがたいんですが。

ちなみに僕が言ってる某育成ゲームは『コナミ』のやつ
です。(パ○プロクン)


Re: 改行 投稿者 : ごま太郎(i220-221-58-114.s02.a002.ap.plala.or.jp)
- 2006/12/12(Tue) 19:24 No.10606
 
Download:10606.zip 10606.zip えっと、今は時間がないので突貫工事です^^;
これはあんまし賢いやり方ではありません。しだいにパネルのサイズが大きすぎて動作速度が激減します。
ただ、このやり方が一番簡単で、もうちっといいやり方はちょっと面倒くさいです。

会話テキストを配列に保存。
配列の最後部から表示する行数だけ画面に描写準備。
このとき、表示するテキストの改行による行数の変化を変数で記録しておき(サンプルで言うと変数「行数」)、それに応じて実際に描写する行数を減らして調節。

てな感じです。
時間があればサンプルを作る…かも? デス。ではでは!


Re: 改行 投稿者 : R.Sato(61.126.88.206)
- 2006/12/13(Wed) 16:02 No.10608
 
ごま太郎さんありがとうございます。
一応、僕はキャラとの会話が終わるとそのパネルをいったん消す方針なので、重くなるというのは問題ないでしょう。

後は文字をぱらぱら流しつつ、ごま太郎さんの方法を試しま
すが・・・さて、うまくいくか正直不安ですが、がんばってみます。


Re: 改行 投稿者 : タコチュウ(中)(KD124210095214.ppp-bb.dion.ne.jp)
- 2006/12/14(Thu) 00:43 No.10609
 
パワ○ロですか
ワ○ルドスタジアムの分身君みたいな奴ですね(例が微妙)
しかしやはりゴマさんのサンプルはいかしてますね
無駄がないというかプログラムっぽいというか
拙者はここ数年いろんなプログラミング言語をやってるのに
基本的なソースの書き方もわかってないんですよね;
(そして自分で書いたソースが次の日には読めなくなっている…)

MIDI再生の遅延について 投稿者 : hirotow(p1232-ipad14kamokounan.kagoshima.ocn.ne.jp)
- 2006/12/10(Sun) 17:54 No.10599
 


こんにちは。
現在Tonyuでジャンプアクションゲームを作っているのですが、$mplayerでMIDIを再生する際に、処理を行ってから実際に再生されるまでに数秒の間が空いてしまいます。
実際の処理は、再生する音楽ごとに以下のようなsecretオブジェクトを作成し、ステージに貼り付けて実行しています。

extends SecretChar;

$mplayer.play($se_xxxx,1,50);

while(1)
{
  update();
}

どうすればすぐに再生されるようにできるでしょうか?


Re: MIDI再生の遅延について 投稿者 : BISS(i222-150-24-71.s02.a005.ap.plala.or.jp)
- 2006/12/10(Sun) 19:52 No.10600
 
こんにちは。
リスクが伴いますが、ver1.18を利用するという手があるにはあります。

更新履歴1.18
MIDIの演奏前の待ち時間を削減

リスクというのは

1.18には、MIDIの演奏中に強制終了になるエラーがあります。

というもの。
(1.18は使ったことがないのでどの程度の確率でエラーになるのか分かりませんが)
なのでMIDIの早期再生は恐らく皆の悩みの種かと・・。
強いて案を出すなら、
1:「FrameManager」で、ゲーム開始前処理の部分に再生のプログラムを書く
2:最初のページで何かMIDIを再生しておく
(MIDIの再生時はTonyuMIDIというものが起動するようなので、あらかじめこれを起動させておけば演奏開始が早くなるかも)
3:ページ切り替え時にエフェクトを入れて"間"を入れる

これくらいでしょうか。


Re: MIDI再生の遅延について 投稿者 : hirotow(webgwf1.kagoshima-ct.ac.jp)
- 2006/12/13(Wed) 12:51 No.10607
 
ありがとうございます。
現在最新版の1.22を使用しているのですが、ランタイムの起動時にどちらを使用するか選択できるようにしようかなと思います。

お久しぶりです。 投稿者 : DEKA(softbank219172248030.bbtec.net)
- 2006/12/06(Wed) 18:33 No.10592
 


パソコンが故障して一時作業が中断していました。
その後復帰、順調に進んでいたのですがまた問題が…


例えば
  if (getkey(39) && $map.getAt(x+16,y)!=$pat_brock+0) {
x+=3;
     f=0;
  }
  // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動

こんな文があったとして、
この文だと壁が一種類しか判断できないです。2つ以上の壁でこのプログラムを使うにはどうすればよいのでしょうか。


Re: お久しぶりです。 投稿者 : じんみ(nttyma039151.tyma.nt.ftth4.ppp.infoweb.ne.jp)
- 2006/12/06(Wed) 18:38 No.10593
 
if (getkey(39) && $map.getAt(x+16,y)!=$pat_brock+0 && $map.getAt(x+16,y)!=$pat_○)
のように&&を入れれば条件の追加可能です。


Re: お久しぶりです。 投稿者 : DEKA(softbank219172248030.bbtec.net)
- 2006/12/06(Wed) 20:17 No.10594
 
ありがとうございました。無事に動きました。

無題 投稿者 : E.O.S(catv219122099209.ucatv.ne.jp)
- 2006/11/29(Wed) 10:41 No.10584
 


はじめまして、つい最近Tonyuでゲームを作り始めました。

しかし、不具合が自分の力で解消できないため皆さんの力を借りたいと思い書き込みました。
若輩者に力を貸してくだされば幸いです。


Re: お願いいたします。 投稿者 : E.O.S(catv219122099209.ucatv.ne.jp)
- 2006/11/29(Wed) 10:48 No.10585
 
Download:10585.zip 10585.zip 失礼しました。

ファイルを添付する前に間違ってEnterを押してしまいました。

以下不具合箇所です。

シューティングを作成中なのですが、自機が発射した弾が、敵やアイテムを出すコンテナに当たっても当たり判定を行わず貫通することがあります。

やはりfor文を多用していてそれで処理が遅れ、判定されずに貫通してしまうのでしょうか?
そうであればどのようにすれば、解決するのでしょうか?

未熟者で申し訳ありませんが、どうぞよろしくお願いします。


Re: 無題 投稿者 : タコチュウ(応)(KD124208035050.ppp-bb.dion.ne.jp)
- 2006/11/29(Wed) 22:06 No.10588
 
えと…つっこみどころはいろいろあるのですが…
システム的にはかなり良いと思いますよ
完成が楽しみですね
それでまずウィンドウサイズですが、これはフルスクリーンにしたいのでしょうが、自分でドラッグすると左上まで持っていけないので、いまさらサイズの変更とか大変でしょうが、画面サイズを800x600または640x480にして豆乳フルスクリーンキット(『ダウンロード』からDL可能)を使いましょう(あとタイトル画面のふたつのオブジェクトでスクリーンサイズを変えるのがかぶってるので注意)

それとキャラの移動が早すぎるのも少々問題ですね 敵の目の前で止まれないことが多々あります

そして本題の当たり判定ですが、たとえばレーザーが撃たれている場合それをlaserに代入してクラッシュトゥー(レーザー)みたいにしているようですが、この命令だと画面上の1つのレーザーしか補足できないので、判定と当たり判定をつなげて
for(t in $chars){
if(t is laser && crashTo(t)){
t.die();
die();}}
とすれば画面上の全てのレーザーを補足できます

それとコンテナの乱数を見て思ったのですが、豆乳の乱数はrnd(x);の0〜(x-1)の数を返すので(3の時は0,1,2)あそこはrnd(3);ですね
それと乱数というものは実は順番が決まっていてその順番をバラバラにするためにまずrandomize();という関数呼ばねばなりません

あとどうでもいいことですが、ショットが1から5までありますがショットを作成するときに
ショット=appear(new shot1(x,y,p));
ショット.移動x=xの移動速度
ショット.移動y=yの移動速度
ショット内は
while(y>0-$mychar.scr_point && x<$mychar.widthLimit && x>0){
x += 移動x
y += 移動y;
update();}
とするとショットクラスが1つですみますよ(当たり判定も楽になる)

それとシューティングゲームでは基本ですが、弾を撃ちたい方向は
x += 移動x*cos(角度);
y += 移動y*sin(角度);
と設定します 角度が0度の時真左に飛びます(そのキャラのangleとかを代入すると便利)

↑(うわっ長いなこれ 迷惑極まりない;)


Re: ありがとうございます。 投稿者 : E.O.S(catv219122099209.ucatv.ne.jp)
- 2006/12/01(Fri) 09:29 No.10591
 
タコチュウさん、ありがとうございます。

当たり判定の問題は解消され、今はShotクラスをひとつにするべくがんばっています。

そしてウィンドウのことなのですが、一度ノートパソコンで起動させたところ画面が入りきらなかったので、そこも改善している最中です。

自分の拙いプログラムに親切に回答していただき、ありがとうございました。

がんばって完成させたいと思います。

.
[直接移動] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] [517] [518] [519] [520] [521] [522] [523] [524] [525] [526] [527] [528] [529] [530] [531] [532] [533] [534] [535] [536] [537] [538] [539] [540] [541] [542] [543] [544] [545] [546] [547] [548] [549] [550] [551] [552] [553] [554] [555] [556] [557] [558] [559] [560] [561] [562] [563] [564] [565] [566] [567] [568] [569] [570] [571] [572]
- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

- Joyful Note -