2022年12月 アーカイブ
2022年12月28日 1時46分06秒 (Wed)
12月27日の活動
どうも、Ryo-piηです。
140字以内、5分程度で書けとのまろんさんの指令で簡易版です。
参加者: うみ、えふけい、シゲ像、まろん、Ryo-piη
少しぷよぷよをしました。
2023年2月28日にオンラインぷよぷよ大会を開きたいと思います。ランキングポイント対象予定です。
良いお年を。
140字以内、5分程度で書けとのまろんさんの指令で簡易版です。
参加者: うみ、えふけい、シゲ像、まろん、Ryo-piη
少しぷよぷよをしました。
2023年2月28日にオンラインぷよぷよ大会を開きたいと思います。ランキングポイント対象予定です。
良いお年を。
2022年12月27日 12時41分54秒 (Tue)
スローループクリパ幻覚
担当:まろん
あー小春ちゃんとひよりちゃんとかわいい恋ちゃんの三姉妹がクリスマスパーティーしてるー!
かわいいー❤️
あっ、こっちに向かって手を振ってくれた!
良いお年をだって!
あー小春ちゃんとひよりちゃんとかわいい恋ちゃんの三姉妹がクリスマスパーティーしてるー!
かわいいー❤️
あっ、こっちに向かって手を振ってくれた!
良いお年をだって!
2022年12月9日 21時48分21秒 (Fri)
12月9日のゲーム開発部
こんにちは。ゲーム開発部見習いのいわしです。今日は当たり判定を行うクラスを作成したのですが、ひえええええ難しい。
ということでまろんさんに助けてもらいながらよちよち歩きでコードを書きました。
まろん「12/10 7時ごろにまろんコメントをつけました。」
キャラクターや弾などに持たせるCircleHというクラスを作って、そこに当たり判定の円の半径と、boolで判定する関数を持たせました。ということで判定する汚い関数をご覧ください。
バージョン1:
これはreturnの文が長すぎますね。同じことを二度書いているのもいただけません。
まろん「ちなみにreturn文だけのメソッドはラムダ式のようにbool Judge(CircleH c)=>r+c.r>...);というようにかけます。」
バージョン2:
ここではラムダ式を使って自分と対象物のXとYの差を2乗するところをラムダ式でまとめました。
まろん「前回学習したラムダ式を積極的に使おうという姿勢は素晴らしいですが、そこまで可読性が上がらないことに気付けるようになって欲しいものです。」
バージョン3:
ここではreturnの場所にズラズラ書くのをやめて、いったんvarで変数を作って入れたものを計算しています。
まろん「これだけで随分見やすいコードになりました。現代においてメモリは十分確保されているので、可読性の優先度を上げた、積極的な文字宣言を推奨していきたいところです。」
バージョン4:
代わりにposというVector2型のプロパティを用いて参照して、そのXとYをそれぞれ2乗しました。
まろん「Vector2の引き算も活用してだいぶみやすいコードになったのではないでしょうか。特に述べていませんが、sqrtの処理は掛け算に比べれば遅く、不等号評価の時には外せることが多いので積極的に検討していただきたい。」
という感じで、かなりきれいになりました。もう心折れそう。帰って逃避行したい。寝たい。
これ自分で出来るようになれる気がしないんですが、どうなんでしょうね。
↑まろん「千里の道も一歩から、ですよ?私自身も他人のソースコードを改善する経験は少ないので、一緒に頑張ってコーディング力を上げていきましょう!」
ということでお疲れさまでした。
ということでまろんさんに助けてもらいながらよちよち歩きでコードを書きました。
まろん「12/10 7時ごろにまろんコメントをつけました。」
キャラクターや弾などに持たせるCircleHというクラスを作って、そこに当たり判定の円の半径と、boolで判定する関数を持たせました。ということで判定する汚い関数をご覧ください。
バージョン1:
bool Judge(CircleH c)
{
return r + c.r > Math.Sqrt(Math.Pow(w.Position.X - c.w.Position.X, 2)+Math.Pow(w.Position.Y - c.w.Position.Y, 2)) ;
}
これはreturnの文が長すぎますね。同じことを二度書いているのもいただけません。
まろん「ちなみにreturn文だけのメソッドはラムダ式のようにbool Judge(CircleH c)=>r+c.r>...);というようにかけます。」
バージョン2:
Func<float, float, float> f = (a, b) =>
{
return (float)Math.Pow(a - b, 2);
};
return r + c.r > Math.Sqrt(f(w.Position.X ,c.w.Position.X)+f(w.Position.Y ,c.w.Position.Y)) ;
ここではラムダ式を使って自分と対象物のXとYの差を2乗するところをラムダ式でまとめました。
まろん「前回学習したラムダ式を積極的に使おうという姿勢は素晴らしいですが、そこまで可読性が上がらないことに気付けるようになって欲しいものです。」
バージョン3:
Func<float, float, float> f = (a, b) =>
{
return (float)Math.Pow(a - b, 2);
};
var s = f(w.Position.X, c.w.Position.X);
var t = f(w.Position.Y, c.w.Position.Y);
var R = r + c.r;
return R * R > s + t;
ここではreturnの場所にズラズラ書くのをやめて、いったんvarで変数を作って入れたものを計算しています。
まろん「これだけで随分見やすいコードになりました。現代においてメモリは十分確保されているので、可読性の優先度を上げた、積極的な文字宣言を推奨していきたいところです。」
バージョン4:
Vector2 pos => w.Position;//新たに追加したメンバ変数です
bool Judge(CircleH c)
{
var s = pos - c.pos;
var R = r + c.r;
return R * R > s.X * s.X + s.Y * s.Y;
}
ラムダ式を使っても使う回数が少ないし、中身がそんなに長くないのであまり意味がないということで消しました。代わりにposというVector2型のプロパティを用いて参照して、そのXとYをそれぞれ2乗しました。
まろん「Vector2の引き算も活用してだいぶみやすいコードになったのではないでしょうか。特に述べていませんが、sqrtの処理は掛け算に比べれば遅く、不等号評価の時には外せることが多いので積極的に検討していただきたい。」
という感じで、かなりきれいになりました。もう心折れそう。帰って逃避行したい。寝たい。
これ自分で出来るようになれる気がしないんですが、どうなんでしょうね。
↑まろん「千里の道も一歩から、ですよ?私自身も他人のソースコードを改善する経験は少ないので、一緒に頑張ってコーディング力を上げていきましょう!」
ということでお疲れさまでした。
カテゴリー
アーカイブ
2026年
携帯用QRコード
- アクセス数

- ページビュー数
