PG日誌

読者です 読者をやめる 読者になる 読者になる

PG日誌

主にc#の事を書いています

C#のSystem.Threading.Timerクラスの精度を確認する

C#のTimerクラスの定周期処理で、タイマーのインターバールを1msに設定した時の実際の実行間隔を確認した話です。

真・C# と WPF でインベーダー風ゲームを作る

3日前に『C# と WPF でインベーダー風ゲームを作る』を言って、雰囲気だけ似ているオリジナルのイカのシューティングの記事を書きましたが、「インベーダー」を名乗ってあの出来栄えはさすがに我田引水が過ぎるかなと思い反省したので、本物の「インベーダー…

C# と WPF でインベーダー風ゲームを作る

VisualStudio2017が出たということで記念するわけではないですが、C#とWPFのみでインベーダー風ゲームを作ってみたいと思います。 すいません、嘘つきました。インベーダーを意識した気がするオリジナルなシューティングゲームです。リスペクトしたというこ…

Exlipse 4.4 LunaでのSVN 1.9のリポジトリに接続する

Eclipse4.4 Luna PleiadesでSVN1.9へ接続できるようにSubversiveのSVNKit(SVN Connecter)を更新する方法です。

Windows10でフォントが汚いのでYuGothicを削除する (不完全版)

Windows10のシステムフォントを『Meiryo UIも大っきらい!!』を使っても変更できないコンテキストメニューの内容をレジストリをいじってMSゴシックに変更する方法です。

オーボエ奏者 大下裕子さんのHP

いつもと全然経路が違いますが、Oboe奏者の大下裕子さんが自分のHPを作ったとのことで、紹介します。 ページがものすごいオシャレ! oshitahirokooboe.wixsite.com

Cocos2d-xでHPゲージを実装する

Cocos2d-x 3.1xで、Spriteを使ってHPゲージを実装したときのメモです。

List<T>の使い方

c#

C#で動的に要素を追加したり、削除したりしたいときに使う動的な配列「リスト」の使い方の簡単なメモです。

2016年にリアルで聞いた意識の高すぎる言葉大賞

2016年にリアルで耳にした意識高い系の言葉ランキングです。

Disposeパターンを実装する

c#

Disposeパターンについて調べたので結果をまとめてみようと思います。 Disposeパターン コード例 基底クラスの実装 派生クラスの実装 利用側のコード 注意点 参考資料 Disposeパターン Disposeパターンですが、c#で基底クラスが アンマネージリソースを使用…

C#とC++間でchar*もしくはLPSZをやり取りする

C#からC++のDLLを呼び出すためにDllImportしたときにchar*が引数にある場合のやり取りの仕方です。 C++側はシグネチャを持つコードがあった場合 // C++側宣言 uint32_t __stdcall Function(char* szMessage); // もしくは uint32_t __stdcall Function(LPSTR…

Qtuoの激安ワイヤレスマウスのレビュー

このマウス、去年の4月頃に買って年末まで7か月使ってたのですが結局捨ててしまいました。そこで供養的な意味でレビューを書きたいと思います。 ちなみに商品はこれです。 Qtuo 2.4G ワイヤレスマウス 無線マウス 5DPIモード 2400DPI 高精度 ボタンを調整可…

VisualStudio2013,2015に.NET4.6.2を導入する

だいぶ前に、VisualStudio2013へ.NET4.6.1の導入の仕方を書きましたが、.NET4.6.2がリリースされたので導入の手順を書きたいと思います。 【旧記事】.NET4.6.1の導入の仕方 概要 サポートライフサイクルについて 現在の状態 導入方法 MSのサイトから開発者キ…

c#でJsonをシリアライズ、デシリアライズする

c#

c#でJsonデータをシリアライズデシリアライズする方法のメモです。.NET Frameworkの標準ライブラリにあるDataContractJsonSerializerを使ってファイルやネットワークから読みとったJson文字列をC#のオブジェクトへ変換したり、オブジェクトの内容をJson文字…

VisualStudio2015が使うIEバージョンの変更

VisualStudio2015ってデフォルトだとIE9になっています。このままだとネットワークがIEの古いバージョンを制限していたりするとVisualStudio上からログインダイアログすら表示できないのでブラウザがIE11を使用するように変更したいと思います。 Note: 基本…

Visual Studuo Codeのキーショートカット

Windows版のVisual Studio Codeのキーショートカットの個人的なメモです。 操作 ショートカット 右端で折り返す Alt + z MardDownのプレビュー表示 Ctrl + Shift + v Note: Trello で「説明」の欄の Markdown に表は使えない。 はてなブログのMarkdownの見出…

C#とWFでk-measn法のビジュアル化してみた

クラスタリングで定番のk-means, k-平均法をc#とWPFをつかって視覚化してみました。 今回は、以下2つのサイトに刺激を受けて作成しています。 play.google.com tech.nitoyon.com このアルゴリズムですがはだいたい以下のような手順で進みます。 データを座標…

ポケモンGOのBANされたときのメール

ポケモンGOをBANされたときはこんな内容の連絡が来るそうです。 差出人 pokemon-go-support@nianticlabs.com 件名 Pokémon GO Team 本文 Trainer,Your account has been terminated. Use of any other third-party software or app, including but not limit…

ASUS Zenfone3でメニューボタンを使用する

Zenfone3ですが、物理センサーキーなので履歴ボタンを長押しするとメニューが出るはずが初期設定のままだとスクリーンショットが撮影されてしまします。が、この動作設定から変更できます。変更方法は以下の通りメニューが出ないと操作できないアプリも多い…

ZenFone 3(ZE520KL)白、開封 & レビュー

ASUS ZenFone3 ZE520KL(白)を手に入れたので開封と簡単なレビューをしたいと思います。黒のほうが1か月早く発売されていたので、レビューは黒の機種の画像が多いた(せっかくなので)白の画像をアップします。ご注意: 当方ガジェットレビューなんてしたことな…

Cocos2d-xのwin32プロジェクトをgen-libsで高速化する

タイトルの通りですが、win32プロジェクトで、あらかじめgen-libsコマンドで作成したライブラリをリンクして、コンパイルの時間を高速化します。iOSだとスタティックライブラリを使用して高速化するあたりの話と同じです。ちなみに、元ネタは以下のフォーラ…

c#のis演算子とtypeofの型判定の挙動の違い

c#

コード書けばすぐわかる事なんですがis演算子の挙動の話です。is演算子は複数の型でtrueになる可能性があります。 親子関係がある型で厳密に型を判定したい場合、GetType()とtypeofを使います。 // こんなクラスがあったとして、、 public class BaseClass {…

c#のeventとdelegateの違い

c#

マウスをクリックした場合などに発生する"イベント"の話ではなく、c#の予約語の"event構文"の話です。本当にざっくりとした先に結論を書くと、"event構文"は"delegate専用のプロパティ"の一種です。delegate型をクラス外に公開する場合だけ特別に、"プロパテ…

ObservableCollectionにAddRangeを追加する

c#

タイトルの通りなんですが、ObservableCollectionやIListにはAddRangeが無いんですよね。WPFでObservableCollectionの入れ替えを毎回foreachでやってたら憤死しそうにりました。けっこう前から結構不便に感じていたのでライブラリ作りました。こんな感じです…

c#のイベントのnullチェックがめんどくさい

c#

Begin 1 System.ArgumentException: 型 'System.String' のオブジェクトを型 'System.Int32' に変換できません。 ...System.Reflection.TargetParameterCountException: パラメーター カウントが一致しません。 ...System.Reflection.TargetParameterCountEx…

クラリネットの運指表

クランポンの楽器を買ったときについていたクラリネットの運指表が横に長すぎて取り回しが悪かったのでA4サイズに加工してみました。最低音~最高音まで網羅していて、それぞれの変え指も豊富なので、現時点で多分どのサイトに掲載されているのよりも詳しい…

cocos2d-xのUSING_NS_CCについて

cocos2d-xのUSING_NS_CCはCCPlatformMacros.hに以下のように定義されています。 #ifdef __cplusplus #define NS_CC_BEGIN namespace cocos2d { #define NS_CC_END } #define USING_NS_CC using namespace cocos2d #define NS_CC ::cocos2d #else #define NS_…

c#のconstとstatic readonlyの使い分け

c#

c#でプログラム書いてるとコードを書いているときは、constとreadonlyの区別ってあんまりありませんよね。ついつい定数は全部、constと書いてしまいます。 public static class HogeDefine { public const uint MaxLength = 10; public static uint DataSize…

現在のコードページで表示できない文字を含んでいます。

VisualStudio2013以降で以下警告メッセージが出た時の対処法です。 コードページの警告 hogehoge.cpp : warning C4819: ファイルは、現在のコード ページ (xxx) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存…

Windows10のフォントが汚すぎる...

これは、、、、汚すぎない?フォントが。強制的にWin10へ移行させて移行した先が地獄とかWinのユーザー調教厳しすぎます。何YuGothicって。。。 細すぎてかすれてるしぼやけてんじゃん。ちゃんと描画できないのに何で採用した? 目が悪くなったのかと思って…

VS2015 Communityのダウンロード超遅い

VisualStudio2015 Communityのダウンロードは時間にもよると思いますが死ぬほど遅いです。速度が100~200Kbyte/sec程度しか出ない感じです(現在進行形)全体で10G以上あるみたいなので始めるときは覚悟したほうがよさそうですね・・・ トホホ・・・どうやら…

Windows10のアクティブウインドウに色をつける

マイクロソフトのごり押しに負けてWindows10にしたものの、今までのOS使用歴がVista → 7 → 8 → 8.1 → 10 で強制的にOSを変更させられて地雷ばっかり踏まされてばっかりなので少々辟易しています。自宅のPCが不可抗力でWindows10に強制変更させられたのですが…

VisualStudioのスペースとタブの表示・非表示

うへぁ・・・何この表示??!VisualStudio2013を操作中に何かのキーを押してしまったらしくスペースが「.」(ドット)でタブが「→」矢印で表示されるようになってしまいました。元に戻し方がわからない、、、、 と思い、メニューを探していたら編集 > 詳細 > …

VisualStudio2013へ.NET Framework4.6.1を導入する

ちょっと前に、VisualStudio2013へ.NET4.6の導入の仕方を書いたけど.NET4.6.1も同じような手順で導入できます。 4.6.2の導入の仕方 takachan.hatenablog.com 4.6の導入のしかた 前に書いた記事です。takachan.hatenablog.com http://blog.hatena.ne.jp/Takac…

カクヨムのフォントはWindowsユーザーにはお洒落すぎる

はてぶでホットエントリーを眺めていたら「カクヨム」という単語を見つけました。「なろう」と並んでるので何かと思っっていました。何でも、カドカワとはてなが新しく始めた小説投サイトらしいです。開設して間もないみたいですが、何故かヘイトを集めてい…

c#でスレッドIDを取得する

c#

マルチスレッド処理中にログを出力したい時にスレッド番号があったらいいなと思ったので調べてみました。捕捉: GUIアプリのasync/await/Invokeが絡む画面操作関係でこの出力すると全部同じ値になってしまいます。UIがシングルスレッドアパートメントなので当…

コードのコメントはシンタックスじゃなくセマンティクスを書こう

コードの構造とか文法を一生懸命説明するシンタックスコメント職人が世の中に結構いるみたいです。例えばこんなの // ログを出力する Log.WriteLine("ERROR", "Failed to hogehoge function."); Log.WriteLine("ERROR", ex.ToString()); コード見ればわかる…

C#のvarとtry~catchはクソじゃなかった

c#

例外をcatch節で受けるときにException型で受けちゃうとコードインスペクションで引っ掛かります。で、ネットでどうなってるのか調べていたときにメッチャパッションしてるエントリを見つけたので思ったこと書こうと思います。C#のvarとtry~catchが糞すぎる…

WCFで通信エラーになる場合

c#

WCFで通信エラーc#とWCFでプロセス間通信をするためにNetTcpBindingを使って通信を行っていたら以下のメッセージが出力され通信エラーとなりました。 System.ServiceModel.CommunicationException: ソケット接続が中止されました。これは、メッセージ処理時…

Duet DisplayをiPad3で試してみた

iPad3は最近のOSにアップデートしてから(7に上げたくらい?)使い物にならないほど速度が遅くなったのでしばらく放置していました。全てが実用に耐えない激重状態で、嫌なら買い直せ的なスタンスが「これがApple教のお布施かぁ・・・」なんて感心していました…

ガチャの確立をシミュレーションしてみた

グラブルが確率を偽って景品表示法に違反しているだとか、To LOVEるのガチャの確率が異様に低いとか世の中ソーシャルゲーム内に設置されれているガチャで騒ぎが起きているようです。その確率で、実際にどれくらいガチャを引けば当たるのか、少し気になります…

AndEngineでdetachSelfしたときに例外が出る場合の対処法

StackOverFlowに普通に書いてあるありますが、自分用のメモまでに… 状況 AnimatedSpriteへAnimatedSprite.IAnimationListenerを設定して匿名クラス内でdetachSelfを記述したときに「IndexOutOfBoundsException」が発生する。 java.lang.IndexOutOfBoundsExce…

c#とJavaの微妙な違い

c#とJavaって基本的な構文は相当似てるんですが、やっぱり違う言語なので微妙に違います。両方を使い比べてみて、やっぱり全く違うんだな、と感じたことをいくつか書いてみようと思います。 アクセス修飾子 アクセス修飾時を省略したときの挙動 Javaの場合 c…

クォータービューを描画しよう

スマホゲーム向けにJavaとAndEngineでクォータービューを描画しよう思います。クォータービューのタイルチップは「ひし形だけでできているタイルチップ」と「足がついてるタイルチップ」 の2種類がありますが、今回ここで扱うのは後者の「足がついてるタイル…

何故かホッテントリ入りしてしまいました

「まさかこんなブログ誰も読まないだろ」なんてIT従事者にあるまじき思考でタイトルをミスリードした上、煽りを入れてたら見つかってしまいました。 (正直、170日以上前に書いたエントリーで存在を忘れていました)ネットに公開しているのだから当たり前です…

MahAppsのTreeViewをWPFで使ったときの話

MahAppsは、WPFでフォームやコントロールの見た目をユニバーサルアプリ風(旧メトロ風)に表示するためのUIライブラリです。 紹介はほかのサイトが詳しいと思いますが、コードがGitHubで公開されていて、紹介とドキュメントが以下のページに乗っています。http…

c#のstaticクラスとシングルトン考察

c#には言語固有機能としてstaticクラスがあります。クラス自体をstaticと宣言することによってインスタンス作成を禁止し、static宣言したクラスのインスタンスが複数作成できないようにします。ですがこの機能GoFのデザインパターンのシングルトンと何か違う…

AndEngineのButtonSpriteの制約

ButtonSpriteに設定する3つの画像、「pNormalTextureRegion」「pPressedTextureRegion」「pDisabledTextureRegion」 (それぞれ通常のボタン画像、押されたときの画像、ボタンが無効の時の画像)は、同じBitmapTextureAtlasから作成しないと例外になります。 …

AndEngineのFontのTextureOptions

おい・・・!おいーーー!!! くだらん事で相当悩んでしまった・・・!Fontを生成するときに作るBitmapTextureAtlasの第4引数に TextureOptions.BILINEAR 指定しろっつった奴だれー!?www謎のフチが付いてなんでやねんってなってたけどこれBILINEARE指…

AndEngineのCameraの指定方法

勘違いしていたのは自分だけかもしれませんが、AndEngineのEngineOptionのコンストラクタにBaseResolutionPolicyを指定する際に画面を引き延ばして指定するとタッチ座標が拡大/縮小された分の領域分、増減するのかと思っていました。。。