PG日誌

受託系 PG が C# の事を書いています

Responsibility = 責任ではない?

責任というとどういうものを想像するかは人によると思いますが「責任」とは、どちらを想像しますか? 取るもの 果たすもの 日本(というか日本語圏のミームの中)では、では責任と言ったら取るもので 切腹する 坊主にする 辞任する なんかが代表的なイメージだ…

C#/C++相互運用時の戻り値構造体にwchar_t[]が含まれると例外が出る問題

前回記事で、戻り値の構造体にNon-Bittable型(非Blittable型)が含まれる場合例外が発生する件でchar型の固定長配列は自分でマーシャルしないと例外が出るという話の続きです。前回と同じ条件(戻り値が非ポインタ型の構造体)でwchar_t型の固定長配列が含まれ…

相互運用時に戻り値にNon-Bittable型が含まれる場合例外が発生する件

タイトルの通りですが、C#からC/C++のDLL関数を呼び出すとき(相互運用時)にC++側の関数の"戻り値"が構造体でかつ、非ポインタ型で、その構造体のフィールドメンバーにNon-Bittable型(非Blittable型)が含まれている場合、以下の例外が発生して処理が落ちます…

Cocos2d-xで画像を切り出してアニメーションする。

Cocos2d-xで配布されている素材のキャラクターチップを切り出して歩行アニメーションをつけようと思います。 素材配布サイトさんに以下のような形式で歩行グラフィックが配置されているのを見たことがあるとあると思いますがこの画像、毎回全部分割して画像…

VisualStudio2015, 2017に.NET Framework 4.7を利用可能にする

VisualStudio2015, 2017*1に.NET4.7を追加する方法です。最近はVSのバージョンごとにインストール方法が違わないんですかね?確認ついでに導入方法をまとめました。 まずは、以下リンクから.NET Framework4.7をWindowsへインストールしましょう。そうでない…

Cocos2d-xで乱数を取得する

Cocos2d-xにはライブラリ標準で乱数を取得できるrandom関数があります。自分でsrand + rand とか、mt19937を自分でしなくて大丈夫です。便利に使えるようにUtility作る必要ありません。使い方ですが、 // Cocos2d-x内の宣言 // ccRandom.h inline int random…

Cocs2d-xでアニメションを停止・再開する

Cocos2d-xでノードに設定したアニメーションを停止・再開する方法です。 Nodeクラスのpasue/resmeメソッドを使用します。使い方は以下の通りです。 auto sp = Sprite::create("sample.png"); // アクションを作成 auto jumpAction1 = JumpBy::create(0.25f, …

Cocos2d-xでFF5風のダメージを再現する

Cocos2d-x(3.x系)で、FF5風のダメージ表示のエフェクトを再現してみました。 制作環境は以下の通りです。 Cocos2d-x 3.14.1 Windows10上でWin32プロジェクトにて確認 参考にした動画 www.youtube.com 実装した結果 微妙に画像がつぶれているので見づらい場合…

新DLC"Synthetic Dawn"を一足先に体験?Animated Synthetics Portraits MOD最序盤レビュー

Stellarisに新DLC「Synthetic Dawn」が発表されました。発売時期はComingSoonとなっていてこれからみたいです。が、発売まで待ちきれないので同じような、ロボットでゲームをプレイできる「Animated Synthetics Portraits」というMODを使用して一足先にロボ…

Sprite, LabelのアンチエイリアスをOFFにする

Cocos2d-x3 3.x系でアンチエイリアスをON/OFFにする方法です。 ラベルのテキストのアンチエイリアス指定方法が途中で変わっていたので、priteとLabel両方の指定方法まとめてみました。 Spriteの場合 こちらは、結構昔から変わっていません。 auto sp = Sprit…

エンジニアが知っておくべき心理効果

エンジニアだけじゃないのですが、会社でプロジェクトリーダー 心理効果を悪用して自分の事をコントロールしようだとか、物事を正しく評価できないとかがあると困るので有名な心理効果をまとめてみました。 特記: 別に心理の専門家じゃないので個人の見解・…

C#とC++のbool型の扱い、条件分岐での使い方

自分へのメモ。 if文の括弧内の評価とbool値の関係を、C++を触るたびに検索してるので記録しておく。 どの言語でも共通のif文の定義 if文は評価結果が真の時に実行される if( $COND ) { // $CONDの評価結果が[真]の時に実行される } else { // $CONDの評価結…

Cocos2d-xでロマンシングサ・ガ3風のダメージ表示を再現する

Cocos2d-x(3.x系)で、ロマンシングサ・ガ3風のダメージ表示のエフェクトを再現してみました。 制作環境は以下の通りです。 Cocos2d-x 3.14.1 Windows10上でWin32プロジェクトにて確認 参考にした動画 www.youtube.com 実装した結果 微妙に画像がつぶれている…

C++で乱数を取得する時に短時間にsrandを何度も呼ばない

すいません、当たり前の話です。以下コーディングミスで10分ほど悩んだので備忘録です。 C++で乱数を取得するときにrand関数を使いますが、毎回乱数が生成されないためにsrand関数でシードを更新しましょう。という話があったのでこんなコードを書いてみまし…

C#とC++でラムダ式を利用、運搬性を確認する

C++11からC++でもラムダ式が使用できるようになったので、今更ですが使い勝手と、運搬性ををC#を比べてみました。ラムダ式を使用する方法と、変数に入れて持ち運ぶ方法の2とおりの使い方を確認しています。 C#でラムダを使用・運搬する 最初はC#です。かなり…

平均喫煙率が2割を切ったニュースを考察する

厚生労働省の発表で「平均喫煙率が2割を切った」と発表がありました。男性喫煙率も3割を切ったとの事です。しかし、当方の職場での体感は全く違い、約半数は未だに喫煙しているようなイメージがあり、発表とは全く違うので一体どういうことなのか調べてみま…

Stellarisで使用しているMODとおすすめMODの紹介

ちょっと早い夏休みに入ったので積んであったStellarisをプレイしているので自分が使用中のMODを紹介したいと思います。説明不要かと思いますが、Stellarisはパラドクス・インタラクティブ社が作った未来の銀河を題材にした4x系のゲームです。 このゲームは…

WPFのFluent.Ribbonでリボンプログラミング 第8回:アプリケーションメニュー、バックステージを表示する

今回は、前回作成済みのウインドウに対し、アプリケーションメニュー、バックステージを表示したいと思います。制御はさておきコントロールの説明になります。 アプリケーションメニューとは? Windows8以降を使用している方はエクスプローラを立ち上げたと…

外部プロセスの標準出力を非同期で取得する

c#

C#でprocessクラスを使って外部プロセスを起動したときに、プロセスが出力する標準出力と標準エラー出力を非同期で取得する方法のまとめです。

WPFのFluent.Ribbonでリボンプログラミング 第7回:ギャラリーを表示する

今回は、前回作成済みのウインドウに対し、ギャラリーを表示したいと思います。今回、ちょっと理解が及んでないところがありますがご容赦ください。 ギャラリーとは? 標準コントロールにはない概念なので、どういう概念なのか先ずは紹介したいと思います。…

TP-Link Archer T4UH無線LAN子機 開封 & レビュー

自宅でデスクトップ環境はLANのコネクタが遠く、USBスティックタイプの無線子機を使用してネットに接続していました。1年程度使用したところで壊れたので新しい製品を探していたろ頃、TP-LinkのUSB Wi-fi子機を見つけ購入し、1週間ほど使用し大変良かったの…

WPFのTreeViewでSelectedItemをバインドする

WPFのTreeViewにあるSelectedItemは何故かバインドできません。業務アプリが大好物のTreeViewのSelectedItemがバインドできないと画面で選択要素が変化したときになかなかめんどくさい実装をしないといけません。そこで、SelectedItemがバインド可能なカスタ…

2017年にWPFでデスクトップアプリを新規作成する際に考慮すること

2017年4月現在、新規にWindows上で動作するクライアントアプリのベターな選択は何か?デスクトップアプリケーションを選んだ場合、作成する時に考慮しなくてはいけない事や、一番最初にやっておいた方がいい設定などを、業務アプリ屋目線で考察をしてみまし…

WPF の Fluent.Ribbon でリボンプログラミング 第6回:コンボボックス、スピナーを表示する

今回は作成済みウインドウに対し、コンボボックスの配置、スピナーの配置を行います。 コンボボックスの表示と定義 このコントロールは標準であるコンボボックスとほぼ同じです。プロパティの挙動もほぼ同じ複数選択肢の中から一つを選ぶためのコントロール…

WPF の Fluent.Ribbon でリボンプログラミング 第5回:クイックアクセスバー、ツールバーメニューを表示する

今回は作成済みウインドウに対し、クイックアクセスバーへのアイコン表示、ツールバーメニューへコントロールの配置を行います。

WPF の Fluent.Ribbon でリボンプログラミング 第4回:ツールチップ、コンテキストタブを表示する

前回までに作成したリボンウインドウへ、ツールチップ、コンテキストタブを追加します。

WPF の Fluent.Ribbon でリボンプログラミング 第3回:タブ、グループ、ボタンの配置

作成済みのリボンウィンドウへタブ、グループ、ボタンを配置していきます。 Fluent名前空間以下に配置されている以下コントロールを使用します。 リボンタブ:RibbonTabItem グループ:RibbonGroupBox ボタン 普通のボタン:Button ドロップダウンボタン:Dr…

WPF の Fluent.Ribbon でリボンプログラミング 第2回:導入方法とウインドウ表示

Fluent.Ribbon 導入方法は、NuGet からダウンロードで行うことができます。 まず、VisualStudio 上のメニューから、[ツール] > [NuGet パッケージマネージャー] > [パッケージマネージャーコンソール] を選択し、コンソールを表示します。 コンソールが表示…

WPF の Fluent.Ribbon でリボンプログラミング 第1回:構成要素の紹介

リボンUIですがマイクロソフトのリボンUIの方針というものが存在するのかは不明ですが、デザインのバリエーションは複数の実装があります。 Office2007スタイル Office2007製品 Windows7のペイントツール Office2010スタイル Office2013以降のスタイル Offic…

Fluent.Ribbon でリボンプログラミング連載一覧

標準のリボンがなんか微妙だったので、.NET(主にC#ですが) + WPF で利用できる、Fluent.Ribbon というリボンライブラリを調査してみました。発展途上のライブラリのためドキュメントの整備状況が少し微妙なのと、日本語での情報があまりなかったため、調査し…

【非推奨】WPFでリボンUIを使用する

MS Office製品でお世話になってるリボンUI(Microsoft.Windows.Controls.Ribbon)を最近の環境(VisaulStudio2017)で使用する方法です。 注意: タイトルの通り、標準ライブラリのリボンUIの利用は非推奨です。標準ライブラリ化されているにも関わらず、かなり…

C#でオブジェクトの内容をXMLへ書き出す、読み込む

c#

オブジェクトの内容を、XmlSerializerを使ってXMLへ読み(デシリアライズ)書き(シリアライズ)する方法のまとめです。単純な読み書き程度はクラスさえ用意すれば数行で読み書きができます。また、標準機能を使用するので特別な外部ライブラリは必要ありま…

Googleアカウントにニックネームを設定する

たぶんこれをやるとアカウント全体で偽名感が出て万が一BANの可能性があるので、完全に自己責任です。Googleアカウントを偽名にしてニックネーム風に見せる方法です。 Googleにニックネームを登録する 画面右上の自分の本名が表示されてるアイコンをクリック…

C#でDictionaryから複数の要素を一括で削除する

c#

C#でDictionaryから同時に複数の条件を削除したい時にDictionaryに、そういった機能が無いため拡張メソッドを作成しました。

NEC製のAterm WG1800HPが壊れた(簡単なレビュー付き

NEC製の Aterm WG1800HG が最近とっても不思議な動きをしていましたが、昨日壊れていることを確信した話です。使ってる機種は↓です どんな機種か? NECが発売しているミドルアッパークラスの無線ルーターです。 無線最大速度:1300Mbsp 2.4GHz速度:450Mbps …

Windows Server2016のIISでGitbucketを動かす

GitbucketをIIS上にセットアップした時のメモです。公式のセットアップ方法 [「Installation on IIS and Helicontech Zoo」](https://github.com/gitbucket/gitbucket/wiki/Installation-on-IIS-and-Helicontech-Zoo)でJettyを使用したセットアップが何故か…

C#で同じ値の異なるEnumへの変換を行う

c#

C# である Enum から別の Enum の同じ値のメンバーへ変換を行う方法を説明します。 問題の確認 例えば、以下の2つの Enum が定義してあったときに、双方の “A” というメンバーは同じ値となっています。そこで public enum EnumSample_1 { A = 0, B, C, } pub…

WPFでログインウインドウを表示する

c#

WPF でメイン画面を表示する前に、自作のダイアログ(ログイン画面など)を表示するときの方法です。 App.xaml WPF のアプリケーションには Main メソッドが存在しません。そのためアプリで一番最初に呼ばれる AppMain.xaml の Application タグへ Startup …

C#でstringを一括でEmptyに初期化する(Refrection使用)

c#

例えば C# で string のプロパティが 100個あるクラスがあった場合、コンストラクタで1つ1つメンバーへ手で初期化を記述するは、大変手間な上に、初期化が漏れているなどのケースがあります。普通テストしたらそういう事にならないのですが、まれに NullRefe…

はてなブログの Evergreen の記事の幅を広げる

はてなブログの公式テーマの Evergreen は記事幅が広めの1カラムシンプルなデザインですが、もっと記事の幅を広げたい(もしくは小さくしたい)というときに使用するCSSを紹介したいと思います。 CSS ブログ全体の幅が 1000px、記事の幅が 850px としたい場…

はてなブログのソースコードの色を変更する

はてなブログでコードを記述しシンタックスハイライトをかける際に使用するカラーテーマをカスタマイズしたので公開したいと思います。使用しているテーマははてなブログ公式テーマの Evergreen です *1。 この配色では、主に C# でコードが表示が綺麗にされ…

クラリネット用リガチャーKODAMA2のレビュー

石森楽器が発売しているクラリネット用のリガチャー『KODAMA II』を2016年の6月に購入し使用し始めてから10ヵ月程度たったので使い心地のレビューを書きたいと思います。 吹奏環境 当方吹奏環境ですが、以下の通りです。 項目 内容 リード バンドレン ルピッ…

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ゲージを実装したときのメモです。

C# の List<T> の使い方

c#

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