C#のアプリ開発で嵌ったメモ書きです。 C#でフォームのコントロールを扱うとき、同一スレッドからアクセスする必要があります。 たとえば、以下のようにDataGridViewに別スレッドからアクセスすることを考えて見ます。 public partial class Form1 : Form { Task task; ob...
2014( 19 )
Year
メインWebサイトのデザインを変更しました。 外観は以下のようになりました。 前回のグレーで淡い印象のデザインから一新、黒一色のコントラストの強いデザインにしました。 まだレイアウトや細部の作り込みが甘いため、 時間を見つけ次第少しずつ修正していくつもりです。 コンテンツもまだゲーム1本のみなので、これから少しずつ追加...
QNAP TS-869 Proのメモリ増設についての動作報告です。 実を申し上げると、今日のサーバメンテナンスでメモリ増設を行いました。 QNAP TurboNASシリーズはメモリ増設ができますが、 保障外のメモリでは相性が合わず正常動作しないことが多いです。 デフォルトで1GBのメモリが搭載されており、SO-DIMM...
サイト上に公開中のオリジナルゲーム「Departure from the Void」のMac版の開発に着手いたしました。 私自身、Macに対する知識が非常に浅いため、開発環境やAPIの基本的な使い方から勉強しています。 以下、開発途中のスクリーンショットです。 現状では画像を表示する部分までしか実装できていないため、ゲ...
C#でスレッドプールからタスクを実行するとき、 タスクを途中でキャンセルしたい場面も出てくるでしょう。 スレッドプールからタスクを実行するにはTaskFactory.StartNew()を用います。 TaskFactory.StartNew()メソッドによりタスクを実行するとき、 タスクを途中でキャンセルできるようにす...
ブログとTwitterを使っていると、ブログの更新情報をTwitterに反映させたい人は少なくないのではないでしょうか。 私もその一人です。 今回はWordPressとTwitterの連携方法についてです。 個人的に以下の要件を満たす方法を探りました。 ・ブログの記事を更新すると即座にTwitterに投稿内容が反映さ...
C#ではスレッドやタスクを簡単に扱えるようになっています。 また、ガベージコレクタが走っており、不要なメモリ資源の回収も簡単に行えます。 しかし、これらの便利な機能があるが故に落とし穴も存在します。 例えば、以下のコードはメソッドの中でスレッドプールからタイマーを生成して実行する例です。 class Program {...
「from the void」の活動状況告知用のTwitterアカウントを設置しました。 アカウント名は@ftvoidです。 このブログやWebサイトの更新情報をはじめ、創作活動の近況報告やサーバのメンテナンス情報、その他お知らせ情報などをつぶやいていきたいと思います。 ご自由にフォロー・リムーブしていただいて構いませ...
C#のforeach文は配列をはじめ、列挙子やリストなどのさまざまなシーケンシャルな反復処理を簡潔に書くことができます。 foreach (ElementType element in collection) { statement; } このforeach文はコンパイル時に以下のようなコードに展開されます。 E en...
ゲームを進行させていくにあたって重要になるのが複数タスクの管理です。 俗にタスクシステムと呼ばれているものです。 タスクシステムの明確な定義はありませんが、たとえばキャラクタを移動させたり当たり判定させたり描画させたりといった処理の進行を管理するものだと解釈して差し支えないと思います。 これらのタスクを管理するためのク...