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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
上視点ゲームを 投稿者 : ペペ(fl1-125-197-31-253.iwa.mesh.ad.jp)
- 2008/12/25(Thu) 20:54 No.12107
 


おひさー!!ペペです。
いま上からみて銃で敵を倒すゲームをつくろうとかんがえてるんですが、弾をとばすにはどうしたらいいんですか。
向いている方にとばせれるんですか。


Re: 上視点ゲームを 投稿者 : ペペ(fl1-125-197-31-253.iwa.mesh.ad.jp)
- 2008/12/26(Fri) 08:44 No.12108
 
すいませんマップのスクロールは解決してしまいました。
けど新たな問題が・・・ 壁で自機をとまらせるにはどうやるんですか?いまいち if ($map.getAt(x,y,))でやってるんですができません。
ちなみに自機はカソールキーの右押すと右に回転して左を押すと左に回転するようになってます。


Re: 上視点ゲームを 投稿者 : ペペ(fl1-125-197-31-253.iwa.mesh.ad.jp)
- 2008/12/26(Fri) 19:49 No.12109
 
↑消せなかったorz

BGMについて。 投稿者 : 桃缶詰(ntngno080088.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2008/12/20(Sat) 18:50 No.12090
 


過去にもあったのかも知れませんが、検索が落ちているので質問させていただきます。
MIDIデータをTonyu SystemのBGMに使おうとすると、少し遅れて再生されるのですが、コレは僕のPCの問題でしょうか?
それと、無限にループさせたいのですが、MIDIでもできるのでしょうか?

よろしくお願いします。


Re: BGMについて。 投稿者 : 歯の健康維持装置(60-56-150-191.eonet.ne.jp)
- 2008/12/21(Sun) 15:39 No.12095
 
 $mplayer.play(豆乳でのサウンド名,0で一回、1で繰り返し,音量);   midi,mzoは可能と確認。wavは不可能かも。


Re: BGMについて。 投稿者 : マッキー(0x3d2cb6bf.rev.ncv.ne.jp)
- 2008/12/22(Mon) 00:22 No.12097
 
WAVもMIDIもMZOも無限ループできます。

でも、WAVは、一瞬バグって聞こえます。(同じ部分がなる)
MIDIは、遅れて演奏ささります。しかもPCによって、その遅れがかわります。
MZOは、MZOの作成ソフトMTowで、ループさせます。


Re: BGMについて。 投稿者 : 歯の健康維持装置(60-56-150-191.eonet.ne.jp)
- 2008/12/22(Mon) 08:15 No.12098
 
 wavの場合はすぐに鳴らさないこと、そして、鳴らすナイミングをwaitとかで約束しないことでしょうか?   いったんオプションをつくり、それのプログラム、apperから発生、でやってみればと。


Re: BGMについて。 投稿者 : 111(fl1-118-111-75-47.gif.mesh.ad.jp)
- 2008/12/22(Mon) 12:04 No.12099
 
 少し容量の重いMIDIだと遅くなるみたいですね。(私の場合は20kbならまったく問題なし、200kb以上だと遅れました)
 プロジェクトボードの「ライブラリ」にある【PLG】Tonyu Midi Player というソフトを使われてはいかがでしょうか(掲示板の都合上、アドレスは貼れないみたいですが)


Re: BGMについて。 投稿者 : マッキー(0x3dc4c014.rev.ncv.ne.jp)
- 2008/12/22(Mon) 12:37 No.12101
 
ここにあります。(hを付け加えてください)
ttp://hoge1e3.sakura.ne.jp/tonyu/project/pages/viewProject.cgi?mainkey=327&

演奏に遅れづらいのが、長所ですが、
たまに、曲が変わる時に、バグって同じ曲がなり始めるので、
あとは、桃缶詰さんの選択にまかせます。


Re: BGMについて。 投稿者 : 桃缶詰(ntngno080088.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2008/12/24(Wed) 19:15 No.12106
 
わかりました。
ありがとうございます。 やってみます。

自動生成マップ 投稿者 : B0R0(58-188-72-214.eonet.ne.jp)
- 2008/12/04(Thu) 22:03 No.12053
 


どなたか仕組みを教えていただけませんか?


Re: 自動生成マップ 投稿者 : B0R0(58-188-73-16.eonet.ne.jp)
- 2008/12/09(Tue) 08:51 No.12059
 
さっぱりわからないのですが


Re: 自動生成マップ 投稿者 : メリッサ(p161.net059086010.tnc.ne.jp)
- 2008/12/09(Tue) 17:17 No.12061
 
じんみさんのサンプルでは

tx=x%32 
で乗っているブロックの左端からの距離を測っています。

なので右上がりの坂なら
$map.getAt命令のy軸方向の判定にtxを足せばよいのです。
例:$map.getAt(x,y+tx-20)==$pat_Block+1


Re: 自動生成マップ 投稿者 : B0R0(58-188-73-36.eonet.ne.jp)
- 2008/12/10(Wed) 09:48 No.12062
 
すみません。。。
まったく意味がわかりません;;;


Re: 自動生成マップ 投稿者 : メリッサ(p213.net059086017.tnc.ne.jp)
- 2008/12/10(Wed) 22:14 No.12063
 
じんみさんのサンプルプログラムはありますか。プロジェクトボードのサンプルのところに「斜めマップ判定」があるので見てください。


tx=x%32とは xを32で割った"あまり"をtxに代入するという意味です。
※ここでの32とはマップチップ1枚の辺の長さです。

右上がりの坂のマップチップなら
マップチップの左端からtxの値だけ右の位置においての高さがそのままtxの値と同じになるので

$map.getAt(x,y+tx-20)==$pat_Block+1

のように地面の判定のy軸をtxの分だけ補正してやればいいのです。


Re: 自動生成マップ 投稿者 : じんみ(nttyma064104.tyma.nt.ftth4.ppp.infoweb.ne.jp)
- 2008/12/11(Thu) 15:23 No.12065
 
難しいのであれば、まずゲームを作ることに慣れてから見た方が良いと思います。
tonyuの基礎知識を身につければ、斜め判定だけでなく、その他の中・上級者向けのプログラムもわかるようになれます。


Re: 自動生成マップ 投稿者 : B0R0(58-188-73-36.eonet.ne.jp)
- 2008/12/11(Thu) 15:50 No.12066
 
坂道じゃなくて
自動生成マップについて教えてほしいんですけど;;


Re: 自動生成マップ 投稿者 : メリッサ(p214.net059086005.tnc.ne.jp)
- 2008/12/11(Thu) 23:12 No.12067
 
すみませんでした。。。
坂道処理の質問をした人かと…

あ、じんみさん。初めましてメリッサです。
じんみさんの斜めマップのサンプル役立ってます。
坂道の処理はもちろんなんですけど、地面のめり込みをwhile(){y--;}
を使ってやるとは思いつきませんでした。


そんで、自動生成マップについてですが、私にはよくわかりません。

本当にすみませんでした。


Re: 自動生成マップ 投稿者 : アカシン(g210002241145.d102.icnet.ne.jp)
- 2008/12/13(Sat) 00:56 No.12069
 
ダンジョンの自動生成のことであれば、
ここよりも、ネット上で探されることをお勧めします。
「棒倒し法」「穴掘り法」等のキーワードで探すと、
有名なものがいつくか見つかると思います。

ローグライク(不思議なダンジョン)系の
自動生成マップについてであれば、
「Racanhack」で検索して見つかるサイトがお勧めです。

あと、プロジェクトボードにある拙作「TRogue」では、
T_MakeMapクラスで、ダンジョンの自動生成を行っています。
ご参考になるかも知れません。


Re: 自動生成マップ 投稿者 : マッキー(0x3d2cb40d.rev.ncv.ne.jp)
- 2008/12/13(Sat) 12:07 No.12071
 
自動生成マップは、プロジェクトボードにある、
じんみさんの作った「迷路」で、使われています。
ttp://hoge1e3.sakura.ne.jp/tonyu/project/pages/viewProject.cgi?mainkey=340&

プログラムを拝見してみると、
この、自動生成マップは、最初は全部壁のマップで、
そこから、モグラのように穴を掘っていく仕組みだとわかりました。
掘る場所がなかったら、場所を移動して、まだ掘れるところがないか、探しに行きます。
全部掘り終わったら、ゲームスタートになります。
参考になるかわかりませんが...

B0R0さんの、質問の仕方が呆然としているので、
せめて、「RPGの自動生成マップの仕組みを教えてください」
など、もうちょっと詳しく書いた方がいいと思います。


Re: 自動生成マップ 投稿者 : BORO(58-190-52-80.eonet.ne.jp)
- 2008/12/14(Sun) 12:12 No.12075
 
なるほど、、、
親切にありがとうございます。

詳しく言うと、
横スクロールアクションRPGを作っていて
その上での自動生成マップについてです。


Re: 自動生成マップ 投稿者 : マッキー(0x3d2cb54f.rev.ncv.ne.jp)
- 2008/12/20(Sat) 23:03 No.12093
 
Download:12093.zip 12093.zip 返事遅くなってすみません。

横スクロールアクションRPGの、自動生成マップですか。
私は、自動生成マップを作ったことがありませんが、

とりあえず、サンプルプログラムを作りました。
参考にしてみてください。
でも、このままだと、すごくがたがたなマップになりそうなので、
もう少し、改良しないといけないかもしれません。


Re: 自動生成マップ 投稿者 : BORO(58-188-75-108.eonet.ne.jp)
- 2008/12/23(Tue) 21:55 No.12104
 
原理は単純なんですね!
けど、、、なんか仕掛けとかをおくとしたら・・・
ややこしい。。。

質問です。update(); 投稿者 : メリッサ(p235.net059086003.tnc.ne.jp)
- 2008/12/16(Tue) 11:53 No.12077
 


update();に関する質問です。

シークレットオブジェクトのsys1

スプライトオブジェクトのcha1
がありまして、
sys1のほうは
while(1){
  $cha1.action();
}

cha1のほうは
p=$pat_cha1+0;
function action(){
  while(1){
    update();
  }
}

つまり、sys1でcha1の関数を呼び出して
cha1の関数でupdate();をするんですが

実行するとcha1の画像が表示されません。

どうして、画像が表示されないか原因がわかる人
教えてください。お願いします。


Re: 質問です。update(); 投稿者 : ごま太郎(i60-47-199-143.s02.a002.ap.plala.or.jp)
- 2008/12/19(Fri) 00:14 No.12083
 
とりあえず、関数内でupdate()をするのは厳禁です。

詳しい理由についてはしばらくプログラミングを離れていたので忘れてしまったのですが。。。
update();の時点で描写をされるので、その同期の関係だったような。ものすごくうる覚えなので、理由についてはあまり信用しないでください汗


Re: 質問です。update(); 投稿者 : メリッサ(p108.net059086014.tnc.ne.jp)
- 2008/12/19(Fri) 23:10 No.12086
 
ごま太郎さん。久しぶりです。

ええっと、同期の関係とか私には難しいので、とりあえず、関数内でupdate()はやめます。他の方法を考えます。

ありがとうございました。


Re: 質問です。update(); 投稿者 : アカシン(g210002241145.d102.icnet.ne.jp)
- 2008/12/19(Fri) 23:54 No.12088
 
うーむ。
プログラムの断片のみでは原因が分からないので、
とりあえず、ソースをUpしてもらえるとありがたいです。


Re: 質問です。update(); 投稿者 : cF(z155.124-45-175.ppp.wakwak.ne.jp)
- 2008/12/20(Sat) 00:24 No.12089
 
cha1 オブジェクトに wait() もしくは while(1) などの処理がありますか?
もし関数を定義しているだけであれば、おそらく原因はそれです。
 cha1 オブジェクトは関数を定義しただけで処理を終え、"died"扱いされたことでキャラクタパターンが表示されなくなったのかもしれません。

また、wait()などで cha1 オブジェクトを待機させることで
キャラクタを表示させることができますが、
cha1 の持つ action() が呼び出されると
cha1 は action() 関数内で while(1) の無限ループを行ってしまい、
ほかのオブジェクトから cha1 の持つ変数や関数を参照できなくなってしまうようです。

** 追記
訂正です
cha1 への参照ができなくなるわけではありません。
action() を呼び出した sys1 が action() 内の while(1) を処理するため、
参照できないと勘違いしてしまいました(^^;


Re: 質問です。update(); 投稿者 : マッキー(0x3d2cb74e.rev.ncv.ne.jp)
- 2008/12/20(Sat) 21:37 No.12091
 
これは、シークレットsys1からスプライトcha1のメソッドを呼び出しています。

sys1がcha1のメソッドを、呼び出しているので、
一見、そのメソッドは、cha1で動いているように見えますが、
実は、sys1がcha1のメソッドを動かしているのです。

なので、sys1でactionメソッドが動いているのです。
当然、cha1はwhile(1){...}やwait();がないので、
そのまま、消えてしまいます。

ちなみに、メソッド内のオブジェクト変数などは、
メソッドの持ち主のオブジェクトの変数なので、
他のオブジェクトの、オブジェクト変数は変わりません。


Re: 質問です。update(); 投稿者 : メリッサ(p067.net059086010.tnc.ne.jp)
- 2008/12/23(Tue) 14:25 No.12103
 
cha1のオブジェクトにwait();を入れることで表示することができました。
cha1がdied扱いになってしまうとは気付きませんでした。
勉強させていただきました。
ありがとうございました。

上視点レースゲームで車が横の時 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/12/17(Wed) 13:49 No.12079
 


上視点レースゲーム車が横に滑るのを控えたいのですが
どうすればいいでしょうか・・・
車が「━」こうむいてて、↑に滑ってるならそれを控えたいのです。

車の動きはこんなんです
 if (getkey(37)>0) a-=2;
 if (getkey(39)>0) a+=2;
 if (getkey(38)>0) {
    vx+=cos(a)/4;
    vy+=sin(a)/4;
  }
angle=a+90;
x+=vx;
y+=vy;


Re: 上視点レースゲームで車が横の時 投稿者 : N@N(cc-y5026.wsr.st.keio.ac.jp)
- 2008/12/18(Thu) 14:58 No.12080
 
その方法だと、上キーを押さない限りvx,vyの変更ができません(車というより宇宙船の状況ですね)。
そこで、
 if (getkey(37)>0) a-=2;
 if (getkey(39)>0) a+=2;
 if (getkey(38)>0) spd=2;
angle=a+90;
x+=spd*cos(a);
y+=spd*sin(a);
のようにすると、常にx増加量,y増加量が再計算されるので向いている方向に行きます。


Re: 上視点レースゲームで車が横の時 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/12/18(Thu) 15:15 No.12081
 
少し改造して加速が付くようにしたのですが。
動きが鋭すぎます・・・。
すこし横に滑るくらいがいいんです。
軽くドリフトっぽいのが出来るようにしたいのです・・・。


Re: 上視点レースゲームで車が横の時 投稿者 : うみんちゅー(nthkid207239.hkid.nt.ftth.ppp.infoweb.ne.jp)
- 2008/12/18(Thu) 23:18 No.12082
 
 if (getkey(37)>0) a-=2;
 if (getkey(39)>0) a+=2;
 if (getkey(38)>0) {
    vx+=cos(a)*inr;
    vy+=sin(a)*inr;
  }
angle=a+90;
x+=vx;
y+=vy;
vx=vx*0.7;
vy=vy*0.7;

(inr;加速度)

これならvx,vyがだんだん減速していき、やがて止まります。
ただこれだと机の上の玉のような減速の仕方なので、
車の横方向の速度ならすぐ減速、縦方向ならちょっとずつ減速、という感じにしないといけないんですが^^;
ごめんなさい、そのやり方はまだわからないです><


Re: 上視点レースゲームで車が横の時 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/12/19(Fri) 11:44 No.12085
 
angleを90度回転させてそっちの方向に減速させる・・・
という考えが頭にあるんですけど。
どうすればいいのかが分からない・・・。
もし←に向いてて上にすこしうごいてるなら。
angleとかで90度左に回転させてそっちに動かすとか考えてみたりしたんですけど。
どうすりゃいいんだ・・・。orz


Re: 上視点レースゲームで車が横の時 投稿者 : cF(z155.124-45-175.ppp.wakwak.ne.jp)
- 2008/12/19(Fri) 23:28 No.12087
 
速度 vx, vy を用いるのであれば
vx, vy の値より移動方向、つまり移動している角度を求め
オブジェクトの向き angle の値との差の絶対値から
減速量を割り出すというのはどうでしょう。

たとえば
  move_angle = angle( vx, vy ) + 90;
  diff_angle = abs( anglediff( angle, move_angle ) );
これにより、0 <= diff_angle <= 180 の値が入るので
  cos( diff_angle )
などを利用して減速量を決める


Re: 上視点レースゲームで車が横の時 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/12/22(Mon) 12:18 No.12100
 
 if (getkey(37)>0) a-=2;
 if (getkey(39)>0) a+=2;
 if (getkey(38)>0) {
    vx+=cos(a)/4;
    vy+=sin(a)/4;
  }
angle=a+90;
x+=vx;
y+=vy;

 move_angle = angle( vx, vy ) + 90;
 diff_angle = abs( anglediff( angle, move_angle ) );
if(vx>0.1)vx-=cos( diff_angle )/5;
if(vx<-0.1)vx+=cos( diff_angle )/5;
if(vy>0.1)vy-=sin( diff_angle )/5;
if(vy<-0.1)vy+=sin( diff_angle )/5;

こうゆう風にしてみたんですけど
動きが少し変です。
これでいいんでしょうか・・・?

.
[直接移動] [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 -