検索結果

  1. fspace

    権利を譲るためには、少し処理してはsetTimeout等で続きを実行するようにして、一瞬だけ別の処理を挟むことができるタイミングをつくる必要があります。...

    権利を譲るためには、少し処理してはsetTimeout等で続きを実行するようにして、一瞬だけ別の処理を挟むことができるタイミングをつくる必要があります。 あるいは、同時に複数の処理を行う仕組みであるWebWorkerを使います(マルチスレッド)。
  2. fspace

    え~と、まずasync/awaitはPromiseを書きやすくするための構文なので実体は同じです。awaitがthenに、try-catchがcatchに変換されて、return時に自動的にre...

    え~と、まずasync/awaitはPromiseを書きやすくするための構文なので実体は同じです。awaitがthenに、try-catchがcatchに変換されて、return時に自動的にresolveされる感じです。 で、Promiseは複数の処理を同時に実行する仕組みではなく、処理する権利をうまく譲りあうための仕組みです。「通信が終わるまで他のことしてていいよ」とか「ユーザが入力するまで他のことしてていいよ」みたいな感じです。なので、権利を譲らずにひたすら探索処理をしていると、他の処理は一切行われません(シングルスレッド)。これだと同期的にやっているのと何も変わりません。
  3. fspace

    あ、なるほど。知っているかもしれませんが一応書いておくと、単にPromiseを使っただけでは依然として処理は止まってしまうので注意です。処理を細切れにしてsetTimeoutやrequestId...

    あ、なるほど。知っているかもしれませんが一応書いておくと、単にPromiseを使っただけでは依然として処理は止まってしまうので注意です。処理を細切れにしてsetTimeoutやrequestIdleCallbackで少しずつ実行していくか、WebWorkerで並列にする必要があります。結構面倒くさいんですよね、重たい処理扱うの……。
  4. fspace

    仕様になる前に実装が進んでいるというより、実装がないと仕様に入らないようになってます。stage3からstage4になるための条件として「2つ以上の実装が存在すること」というのがあるので。sta...

    仕様になる前に実装が進んでいるというより、実装がないと仕様に入らないようになってます。stage3からstage4になるための条件として「2つ以上の実装が存在すること」というのがあるので。stage4の機能はこれ以上変更されることもなく、直近のECMAScriptの仕様に入るので、ほぼ追加されたようなもんですね。 ライブラリ化するとすれば盤面の管理あたりだと思いますが、この辺りは同期的なロジックだと思うので、もし非同期な入力処理が混ざってしまっているようなら設計を少し考えてみた方がいいかもしれません。
  5. fspace

    正式に仕様になっていないというだけで、どの環境でも実装されてるので使っていいと思いますよ。特に自分の環境で動けばいいというだけなら古い環境を気にする必要もないですし。

    正式に仕様になっていないというだけで、どの環境でも実装されてるので使っていいと思いますよ。特に自分の環境で動けばいいというだけなら古い環境を気にする必要もないですし。
  6. fspace

    あ~、なるほど。確かにCLIでゲーム作ろうと思うとそうなりますね。JSだとHTMLとCSSで比較的簡単にGUI作れるので、CLIは作業効率化のイメージしかありませんでした。...

    あ~、なるほど。確かにCLIでゲーム作ろうと思うとそうなりますね。JSだとHTMLとCSSで比較的簡単にGUI作れるので、CLIは作業効率化のイメージしかありませんでした。 あと少し思い出したんですが、Denoだとブラウザ同様promptが使えて、同期的に入力を受け取れたような気がします。まあ、Denoの勉強する方がよっぽど大変かもしれませんが……。
  7. fspace

    少し検索したところそれっぽいのありましたけど、普通に非同期で書いた方がいい気がします。await書くだけなので。...

    少し検索したところそれっぽいのありましたけど、普通に非同期で書いた方がいい気がします。await書くだけなので。 それよりもreadline.questionを何に使うのかが気になります。あんまり使う機会多くないような……。
  8. fspace

    テストのノウハウ

    「テストケース」の意味だろうなぁとは思いつつ、ちょうどいい機会だったので。さすがにTDDやろうとまでは思わないですが、リグレッションが怖いので一部でも自動化できたらいいなという願望はありますね。 マップが変わるたびにアンロードするのはコアスクリプトの仕様ですね。ゲームの場合、大量に画像をロードするのでため込み続けるとメモリが不足します。必要なときにロードして、不要になったらアンロードというのは割と普通ですね。...
  9. fspace

    テストのノウハウ

    プラグイン関係でよく考慮し忘れる(ているのを見る)のはセーブデータ関連と画像のロードかな、と思います。 コアスクリプトが結構独特なシリアライズをしているので、セーブされるべきものがセーブされていなかったり、セーブされてはいけないものがセーブされていたり、というのはよくあります。独自のクラスをセーブした際に、プロトタイプが復元できなくてエラーというのもわりとありますね。...
  10. fspace

    MZ用 基本機能ライブラリ Fs (β版)

    自分はJSに変えたのは単にマルチプラットフォーム対応のために仕方なくじゃないかと思ってます。MVリリース当時のJSはかなり使いづらい言語でしたし、プロトタイプやthisの扱いなど、初心者にはわかりづらい概念を使いこなさないといけません。基礎的な機能の範囲ではJSよりもRubyの方がわかりやすいんじゃないかと思います。...
  11. fspace

    MZ用 基本機能ライブラリ Fs (β版)

    どもです。 なかなか時間をとれなくて一年たってもまだベータ版だったりしますが、一応今でもちょくちょく書いてます。次で少し大きめの変更を加えて、その後にひとつ機能追加、あとは少し様子見て正式リリースの予定なんですがいつになることやら……。 MZの次はTypeScript書けるといいですね。ただ、型システムとかモジュールとかはプロトタイプ書き換えによる今の拡張方法とは相性が悪いような気もしていて、まずはコアスクリプトを刷新して拡張用のインターフェースとかを整備してほしいかなとも思います。まあ、ツクールがそんな手間のかかることをする気はまったくしませんが……。
  12. fspace

    【済】『TMSimpleWindow.js』の改変依頼

    ①についてはDarkPlasmaさんの書いている通りで、JavaScriptではなくコアスクリプトのJsonExの問題ですね。もっと言うと、JSONにプロトタイプ情報をどう記録するかという問題です。...
  13. fspace

    【済】『TMSimpleWindow.js』の改変依頼

    横から失礼します。コード読んだので勝手ながらいくつか。 とりあえずマズイところから。 セーブデータに独自クラスのインスタンスを含める場合には、クラスをグローバルに公開する必要があります。でないと、ロード時にプロトタイプが復元されないので、メソッドが見つからずにエラーになります。 window.SimpleWindowMeta = SimpleWindowMeta; Windowクラスのmoveはwidthやheightの変更を効率的に行うためのものなので、moveを使うのであれば直接代入する必要はありません。 Window_Simple.prototype.refresh...
  14. fspace

    コアスクリプト:refreshCursorForAll の問題点について

    コアスクリプトはドキュメントがないので何とも言えませんが、一応仕様……なのかなと思います。いい設計だとはまったく思いませんが……。 Window_SelectableではmaxColsが1に固定されていて、二列にはならないのでこの範囲ではとりあえず正しく動きます。refreshCursorForAllだけがわざわざ別のメソッドとして切り離されていることを考慮すると、maxColsを書き換えたら絶対refreshCursorForAllも一緒に書き換えろよ、というメッセージなのかもしれません。...
  15. fspace

    了解です。 少なくともツクール開発部の一部の対応に問題があった点については意見が一致しているようなので、 * 被害の拡大を防ぐためのアナウンスに時間がかかったこと *...

    了解です。 少なくともツクール開発部の一部の対応に問題があった点については意見が一致しているようなので、 * 被害の拡大を防ぐためのアナウンスに時間がかかったこと * アナウンスの内容が曖昧で不具合か仕様かはっきりしなかったこと * テストすれば容易に見つけられるバグを含んだまま機能がリリースされたこと あたりは改善されるといいですね。
  16. fspace

    アナウンスが遅かったことや開発部の対応に問題があったことには同意しますが、そもそも被害が大きくなったのは、プラグイン開発者が状況も確認しないまま思い込みでプラグインを変更し始めたことが原因なので...

    アナウンスが遅かったことや開発部の対応に問題があったことには同意しますが、そもそも被害が大きくなったのは、プラグイン開発者が状況も確認しないまま思い込みでプラグインを変更し始めたことが原因なので、一方的に開発部に責任を求めるのは違うと思います。三日もかけた開発部にも問題があれば、三日も待たなかったプラグイン開発者にも問題があります。 いろいろ細かい事情はありますが、今回ツクール開発部がやったことは、バグで動かない状態の新機能をリリースした後、そのバグを修正しただけです。どうも問題がややこしくなった要因のひとつにプラグイン開発者の判断ミスがあったことが見過ごされているような気がします。
  17. fspace

    今回の件はまとめると、 1. 新機能がまったく動かないレベルのバグを含んでリリースされる 2. バグを仕様だと思い込んだ人がバグに合わせてプラグインを変更する 3. バグが修正される 4...

    今回の件はまとめると、 1. 新機能がまったく動かないレベルのバグを含んでリリースされる 2. バグを仕様だと思い込んだ人がバグに合わせてプラグインを変更する 3. バグが修正される 4. バグに合わせたプラグインが動かなくなる という流れなのでどっちもどっちな気がします。 言い方アレですが、勝手に対応させた人にお詫びというのはおかしな感じです。
  18. fspace

    プラグインのサブフォルダについてv1.3.2で修正され、既存のプラグインは変更なしでサブフォルダに配置できるようになったみたいです。...

    プラグインのサブフォルダについてv1.3.2で修正され、既存のプラグインは変更なしでサブフォルダに配置できるようになったみたいです。 ただし、v1.3.0の挙動(というかバグ)に合わせて対応を行ったプラグインは逆に動かなくなっているので修正が必要です。 データから修正されなかったのは残念なとこですが、心配していた最悪の方法でもなく、無難な感じの修正になってました。
  19. fspace

    メモ欄のメタタグ。間違えたらどうするか

    理想的にはエラーを投げるべきだと思います。自分もよくサボりますが……。 まず考えるべきはエラーの原因と解決方法で、今回の場合、原因はユーザの入力ミス、解決方法はタグを正しく修正することです。ユーザにタグを修正してもらわなければならないので、ユーザに間違いを通知することは必須です。...
  20. fspace

    これについては自分は反対ですね。勘違いさせる要因があったとはいえ、現時点での対応は早合点によるものですし、それに配慮するために保守性を犠牲にするのはよくないと思います。...

    これについては自分は反対ですね。勘違いさせる要因があったとはいえ、現時点での対応は早合点によるものですし、それに配慮するために保守性を犠牲にするのはよくないと思います。 Gitを使っていればrevertで元に戻せますし、対応させる機能を用意するにしてもコアスクリプトではなくプラグインで十分だと思います。
トップ