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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
txtファイルからの読み込み 投稿者 : モグラ(softbank060113172104.bbtec.net)
- 2017/10/09(Mon) 08:39 No.13818
 


 Tonyu1で現在制作しているもので、txtファイルから文字列などを読み込む形のものを作ろうとしています。
背景に映す画像も、txtのデータをもとに指定したかったのですが、うまく言できませんでした。仕様的に不可能でしょうか?

 現在やろうとしているのは「File Reader()」で読み込んで、「valueOf()」を使って数字に直すというものです。
できれば、『$pat』を使って指定したいのですが……。
現在は数字にし、if文を使って判別させています。
画像サイズは640*480と大きいため、1つのファイルにまとめることは厳しいです。


Re: txtファイルからの読み込み 投稿者 : hoge1e3(160.194.251.9)
- 2017/10/10(Tue) 13:20 No.13820
 
ご要望のものと一致しているかはわかりませんが,次のようにマップを読み込ませることはできます.

files/map.txt(マップチップ番号をタブ区切りで並べる)
$pat_maze+0 $pat_maze+1
$pat_maze+1 $pat_maze+2


//プログラム
extends SecretChar;

//map.txtを開く
f=new FileReader("map.txt");
i=0;
while (1) {
//1行読む
  line=f.readLn();
  if (line==null) break;
//行とタブで分割して配列rowに
  row=line.split("\t");
//rowの中身を繰り返し
  for (j=0;j<row.size();j++) {
//exprにマップチップの式($pat_maze+1など)を入れる
    expr=row.get(j);
    adds=expr.split("+");    // +で分割
    g=getGlobal(adds.get(0)); //getGlobalで$pat_mazeの値を取得
    for (ex=1;ex<adds.size();ex++) {//後ろについている数値を加算
      g+=valueOf(adds.get(ex));
    }
    print(j+","+i+"="+g);//デバッグ用
    $map.set(j,i,g);//マップに書き込む
  }
  i++;
}

メンバ変数へのアクセス 投稿者 : Hks(66.151.231.153.ap.dti.ne.jp)
- 2017/08/27(Sun) 23:56 No.13813
 


初歩的な点についてなのですが、クラスに実装した独自のメンバ変数へのアクセス方法について、質問させてください。
今回、下記のように検証しました。


MyClass.tonyu:

a = 1;
$b = 2;
function print_a(){
    print(a);
}


Main.tonyu:

obj = new MyClass;

print(obj);// [object, object]
print(obj.a);// undefined
print(obj.b);// undefined
print(b);// undefined
obj.print_a();// undefined

コメント部がコンソールの表示になります。
MainクラスからMyClassクラスインスタンスのメンバ変数aを取得したかったのですが、上の方法では出来ませんでした。

お力をお借りできれば幸いです。
よろしくお願いいたします。


Re: メンバ変数へのアクセス 投稿者 : hoge1e3(160.194.251.9)
- 2017/09/08(Fri) 12:27 No.13814
 
遅くなってすみません.
結論からいうと,次で動きます

obj = new MyClass;
update();// ★ここを追加
print(obj);// [object, object]
print(obj.a);// undefined
print(obj.b);// undefined
print(b);// undefined
obj.print_a();// undefined
print($b);// ★$bはこれで取得

-------
なぜこのようになるかというと,

* MyClassがnewで初期化されたときは,まだMyClassのプログラム(mainメソッドといいます)は実行されません.

* mainメソッドが実行されるタイミングは,new MyClassを行ったプログラム(Mainクラス)がupdateなどによって現フレームの処理を終えた後になります.

そのため,new で作ったオブジェクトの内容にアクセスする場合は,一旦updateが必要になります.

また,$で始まる変数(グローバル変数)は,すべてのプログラムから同じ名前でアクセスしてください.


Re: メンバ変数へのアクセス 投稿者 : マッキー(p2176045-ipngn15901hodogaya.kanagawa.ocn.ne.jp)
- 2017/09/10(Sun) 19:57 No.13815
 
補足します。

updateでも解決できますが、
updateは1フレーム分待機することになります。(Tonyu2の1フレームはデフォルトで約0.032秒)
newしたとき即座にメンバ変数を初期化したい場合は、以下の方法(@)をお勧めします。

@onAppearメソッドを再定義(オーバーライド)する
------------------------------------
MyClass.tonyu:

function onAppear(){
    a = 1;
    $b = 2;
}
function print_a(){
    print(a);
}
------------------------------------
Tonyu2ではnewしたタイミングで自動的にonAppearメソッドが呼ばれるようになっています。
onAppearメソッドをオーバーライドするとnew時に処理ができます。

onAppearの説明↓
ttp://tonyuedit.appspot.com/doc/tonyu2/onAppear.html


AMyClassのコンストラクタを再定義(オーバーライド)する
上記@の「onAppear」を「new」にします。
@と同様にnewしたタイミングで処理ができます。

ただし、newをオーバーライドすると既存のnewの処理が上書きされてしまい、
onAppearが自動で呼ばれなかったり、「new MyClass{c:3, d:4};」のような構文が使えなくなったりするので、
@の方がいいと思います。


Re: メンバ変数へのアクセス 投稿者 : Hks(66.151.231.153.ap.dti.ne.jp)
- 2017/09/20(Wed) 22:14 No.13816
 
返信が遅れてしまい申し訳ございません。

提示していただいた方法で、無事解決しました。
お二方とも、詳細な回答をいただきありがとうございました!

Tonyu2は 投稿者 : jinmi(softbank126242128178.bbtec.net)
- 2017/07/20(Thu) 21:32 No.13810
 


Tonyuにはソースコードに文字数(容量)制限がありましたが、Tonyu2にも制限はありますか?


Re: Tonyu2は 投稿者 : hoge1e3(160.194.178.126)
- 2017/07/27(Thu) 12:30 No.13811
 
Tonyu1のエディタは32KB程度が限度でしたが,その制限はなくなっています.
こちらで試したところ,Tonyu2は200KB程度のテキストファイルでも開けることを確認しています.

推薦記事: hoge_ship


Re: Tonyu2は 投稿者 : jinmi(u081.d027228218.ctt.ne.jp)
- 2017/08/02(Wed) 11:45 No.13812
 
ありがとうございます

サウンドデータ 投稿者 : jinmi(softbank126209199153.bbtec.net)
- 2017/07/19(Wed) 08:57 No.13808
 


ゲームを実行しようとしたところ、次のようなエラーが出ました。
TypeError: soundData is undefined

音系ファイルは入れてませんし、前回起動時はこのようなエラーは出ませんでした。


Re: サウンドデータ 投稿者 : jinmi(softbank126209199153.bbtec.net)
- 2017/07/19(Wed) 09:00 No.13809
 
すみません解決しました。

ツイート機能 投稿者 : *tak(110-54-100-235.ppp.bbiq.jp)
- 2017/07/17(Mon) 21:45 No.13805
 


tonyu2製のゲームにツイート機能をつけたくて

$WebPage.openShareTweet(null,text+ " 【Lv." +$Lv+", "+ $item[0] + ", " + $item[1] +"】" +"\n#勇者は前しか進めない");

と記述したのですがエラーになります。何か方法はないでしょうか。


Re: ツイート機能 投稿者 : hoge1e3(160.194.251.9)
- 2017/07/18(Tue) 16:42 No.13806
 
タッチ動作以外の動作からは呼び出そうとするとポップアップブロックがかかる場合があります.

次のようなコードを単独で実行したところ正しく表示されました.
詳しいエラーメッセージをお知らせください.

$Lv=3;
text="hoge";
$item=["a","b"];
while(true) {
    if ($touches[0].touched==1) {
        $WebPage.openShareTweet(null,text+ " 【Lv." +$Lv+", "+ $item[0] + ", " + $item[1] +"】" +"\n#勇者は前しか進めない");
    }
    update();
}


Re: ツイート機能 投稿者 : *tak(110-54-100-235.ppp.bbiq.jp)
- 2017/07/18(Tue) 21:23 No.13807
 
返信ありがとうございます。

TypeError: Cannot read property 'openShareTweet' of undefined

というエラーメッセージなのですが、
ダウンロード版だったせいかと思います。

ブラウザ版ではうまくいきました。

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