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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
draw表示の当たり判定 投稿者 : tava(54.202.145.122.ap.yournet.ne.jp)
- 2008/11/04(Tue) 23:41 No.12023
 


久しぶりにTonyuでシューティングつくろうと意気込んでます。

それで質問なんですが、
今まではパーツのついた敵をつくるときは本体の動きに合わせるように新しいオブジェクトを生成していました。
しかし、今回はdrawsprite系で敵の周りにパーツを多数つければ多少軽いんじゃないかと思い試してみました。
当たり判定もうまくできたのですが、ロックオン系の攻撃をこちらから撃った場合敵の中心しか狙わないことに気づきました。
どうにか敵のパーツの座標も含めて計算できるようにはできませんでしょうか・・・。


Re: draw表示の当たり判定 投稿者 : マッキー(0x3d2cb532.rev.ncv.ne.jp)
- 2008/11/12(Wed) 01:38 No.12028
 
パーツの部分の座標も、設定しないと狙わないと思います。

プログラムが長くなると面倒になりますが、
パーツごとにオブジェクトを作ると処理が重くなるので、
そっちよりはマシだと思います。

久しぶりに、tavaさんのゲームやってみたいです。
特に、クロノスが印象に残ってます。
がんばってください。


Re: draw表示の当たり判定 投稿者 : N@N(cc-y5006.wsr.st.keio.ac.jp)
- 2008/11/12(Wed) 12:57 No.12029
 
パーツ数や大きさを自在にコントロールできて、パーツ数も付け足し自由なものを作ると、やはり配列に頼ることになるかと思います。
たとえば、

まず、パーツのx座標ptx、y座標pty、当たり判定pta、耐久pthpをすべて配列で(new Array())作ります。
while前に、本体を中心とした各パーツごとの座標(本体座標からのずれ)と判定サイズ、耐久をaddで加えておきます。

なお、この場合、さらにパーツ画像ptpを配列で作って画像を入れておけば、敵のwhile内で
for (i=0;i<ptx.size();i++){
  drawSprite(x+ptx.get(i),y+pty.get(i),ptp.get(i));
}
と書くだけで、本体まわりのパーツ描画がなされます。

自機が追尾弾を発射するときは、従来通りパーツもち敵の本体を代入します。
弾側で敵が代入された変数をtとすると、while前に
if (t.ptx.size()>=1){
  r=rnd(t.ptx.size());
  xx=t.ptx.get(r);yy=t.pty.get(r);
}else{
  xx=0;yy=0;
}
と書けば、自動的にロックが本体からランダムなパーツひとつに移ります。書き方を変えれば一番近いパーツ狙いも可能です。
あとは、(t.x,t.y)ではなく、(t.x+xx,t.y+yy)を追尾させることで弾は自動的に本体から(xx,yy)だけずれたところへ飛んでいきます。
そこにパーツが描画されているわけです。
当たり判定は、さきほど作っておいたptaとpthpを生かし、
if (t.ptx.size()>=1 && dist(x-(t.x+xx),y-(t.y+yy))<t.pta.get(r)){t.pthp.set(t.pthp.get(r)-1);}
とすれば、当たれば1発1hpを減少できるでしょう。

この方法を用いるときは、パーツを持たない敵にも配列ptxを作っておかないとエラーになります。
また、ゲージを当ててロックするようなシステムに対応するのはかなり高難度になります。

オブジェクトが増えるのは負荷になりますが、オブジェクト式にするとシステムが圧倒的に単純になるということです。
for文を2個3個と増やすより、オブジェクトを作ってしまったほうが案外軽いかもしれません。


Re: draw表示の当たり判定 投稿者 : tava(54.202.145.122.ap.yournet.ne.jp)
- 2008/11/12(Wed) 21:38 No.12030
 
>マッキーさん
ありがとうございます。
そう言ってもらえるととても励みになります。
久しぶりにTonyu触ってるので、何度も壁にあたりそうですが頑張ります。

>N@Nさん
やはり配列を使うんですね。
具体的な例まで書いていただき助かります。
今までに配列を使ったことが少ないので上手く動くようにするのに時間がかかりそうですが、頑張ります。

画像を保存したい 投稿者 : モロヘイヤ(124-47-81-169.cidr4.kct.ad.jp)
- 2008/04/22(Tue) 15:13 No.11804
 


プレイ中の画面全体又は一部を画像として保存したいです。
Panel.saveを使えばできそうということはわかったんですが、
具体的にどのように使えばいいかがわかりません。
「保存」というボタンを押すと保存されるようにしたいです。
よろしくお願いします。


Re: 画像を保存したい 投稿者 : hoge-(FLH1Ahq038.tky.mesh.ad.jp)
- 2008/04/25(Fri) 22:23 No.11808
 
すみません.今のところゲーム画面全体を保存することはできません.保存可能なものは,Panelに描画された画像のみになります.


Re: 画像を保存したい 投稿者 : モロヘイヤ(124-47-81-169.cidr4.kct.ad.jp)
- 2008/04/28(Mon) 12:10 No.11809
 
わかりました。ありがとうございます。


Re: 画像を保存したい 投稿者 : SuperSS(softbank219014238038.bbtec.net)
- 2008/11/05(Wed) 11:54 No.12025
 
マップ使用のゲームならできますよ。
1.現在画面上にあるオブジェクトをすべてマップのパネル($map.panel)に描画する。
2.マップのパネルをそのまんま保存する($map.panel.save("FileName.bmp"))
3.マップ全体をもう一度描画しなおす
少々重くなりますが、これなら可能です。

音ゲーのスコアデーター読み込み 投稿者 : kakira(w203088.dynamic.ppp.asahi-net.or.jp)
- 2008/10/19(Sun) 23:02 No.12020
 


Download:12020.zip 12020.zip 音ゲーの者です。

音ゲーの不可欠な譜面を作っていたら、プログラムの容量がどんどん大きくなっていくので、外部のtxtファイルから譜面を読み込むようにしました。

しかし、iroデーター(=音符の種類)は読み込めるのに、onpuデーター(長さ)は読み込めません。(すべて間隔が1)

何故、読み込めないのでしょうか?アドバイスお願いします。


Re: 音ゲーのスコアデーター読み込み 投稿者 : N@N(cc-y5026.wsr.st.keio.ac.jp)
- 2008/10/23(Thu) 15:19 No.12021
 
Loadでデータを配列にすると、たとえ数字であっても文字として代入されます。
そのままでは数式に代入できる値にはなりません。
g.add(valueOf(loaddataaa.get(ii)));
というように、valueOfで値に変換するとうまくいきました。

それと蛇足なのですが、今のシステムでは最初にすべてのノートを置いているようです。
ノートは一つ一つがオブジェクトで、オブジェクトが多いほど動作が重くなるので、
スタートと終わりのほうでFPSが変わってしまい、譜面がずれる可能性が高くなります。
(最近の高性能PCなら余裕がありますが、そうでないPCを使っている人も多い)
譜面速度からノートが画面に現れる時間を計算して、そのたびにappearさせていく方法がよいかと思います。


Re: 音ゲーのスコアデーター読み込み 投稿者 : kakira(w203088.dynamic.ppp.asahi-net.or.jp)
- 2008/10/24(Fri) 22:50 No.12022
 
返信遅くなりました。m(_ _)m

なるほど、文字として代入されるのですね!これは盲点でした。ありがとうございます。

また、最初の配置についてのアドバイスありがとうございます。参考にさせていただきます!






パネルのデータを読み込んで動かす 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/10/09(Thu) 17:12 No.12015
 


あるテキストを読み込んでその中にX始点、Y始点、X終点、Y終点、色のデータがはいった物が何行かに渡ってあって、
それを豆乳で読み込んでパネルオプジェクトで
panel.drawLine(xa,ya,xz,yz,color(cr,cg,cb));
という風にしていくつか同じようにラインを書き、その後そのパネルオプジェクトを動かしたいのですが、

どうもうまくいきません、だれか良い方法を教えて下さい.


Re: パネルのデータを読み込んで動かす 投稿者 : アカシン(g210002241145.d102.icnet.ne.jp)
- 2008/10/11(Sat) 01:18 No.12016
 
とりあえず、現時点のプログラムをのせてもらえるとコメントしやすいです。
不完全なものでも良いので。

基本的な実現方法としては、
FileReaderでテキストファイルを読み込んで、
String.split()で各データを切り分け、
valueOf()で数値に変換、
という感じでできると思います。


Re: パネルのデータを読み込んで動かす 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/10/15(Wed) 14:46 No.12019
 
新規プロジェクトで一回作ったのですがうまくいかずプロジェクトごと消してしまいました。
各データを切り分けする関数なんてあったんですね。
それを使えばうまくいきそうです。

とりあえずちょっと暇なときにやってみます。。。

無効なポインタ操作 投稿者 : Solt(zb169207.ppp.dion.ne.jp)
- 2008/09/16(Tue) 21:55 No.11996
 


現在Tonyuの勉強をしているのですが、分からない所出てきてしまったので質問させて下さい。
ゲームを作成し、TonyuSystem状で起動させる事は問題なくできるのですが
ランタイムを作成して出来たゲームを起動させ、終了させようとする(或いはウィンドウを閉じようとする)と
「無効なポインタ操作」「Player.exeのアドレス 004CF67 でアドレス 00000000」というエラーが出てしまいます。
原因を特定するためにクラスを消してみたり、プロジェクトを消した状態でランタイムを作成しても
同様のエラーが出てしまい、windowsで強制終了させるしかなくなりました。

このような状態を回避するためにはどのような処置を施せばいいのでしょうか?
要領を得ない質問内容でご迷惑をおかけします。分かる方がいらしたら、何卒 アドバイスをお願いします。


Re: 無効なポインタ操作 投稿者 : chunkoffset(flh1afu133.osk.mesh.ad.jp)
- 2008/09/20(Sat) 15:32 No.11997
 
私には見当がつかないのですが、
できるとすれば、そのランタイムをアップしてもらって
私や他のPCでも再現するかどうか
あたりですかね。。。

=============
再現しない場合
=============
■実行させている環境の問題?

原因解決は難しいかもしれないけど、
配る分にはOKなので気にしないとか・・

=============
再現する場合
=============
■生成されたランタイムがおかしい?

もしかしたら、
そのランタイムを見れば何か掴めるかも


Re: 無効なポインタ操作 投稿者 : Solt(g050015.ppp.dion.ne.jp)
- 2008/09/28(Sun) 16:20 No.11998
 
Download:11998.lzh 11998.lzh お答えいただいのに返信が遅くなってしまい、申し訳ありませんでした。
その後、プログラムを縮小してみたり、マップやオブジェクトを消してみたりとしましたが、問題の解決には至りませんでした。
今更ではありますが、ランタイムをアップしますので、もし宜しければ再現性のあるエラーなのか調べて貰えないでしょうか?


Re: 無効なポインタ操作 投稿者 : renf(softbank220018203123.bbtec.net)
- 2008/10/02(Thu) 16:17 No.12003
 
ちょっと私もやってみました。

やってみたらこっちでも起こりましたよ。
色々見てみたけど自分には分かりませんでした。

大量にエラーが出てるみたいだけど最初のエラーは「無効なポインタ操作」と出ていましたよ。


Re: 無効なポインタ操作 投稿者 : マッキー(0x3d2cb3df.rev.ncv.ne.jp)
- 2008/10/03(Fri) 06:09 No.12004
 
私も、添付ファイルをTonyuで読み込んで、実行させて終了したり、ランタイムも作ってやってみましたが、
普通に終了してしまいました。どうしてだろう。

これは、Tonyuのバグだと思います。
私も昔、自分のゲームで大量に出てきました。
Tonyuのバージョンや、パソコンの環境にもよるかもしれません。

Tonyuのバージョンを変えてやってみてはどうですか?


Re: 無効なポインタ操作 投稿者 : Solt(zk145015.ppp.dion.ne.jp)
- 2008/10/04(Sat) 20:52 No.12006
 
renfさん、マッキーさん。見ていただき、ありがとうございます。
プログラムではなく、Tonyu状の問題だったのは安心しました。
verを変えて見る等の処置はこれからしてみます。お時間を割いていただき、ありがとうございました。


Re: 無効なポインタ操作 投稿者 : アカシン(g210002241145.d102.icnet.ne.jp)
- 2008/10/11(Sat) 01:51 No.12017
 
私の環境でランタイムを作成してみたところ、同様の問題が発生しました。
原因は不明ですが、対処方法があるため、とりあえず記載しておきます。

現在スクリーンサイズは、startクラスにて以下のように設定されていますが、
 $screenWidth= 32*20;
 $screenHeight=32*14;
これを適当に変更してみて下さい。

私の環境では、例えば、
 $screenWidth= 32*20;
 $screenHeight=32*14;
にすると、この問題は発生なくなりました。
ご参考まで。


解決しました! 投稿者 : Solt(zk150084.ppp.dion.ne.jp)
- 2008/10/13(Mon) 22:17 No.12018
 
ウィンドウサイズとは盲点でした。
アドバイスありがとうございます!
私の環境でも
 $screenWidth= 32*20;
 $screenHeight=32*15;
とする事で終了時のエラーを回避する事ができました。
これで憂いなくゲーム作成を続行することができます。

アカシンさん、マッキーさん、renfさん。
改めて、お時間を割き、また力を貸していただき、大変感謝しております。
本当にありがとうございました!

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