したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【エミュレータ】Emueraスレ【+α】

1Emueraの人:2010/11/23(火) 01:41:51 ID:mrlVhh/.0
このスレはEmuera(エミューラ)に関する話題を扱うスレです。
Emuera本体に関する要望・バグ報告などありましたらこのスレでどうぞ。
各ERBスクリプトに関する話題はそのバリアントのスレでお願いします。

なおeramakerの作者である佐藤敏様はEmueraの製作には関与していません。
Emueraへのサポート要求等をサークル獏様や佐藤様宛てに送らないで下さい。

34妊)|д゚):2010/12/13(月) 00:49:32 ID:8zulkUiE0
>>33
LOCAL系は必要となった時点で初めて領域を確保する実装なので、そこらへんを心配する必要はないです
その関数(イベント関数なら全部)内で使ってなければメモリを使うこともありません

3530:2010/12/14(火) 20:46:33 ID:hyfG1eS20
>>34

見てみたら、確かにそういう処理になってますね。
やっぱりコード読まないで喋っちゃだめだなぁ。

補足どうもです。次バージョン楽しみにしております。

36era☆staR製作者:2010/12/14(火) 21:47:34 ID:FzzpCVgA0
[Emuera1755f]で[era☆staR]を起動した際、
キャラメイク部分で止まってしまう不具合を見つけました。
なんだか、さらにひどくなっている様な気が・・・

多分、他の逆調教バリアントでも同じ事が起きると思われます。

eraスレうpロダの[era4939.zip]です。

37妊)|д゚):2010/12/14(火) 22:41:28 ID:vik4iW8k0
>>36
1755aでCALL、JUMPの高速化を行った時のエンバグだったので直して1755gをリリースしました

39名無しさん:2010/12/15(水) 20:05:20 ID:dlu2s8f.0
macro.txtに
 マクロキーF1:@PRINTFORM {DB:1:3}
と文を保存しても、 : (コロン)のせいか
 @PRINTFORM {DB
までしか入力されず、後は手動で入れなければならないのですが
なんとかなりませんでしょうか

40妊)|д゚):2010/12/15(水) 21:12:12 ID:7Yccslp60
>>39
macro.txtの読み込み処理の実装がファイル実装に適していなかったので、手を入れました(1755h)
処理的には相当古く(マクロ機能実装直後ぐらい)からあるはずのバグかもしれません
誰も気づいてなかったってのは、この機能の利用者の割合とその使い方上気づかれにくかったということですかねぇ

41妊)|д゚):2010/12/19(日) 07:24:21 ID:64CRrgrI0
1755a以降のJUMPの処理にまだ不具合があったので修正(デバッグモード+JUMPで例外落ち)(1755i)
1740bで手を入れた文字列三項演算子のパース処理にまだバグが残っていたので修正(eraSQNの特定文字列三項演算子が正しくパースされない)(1755j)

42妊)|д゚):2010/12/19(日) 23:59:32 ID:64CRrgrI0
1755i以降で特定状況下でのデバッグコマンドでの式中関数呼び出しが例外になるのを修正(1755k)

43妊)|д゚):2010/12/22(水) 03:06:02 ID:VaWp2lvQ0
色々regressionやらエンバグやら、誰も気づかずにここまで来たバグとか
ついでにコード整理でちょっとだけ高速化を企図してみたりとか
以上をまとめて1755lに

44Emueraの人:2010/12/23(木) 00:04:58 ID:PhprXR660
Emuera 1.756 alpha018
1755aベース、1755cをマージ。1755d以降は取り込んでいません。
ttp://erafiz.orz.hm/up/index.php?mode=dl&dfile=era4965.zip

これはベータ版未満のアルファ版です。
起動すると既存のコンフィグやセーブデータなどを破壊する恐れがあります。
使用前にバックアップを取ってください。

擬似変数LINECOUNT追加
式中関数CONVERT追加
プライベート変数追加(暫定版) 同梱のERBを見てください。
引数解析時に定数式を展開するように処理を変更
  > ABL:技巧 = CSVABL(0, GETNUM(ABL, "技巧"), 0)
  > ABL:2 = 2
  上の2行は同じ速度で動作するようになります。

互換性に「関数・属性については大文字小文字を無視しない」オプション追加
処理の変更に伴い「ロード時にFORM文字列を解析する」オプション消滅。
「eramaker互換性に関する警告を表示する」オプションをシステムから解析へ移動。
システムに「全角スペースをホワイトスペースに含める」オプション追加。
デバッグコンソールがずれる問題を修正
SIFで飛ばしてはいけない行が飛ばせる問題を修正
ソース内の綴りミスを見つけた分は修正

論理XORがオペランドを2回評価する場合があった点を修正。
SKIP中、TINPUT又はTINPUTSに遭遇したときに警告からエラーへ切り替え
EVENT関数中でのJUMPの動作をeramakerに合わせ修正
EVENT関数における#PRI、#LATER、#SINGLEの効果をeramakerにあわせ修正
IF文や代入文での引数の省略を警告対象に。eramakerでは動作が不定なため
識別子に.(ピリオド)を含められないように変更
\@〜?〜#〜\@形式の3項演算子で#が見つからない場合を警告対象に

その他、コードの大幅な改変

46名無しさん:2011/01/02(日) 08:15:29 ID:l7VkLdLA0
>>44
Emueraベンチで試してみました
超速い!

47名無しさん:2011/01/02(日) 15:39:12 ID:qbQqCbkY0
速いと聞いてemueraベンチ試してみた!

すげぇ
1555nと比べて、全般的に速くなってて・・・
演算系/STRLEN系/IF文だと2倍くらい速いしwww

1555n自体、素の1555よりかなり高速化されているのに
それより速いんだもんなぁ・・・

でも、一番驚いたのは「#DIM」の存在だったりw

48名無しさん:2011/01/02(日) 18:10:35 ID:yMS/pL.20
>>44
同名の非イベント関数が複数定義されたとき警告する
をYESにしていると

予期しないエラーが発生しました
System.NullReferenceException:オブジェクト参照がオブジェクト インスタンスに設定されていません。
ERBコードに解釈不可能な行があるためEmueraを終了します

と表示されて落ちるようです

49名無しさん:2011/01/02(日) 18:46:37 ID:qbQqCbkY0
1555じゃねぇ1755だorz

50名無しさん:2011/01/11(火) 00:08:13 ID:ocof0LJU0
Emuera 1.756 alpha023
1755aベース、1755cをマージ。1755d以降は取り込んでいません。
ttp://erafiz.orz.hm/up/index.php?mode=dl&dfile=era5012.zip

相変わらずベータ版未満のアルファ版です。
起動すると既存のコンフィグやセーブデータなどを破壊する恐れがあります。
使用前にバックアップを取ってください。

>>44以降の追加・変更点
chara*.csvの保持方法の変更。メモリ消費量を少し削減
>>48を修正しました
その他コード修正

正式版を名乗るまでにやること
1.define.csv改め_header.ERBの実装。
2.名前解決の一元化と合理化。
  #DIM PRINT,10
  PRINT = 100
がどう動くか、あるいは動かないかをはっきりさせておきたい。

51名無しさん:2011/01/12(水) 13:16:48 ID:jBSSQBKY0
文字を設定出来る任意定数が出来るなら、かなり助かるので期待します
これで通貨の単位とか各種名称関係を一括変更出来そう

52名無しさん:2011/01/12(水) 18:41:24 ID:UMKPLxP20
初心者で申し訳無いのですが質問です。

IMEで出さなければ出ないような漢字(戩、媧等)が入った名前のキャラがいるバリアント
を作ろうとしています。csvをUnicodeで保存するといったんは表示されるのですが、
セーブして続きから始めると“?”と表示されてしまいます。

どうか良い方法をご存知でしたら教えてください。

53名無しさん:2011/01/12(水) 19:21:26 ID:e7APgZc20
初心者ならば質問をしていいなんてことはありません。自分で調べてみましょう。
一応言うとCSVやERBの文字コードはでUnicodeではないためそのままUnicodeで書くことはできません。
詳しいことはEmueraのSourceForgeやeratohowikiのEmueraについての補足を調べるといいでしょう。

54名無しさん:2011/01/12(水) 19:50:02 ID:L4hTfmqY0
>>52
セーブデータはUnicodeで保存されない気がするの
なんとか実装しようとするなら、名前表示しているところを個別に
UNICODE 命令利用して出すことになるかなぁ
csvをUnicodeで保存で表示されるんなら、CSVNAMEでもいけるかも

55名無しさん:2011/01/12(水) 20:31:04 ID:Sxpujtto0
EVENTLOADあたりで
REPEAT CHARANUM
 NAME:COUNT = %CSVNAME(NO:COUNT,0)%
 CALLNAME:COUNT = %CSVCALLNAME(NO:COUNT,0)%
REND
みたいなことやりゃ、適当に誤魔化せそうね
名前変更とか入れたい場合は、一手凝らす必要があるけど

56Emueraの人:2011/01/13(木) 01:07:39 ID:WUqF5D4c0
初心者でも初心者でなくても気軽に質問してかまいませんよ

>>52
現在のEmueraではセーブデータをSHIFT-JISで作成するのでSHIFT-JISにないUnicode文字は保存できません
現在のEmueraでUnicode文字を保存するためには、セーブ時にENCODETOUNI命令で数値に置き換えてロード時にUNICODE関数で文字列化するという非効率な処理が必要です

ver1.756の次あたりで「UTF-8でセーブする」オプションを作成します

システム「UTF-8でセーブする」予定
このオプションをYESにすると、SHIFT-JISに代わりBOM付きUTF-8でセーブデータを作成します
・eramakerではこのセーブデータは使えません
・Emueraはこのオプションによらずどちらのエンコードのデータもロードできます

57名無しさん:2011/01/13(木) 18:12:40 ID:.ILrYnHc0
Emuera1756alpha023-4 なんですが、
タイトルからのロードとオートセーブは動いているんですが、
それ以外の場所でのセーブ・ロードが出来ないです。

試したバリアントはerapoyo改修2版・era咲・era☆staR・eraWIZ等です。

58名無しさん:2011/01/13(木) 20:14:00 ID:DWVMeT8Y0
>>20の最新版で直ってるよ

59名無しさん:2011/01/13(木) 20:23:06 ID:.ILrYnHc0
>>58
教えてくれてありがとう。
しっかし、既に直ってたのね。ハズカシー

60名無しさん:2011/01/13(木) 21:13:16 ID:L9Wfs.5w0
>>53
ご返答ありがとうございます。
不勉強のまま質問してしまい、申し訳ありませんでした。

>>54
名前表示のところを個別にUNICODE命令は、csvでどうしても表示出来なかった場合の
最終手段として考えてました。
CSVNAMEという命令があるんですね。試してみます。
不勉強のまま質問してしまったにも関わらず、ありがとうございます。

>>55
ご丁寧に有難うございます。
CSVNAMEについてよく調べてから試してみたいと思います。
不勉強のまま質問してしまったにも関わらず、ありがとうございました。

>>56
温かいご返答ありがとうございます。
ver1.756の次あたりで「UTF-8でセーブする」オプションを作成して頂けるとのこと…!
本当に有難うございます。期待してお待ちしております。

61名無しさん:2011/01/13(木) 21:28:54 ID:tfNB7zU60
不具合というべきかは微妙なところですが、自分の直感に反する動作だったため一応報告を
FOR構文をBREAKで終了した際、ループ変数が1加算されるようです

FOR LOCAL:0, 0, 10
IF LOCAL:0 == 2
BREAK
ENDIF
NEXT
PRINTFORMW LOCAL:0 = {LOCAL:0}

実行結果
LOCAL:0 = 3

62Emueraの人:2011/01/13(木) 22:13:55 ID:WUqF5D4c0
>>61
仕様です
eramakerのREPEAT構文とBREAKがそういう仕様だったのでEmueraもそれに従いました

63名無しさん:2011/01/13(木) 22:23:09 ID:tfNB7zU60
>>62
返答ありがとうございます
理由を聞いてスッキリしました

64名無しさん:2011/01/19(水) 04:12:23 ID:H2sFEyY60
DRAWLINEで描写される"-"の数 = 折り返さずに許される半角文字の数 を
取得する関数もしくは変数の実装は難しいですか?

UIを設計していてこれが取得できると非常に助かります
やりたいことは例えば画面の左66%側と右33%側で違う表示枠を描画という感じです

65名無しさん:2011/01/19(水) 17:13:05 ID:gghtNlck0
今は状況が変わっているかもしれませんが
IRCで同じ質問をしたときかなり難しいと返されたと記憶しています

66名無しさん:2011/01/19(水) 17:20:25 ID:eG0fuD3U0
その関数あったら助かるなぁ
今現在右側って確かに空いてるし、有効活用したい

67名無しさん:2011/01/22(土) 10:44:46 ID:/ZJno.5o0
開発お疲れ様です。
要望なんですが、数値型のCSV変数って用意出来ないでしょうか?
Str.csvの数値版みたいな形で、システム全体で使うini設定を外部ファイルに記述したいなぁと
ERBを見るよりはスマートに変更出来る様になりますし、御一考頂ければ嬉しいです

68名無しさん:2011/01/22(土) 23:45:38 ID:7qnwVEDs0
&& ( || ) &&
とか、
|| &&
とかか?、なんか微妙な気がする???
なんだが気のせいであって仕様とかか???
&& ( != || !=) &&
で!=とか使ったせいか???

まあ、混乱しただけのグチかもw

69名無しさん:2011/01/23(日) 10:08:38 ID:k2XauR5A0
日本語でおk

70名無しさん:2011/01/23(日) 12:37:26 ID:tjv3JeI60
いつもお世話になっています。要望なんですが、
"今現在の行に表示されている文字数"が取得出来る関数が欲しいなぁと
>>64と近いのですが、文字数さえ取れれば差分をスペース埋めとかでERB側で実現可能なので、
もし良ければ検討して貰えれば嬉しいです

71名無しさん:2011/01/23(日) 20:48:22 ID:66aqL6Yo0
>>68
ω

72名無しさん:2011/01/23(日) 20:59:32 ID:iz1j/AQY0
やあ、正直煮詰まったうえでのグチだったんだすまない
結局困り続けてるかeramakerの挙動も同じ臭いし使える書式を頑張ってみつけるさ、、、

一応一区切り付けてモノもうぷしたから気付いたらスルーしてくれw

73名無しさん:2011/01/23(日) 22:03:54 ID:hq6ubppE0
別に1行でかかなくてもいいのよ

74名無しさん:2011/01/24(月) 05:55:54 ID:qsjTQvDI0
しかしERB書いてて思ったが、やはりERAに終端文字が無いのは言語設計での最大の失敗だと思う
簡単なIF文ですら一行で書けないし、大量の条件でも一行で書かないといけない
変数関係もPERL並に使い勝手の良い変数仕様なら良いんだが、%%とか{}で使い分けて括る必要のあるなんちゃって変数感が否めん
まぁ今更どうしようも無い話なんだが、もしEmuera2とかを作るときにはこの辺何とかして欲しいかも

75名無しさん:2011/01/24(月) 07:06:53 ID:0gVqqkro0
eramakerとの互換性を考えなければイケナイのがEmueraの大変なトコロぽいしね
変数とかその辺りはどうしようも無いんじゃない?

互換性を完全に無視するんなら最初からmaker2や、なでしこで作成したほうが
いい気がするよね。

76名無しさん:2011/01/24(月) 09:40:20 ID:775vrKX.0
互換モードと非互換モードの両搭載!
…なんてことやって動作が重くなったり不安定になったりしちゃ本末転倒だしな

77名無しさん:2011/01/24(月) 11:06:50 ID:v8Pm8frw0
ERBはERA BASICの略ですから

78名無しさん:2011/01/24(月) 19:30:17 ID:dHCyKMlU0
終端じゃなくてまだまだ続くよ文字作ればいいんでない?

79名無しさん:2011/01/24(月) 19:44:17 ID:uA1Tp0Ak0
コメントを行内に書きたいとは思ったことがあるけど (SIF TALENT:0 == 1 ;処女の場合)
そのくらいの用途のためにシステム大改造というのも申し訳ないな

80名無しさん:2011/01/24(月) 21:31:14 ID:BwrWUHhI0
>>79
CSV弄ってSIF TALENT:処女 == 1 と書けば良いのでは

81名無しさん:2011/01/24(月) 21:36:20 ID:0gVqqkro0
例えってヤツだろw

CSVだと行内コメント可能だったからって、
ERBでも行内コメント多用した後のテストプレイ時の絶望感ときたら、もう…

8279:2011/01/24(月) 23:52:52 ID:uA1Tp0Ak0
そのとおり例えでござる
>>81が他人とは思えない

83名無しさん:2011/01/28(金) 11:59:43 ID:9omS34SA0
>>78
_ (アンダースコア)で行継続できたらなー、と思ったことはあるな

84Emueraの人:2011/02/07(月) 00:04:45 ID:Moy2QXrY0
ttp://erafiz.orz.hm/up/index.php?mode=dl&dfile=era5067.zip
Emuera 1756beta 001
1.756のベータ版です

>>50からの変更点は、
・#DIM機能を一旦削除しました
 ・修正の時間が取れなくなったためです。いずれ追加します
・私家版の変更を取り込みました
・私家版の変更に対する変更
 ・ARGの要素数をVariableSize.csvで指定した数未満にはならないようにしました

85Emueraの人:2011/02/07(月) 01:37:45 ID:Moy2QXrY0
>>64
フォントや描画インターフェースの都合もあって難しいです

>>70
一行の文字数が常に同じになるとは限らないのです

>>79-
PRINT文など生の文字列を引数に取る命令以外についてのみであれば行中コメントは比較的簡単に作れます
それでよいから欲しいという要望があれば検討します

86妊)|д゚):2011/02/07(月) 04:26:34 ID:zL4Nljm60
1756β版にいくつかテストにならないような不具合があったので緊急で私家改造版を作成
ttp://ux.getuploader.com/ninnohito/download/203/Emuera1756beta1%2B.zip

・VariableSize.csvでのLOCALとARGの要素数指定周りに2つバグがあったので修正
・ARGの仕様変更と実装処理が正しくない部分があるので修正
・SETFONTが引数なしの場合にエラーになるという予期せぬ仕様変更があったため修正
・行の途中でエラーが発生した場合、エラー表示がそのまま連続で表示され見にくいので改行が入るように修正

87名無しさん:2011/02/07(月) 12:19:52 ID:1Kqu1zK60
>>84,86
Emuera 1756beta 001と、その私家改造版を試させていただきました
非常に早くて素晴らしいのですが、警告LV1で
関数宣言に引数変数"ARG"が使われていない関数中で"ARG"が使われています(関数の引数以外の用途に使うことは推奨されません)
を出力するのは無しにしてもらえないでしょうか?
LOCALよりも短い単語で使いやすいARGを自由に使えないのは凄くもったいないと思います…

88名無しさん:2011/02/07(月) 13:32:36 ID:QQfBzBV60
元々使い道が違う変数を別用途に流用しておいて文句言うのは筋が違うような

89名無しさん:2011/02/07(月) 16:17:06 ID:KD2GvOXY0
ARG->ARGUMENTにすれば、87もLOCAL使うようになって解決。なんちて
まぁ別に使ってもいいんだけど、ほかの人がソース見ることも考えようず

90名無しさん:2011/02/07(月) 16:28:04 ID:1Kqu1zK60
>>88,89
CFLAG:(LOCAL:1):LOCALとかをCFLAG:ARG:LOCALって書けると、後で見直すときにも見やすいと思うんだけどなぁ…

91名無しさん:2011/02/07(月) 16:46:58 ID:EX00tYQg0
別に使うのは自由だけど、イレギュラーなのは自覚した方がいいぞw
どうしても使いたいなら、警告なんぞ無視すりゃいいでしょうに

92名無しさん:2011/02/07(月) 17:37:40 ID:QQfBzBV60
いやいや、見た目を優先して意味がわかりにくくなるのは本末転倒だろう
「この変数はこういう用途に使われる」と切り分けないと、同じ変数が場所によって全く違う意味になるんじゃこの変数は何を指すのか?という混乱を招いてしまう

例えばCFLAGが足りないからって余ってるABLやBASEで代用しても動作上の問題はないが、そういう使い方はしないだろ?

93名無しさん:2011/02/07(月) 17:47:39 ID:KD2GvOXY0
見た目を優先して意味がわかりにくくなるのを避けろと言うのに
リソース足りないから別のとこからひっぱてくる例を出しちゃいかんw

94名無しさん:2011/02/07(月) 18:54:38 ID:1Kqu1zK60
>>91-93
現状だと
@TEST
LOCAL = 0
FOR ARG, 0, 10
LOCAL += ARG
NEXT
RETURN LOCAL
みたいな使い方ですら警告受けるから、警告表示を緩和して欲しいだけなのになぁ

95名無しさん:2011/02/07(月) 19:16:37 ID:zuuIq7NQ0
それ緩和したら意味がなくなるだろ……逆にどういう状況で警告されればいいと思ってるんだ?

96名無しさん:2011/02/07(月) 19:19:44 ID:KD2GvOXY0
警告表示緩和自体は難しくなかろうが
作法の問題ですからして口うるさい人が出るのも致し方なし(俺含め)
というか2文字少なくなるのがそこまで重要なのかと

97名無しさん:2011/02/07(月) 19:41:56 ID:1Kqu1zK60
>>95
Emueraの中身が分からないので、わかりません
でも、今までは警告しなかったわけですし、深刻な状況にはならないのではないか、と思いまして
>>96
(LOCAL:1)を使わなくてもいいかもしれないので、2文字ではなく6文字短く出来ます
物凄い入り組んだ構文書くときにARGとLOCALを別々に使えると凄い便利だと思うのですが…

98名無しさん:2011/02/07(月) 20:09:23 ID:KD2GvOXY0
ようするに2次元配列用に添え字使わなくてすむローカル変数が欲しいってこと?
プライベート変数の定義って今開発中じゃろ?待ってればいいんじゃね

変数A〜Zってローカル用途で使われてるのがほとんどだろうから、それで問題ない気もするけど

99名無しさん:2011/02/07(月) 20:10:55 ID:3XDWjjvs0
後ARGとLOCALは別々に設定するとそれぞれ設定数までの配列(1000の場合はARG:0〜999、LOCAL:0〜999)まで埋まる
片方しか使っていない場合はそっちだけデータが埋まる
規模が小さいバリアントなら気にはならないが大きい奴だとそれなりにメモリを食う話があったような

100名無しさん:2011/02/07(月) 20:32:39 ID:zuuIq7NQ0
ARGをLOCAL代わりに使うのは、妊の人にとっては投げ捨てたいくらいの物だしね……
Emuの人が「互換性は無くさない」方向で進めて警告Lv1に落ちただけで、1755t(テスト版)では警告Lv2じゃなかった?

101名無しさん:2011/02/07(月) 23:36:57 ID:v/wcAV5w0
ものすごく入り組んだ構文書くときこそわかりやすさが求められると思うの
ARG = 引数でどこかの関数から保持してきた数値 という前提がある以上、
引数ではないのにARGなんて使ったら混乱すると思うんだけどな

102妊)|д゚):2011/02/08(火) 02:42:13 ID:dq5svhcQ0
今回の変更についてですが、
ARGは関数の引数用に使って欲しいということで作った変数なので、
あんま他の用途に使って欲しくないというのが理由です
(引数で使った場合とそうでない場合で挙動が若干違うとかありますし)

後、>>99にあるメモリ使用量に絡んで、
LOCAL、LOCALSに関数毎に使う要素数を設定できる#LOCALSIZE、#LOCALSIZEを設定したのと、
ARGについては関数の引数にあわせて必要な要素数を動的に設定する機構を作成したので、
1756ではむしろ今までの手法の方がかえってメモリの使用効率が下がる場合も出てくるかと思います

103名無しさん:2011/02/08(火) 03:52:34 ID:LWrH5EiU0
>>70ですが、

>>85
>一行の文字数が常に同じになるとは限らないのです
欲しいのは一行全体の文字数では無く、
今現在の行に出力されている"表示済みの文字数"です

既に何文字出力したのかが、手計算せずに取りたいなぁと
実は既に力技で実現出来てるんですが、ソースが見苦しいのでシステム関数で欲しい所です

PRINT時に表示文字のbyte数を変数にカウントして、改行時にクリアするとか出来なそうですかね?
やる事は割と単純だと思うのですが

104妊)|д゚):2011/02/08(火) 04:00:29 ID:dq5svhcQ0
>>103
それは不可能ではないですね
おそらくSJIS(STRLENに対応)とUnicode(STRLENUに対応)と2種類作ることにはなりますが

ただ、いずれにしても命令系の追加等は1756が出てからの話になるかなと思います

105名無しさん:2011/02/08(火) 04:13:39 ID:LWrH5EiU0
>>104
おお、本当ですか
希望が持てたなら待つのは得意なので、気長に待っています。夜分お疲れ様です

106妊)|д゚):2011/02/08(火) 06:27:46 ID:dq5svhcQ0
なんでできるかって言いますと、
そもそも「現在の行に表示済みの文字数」なんてないんです
あるのは「今処理してる文字列スタック」だけなので

EmueraのPRINT系の処理は基本的に「行」単位で取り扱います
PRINTLやPRINTWといったものを処理すると、そこで内部で改行処理に入り
そこで表示用の文字列スタックから行を作成し(折り返しが生じる場合はこの時点で初めて複数行に分割する)、
それができた時点で初めて表示に反映されます

なので、今の行で表示済みの文字数なんて概念はなくて、
単に処理中の文字列スタックを見れば自然と行内の文字数は自明です

ただ、上にもあるとおり、折り返しの有無は改行処理が入るまでわかりませんので、
現在の文字数と折り返しの有無は一切無関係であることと、
折り返しが生じるとして、折り返しを処理したら何文字かなんてのはとても実装できない
(折り返しの判定処理は結構ばかにならない処理量のため)
ということだけは了解していただければと思います

107妊)|д゚):2011/02/08(火) 07:40:35 ID:dq5svhcQ0
ttp://ux.getuploader.com/ninnohito/download/205/Emuera1756beta1%2B.zip

・通常命令版POWERの引数処理が事故っていて、正しく動作しないのを修正
・_Rename.csvによる全行置換の使用可能範囲の制限強化
  可読性の関係上、関数宣言行とプリプロセッサ行は全置換による置き換えをできないようにしました
  1756以降の仕様として、
   関数宣言行は引数部分のみ置換に対応(できなくなっていたのを復活)
   プリプロセッサ行は置換非対応となります(こっちは元々)

108名無しさん:2011/02/08(火) 11:37:15 ID:LWrH5EiU0
>そもそも「現在の行に表示済みの文字数」なんてないんです
>あるのは「今処理してる文字列スタック」だけなので


『人間なんて定義は無くて、あるのは2足歩行で高い知能を持った生き物が居るだけなので』って話と同レベルですが、
概念として定義すれば、あるんじゃないでしょうか。制作者側が今現在定義していないだけで
何故なら
『今処理してる文字列スタックなんて無くて、バイナリデータを都合よく区切って解釈しているだけ』なので

109名無しさん:2011/02/08(火) 19:03:50 ID:xqbfL8Nw0
>>108
Emueraは表示処理に関しては、行単位でスタックに載せたらあとは.NET側に放り投げて
その答えを待つだけ。そして、.NET側でどういう処理をされているのか?の情報をすべて
受け取っているわけではない。
つまり、実際に何がどう表示されているのか?を完璧にEmueraが把握することは不可能。

110妊)|д゚):2011/02/09(水) 21:06:42 ID:DkUHfywc0
ttp://ux.getuploader.com/ninnohito/download/206/Emuera1756beta1%2B.zip

_Rename.csvの置換処理にバグがあったのを修正
一部正常な置換指定子がエラーを返されるという悲しい事故が起きていた
ついでに、存在しない置換指定子を与えたときのエラーが面白いことになっていたのも修正

111妊)|д゚):2011/02/10(木) 02:33:47 ID:x9S/nzTA0
ttp://ux.getuploader.com/ninnohito/download/207/Emuera1756beta1%2B.zip

最初のEmuera1756beta1+で入れた修正に実はインプリ漏れがあったので緊急でインプリ

112妊)|д゚):2011/02/12(土) 05:48:27 ID:jWrtsWaw0
ttp://ux.getuploader.com/ninnohito/download/211/Emuera1756beta1%2B.zip

細々修正
もしかしたら何かしらregressionがあるかもしれないので見つけましたら報告お願いします

113妊)|д゚):2011/02/12(土) 16:05:41 ID:jWrtsWaw0
ttp://ux.getuploader.com/ninnohito/download/212/Emuera1756beta1%2B.zip

全コードの再読み込みで$ラベル周りがおかしくなるのを修正

114妊)|д゚):2011/02/13(日) 01:18:36 ID:21QgWeqU0
ttp://ux.getuploader.com/ninnohito/download/215/Emuera1756beta1%2B.zip

エンジン以外の部分で本当に色々問題見つかったので、その修正

115Emueraの人:2011/02/14(月) 22:23:20 ID:GeN.N7KM0
Emuera beta002
ttp://erafiz.orz.hm/up/index.php?mode=dl&dfile=era5091.zip

>>114まで取り込み
キーマクロの保存、読み出しに関するバグ修正
#DIM復活。ただしprivate staticな変数に。
 staticにしたためにパフォーマンスはLOCALと同等になりました。
 LOCAL同様に再帰呼び出しには耐えません。
 #DIM DYNAMIC HOGE,100 で動的変数HOGEを定義します。
  再帰呼び出しに耐えるはずですが動作は遅いです。

>>87
ARGの代わりに#DIMを使用してください。
関数宣言直後に#DIM HOGE,100 とすればその関数内でのみ使えるprivateな変数HOGEが用意されます

116名無しさん:2011/02/14(月) 23:49:59 ID:ZlDaPGco0
制作お疲れ様です。
要望ですが、少数型の変数って追加出来ないでしょうか?
一つぐらい少数を保存できる変数があれば、ソースの計算関連の処理で助かるなぁと思ったので

117Emueraの人:2011/02/15(火) 00:30:50 ID:mFDM4qP20
>>116
無理です
Emueraは型の追加ができる設計になってません
型を追加するために変更が必要な箇所が多すぎるので対応できません

118名無しさん:2011/02/15(火) 01:12:49 ID:XCo93Qgg0
>>117
回答有難う御座います。了解です

119妊)|д゚):2011/02/15(火) 05:10:35 ID:rljCi/tg0
ttp://ux.getuploader.com/ninnohito/download/216/Emuera1756beta2%2B.zip

本来出す必要がなかった予定が大幅に狂ってbeta2+v1
・LOG10(1000)が2になってしまう(内部処理における)誤差発生を修正

120妊)|д゚):2011/02/16(水) 06:23:02 ID:QbDDbvNw0
ttp://ux.getuploader.com/ninnohito/download/218/Emuera1756beta2%2B.zip

beta2+v3
・CALLTRAINが正常に動作しないのを修正
・デバッグモードの変数チェッカで監視している式中関数が例外を投げた場合
 その後のEmueraの挙動が明らかにおかしくなるのを(多分)修正

121名無しさん:2011/02/16(水) 22:21:51 ID:rT6XKkRE0

開発お疲れさまです。
1756待ちらしき時期に出すべきなのか分かりませんが、要望2点です。

【 要望1 】

  マウスカーソルをボタンの上に乗せた場合の、
  フォーカスを設定するタイミングの追加

【 要望の理由 】

  説明よりも実例を、ということでサンプルがこちら↓
  同梱のバイナリは現在 sourceforge から落とせる 1755 です。

  ttp://eratoho.dyndns.dk/cgi/upload.php?id=001925

  実行すると左下に ■ が出ますが、カーソルがボタン上で動いた
  一瞬しかフォーカス状態が維持されず、ちらつきが発生します。
  このちらつきを無くしたいというのが要望の理由です。

【 原因 】

  現在のマウス周りの処理の仕様では、OS側からイベントが
  振ってきたタイミングでのみ処理が行われているため、
  マウス操作を行わない限りフォーカスも更新されません。

  上で挙げた例は TINPUT で描画をブン回すという極端な条件下ですが、
  マウスを動かさずにリターンキーだけでメッセージを進めることで、
  一応どんなバリアントでもこの現象は確認できます。

122名無しさん:2011/02/16(水) 22:23:23 ID:rT6XKkRE0
NGワードが含まれていると怒られました。どこだろう。
とりあえず分割して編集しながらやってみます。

【 変更案 】

  また >>30 の時みたく釈迦に説法の板汚しで終わるかもしれませんが。

  INPUT 系をの命令を受けた時点でのフォーカスの話なので、
  そのまんま INPUT 系の命令を受けた直後に
  OSからカーソル位置を拾って更新処理を行えばいいかなと。

  具体的には、doNormalFunction 関数内の
  INPUT, ONEINPUT, INPUTS, ONEINPUTS, TINPUT, TINPUTS の処理で、
  console.Read 系のを行った直後が良さげなタイミングに見えました。

  フォーカス更新の処理は console.MoveMouse とほぼ同等のものを作るか、
  カーソル位置だけ取得してそのまま MoveMouse に投げるかですが……
  RefreshStrings の処理コスト次第でしょうか。

  頓珍漢なことを言ってたらすんません。


俺得成分の強い要望で申し訳ないですが、
大きな問題がなければ是非導入していただけると嬉しいです。

123名無しさん:2011/02/16(水) 22:25:49 ID:rT6XKkRE0
doNormalFunction 関数が含まれているファイル名
(Process.ScriptProc.cs)が NG でした。

引き続き要望2つ目です。

【 要望2 】

  三角関数 SIN と COS の導入。

  IRC のログを拝見したところ、要らない子のネタとして
  名前が挙がっていましたが、本気で欲しい奴がここにいました。

  現在は 0〜89 度の1度刻みのテーブルで処理していますが、
  やはり本体側に関数として存在していると助かります。

【 要望の理由 】

  自機狙いや追尾弾だけでなく、偶数/奇数弾も撃ってみたい。

【 素案 】

  当然ながら本来の形では少数まみれで扱い様がないので、

    SIN(X, A)

  という書式で、

    return_value = X * Math.Sin( A * Math.PI / 180 )

  という処理でどうでしょうか。


TAN については、俺個人は使う予定はないので要望には含めません。
あれは NaN も絡むし、開発者の方の裁量にお任せです。

以上要望2点、俺得だらけですが御一考のほど宜しくお願いします。

124妊)|д゚):2011/02/17(木) 20:47:54 ID:0tSpGKws0
>>121
これは処理上だけを理論的に考えるならどうにかなります
(手元ではさっくりとテストしましたし)
問題は古いマシンを考えたとき負荷との兼ね合いがどうかというところかと
文字で書くだけなら簡単ですが、結構処理量馬鹿にならないんですね、この仕様

>>123
その関数は最早Sin関数の計算ではないと思うんですが
At leastな話として、一般的によく知られている関数名を
本来のそれとは違う計算を行う実装にするってのは、明らかに話をややこしくするのでダメかと思います

125妊)|д゚):2011/02/17(木) 20:53:08 ID:0tSpGKws0
逆に言うなら、そこらへんの誤解が生じないような命令系と関数名にできるなら、
実装自体は不可能ではないかと思います
(longとdoubleの変換誤差は絶対に無視できないだろうけど)

126121:2011/02/17(木) 22:30:49 ID:GyAY8OZQ0
返信ありがとうございます。

>>121 について

  後出し追加で申し訳ないですが、フォーカスが飛んでいる状態だと
  ボタンのクリックが一発で効かないことが多くなるため、
  ちらつきに加えて入力が行いにくくなるという弊害もあります。
  フォーカスの更新が追いつけばその問題も同時に解消するので……。

  とはいえ、>>121 のサンプルのような描画ブン回し自体が
  イレギュラーというか Emuera でそんな処理するな系の話なので、
  強くプッシュできるような要望でないのも事実です。

  こちらとしては、取り入れて頂ければ大喜びです、ということで。

>>三角関数

  SIN という名前でその処理はダメだろう、という点は俺も同意です。
  とはいえ、最初の要望の時点でいきなり俺ジナルな名前を付けても
  なんだそりゃとなりますので、あれはあくまで仮名ということで。

  誤解の生じにくい関数名……というのは難しそうですね。
  引数が増えてしまっている時点で、どんな名前を付けようとも
  関数名だけで2つの引数の役割を見抜くのは無理くさいかな。

  俺個人は、例え知った名前の関数であっても
  言語が違うなら必ずリファレンスを読むことにしているので
  あまり気にしたことはありませんが……まあ俺基準など意味もなく。

  変換誤差というか確保する精度については、最終的に int オンリーな
  環境であるという時点で、もう使う側の裁量に委ねるしかありません。
  角度と共に渡す乗算値次第で、取り出す桁はコントロールできます。

  ……というような、本来の SIN 関数からかけ離れた仕様が
  問題だって話だと思いますので、結局こちらとしては
  採用して頂ければ大喜びです、としか言えなくなりますが。

ひとまず、引き続き御一考くだされば幸いです。

127妊)|д゚):2011/02/18(金) 00:18:12 ID:UOKgNBRE0
ttp://ux.getuploader.com/ninnohito/download/219/Emuera1756beta2%2B.zip

beta2+v4
・キーマクロの処理中にQUITに当たると挙動がおかしくなる問題を修正
 (QUITにぶつかったらそこで処理を打ち切るようにしました)
>>121をテスト用に実装、重かったらバックアウトします
 (特にマシンパワーに余裕が無い人のテスト報告歓迎)

128名無しさん:2011/02/18(金) 00:27:19 ID:Ylcd.km.0
>>115
>#DIM復活。ただしprivate staticな変数に。
> staticにしたためにパフォーマンスはLOCALと同等になりました。
これって何か理由あるんですかね?
個人的にはメモリが解放されるのかと期待していたのですが…言語の制約かな

129121:2011/02/18(金) 21:10:47 ID:q6O9ImW20
>>127
早速のテスト版ありがとうございます。

描画のみをブン回す処理で 1755 と >>127 を比較してみた結果では、
この両者に有意な速度差は見られませんでした。

描画だけでなくその他の処理を詰め込んだ通常のゲームループだと、
全般的な処理速度向上の恩恵で 1756 系の方が速くなりました。

使用 CPU は Athlon X2 3800+ です。
今時の基準では既に化石化しつつある世代ですが、
era 系のゲームだと想定動作環境はもっと下まで含むのかな。

ひとまず、こちらでの結果の御報告まで。
このまま採用だといいなあ。

130妊)|д゚):2011/02/20(日) 14:43:08 ID:Hbe69xFQ0
ttp://ux.getuploader.com/ninnohito/download/220/Emuera1756beta2%2B.zip

beta2+v5
・FORM構文の略記マクロが盛大にエラー吐いてくれるのを修正

131名無しさん:2011/02/20(日) 20:19:02 ID:I.1RCd8.0
開発お疲れさまです。
不具合……というか、ちょっとした処理漏れ報告です。

  I = I + ()

のような形で式中に空の括弧があると当然エラーになりますが、
そのエラーメッセージの内容がとても生っぽくなっています。
(NullReferenceExceptionを吐く)

  ()

だとか

  I = () +

というような不完全な形式ではきちんと内容に対応した
エラーメッセージが出るので、何かの取りこぼしの類かと思われます。

NullReference が相手では ぬるぽ とも言えず、悲しい気持ちになりました。
是非対応のほどを宜しくお願い申し上げます。

132妊)|д゚):2011/02/21(月) 00:14:44 ID:cfHiAnjQ0
ttp://ux.getuploader.com/ninnohito/download/221/Emuera1756beta2%2B.zip

beta2+v6
>>131修正
・一部内部処理のミス修正(readme書き忘れ)

133名無しさん:2011/02/23(水) 01:10:41 ID:YcNuqUwY0
お願いがあるのですが。

「現在のウィンドウ幅」と「現在のフォントサイズ」を返してくれる関数は実装可能でしょうか?
1行に何文字表示できるかの、おおよその目安になると思います。
ご検討いただければ幸いです。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板