サインカーブを使って雪を降らせるデモ

前回までの、X-Y座標系と円座標系の学習の一環として、サインカーブを使って雪を降らせるデモを実装してみました。 以下書籍の、第2章 基礎編-2 三角関数、2-2 サインカーブを使ったサンプルの箇所になります。 takachan.hatenablog.com 実行例 実行するとこ…

C#でフラグ扱いの変数名にフラグと命名してはいけない

若干、揚げ足取りなのかもしれませんが、このような記事がQiitaに上がっていた上がっていました。 qiita.com で、フラグ的なbool型の変数にフラグって名前を付けちゃうと脳に負担がかかるからやめようという話です。記事では評価方法の話題ですがここでは変…

X-Y座標系と円座標系、2点間の角度を求める

前回作成した「X-Y座標系と円座標系」の確認のためにちょっとしたサンプルを作成しようと思います。 takachan.hatenablog.com 作成するもの Cocos2d-xを使って中心に自機に見立てた四角を置き、多面をクリックすると、自機とタップ位置の角度を求めて玉を発…

X-Y座標系と円座標系

最近Kindleで購入した書籍『JavaScriptゲームプログラミング 知っておきたい数学と物理の基本』から、2-1-1 X-Y座標系と円座標系をやってみました。 JavaScriptゲームプログラミング 知っておきたい数学と物理の基本 (Future Coders(NextPublishing))作者:…

C#でインターフェースをDisposeする

C#

C#で引数をインターフェースで受けた時に実際の具象クラスがIDsiposabeを継承していてそれをDisposeしたいときの方法です。継承階層は以下の通りで青いIDatabseで変数を受けた時の話になります。 コードにすると以下のような状態です。 // コード例 public c…

C#で(a ==1 && a== 2 && a==3)」の結果を真にする方法

C#

先ほどはてブで、JavaScriptで「(a ==1 && a== 2 && a==3)」の結果を真にする手法が議論されるという記事を見かけたのでC#で同様の結果を得るためにはどうすればいいのか考えてみまました。 この問題、左辺の「a」の型が明示されていないことを利用してC#で…

WPFでボタンにホバーエフェクトをかける

WFPのボタンコントロールにホバーエフェクトをかけたいと思います。 マウスオーバーするとボタンの色が変わります。完成すると以下のようなイメージになります。GIFにすると画質悪い… XAML メイン画面のXAMLは以下の通りです。

重力加速度を使ったミニゲームをCocos2d-xで実装する

以下の本から、「重力加速度を使ったミニゲーム」の項目をCocos2d-xで実装してみたいと思います。 ゲームを作りながら楽しく学べるHTML5+CSS+JavaScriptプログラミング (NextPublishing)作者: 田中賢一郎出版社/メーカー: インプレスR&D発売日: 2014/05/22メ…

重力加速度をCocos2d-xで実装する

以下の本から、「重力加速度」の項目をCocos2d-xで実装してみたいと思います。 ゲームを作りながら楽しく学べるHTML5+CSS+JavaScriptプログラミング (NextPublishing)作者: 田中賢一郎出版社/メーカー: インプレスR&D発売日: 2014/05/22メディア: オンデマン…

C#で最大容量つきリングバッファーを実装する

C#

リングバッファーは、FIFO(ファーストIN, ファーストOUT)つまり先に入れたものが、取り出すときは先に出ていく、Queueと同じような構造を持っています。 リングバッファーって自分のイメージでは、有限のサイズのリングの大きさ(つまり入れられる最大の量…

ASP.NET Core を Windowsサービス化する

今回の記事、果たしてこんな事して意味があるのか不明です。 ただ、コンシューマ向けのWindowsに搭載のIISはExpress版なので多少制限があってそれを、ASP.NET CoreのKestrelを使って回避しようとした時に、Window上でサービス化してみたのでその手順をまとめ…

WPFのボタンの角を丸くする

前回の「WPFのボタンをフラットデザインに変更する」で表示したボタンは角が四角かったのですが、今回は丸く表示してみようと思います。 といっても大した事はなくて、前回のコードのContentTemplateの子要素のBorderにCornerRadiusを追加するだけです。 見…

WPFのボタンをフラットデザインに変更する

WPFのボタンのスタイルをデフォルトのスタイルから変更して境界線のないフラットデザインへ変更します。 デフォルトのボタンコントロールを表示すると 見た目がダサい(特にwindows7で) Win7とWin10で見た目が著しく異なる マウスオーバーしたときに青くな…

C#でZipファイルを解凍・圧縮する

C#

C#でZipファイルを扱う方法を紹介したいと思います。この機能は、結構最近追加されたため.NET4.5以上で利用可能です。 簡単なファイル解凍・圧縮 ファイルの解凍 ファイルの圧縮 複雑なアーカイブ操作 アーカイブ内のファイルを列挙する アーカイブから1つだ…

VisualStudio 2017で.NET Framework4.7.1を利用可能にする

Visual Studio 2017に.NET4.7.1を追加する方法です。いつも、MSのWebサイトへ飛んで開発者キットをダウンロード → インストーラを起動し導入していましたが、今回は2017から新しく追加されているVS用のインストーラを使って追加する方法で導入したいと思いま…

WPFでクリック時に波紋を出すエフェクト(Ripple Effect)を実装する

Androidのマテリアルデザインに、ボタンを押すと波紋が広がったようなアニメーションをする、Ripple Effectというものがあります。 WPFでも同じようなことができないかカスタムコントロールを作成してみました。 動いているところ 実際に表示を行うと以下の…

内部でStaticな変数に依存しない

アンチパターンのひとつで、オブジェクトの処理内にStaticメンバーへ依存してはいけないというものがあります。 大したことはないのですが。例えば以下のようなある種のグローバル変数があって public class GlobalValiables { public static bool InternalS…

Windows10をインストール後に設定すべき項目

OSをクリーンインストールしてスタートメニューを開いたらびっくりしました。まるで、国産PCにプリインストールされたジャンクアプリ群並みに、望んでいないアプリが大量に陳列しているようです。 とりあえず開発環境として使用するため、余計な機能を停止・…

WCFの例外処理(クライアントへのエラー通知方法)

C#

WCFでサーバー上で発生した例外は、クライアントへそのままthrowすることはできません。デフォルトではサーバーのスタックフレームの最上位より上に例外が送出されるとクライアントではRemotingExceptionが別途発生し、発生元の情報は通知されません。このた…

C#の新機能を使ってコード量を削減する

C#

C#も既に7.0までリリースされ、以前より言語機能が拡張されています。そこで、新しい機能を使って昔ながらのコードを短く簡潔に記述することができるようになりました。 定型的なコードの繰り返しや、コードがごちゃごちゃしている場合に、少しでも短い方が…

QTTabBarで新しいタブをPCで開く

QTTabBarの新しいタブを「+」プラスボタンで開いたときに、Win10でPC(旧マイコンピュータ)を開くように設定する方法です。確認したバージョンは1038(2015-12-8)です。 設定画面から、イベント > タブバーの "+" ボタンをクリックの項目のリストから「ユ…

C#でストラテジーパターンを用いてメソッドの複雑性を下げる

現実は紹介する例より圧倒的に複雑かと思いますが、以下のような状況でC#で利用できるデザインパターンの一つである、ストラテジーパターンを使ったリファクタリングの方法を紹介したいと思います。 あるメソッドに長大な処理が書かれている メソッド内であ…

C#でストラテジーパターンを実装する

GoF(The Gang Of Four)の23デザインパターンのうちのひとつ、Strategy パターンをC#で実装する方法を紹介したいと思います。 増補改訂版 Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2014/03/12メディア: Ki…

C#で特定のビットを変更する

C#

C#で整数型の特定のビットを立てたり落としたりする方法です。制御系の処理だと結構やるのと思いますが、C#でこういった操作をする事は珍しいので紹介したいと思います。 特定のビット「だけ」を変更するのは、一般的な方法論があるのでそちらを先に紹介した…

C++/CLIでstd::stringとSystem::string^を相互に変換する

タイトルの通りで、C++/CLIでC++の文字列とC#の文字列を相互に変換する方法です。

WFPのListBoxでカードUIを作成する

WPFでListBoxを使ってカードUIを作成する方法です。 作成したものは以下のような外観になります。 リサイズすると横幅に合わせて列数が変わります。 よこに広げると以下のように並び変えられます。 カードの構造 XAMLを貼る前に構造はこんな感じになっていま…

C#から見たC++の例外処理仕様の違い

普段C#を使っていて、C++を使った時に例外を使用した時に感じた違いを書いていきたいと思います。 まずは、言語使用上、違う部分から行きたいと思います。(ちなみに動作をVS2017のVC++で確認してるので規格と違うことがあるかもしれません。 その1:C++の例…

Backblaze社のHDD故障率2017年3Qレポート

先日、クラウドストレージ運営会社のBackblazeが定期的に発表しているHDD故障率のデータの2Qデータの表を文字起こししたのですが、既に3Qデータが発表されていたみたいなのであたらめて表を文字に起こしてみました。3Qデータなので2017年7月~9月までのデー…

Backblaze社のHDD故障率2017年2Qレポート

最近デスクトップPCのHDDの調子が悪くなり、カコンと音がするとそれ以降アクセス速度が10分の1くらいに低下する、いかにも壊れる寸前の動きをしていました。 なので、3.5インチ内蔵HDDのリプレースを考えていたのですが、故障率が低いものがいいと考えていろ…

ListBoxの要素上にカーソルが乗ったときの強調表示を停止する

WFPでListBoxを使用している際時に、マウスカーソルが子要素の上にMouseOverしたときに要素を強調表示するために青い枠が以下のように表示されます。 これを停止するためには以下のコードを記述します。デフォルトのスタイルを停止して自作の表示に切り替え…