このブログは完成の予定がないゲーム開発のことを不定期に書き綴る場所です ゲーム開発者のためのAI入門
突然、今さらながら、ActionScript3.0をやってみる。一般的なプログラム言語と違って描画周りがオブジェクト化されており それをベースのオブジェクトに貼り付けて描画している印象をうける。 なので、制御方法もチョット違うアプローチをする必要があるよう…
詳しい内容はここにかいてあるリンク先がなくなるといやなので部分的に転載 プロジェクトファイル(*.vcxproj)を直接テキストエディタで開いて書き換える v4.5 .NET Framework 4.5 v4.0 .NET Framework 4.0 v4.0 Client .NET Framework 4.0 Client Profile …
DLLにも色々あるようでC#でつかえるDLLとそうじゃないものがあるようだ。 1、Win32 一昔まえの最も一般的なDLLの形だと思われる。何も考えずにC++あたりでDLLをつくるとこの形式になる。しかしこの形式ではC#では参照ができないようで利用することができな…
まずは適当にログインができるページを作ろうと考えたわけだ DBにMySQLを使えば安上がりになると考えて、早速やってみる。 ASP.NETには便利なクラスが色々用意されてるようで、ログインをコントロールするWebSecurityクラスもそのひとつとなる。 で早速WebSe…
VisualStudio2012ForWebもいいのだけど、手軽なツールがあたのでメモしておく WebMatrixというものでRazor構文を中心とした開発環境を提供してくれる。 このRazorというのは「@」からはじまる構文をHTMLに埋め込むことで動作するものでPHPやeRubyに近い感じ…
まずはクッキーの発行 HttpCookie mc = new HttpCookie("MyTestCookie"); DateTime now = DateTime.Now; // クッキーの値に発行した時間 mc.Value = now.ToString(); // 有効期限は発行後1分間 mc.Expires = now.AddMinutes(1); Response.Cookies.Add(mc); R…
VisualStudio2012Webで作ったアプリをIIS7で動かそうとしたわけだが、さっぱり動かなかったが、ようやく動くようになったので、手順をメモする。1、C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET FilesにNETWORK SERVICEグループに対し…
ユーザーコントロールを配置したら、配置した先で大きさを自動調節したくなったわけだが、XAMLは静的な記述はできても動的な記述はできない。つまりコードの中で変更してやらんと行かんわけだ。 まずはじめに考えたのはコンストラクタ内でコントロールの大き…
WPFでアプリをつくり、使いまわしのできそうな部品を作ったときに、いちいち設定するのはめんどくさいので、部品として登録したいと考える。友人からの要求にもコンポーネントそして再配置可能なこととあるので、その方法を調べてみた。 現在、私が使ってるV…
マルチスレッドな状態を想定してプログラムを組む際に、WPFではコンポーネントが持ってるプロパティ具体的にはCanvas.Widthなんかにはアクセスできない仕様になってるらしい。読むだけならいいんじゃないかとも思えるが、できないものはできないので、やらな…
前回の続きで今回は幾何学的な描画について行う。 前々回でLineオブジェクトを紹介したが、Lineオブジェクトを更新する方法は、オブジェクトの数が増えると、GCの発生が大量に出るようで、1000個とか発行すると、描画処理が重くて話にならなくなる。オブジェ…
前回の続きで今回は画面の更新を行う。 WPFは基本的には今までのWindowsアプリと一緒でイベント型なので何らかのイベントがないと数値の更新は行われない。なので、アニメーション等の画面の更新が必要な場合はそれなりのイベントを用意する必要がある。って…
友人からの紹介でWPFを使った描画を勉強してみることにした。WPFって言うものそのものを知らんかったので良い機会だろう。 WPFの印章だが、フォームなんかのフォーマットをXMLで定義したWindowsアプリって感じだ。VBやらVC++やらVC#やら単体でWindowsアプリ…
「CPUの数を知る」でCPUの数を見てからマルチスレッドプログラムでどうにかしようとか考えていたが、どうやら.NET4.0ではParallelクラスという便利な並列処理クラスが提供されているようだ。 using System; using System.Collections.Generic; using System.…
「ゲーム内でのポリゴンをGPUベースで描画する」のつづき 下準備が終わったところで、具体的な手順をメモしておく まずは頂点情報バッファをVRAM上に確保する public static int CreateVertexBuffer(int VertexNum, int VertexType) VertexNumは頂点情報の数…
DrawPolygonIndexed3D_UseVertexBufferという関数がある。この関数をつかうとGPUベースでのポリゴンの描画が可能だ。DrawPolygonIndexed3DではCPUベースなのでGUPベースより処理速度が劣る感がある。実際には頂点シェーダ2.0に対応したグラボが必要なようで…
namespace 日本語テスト { class テストクラス { public static void 書く(string 文字列) { Console.WriteLine(文字列); } } } このコードが通るので、英語名に困ったら日本語でもいける。 入力補間がうまく働かなかったりするので使わないと思うけど一応メ…
C#ではポインタを扱う際には、このコードが危険であることを明示することが必要なようだ。C#単体ではまず使わないが、CやC++で書かれたDLL等を使うときには必要になる処理だ。 unsafe { int i = 0; int* p = &i; } という具合に書いたりする。 特にvoid型の…
どうやらマルチスレッドで処理をおこなうと、あいてるCPUに処理を振り分けてくれるようなので、一部の処理をマルチスレッド化しようかと考える。 そこで、CPUの数がどうしても知りたくなる。CPUが1つしかないのにスレッドを沢山作っても意味が無いからだ。 …
Listを使った場合のソート処理だがSortメソッドがよういされててデリゲートしてやれば自分で勝手にクイックソートアルゴリズムをつかいソートしてくれる・・・・・らしい。 // List<MyClass> listの場合 list.Sort(delegate(MyClass obj1, MyClass obj2) { return obj</myclass>…
一言に当たり判定といっても、色々種類がある。 1、点と点の処理 点同士なのでお互いの座標を比較し完全に一致すれば当たっているという極単純なもの。これ以上簡単な処理はないが点であるので範囲を表せない。マス目にはまったタイプの処理をするゲームで…
Minecraftでは16×16マスの平面を1chunkという単位にして処理している。 キャラクタは確実に1chunkより小さいのでキャラクタのいるchunkとその周囲の処理をすれば確実に処理される。おそらくその仕様上1chunkより大きな処理を1度に行うことはできないだろうが…
前回マップデータを暗号化してみるとか言ってみたが、ゲームデータやプログラムの隠蔽をする意味が、そもそもあるか?って疑問にぶちあたった。 想定している環境がPCである以上、俺が知っている限りの手法で隠蔽をしたとしても、ものの数日でクラックされる…
しばらく前で自動作成したダンジョンを保存して読み込んだり、手作業で作成したダンジョンを読み込んだりするのに、ダンジョンローダーが必要だとおもったので、こいつの使用を決めないといけない。 現在、ダンジョンのマップチップとして存在しているのは、…
以前、DXライブラリを使ってのマルチスレッドプログラムは無理っぽいと書いたが、なんとかいけそうなので、メモしておく。 // マルチスレッドフラグ DX.SetMultiThreadFlag(DX.TRUE); // DXライブラリの初期化 DX.DxLib_Init(); という感じに書いておく…
壁のように自分から動かないオブジェクトの当たり判定は、能動的に行う必要がない。なので、その他の動くオブジェクトと別の当たり判定として考えるのが妥当だと考えられる。 壁となるものが一定の大きさであると考えると、能動的に当たり判定を行うオブジェ…
内容的にはとっても多いあたり判定を少なくする方法の続きとなる。色々な大きさの当たり判定がごちゃ混ぜになっている状況で、比較的早く総当り判定が出来る方法があったので、メモしておく。 その名を4分木空間分割という方法で詳しくはここで紹介されてい…
ローグ風のダンジョンものの定番、日本の有名どころだと「不思議なダンジョン」シリーズのあのダンジョンだが、いざ作ろうかと思うと結構面倒だったりする。 早速、参考になりそうなところをGoogle先生に聞いてみる、例えばこことかが候補になる。 この方法…
ハットスイッチが使えねーじゃん!とか思っていたら、実は使えた話。 詳細はここ 概要を書いておくと 作り始めたときとコントローラーの想定仕様かわってるよ!なのでDirectInputから直接もらう方法作ったよ!ってことらしい。リファレンスにのってないって…