C#

わんくま同盟加入

C#

実はかねてよりC#で上を目指すべくわんくま同盟へ加入を希望していたのであります。 本日よりそちらでの活動もがんばっていこうと思います。http://blogs.wankuma.com/myugaru/このブログもなんとなく逃げ場としてちょこちょこ使おうと思いますがC#のコード…

コーディング規約

C#

今日はコーディング規約についてかかれたドキュメントを見つけたので紹介する。 http://www.kawabata.com/dotnet/CodingStdCS.pdf このドキュメントを読むと自分の今まで書いてきたコードの悪いところがいっぱい見えてきた。まだまだ勉強しなきゃいかんなあ。

C#+Managed DirectXでのゲーム製作

ああ、やっと終わった。長い勉強の末DirectXでのゲーム製作の流れが一通り理解できた。一応勉強がてら製作した作品があるのだが、これが思いっきり版権物になってしまった。せっかくかなり素晴らしい出来だったのに公開することができないのは失敗だなあ。で…

とりあえず何か

DirectXについて覚えなければいけないこと、読まなければいけない物がかなりある。とりあえずここをベースに勉強のネタをネットを徘徊して探している毎日である。 .NET&Windows Vistaへ広がるDirectXの世界 − @IT DirectXの発展の歴史は非常に興味深く読ん…

結論:5年越しのノートPCじゃ無理ですな

この一週間はXNAについて勉強しまくった。出た結論はXPプレインストールな5年前くらいのノートPCじゃあXNAでのPCゲーム開発は無理だということだ。 そもそもXNAの思想というのがプラットフォームに依存しないゲーム作り(マルチプラットフォーム対応)であ…

SusiePlugin使用デモ(完成)

まあ当たり前だが世には同じようにSusieプラグインを使う部分をライブラリ化しようと考える人は多くいるものである。実際ネットで検索しても結構多くのライブラリが見つかった。(※C#で全てを完全実装したライブラリは見つからなかった。事の始まりはC#での…

ReferenceGraphicsDeviceManagerで解決

どうやらGraphicsDeviceManagerというXNAのクラスを丸々オーバーロードしてXNAをしょぼいグラフィックカード状態でも使うようにできるようにした人を見つけてしまった。すごいなあ。とりあえずありがたく使わせてもらって勉強の続きをするとしよう。 http://…

ノートPCには厳しいXNA

軽く参考文献をネットで調べながらXNAについて勉強中なのだが、どうもノートPCではこのXNAが簡単には動作しないのだ。 エラーメッセージを見ても一目瞭然なのだが、その手の文献を見てもXNAにはPixelシェーダ1.1必須とあり、これはVistaが入らないような型遅…

XNA

今日から少しずつXNAについて勉強して行こうと考えている。XNAとはMicrosoftが打ち出したゲーム開発に特化した技術のことである。以下のような特徴がある。 DirectXの後継である。 C#を開発言語としている。 プラットフォームはPCとXbox360である。 まず1に…

しつこくラムダ式について探ってみる。

Wikipediaを見ると、私が先日来よりふざけて作っていたActionやらFuncを滅多やたらと組み合わせる行為は、数学的に立派な意味があることが判明した。詳しくはカリー化 - Wikipediaを見てほしい。カリー化というのは「引数が複数ある関数」を「引数が一つだけ…

ラムダ式をFunc<T>と組み合わせてみたら

static void Main(string[] args) { Func<Func<Func<Func<Func<Func<Func<Func<Func<Func<int>>>>>>>>>> x10 = () => () => () => () => () => () => () => () => () => () => 10; Console.WriteLine(x10()()()()()()()()()()); Console.ReadLine(); }そろそろ苦情が来るかも(笑</func<func<func<func<func<func<func<func<func<int>

ラムダ式をAction<T>と組み合わせてみたら

以前やってたアレ(Action<T>を使い倒してみる - パジャマdeブロッガー(myugaruのヲタ日記))をラムダ式で表すとかなりすっきりとすることがわかった。たとえばx7のときは匿名メソッドだとこうなる。 Action<Action<Action<Action<Action<Action<Action<string>>>>>>> x7 = delegate(Action<Action<Action<Action<Action<Action<string>>>>>> p1) { p1(deleg</action<action<action<action<action<string></action<action<action<action<action<action<string>…

ラムダ式に無くて匿名メソッドに有る唯一の機能

先日書いた「ラムダ式より匿名メソッドが優れてそうな点」(ラムダ式とは? - パジャマdeブロッガー(myugaruのヲタ日記))は私の認識で正解だった。 http://msdn2.microsoft.com/ja-jp/library/0yw3tz5k.aspx ラムダ式にはない機能を匿名メソッドが備えてい…

Susieプラグイン読み出し-やはりネックは構造体の連結

Susieプラグインを読み出すプログラムは一応テストはうまくいった。しかしやっぱり構造体の連結部分が納得のいく形にはできなかった。 以下はBitmapFileHeaderのbfとBitmapInfoHeaderのpBinfoとピクセルデータのpBmをメモリバッファmem上に連結している部分…

おもしろいもの

ちょっとおもしろいものを作ったのでHPの方(http://www4.atpages.jp/myugaru/)に見に行ってください(笑

ラムダ式とは?

ラムダ式には2通りの使い方がある。 匿名delegateの進化としての使い方 式ツリーとしての使い方 式ツリーというのはコンパイラなどのように式そのものを分解して解釈するようなプログラムを書く場合に式そのものをデータとして保持するような仕組みで利用さ…

初めてのLinq

Linqがちょっとわかってきた(と思う)。 using System; using System.Linq; using System.Collections.Generic; namespace Query1 { static class Program { struct N { public int a, b, c; } static void Main(string[] args) { List<N> list = new List<N> { n</n></n>…

C#2.0→C#3.0での変化

C#

すでにベータ版で多くの人が使ってみて色んな事をネットで書いてあった。とりあえず以下のリンクから勉強したら良さそうだ。 http://www.microsoft.com/japan/msdn/netframework/technical/net3_5.aspx特に、 http://www.microsoft.com/japan/msdn/net/bb308…

VS2005→VS2008での変化

C#

人任せではありますがリンクしておこう。 Visual Studio 2008に搭載された17の新機能(1/4) - @IT なんか色々便利になっているようです。

やっとインストールしました

VC#2008ExpressEditionをやっとインストールしました。軽快に動作しています。今からじっくり勉強します。

構造体をメモリ(byte[])に吐き出す方法はあるか?

さて昨日はプラグインから戻ってきた3つの構造体をどうやって1つにくっつけるか?というところで止まっていた。これが難しい原因は大きく2つある。●マネージドのメモリ管理の問題 まず最初の問題はC#の文法的な問題ではなく.Netのメモリ管理に関係する問…

SusieプラグインをC#から利用する

今日はSusieのプラグインをC#から利用してみようと思って色々調べていた。 世の中には同じことを考える人が多いらしくてたくさんの例題があった。 しかし私としては次のことを念頭に置いて話をすすめたい。 マネージドだけで作る C#だけで作る 世のサンプル…

ゲーム型アプリをスマートに記述できないか

ゲーム型アプリのソースを見ると独自ループを仕込んだややこしい仕組みのものをよく見かける。どうしてこうなってしまっているんだろう?ゲームと通常のWindowsアプリの決定的な違いについて考えてみた。するとある事実に気が付いた。 タイトル画面 マウスキ…

うーんXML奥深い!

C#

↓でXMLについて色々やろうと思うって簡単に書いてみたけれどなかなか奥深い題材だと判明したので長期計画にします。

今XMLがあつい?

C#

さてデジタル社会に生きていると何かにつけてIDとパスワードを打ち込む日々。気が付くと私の場合で軽く300くらいのIDとパスワードの組を管理している。アナログ時代にはパスワード台帳っぽいものを大事に持ち歩いていたものだが、PC生活になってか…

Shape(検証結果)

BmpProc1BmpProc8BmpProc24BmpProc32 直線ShapeGDI+GDI0.1438−−0.1352−−0.16630.36870.20180.17880.43350.2007 長方形(枠)ShapeGDI+GDI0.2009−−0.1746−−0.25080.5525−0.28280.6916− 長方形(塗潰し)ShapeGDI+GDI3.5225−−2.6038−−3.29163.60740.73033.87972.89…

透過色と透過度(Alpha値)

さて昨日、Shapeには透過色の考慮が無いと書いたが正確には『Alphaブレンドを考慮して描画しない事』と『透過色の概念が無い事』の2つのことを混ぜて書いてしまっていた。さらには『結果としてのビットマップが透過機能を持つ事』と『描画ルーチンが透過の…

Shapeクラス課題

課題はいっぱいある。 DrawLineが水平線、垂直線の場合の最適化処理をしてない。(全部斜線のつもりで無駄に計算してる) Fill系で透明色を考慮していない。 Fill系でborder色を考慮していない。 GDI+やJavaなどでDraw〜とFill〜で描画範囲が1ドットの違い…

Shapeクラス検証(予告)

今描画速度について色々検証中であるが、楕円描画ははっきり言ってかなり遅いと感じる。なので 直線、長方形はShapeが十分使えそうかも? 楕円はGDI+を使うほうがよさそうかも? 検証結果を出したら改めてはっきり書きたいと思う。

24ビットBitmapでのShape描画例

using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; using ImageUtils; namespace ShapeTestApp { public partial class MainForm : Form { int drawType = 0; public MainForm() { InitializeComponent(); } …