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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
自動生成マップ 投稿者 : 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;

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

フルスクリーン化 投稿者 : 111(fl1-118-111-75-47.gif.mesh.ad.jp)
- 2008/12/14(Sun) 09:58 No.12074
 


 豆乳システムをフルスクリーン化する為には、「フルスクリーンキット」という物をダウンロードすればいいのでしょうか?
 失礼ですがリンクが切れてしまっていて、落せないのです・・・

 それと他の方のフルスクリーン化したゲームをプレイすると、画面が上下逆さまになってしまいます。これはモニターの環境依存によるものでしょうか?
 教えてください、お願いします。


Re: フルスクリーン化 投稿者 : ごま太郎(i60-47-199-143.s02.a002.ap.plala.or.jp)
- 2008/12/19(Fri) 00:16 No.12084
 
フルスクリーン化キットはこちらにアップしてあります。
ttp://www4.atwiki.jp/gomatarou/pages/7.html

ただし、環境によって色々と不都合も出るのであまりお薦めはしません。上下が逆さまになるのは私には知識がありませんが、過去ログに同じ質問があったような気もします。


Re: フルスクリーン化 投稿者 : 111(fl1-118-111-75-47.gif.mesh.ad.jp)
- 2008/12/21(Sun) 22:14 No.12096
 
 ありがとうございます、おかげ様で手に入れる事が出来ました。
 過去ログ探そうとしましたが、キーワード検索が出来なくなっているのですね。もう少し粘って探してみます。
 環境のバグ・・・注意書きが必要ですね。

wav系のBGMを鳴らす方法 投稿者 : 歯の健康維持装置(60-56-150-191.eonet.ne.jp)
- 2008/12/15(Mon) 13:56 No.12076
 


 ページをまたがってwav系のBGMを鳴らしたいのですが、そのままだとsoundeffect扱いされて移動すると切れてしまうので、MTwoで@pcmを利用してmzoにして、読み込ませたら「ピー」とずっと鳴っているだけでした。MTwoでは正常に鳴ってくれます。何かTonyu側に足りないのでしょうか?

.
[直接移動] [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] [573] [574] [575] [576]
- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

- Joyful Note -