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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
$chars 投稿者 : 雲ぷりん(fl1-125-199-130-230.fko.mesh.ad.jp)
- 2013/06/10(Mon) 01:39 No.13626
 


for (t in $chars){
〜・・・


ってよく使う文ですが
$charsが画面上全ての配列オブジェクトなら
それ以外のオブジェクトをあらわす$charsのような配列オブジェクト
もしくは、全てのオブジェクトを表す配列オブジェクトはあるのでしょうか?


自己解決? 投稿者 : 雲ぷりん(fl1-125-199-130-230.fko.mesh.ad.jp)
- 2013/06/11(Tue) 01:34 No.13627
 
やりたいことが解決しました。

ページを切り替えるたびにオブジェクト一覧をみると
オブジェクトがどんどん増えていくのが気持ち悪いなぁっておもって
質問をしたのですが、
うまく、オブジェクト一覧にオブジェクトがたまらなくなって無事解決です^^

とりあえず、これでもかってぐらい
オブジェクトに対して殺意をむき出しにしました。

以下のコードで対応できました。

*****************************
クラス名 hoge
appearを使用しないで生成したオブジェクト
*****************************

function obkiller(){
  
  for (t in $chars) {
    //敵のチェック
    //hoge(自分)以外のオブジェクトに死んでもらいます
    if ( t is hoge) {
    }
    else{
      t.die();  
    }
  }
  //一旦ここで更新
  update();
  //ここで自分も死ぬ
  die();
}

function prkiller(){
  //これでもかってぐらいオブジェクト配列を掃除します
  $chars.clear();
  //これでもかってぐらい殺しにかかります
  for (p in $procs){if(p != 0)p.kill();}
}
while(1){
  
  if(getkey(32) == 1){
    
    //とにかくオブジェクトが死んでいくステップ
    obkiller();
    //ページの切り替え
    $projectManager.loadPage($page_index);
    //とにかく多分プロセス?を抹殺するステップ(だと思う)
    prkiller();
  }
  update();
}


*****************************
*****************************

と、書いたのは良かった?けど

【 大 問 題 が 発 生 】

まずそもそも、$procsってなに…
調べても詳細は出てこないし(調べ方が悪いだけかもしれませんが・・)
なんか得体の知れないものを使ったら解決したって気持ち悪いなぁ…
(そして最も問題なのがコーディング主すら 一 部 なにしてるか分からない\^0^/)
フィーリングだけでコーディングした結果がこれだよ!!!!!

ある意味元々の質問より$procsが気になります誰か教えてくださいm(;_;)m


Re: $chars 投稿者 : マッキー(p3077-ipbf2203sapodori.hokkaido.ocn.ne.jp)
- 2013/06/12(Wed) 01:24 No.13628
 
スーパープロセッサを作っていた時に、$procsの正体を理解したので説明します。

$procsはTonyu内部で使われている配列です。
画面上のオブジェクトを動かすために使われます。
(エディタで書いたプログラム通りに実行するために使われます)

$procsの内容は$charsと似ていて、画面上のオブジェクトが入っています。
厳密にいうと、Processというクラス(Tonyu内部にあるクラス)のオブジェクトが、$procs配列の中に画面上のオブジェクトの数だけ入っています。

Processは画面上のオブジェクトをプログラム通りに動かすために使われます。
1つのProcessオブジェクトには、画面上にあるオブジェクトの1つが登録されています。

Tonyu内部の処理では、$procs配列に入っているProcessオブジェクト1つ1つに「お前の担当しているオブジェクトを動かせ」と命令します。
するとProcessオブジェクトは自分の担当しているオブジェクトをプログラム通りに動作させます。
よって、画面上のオブジェクトが動作します。

【イメージ】
          豆乳「動かせ」
            ↓
$procs配列 → Processオブジェクト → キャラ1オブジェクト
      → Processオブジェクト → キャラ2オブジェクト
        …            …

オブジェクト一覧にオブジェクトがたまらなくなったのは、prkiller()の部分でkill()を強制的に使い、殺意をむき出しにしているおかげかもしれません。

kill()はProcessクラスのメソッドで、オブジェクトの登録を解除してるみたいです。
登録解除 → オブジェクトが参照されなくなる → どこからも参照されなくなる → オブジェクト一覧から消える
ということだと思います。

推薦記事: 13588


Re: $chars 投稿者 : 雲ぷりん(fl1-125-199-130-230.fko.mesh.ad.jp)
- 2013/06/12(Wed) 06:01 No.13629
 
マッキーさん回答ありがとうございます。

そういうものだったんですね
すっきりしました^0^

別のオブジェクトからのgetPixel 投稿者 : 歯の健康維持装置(58-70-115-64f1.kyt1.eonet.ne.jp)
- 2013/03/13(Wed) 23:34 No.13621
 


パネル関連でまた問題が発生しています…
 $testから$dmapのgetPixelを成功させるには$testにどう記述すればいいでしょうか?


Re: 別のオブジェクトからのgetPixel 投稿者 : ツ篠閉・健康ツ鰯装置(58-70-115-64f1.kyt1.eonet.ne.jp)
- 2013/03/14(Thu) 07:54 No.13622
 
 事故解決しました。
$dmapのgetPixelを使うころには$dmapが生きていませんでした。

プログラムが長すぎる 投稿者 : じんみ(p22091-ipngn601hodogaya.kanagawa.ocn.ne.jp)
- 2012/12/15(Sat) 21:36 No.13617
 


プログラムが長すぎると表示されるようになりました。
限界は32KBまでだそうですが、textファイルそのもののサイズのことで合ってるのでしょうか?

19KBの時点で表示されてちょっと早すぎないかと思いました。はい(


Re: プログラムが長すぎる 投稿者 : リセッタ(em114-49-47-229.pool.e-mobile.ne.jp)
- 2012/12/17(Mon) 06:36 No.13618
 
Textファイルの容量なのかは、自分にはわかりません。
なので、32K以下での警告の理由もわかりません。
ただ、対処方法はこんなのでどうかな?

 全ソースの容量に対する警告なら、手は無いかな?
  初期設定データをファイル化してソースを減らす。
  初期化を出来るだけ、インスペクタに任せる。
  コメントを削る。
  ”豆乳ダイエット”でしたっけ?掛けてみる。

 特定のクラスが警告されてるなら、クラスを分割してみる。(上手くいくか未確認)
Ex) 
extends DxChar;
// 初期設定
// 処理A
// 処理B



extends DxChar;
// 初期設定
  i=0; j=0; …… // 使用する変数の確保
  ProA=new ProcA(this); // 処理A登録
  ProB=new ProcB(this); // 処理B登録

  ProA.exec(); // 処理A実行
  ProB.Exec(); // 処理B実行

extends Object;
constructor ProcA(o) { parent=o; }
function Exec() {
// 処理A内容
// 例  parent.i=1;
}

処理B略

#警告の出るクラスを複数のオブジェクトにするなら、
#各処理クラスは、オブジェクト毎に生成せずに管理オブジェクトで生成
#グローバル変数を介して、各オブジェクトで実行
#その場合は、生成時親オブジェクトを渡さず、実行時に親オブジェクトを渡す。
#ProA=new ProcA(this); & ProA.Exec(); → $ProA=new ProcA(); & $ProA.Exec(this);


Re: プログラムが長すぎる 投稿者 : じんみ(nttyma036087.tyma.nt.ftth4.ppp.infoweb.ne.jp)
- 2012/12/26(Wed) 02:31 No.13619
 
遅れてすみません!ありがとうございます。
ファイル分割が出来ているので問題はないです。

コンパクトなAI 投稿者 : じんみ(p17063-ipngn601hodogaya.kanagawa.ocn.ne.jp)
- 2012/12/08(Sat) 22:49 No.13613
 


何年振りでしょうか。お久しぶりです。
ただいまRPGを作っているのですが、敵のAIについての質問です。

「サイコロを振って、出た目の数によって行動選択率がそれぞれ違う」くらいのAIを、敵ごとに設定したいのですが

左から「攻撃・防御・スキルA・B・C・D」選択率
上から「サイコロ1〜6のとき」

の6*6の二次元配列にするのが一番コンパクトなのでしょうか?
1つ1つ設定すると
AI.set(0,0,n);〜AI.set(5,0,n);

AI.set(0,5,n);〜AI.set(5,5,n);
と、めんどくさいです。
何か良い方法は他にないでしょうか?


Re: コンパクトなAI 投稿者 : リセッタ(ai126213025166.5.tss.access-internet.ne.jp)
- 2012/12/09(Sun) 22:54 No.13614
 
設定用の関数を作れば?

Ex)
AI=new matrix(7);
AI.addRows(6);
//                           選択率 攻撃 防御 スキル
AI_set(AI,0,10,10);         // 10%  10P    0% (捨身)
AI_set(AI,1,30, 5,50);      // 30%   5P   50% (通常)
AI_set(AI,2,10, 0,50,1,10); // 10%   0P   50% 回復 10P
AI_set(AI,3,20, 0,50,2,50); // 20%   0P   50% 回避 50%
AI_set(AI,4,20, 0,50,3,30); // 20%   0P   50% 逃走 30%
AI_set(AI,5,10, 0,50,4, 5); // 10%   0P   50% 瞑想  5P

function AI_set(obj,idx,rto,atk,def,a,b,c,d) {
  obj.set(idx,0,atk); obj.set(idx,1,def);
  obj.set(idx,2,a);   obj.set(idx,3,b);
  obj.set(idx,4,c);   obj.set(idx,5,d);
  obj.set(idx,6,rto);
}

// おまけ 選択処理
function AI_select(obj) {
  var i,j,k,l; // i:選択番号 j:選択率計 k:選択値(百分率) l:登録レコード数
  l=obj.size()/obj.cols; k=rnd(100); j=0;
  for(i=0; i<l; i++) {
    j+=obj.get(i,6);
    if(k<j) return i;
  }
  return -1;
}


Re: コンパクトなAI 投稿者 : リセッタ(ai126213025166.5.tss.access-internet.ne.jp)
- 2012/12/09(Sun) 23:11 No.13615
 
修正
設定時、添字付けるのは面倒だよね

AI=new matrix(7);
// AI.addRows(6); // データ領域の確保をしてはダメ!
//                         選択率 攻撃 防御 スキル
AI_add(AI,10,10);         // 10%  10P    0% (捨身)
AI_add(AI,30, 5,50);      // 30%   5P   50% (通常)
AI_add(AI,10, 0,50,1,10); // 10%   0P   50% 回復 10P
AI_add(AI,20, 0,50,2,50); // 20%   0P   50% 回避 50%
AI_add(AI,20, 0,50,3,30); // 20%   0P   50% 逃走 30%
AI_add(AI,10, 0,50,4, 5); // 10%   0P   50% 瞑想  5P

function AI_add(obj,rto,atk,def,a,b,c,d) {
  obj.add(atk); obj.add(def);
  obj.add(a);   obj.add(b);
  obj.add(c);   obj.add(d);
  obj.add(rto);
}

// おまけ データロード
function AI_load(obj,fn) {
  var i,j;
  obj.load(fn);
  for(i=0; i<obj.size(); i++){
    j=valueOf(obj.get(i));
    if(j!=null) obj.set(i,j); // データが数字なら文字→数値変換
  }
}


Re: コンパクトなAI 投稿者 : じんみ(p1146-ipngn601hodogaya.kanagawa.ocn.ne.jp)
- 2012/12/11(Tue) 18:37 No.13616
 
ありがとうございます。
うーん、これ以上小さくすることは難しいようです。無駄に関数多くなるのも大変ですので・・

おまけがそれ以上に役に立ちそうなので感謝(

おしえて 投稿者 : いお(i222-150-255-106.s30.a048.ap.plala.or.jp)
- 2012/11/29(Thu) 11:13 No.13609
 


Tonyuは何言語?


Re: おしえて 投稿者 : えーじゅん(p9074-ipngn100102okayamaima.okayama.ocn.ne.jp)
- 2012/12/02(Sun) 12:21 No.13612
 
Delphi6のようです。ソースは
ttp://hoge1e3.sakura.ne.jp/tonyu/project/pages/viewComment.cgi?mainkey=2591&
(頭にhを追加してください)
ところで、Delphi6はDeDeというフリーソフトで
デコンパイルできるかもしれないようです。
正直自分自身デコンパイルの意味が
よくわかっていないのですが(笑)

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