ZerOx4Cの日記だったもの

インポートだけしました

C#

すり抜けない当たり判定

とりあえず載せると言ったので載せる。誰も見ないかな。 Vector deltaVelocity = this.Velocity - opponent.Velocity; float xtMin, xtMax, ytMin, ytMax, tMin, tMax; // // X方向についてのtの範囲を求める。 // 分母deltaVelocityの正負による不等号の判…

当たり判定できたー

以前のコードは多分欠陥があるので、後日覚えていて気が向いたら載せようと思う。誰も見ないかな・・・。 デモプログラムを作って当たり判定の威力を試していたんだけども、なぜか速度のY成分が負のときだけすり抜けが起こる。 なぜだー!と思って昨日はやめ…

イベントとオーバーライド

媒介変数を使った当たり判定を作ったのは良いんだけど、今使ってるライブラリでデモプログラムを作ると床で止まらない。まぁ原因は分かってるんだけども。 実は今ライブラリには(その頃覚えたからであろう)イベントを多用してあって、キャラクターなどの画…

媒介変数を使ってすり抜けない当たり判定

事の始まりはWikipediaをウロウロしていたとき、 衝突判定 - Wikipedia ここの一番下の方に動く球の衝突判定について、媒介変数t(0 ここで、そうじゃん媒介変数じゃん!と思いついたわけです。 Wikipediaが言ってるのは、t(0 そのフレームの何割の部分で衝突…

mciSendStringについてのメモ

今日の4時間くらいを返してくれ・・・。 ゲームライブラリの中でMCIを使う部分を今日は書いていました。テスト期間中だけどね! まぁMCIを使うのでmciSendStringをexternで宣言して、使いやすいようにメソッドやプロパティの実装をゴリゴリ書いていたわけで…

拡張メソッド

System.Linqがusingされているとき、配列やリストのメンバとして色々メソッドがされていて、最初はなんだこれ?と思っていましたが、あれ拡張メソッドだったのね。 超便利、ゲームライブラリに早速使おうと思ったけど空腹なので寝る・・・明日書こう。 具体…

とりあえずデータバインドするときのメモ

手っ取り早くデータバインドするにはBindingSourceを作って BindingListから継承した型を指定 BindingListから継承した型のインスタンスをBindingSource.DataSourceに代入 インスタンスを好きにするよし!これでいい多分。今やってるとこだ

コンストラクタとthisキーワード

MSDNをよく読んでおけば今までこんな非効率なことをしなくて済んだろうに・・・ クラスを継承したときには、コンストラクタではbaseキーワードを使って親クラスのコンストラクタを呼び出す必要があります。(パラメータがある場合は。 つまりはthisキーワー…

再利用可能なゲームライブラリコアがきっと出来た

id:ZerOx4C:20091130で作っていたライブラリが多分出来ました。大雑把な構造はこう。 public abstract class UpdateEventArgs : EventArgs { } public abstract class RenderEventArgs : EventArgs { } public abstract class Game<TUpdateArgs, TRenderArgs> where TUpdateArgs : Upda</tupdateargs,>…

真面目に設計。

SlimDXを使ってみるという記事を書きましたが、そうなるとようやく完成させたSDL.net用のライブラリが丸ごとパーです。 ちなみにこれまで、 GDI+用ゲームライブラリ Managed DirectX用ゲームライブラリ SDL.net用ゲームライブラリ こんだけパーにしてきまし…

SDL.net はやい!はやい!

学校祭に向けて、ゲームのプログラムをゲームしながら書き始めました。 昨晩、背景に流す雲をランダム生成したら面白そうかなと思い、下のコードを書き上げて寝ました。 const int MIN_PARTS = 8, // 雲のパーツ数の包括的下限 MAX_PARTS = 10, // 〃 包括的…

SDL.net はじめた

オープンソースのライブラリ「SDL.NET」で始める ゲームプログラミング 〜前編〜:CodeZine ここ見ながらお勉強中。 定期テスト?そんなことより文字が表示できましたよ!すごく分かりやすい仕様だよ!

DataGridViewの使い方メモ

以前から使い方が良く分からなくて放っておいたんですけど、今日使ってみたら下の邪悪なコードが不要になりそう。ということで今後のためにメモ。 DataGridViewのBindingSourceを設定すると、DataGridViewにバインド先の型に合わせてカラムが追加されます。…

† Evil Code ~ 邪悪なる符号 †

すごく・・・厨二病です・・・ そんなことより今日まで書いてたコードが邪悪なことになってた。 [Serializable()] public class Foo { [NonSerialized()] private Bar bar; public Bar Bar { get { return this.bar; } set { this.bar = value; } } public i…

ユーザーコントロールって便利!

プログラムを細分化するとコードが見やすくなります。例えば、メソッドの処理を独立可能な規模に区切るとか。 コードを再利用できるようになって、かつデバッグ時に原因箇所を突き止めやすくなります。 これはメソッド以外にも有効で、例えば今日実感したの…

ヌルnullぬる

nullと未割り当ては違うんだね。今日気付いた。 参照型を宣言だけした状態だと、本当にnullどころか何もアドレスが入ってない。 ってかnullはちゃんとしたアドレスなんだっけ。(nullポインタなんて言うしね。 そう考えると、nullってobjectな気がしてきた。…

SDL.net

今、ゲームの根幹を成すコアライブラリを書いてたんですけど、正直飽きてきたし、なにより完成する気がしない・・・ というのも、描画メソッドのみをまとめたIRendererインターフェースがあって、こいつをManaged DirectXやGDI+で実装したものを実際に使用し…

レイヤーな描画クラス

忘れそうだからメモ。 Layerクラスをリストにして背面から順にRender();してやればレイヤー的な動作になるハズ。 レイヤー毎の半透明処理はまだ考えてない。(せめてDirectXのデバイスがもう少し分かりやすければ・・・ public class Layer { private Method…

愛するメソッドとお別れ

他の人が見てどうとかは関係なく、とっても自分の思い通りに組みあがった処理を消すときって凄い名残惜しいです。コメントアウトするだけじゃ見難いし・・・。 というわけでここにこのメソッドが生きた証を・・・。 private ContentBlock GetNextContent(List<ContentBlock></contentblock>…

自動プロパティと構造体

C#3.0の自動プロパティ、便利ですね。「this._foo = value;」や「return this._foo;」のような冗長で儀式のような表現に邪魔されずにコードを見渡せるようになりました。 しかし、この自動プロパティ。構造体じゃ使えないんですよね、多分。 struct Foo { //…

switchはややこしい

今日色々サイトを見て回ってて思ったんですけど、switch構文って嫌いな人も居るんですね。さすがにifが嫌い!しね!とか思ってたらプログラム書けませんけど、switchはifで代用余裕なので嫌っても問題は生じませんね。 僕自身はswitch便利なので使ってますけ…

シリアル化ってステキ

今コンピュータ室の貸し出し管理プログラムを凄く頑張ってるんですけど、一応仕様としては、 サーバー機とクライアント機で最低2台のマシンをLANで接続して使う サーバー機は係りの人がモニタするものとして、ログをひたすら表示する クライアント機はコンピ…

nullの扱い

凄くレベルの低いメモ。今後のために。 ややこしい状況(そうでもない)だけど、 class FooClass { // コンストラクタでも何でもいいけど関数 public FooClass() { BarClass bar1 = new BarClass(), bar2 = null; bar1.i = 50; // 1 bar2 = bar1; // 2 bar1.…

今日は1日中プログラマ

休日なんて大抵ゲームやってるんですけど、今日はこんぴうたルームのプログラムが盛り上がっていたので、1日中マジェスタッチしていました。 実はXmlTextWriterの扱いが大変で悩んでたんですが、今書き終えてデバッグも終えて凄く良い気分です。 ただ、出来…