Difference between revisions of "User:Greenwing"

m (一時復帰について)
m (メモ (初心者さんが悩みそうなチラシの裏) =)
Line 20: Line 20:
 
* love.graphics.* 系の関数は love.draw() 以外では記述できないのは、制約を設けることで美しくかつ柔軟に記述しやすくするのと、描画順序やオブジェクトの重なりを概念上わかりやすくするため……などは、なんとなく理解できると思います。詳しいことが知りたいのでしたら love のソースコードの <code>love/src/scripts/boot.lua</code> を読まれると理解が深まります。ちなみに love.draw() 以外で使えないのは love.run() などで画面クリアとリセットを行っているからです。なので、他のコールバックで love.graphics.* を使用しても、その後に love.draw() が実行されますので消えてしまいます。描画済みのものは保持されていたほうがいいとお思いの方もいらっしゃるでしょうが、別のものを描きたいときに消えていたほうが色々楽ですし、消えてほしくはないものは Canvas (フレームバッファ) にあらかじめ一括で書き込んでから表示してください。そっちのほうがきれいに書けますし高速ですからといったところでしょうか。
 
* love.graphics.* 系の関数は love.draw() 以外では記述できないのは、制約を設けることで美しくかつ柔軟に記述しやすくするのと、描画順序やオブジェクトの重なりを概念上わかりやすくするため……などは、なんとなく理解できると思います。詳しいことが知りたいのでしたら love のソースコードの <code>love/src/scripts/boot.lua</code> を読まれると理解が深まります。ちなみに love.draw() 以外で使えないのは love.run() などで画面クリアとリセットを行っているからです。なので、他のコールバックで love.graphics.* を使用しても、その後に love.draw() が実行されますので消えてしまいます。描画済みのものは保持されていたほうがいいとお思いの方もいらっしゃるでしょうが、別のものを描きたいときに消えていたほうが色々楽ですし、消えてほしくはないものは Canvas (フレームバッファ) にあらかじめ一括で書き込んでから表示してください。そっちのほうがきれいに書けますし高速ですからといったところでしょうか。
  
* コールバックはともかく、シーンの切り替えですかね。あれは、ソースの先頭に切り替え用のフラグ変数やテーブルを記述して、各コールバックでフラグと対応する処理を if 文で分岐させる。フラグ切り替え・書き換えは love.keypressed() コールバック内で対応するキーごとに行えばいいだけのことです。何を言っているのか[http://dic.nicovideo.jp/a/%E3%81%95%E3%81%A3%E3%81%B1%E3%82%8A%E5%A6%96%E7%B2%BE さっぱり妖精]でしたら、変数、テーブル、分岐、コールバックを復習して実際にソースコードを書いたり、オープンソースの love 採用ゲームのコードを読んでみてはいかがでしょうか。
+
* コールバックはともかく、シーンの切り替えですかね。あれは、ソースの先頭に切り替え用のフラグ変数やテーブルを記述して、各コールバックでフラグと対応する処理を if 文で分岐させる。フラグ切り替え・書き換えは love.keypressed() コールバック内で対応するキーごとに行えばいいだけのことです (テーブルに関数名を書き連ねて、添え字指定で一気に処理を切り替える方法もありますが、できそうなほうを調べて試してみてください)。何を言っているのか[http://dic.nicovideo.jp/a/%E3%81%95%E3%81%A3%E3%81%B1%E3%82%8A%E5%A6%96%E7%B2%BE さっぱり妖精]でしたら、変数、テーブル、分岐、コールバックを復習して実際にソースコードを書いたり、オープンソースの love 採用ゲームのコードを読んでみてはいかがでしょうか。

Revision as of 01:40, 17 August 2017

 日本語版の翻訳者(2016~2017)。準備期間をいれますと LOVE Wiki には約三年間(2014/07~2017/05)関わってきました。 ただいま、日本国内の需要の低さから翻訳活動を休止しておりますが、 LOVE Version.0.12.0 が公開されたら正式復帰とさせていただきます。

活動休止期間中に、ご用のあるかたは、フォーラムのプライベートメッセージか、改善の提案・誤訳の報告からどうぞ。

2017年05月24日 GreenWing 『伊達巻きの日』に記す。


……寝袋と伊達巻きって似ているよね……。


近況と追記(2017年08月17日)

たまに一時復帰することがありますが、あくまで例外扱いです。気まぐれですので定期的な一時復帰を期待されることは望みません。 当方でも LOVEを 採用したプロジェクトは進めておりますので、そちらを優先しているところですが、完成はいつになるのやら。


メモ (初心者さんが悩みそうなチラシの裏) =

駄文失礼。

  • love.graphics.* 系の関数は love.draw() 以外では記述できないのは、制約を設けることで美しくかつ柔軟に記述しやすくするのと、描画順序やオブジェクトの重なりを概念上わかりやすくするため……などは、なんとなく理解できると思います。詳しいことが知りたいのでしたら love のソースコードの love/src/scripts/boot.lua を読まれると理解が深まります。ちなみに love.draw() 以外で使えないのは love.run() などで画面クリアとリセットを行っているからです。なので、他のコールバックで love.graphics.* を使用しても、その後に love.draw() が実行されますので消えてしまいます。描画済みのものは保持されていたほうがいいとお思いの方もいらっしゃるでしょうが、別のものを描きたいときに消えていたほうが色々楽ですし、消えてほしくはないものは Canvas (フレームバッファ) にあらかじめ一括で書き込んでから表示してください。そっちのほうがきれいに書けますし高速ですからといったところでしょうか。
  • コールバックはともかく、シーンの切り替えですかね。あれは、ソースの先頭に切り替え用のフラグ変数やテーブルを記述して、各コールバックでフラグと対応する処理を if 文で分岐させる。フラグ切り替え・書き換えは love.keypressed() コールバック内で対応するキーごとに行えばいいだけのことです (テーブルに関数名を書き連ねて、添え字指定で一気に処理を切り替える方法もありますが、できそうなほうを調べて試してみてください)。何を言っているのかさっぱり妖精でしたら、変数、テーブル、分岐、コールバックを復習して実際にソースコードを書いたり、オープンソースの love 採用ゲームのコードを読んでみてはいかがでしょうか。