Terra Tech ゲームレビューと最序盤プレイレポ

Terra Tech という Steamでアーリーアクセスのゲーム紹介をしたいと思います。 今のところ45時間ほどプレイして序盤を終えた感じです。けっこう面白かったです。 ゲームの特徴 このゲームですが、ある惑星で資源集めをしつつ、四角いブロックを組み合わせて…

C# + OpenCvSharpで画像を回転してリサイズする

タイトルの通り、OpenCvSharp(ver.3.x系)を使って画像を左右に90度倒した後、画像をリサイズして、はみだした状態や黒部分が無い状態にします。 回転だけすると以下のように意図しない状態や黒い帯が出て微妙に調整が必要だったりします。 ↓これが元画像 …

C#の最新版(C#7.3などを)を使用する方法

2018年6月2日現在、VisualStudioの.NETのC#プロジェクトでC#7.3などの最新のC#規格を利用可能にする方法を紹介したいと思います。(何故か、C#7.0までの構文しか使えず調べるのに手間取ってしまったのでやり方のメモとなります。) C#のバージョンの選択方法…

C#でFizzBuzzを実装する

FizzBuzzの問題の解法は出尽くしていると思いますが、自分でコードを書いた事が無かったためチャレンジしてみようと思います。 作成環境はVS2017(15.7.2) + .NET4.7.2 (≒C#7.2)です。 ルール確認と模範解答 まずはルールの確認です。概ね以下の通りです。 最…

C# + OpenCvSharp + WFP で Webカメラ画像を表示する

C#で利用できるOpenCVのラッパーライブラリの「OpenCvSharp」を使ってWebカメラで撮影した画像をWPFに表示したいと思います。 OpenCVを使用すれば数行で実現できるのでとっても簡単に実装できます。 今回使用するOpenCvSharpはバージョンが、3.4.1.20180319…

C#びDictionaryで自作オブジェクトをキー:TKeyに使用する

2022-09-22 C#のDictionaryのTKeyにオブジェクトを指定した場合、参照アドレスが同じであれば同じオブジェクトと判断されます。ざっくりいうと何もしないとクラス同士の比較 (a == b) が true だと同じキーと認識されることになります。 で、今回は、自作の…

コメントが要らないプログラムの書き方

はてなブックマークで「コメントの要らないプログラムの書き方」が話題みたいです。 個人的には以下はまぁOKかなぁと思ってます。 自分の確認のために書いてある書くコメント(ギリギリ) 業務仕様を記述したコメント どうしてそうしているのかを書いている…

WPFで未処理の例外を一括で処理する

WPFで例外が処理されずに最上位のベントハンドラから例外がthrowされた場合、アプリがクラッシュします。 アプリがクラッシュすると、以下のような、OSのアプリのクラッシュレポートダイアログが表示され、以上が発生したことがユーザーに通知されます。 こ…

WindowsでMarkdownエディタをセットアップする

Windows環境でリアルタイムプレビュー機能付きのMarkdownエディタ環境を作成する方法です。 「シンタックスハイライト」でき「リアルタイムプレビュー」な環境を「VisualStudioCode」を使って作成したいと思います。 早速VSCodeをインストールします。 Micro…

C#で簡単なファイル操作を行う

C#

C#でファイル操作するときはStream系のクラスを使用します。どんなに小さいファイルであってもたいてい以下のようなコードになるのですが若干記述量が多いのが気になります。 public static void Main(string[] args) { using(var sr = new StreamReader(@"h…

Backblaze社のHDD故障率2017年4Qレポート + 年間まとめ

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

Cocos2d-x でsetScaleとsetContentSizeの挙動の違い

すぐ忘れるのでメモ代わりにまとています。 Cocos2d-xで、Spriteに対してサイズ変更するときに、setContentSize(), setScale()各々を実行した時の挙動の違いは以下の通りで。 まず、100x100pxの大きさの画像を読み込む。 Sprite* sp = Sprite::create("100x1…