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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
プレイヤーの方向への敵弾 投稿者 : Yui(u740184.xgsfm11.imtp.yokohama.mopera.net)
- 2009/09/05(Sat) 14:04 No.12516
 


ARPG(STGでも良いのですが)で敵からプレイヤーへ向かって発射される弾の角度の求め方を探しています。
言い換えると敵から見てプレイヤーは何度の位置にいるか、ということです。
よろしくお願いします。


Re: プレイヤーの方向への敵弾 投稿者 : ロンド(flh1aas245.iba.mesh.ad.jp)
- 2009/09/05(Sat) 14:40 No.12517
 
基本的には angle( target.x-x, target.y-y ); で対象への角度を求めることができます(Yuiさんの場合、target.xはプレイヤーのx座標です)

//-----------------
// 敵弾のプログラム
//-----------------
extends DxChar;

spd = 3; // 移動速度

angle = angle( target.x-x, target.y-y ); // 対象への角度を求める

while(1) {
  
  // 対象へ向かって移動
  x += cos(angle) * spd;
  y += sin(angle) * spd;
  
  print("対象への角度 = " + angle);
  
  update();
}

あと、Tonyuのレシピに「相手に向かって一直線」や過去スレに似たような質問があるので、よく見てから質問した方がいいかも知れません・・。


Re: プレイヤーの方向への敵弾 投稿者 : Yui(u740184.xgsfm11.imtp.yokohama.mopera.net)
- 2009/09/05(Sat) 14:47 No.12518
 
>ロンド様
レシピにあったとは・・・
素早い回答をありがとうございました。

画像の読み込み 投稿者 : メリッサ(p252.net059086006.tnc.ne.jp)
- 2009/09/03(Thu) 10:52 No.12511
 


プログラムによって、画像を追加するにはどうしたらいいでしょうか?

例えば、同じページで起動するたびに背景をランダムに変えたいとき、
背景1、背景2、背景3・・・と候補になる背景をあらかじめ全て読み込まなくてはならなくなるため、開始時にもたついてしまいます。

プログラムによって、画像を読み込めるようになれば、
背景1〜背景3・・・のうちランダムに選ばれた画像のみを読み込むことができるので、
無駄な画像を読み込むことがなくなり開始スピードが早くなると思うのです。


Re: 画像の読み込み 投稿者 : Triangle Ld.(i218-47-199-58.s06.a011.ap.plala.or.jp)
- 2009/09/03(Thu) 16:19 No.12512
 
動的に読み込むのであれば、
Panel.load(FileName)
を使ってみては?
filesフォルダにある画像ファイルFileNameを読み込んで、Panelに表示します。
例:
pPanel = new Panel($screenWidth, $screenHeight);
pPanel.load("Graphic.bmp");
上のプログラムは、パネルpPanelを生産し、Graphic.bmpをpPanelに読み込みます。
例2:
extend PanelChar;

panel.load("Graphic.bmp");
run();
PanelCharを使った基本的な方法です(こっちが後になってしまって申し訳ない)。
最後のrunは非常に重要で、これはwhile(1){ update(); }なのですが、これが無いと一瞬で消えてしまいます。
長文失礼.


Re: 画像の読み込み 投稿者 : メリッサ(p166.net059086000.tnc.ne.jp)
- 2009/09/04(Fri) 06:59 No.12513
 
返答ありがとうございます。

本当にもうしわけないのですが、
パネルだと色々と不便がありまして…

キャラクタパターンをプログラムから追加する方法はないでしょうか


Re: 画像の読み込み 投稿者 : イッカ!(p3060-ipbf2605hodogaya.kanagawa.ocn.ne.jp)
- 2009/09/04(Fri) 17:15 No.12514
 
プログラムから画像を読み込めるのがパネルしかないので無理です(´ω`)

それにパネルが使えても、キャラクタパターンのようにグローバル変数に画像のデータを代入すること自体が困難です。
グローバルセットが使えるようになれば出来るかもしれませんが、今の状態だと難しい上、無理にプログラムでやるよりはTonyu自体の機能で読み込む方が早いです。多分。

ページ移動をできるだけ少なくしたり、画像を必要なものだけにしたりする方が良いと思いますよ。


Re: 画像の読み込み 投稿者 : メリッサ(p122.net059086007.tnc.ne.jp)
- 2009/09/05(Sat) 00:10 No.12515
 
難しいようですね…。

私自身Panelをあまり使ったことが無いので、わからない部分も多いです。

とりあえずは仕方が無いので現状のままで行きます。

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

if文 投稿者 : メリッサ(p098.net059086014.tnc.ne.jp)
- 2009/08/30(Sun) 15:43 No.12508
 


if文で&&や||を使う場合と
わざわざ分けて書く場合とで実行速度に違いはありますか?

例えば
if(条件1 && 条件2){処理}

if(条件1){
  if(条件2){処理}
}

とで、実行速度に違いがあるかどうかです。
やっぱりif文を2回実行している後者のほうが遅いのかな?とも思うのですが、こうしたほうが後で見直すときにわかりやすいという利点もあります…。
実際はどうなのかわからないので質問させていただくことにします。


Re: if文 投稿者 : ロンド(fl1-118-111-43-203.iba.mesh.ad.jp)
- 2009/08/31(Mon) 11:45 No.12509
 
判定条件によりけりです。if文自体の負荷は小さいです。
後者の書き方は条件1だけを見て抜けるので、前者と比較して早くなる場合があります。
が、視覚的に前者の方が見やすい場合もあるので、状況によって書き方を変えるべきでしょう。

ちなみに、↓のプログラムの場合の処理速度は全くと言っていいほど同じでした。

■&&を使った場合
for(i=0; i<2000; i++) {
  if(rnd(9999) > 5000 && rnd(9999) > 5000) { cnt++; }
  update(); 
}

■判定を分けた場合
for(i=0; i<2000; i++) {
  if(rnd(9999) > 5000){
    if(rnd(9999) > 5000) {
      cnt++;  
    }
  }
  update(); 
}


Re: if文 投稿者 : メリッサ(p248.net059086019.tnc.ne.jp)
- 2009/08/31(Mon) 13:46 No.12510
 
ありがとうございます。

ほぼ同じということなので、あまり気にせず状況によって使い分けていくことにします。

ちょっと素朴な疑問なのですが・・・ 投稿者 : JANE(kd125055233010.ppp-bb.dion.ne.jp)
- 2009/08/17(Mon) 23:35 No.12504
 


Tonyuのリファレンスを読んでいて、ふと疑問に思ったのですが、
$mplayerの

”$mplayer.setVolume - BGMの音量を調節します
このメソッドは*.mzo形式にのみ利用可能です”

の部分の.mzo形式ってどういう風な音楽形式なのでしょうか?
それと、どういう風にすればそれに変換できるのでしょうか?
Googleで調べても出てこなかったので、事情の知っている方・分かる方は返信お願いしますm(_ _)m

Marchen Knight 〜メルヘンナイト〜
プロジェクトボードで公開中・・・と宣伝もついでに(ぇ


Re: ちょっと素朴な疑問なのですが・・・ 投稿者 : ロンド(fl1-118-111-43-203.iba.mesh.ad.jp)
- 2009/08/18(Tue) 12:11 No.12505
 
mzoファイルとは、M-Twoという音楽作成ソフトで作ったファイルのことです。
↓M-Twoのダウンロードページに飛びます。
ttp://www.vector.co.jp/soft/win95/art/se065452.html
(DLファイルの中にmzoのサンプルファイルも入ってました)

変換についてはちょっと分かりません・・いじった感じでは既存のmidiやwavをmzoに変換するのは無理だと思いました。
mzoをwavにすることは出来るみたいです。

ちなみに、mzoファイルを再生出来るのはM-TwoとTonyuSystemだけです。


Re: ちょっと素朴な疑問なのですが・・・ 投稿者 : マッキー(3d2cb389.ip.ncv.ne.jp)
- 2009/08/18(Tue) 17:03 No.12506
 
Vectorには、バージョン1.1しかありませんが、
結構前に、バージョン1.2をダウンロードできました。

前は、Tonyuのヘルプページの、
「各種ウィンドウの使い方/オプション」→「BGM・効果音」のページで、
M-Twoのダウンロードページへいけましたが、今はつながってません。

手元に、1.2があるので、プロジェクトボードにアップしておきます。
(サイズが大きいので。BBSは100KBまで。)
内容を変えなければ、再配布していいようなので、私物を取り除いてアップします。
もし、私物が残ってたらすみません。

1.2では、wavを音色にできる機能が追加されています。
もし、アップするのがダメだったら、すみません。(2回目・・・)


Re: ちょっと素朴な疑問なのですが・・・ 投稿者 : JANE(kd125055233010.ppp-bb.dion.ne.jp)
- 2009/08/18(Tue) 18:31 No.12507
 
マッキーさん・ロンドさんコメントありがとうございます!
なるほど。M-TwoとTonyuSystem専用の形式なのですね。
プロジェクトボードからM-Two 1.2を後で
ダウンロードしていろいろいじってみようと思います!

それとは関係ないのですが、MP3が使えたら・・・と思ったのですが、特許や技術的に難しかったりと少し残念ですね・・・
あと、最新のDelphiで作られたTonyuSystemでオープンソース化
も楽しみです!
がんばってください hoge- shipさん!

立方根 投稿者 : LefTonbo(nthkid188245.hkid.nt.ftth.ppp.infoweb.ne.jp)
- 2009/08/14(Fri) 13:05 No.12501
 


ゲームで経験値からレベルを計算するために立方根が必要なのですが、
平方根ならsqat();で求められますが、立方根を求めるにはどのようなプログラムを組めばいいのかわかりません。
それとも、Tonyuでは不可能なのでしょうか・・・?


Re: 立方根 投稿者 : イッカ!(p3060-ipbf2605hodogaya.kanagawa.ocn.ne.jp)
- 2009/08/15(Sat) 10:09 No.12502
 
メソッドが無いなら作る(´・ω・`)
値を入れると大体あってる数が返ってきます。
(wiki見ながら作ったので自分でもよく分かってません。)

function eocr(number) {
  
  //マイナスは一旦消す
  m = 0;
  if (number < 0) {
    m = 1;
    number = -number;
  }
  
  //a*a*aは与えられた数に最も近い完全立方数。
  a=0;
  b=0;
  while(b < number){
    a++;
    b = a*a*a;
  }
  if (b != number) a--;
  
  //近似計算法で近似値を求めbに代入。
  b = a + (number - a*a*a)/(3*a*a);
  
  //マイナスを付ける。
  if (m==1) b = -b;
  
  //値を返す。
  return(b);
}


Re: 立方根 投稿者 : マッキー(3d2cb153.ip.ncv.ne.jp)
- 2009/08/15(Sat) 17:04 No.12503
 
イッカ!さんのと、別の方法で…

違うのは、小数の計算です。
中の変数eを変えれば、精密度が変わります。
大きくすると、処理が重くなります。(だいたいe=5くらいから)
誤差があるときは、本当の答えより、少し小さくなります。

処理速度考えないで作りました。重かったらすみません。


function rippo(a2){
  var a,e,e2,s1,s2,i,x,h;
  
  if(a2<0)h=1;
  a=abs(a2);//●正の数に!
  e=3;//●e==3なら小数第3まで計算(変更可)
  
  
  //■まずは整数部
  x=0;//●xが答えになる
  while(x*x*x<=a)x++;//●xの3乗がaより大きくなるまで
  x--;//●1つ戻す
  
  //print(x+" "+x*x*x+" "+a);
  
  
  //■必要なら小数部
  if(x*x*x!=a){//●違ったら、小数必要!
    s1=x;//●整数部
    s2=0;//●小数部
    e2=1;//●e==3ならe2==1000(10の2乗)
    for(i=0;i<e;i++)e2=e2*10;//●10の2乗の計算
    while((s1+s2/e2)*(s1+s2/e2)*(s1+s2/e2)<a)s2++;//●(整数部+小数部)の3乗>=aになるまで
    s2--;//●一応減らす
    x+=s2/e2;//●xに小数部を代入
  }
  if(h==1)x=-x;
  return x;
}

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

- Joyful Note -