2019-01-01から1年間の記事一覧

【Unity】自動実装プロパティに表示名を指定する

この記事の内容は Unity 2019を含むそれ以前のバージョンを対象にしています。 現在はプロパティに field:SerializeField と付けると名前は正しく表示されます。 以下は Unity 2019 以降では不要です。必要な方だけ参照ください。 また諸事により、プロパテ…

VisualStudioでプロジェクトのプロパティが開けない場合

VisualStudoo2019ので以下エラーが発生した場合、開こうとしてるタイプがインストールオプションで足りていないことが原因 ページの読み込み中にエラーが発生しました。 ファイルまたはアセンブリ 'Microsoft.VSDesigner, Version=16.0.0.0, Culture=neutral…

Unityを触って3時間以内に思ったこと

Cocos2d-xをやめてかの高名な和尚さんの寺子屋に駆け込んでUnityを勉強し始めて3時間程度経過した時点の感想です。 この本で勉強しています。 Unityの寺子屋 定番スマホゲーム開発入門作者:いたのくまんぼう,大槻 有一郎出版社/メーカー: エムディエヌコーポ…

Cocos2d-x 4.0がリリースされたみたい

2020-09-02 昨日ポエムを書いてる最中にV4.0リリースアナウンスがありました。 まぁ昨日引退したばっかりで気分の切り替えが済んでないので少し内容を見てみました。 Topics iOS/Mac向けにMetal対応が完了 GLFWを3.3にアプデ 非推奨の関数を削除(const char*…

Cocos2d-xをやめてUnityに移行した話@2019冬

2021-02-02 ご注意: 内容は全て個人の感想です。また、好意的な内容ではありません。人によっては不快になる可能性があります。承知の上読んでください。 この記事は、今まで趣味でC++の勉強 & ゲーム制作で Cocos2d-x を使ってアプリ開発していましたが長ら…

Unityエディタのフォント・サイズを変更する「ModifyEditorStyle for Win」

UnityのEditorのフォントを変更できるEditor拡張の「ModifyEditorStyle」をUnity2019向けに手直ししてみました。 2019/12/07:シーンを切り替えると表示が元に戻ってしまう不具合を修正 2020/01/31:2019.3向けの対応 対象 以下のような人が対象です。 Windo…

はてなブックマークのホッテントリから特定の記事を非表示にする

Adblock plusのフィルター機能を使ってはてなブログのホットエントリーを非表示にする方法です。 確認環境 Adblock plus GoogleChome Adblock plusがある環境ならどれでも行けると思います。しらんけど。 Fanboy's Social Blocking Listが入ってるとはてぶの…

C#で文字列にSQLのIN句のようなメソッドを追加する

SQLにあるIN句をC#の文字列に適用し、リストに格納された文字列がある文字列に一致するかどうかを判定する処理をstringに追加したいと思います。 例えば"ABC123"という文字列の中に"AB", "12"という文字が含まれているかという処理は以下のように書けば判定…

C#のDateTimeとC++のtime_tを相互変換する

C++/CLIやC#とネイティブを相互運用を使用しているときにC#のDateTime型とC++のtime_tを相互に変換する方法です。 コードのかりやすさ優先でまとめています。 C#のDateTime → C++のtime_tへの変換 .NETのDateTimeをtime_tに変換します。 tm型を経由してmktim…

C#の共有メモリで簡単にオブジェクトを共有する方法

C#を使ってプロセス間でデータ共有をする際にオブジェクトを共有する方法です。 プロセス間でオブジェクトを共有したい場合、大抵の場合構造体を定義してメモリに書き込めばすれば良いとネットに書いてあります。ですが、普段クラスで扱っているデータをその…

C#のMemoryMappedFileで作成した共有メモリをC++(ネイティブ)から利用する

C#でMemoryMappedFileを使って作成した共有メモリをVC++(あるいはC言語)から利用する方法です。 条件 .NET Framework VC++ Windows限定(WINAPIを利用) .NET Core & Linuxとかでは全然使えないのでご了承ください。 C#側のコード まずはこんな感じでC#上…

C#のMemoryMappedFile(共有メモリー)でエラーが出たときの対処法

Windows上でサービスなどのシステム権限やAdminisratorsなどの高い権限でMemoryMappedFile使って共有メモリを作成し、一般ユーザー権限のような権限レベルの異なるプロセスから共有メモリをOpenExistingしようとする場合に出るであろうエラーの対象方法です…

PicojsonのJSON書き出しをもっと便利にする

C++でPicojsonというJSONを読み書きするライブラリがあります。 JSONを読みだすときはそんなに苦じゃないのですが、このライブラリを使ってJSONの作成を始めると冗長な表現をする関係でタイプ数が増えて結構面倒なんですよね… // いちいちこんな感じでコード…

Cocos2d-xでOpenSSLを使った256bit AES暗号化・復号化(3.17.1対応版)

以前にCocos2d-xに組み込まれたOpenSSLを使ってハッシュ計算をしましたが今回は、AES暗号化・復号化をしたいと思います。 前回の記事はこちら。 takachan.hatenablog.com 確認環境 確認環境は以下の通り。 VisualStudio2017 Cosoc2d-x 3.17.1 OpenSSL 1.1 AE…

Cocos2d-xでStaticクラスのメソッドやフリー関数をコールバックに指定するマクロ

タイトルにはCocos2d-xと書いてありますが、C++でstaticなメソッドとかフリー関数をstd::bind関数でバインドする方法です。 Cocos2d-xにあるCC_CALLBACK${N}を改造してCC_CALLBACK_S${N}を以下のように定義すると簡単にバインドできるようになります。 // 任…

【C#】リストから要素をランダムにN個取得する

今回は、リストから要素をN個取得する実装方法の紹介をしたいと思います。 いちど選んだ要素はもう使わない + データを取り出した後に元のリストが変化しないように実装していきます。 確認環境 使い方 RandomUtilクラス 関連記事 確認環境 実装環境は以下の…

C#でDictionaryのキーに複数のキーを設定する

2022-01-31 DictionaryのKeyに指定するオブジェクトを工夫することで複数のキーを指定できるようにしたいと思います。ただし、検索する見かける Tuple を使用した複数の値の組み合わせを Dictionary のキーに指定する方法はが見づらい & 値の意味が不明瞭化…

Cocos2d-xで画像を任意の色で点滅させる(3.x系)

Cocos2d-xで画像を点滅させるには、Blinkを使います。このBlinkの動作は、画像を「表示」⇔「非表示」動きをやってくれます。ただ、自分の好きな色で点滅などは出来ません。画像(Sprite)に弾がヒットした時に一瞬白く点滅する等の2Dゲームに割とよくある表…

C#でTypeInitializationExceptionが発生する

ある日突然プログラムを実行したら「TypeInitializationException」が発生した場合の対処法です。 自分のコード内で発生している場合、以降で説明する状況で発生している可能性があります。 // 発生する例外のメッセージ // .NET Core System.TypeInitializa…

Cocos2d-xで2点間の距離・角度を取得する(3.x系)

タイトルの通りですが、何故かCocos2d-xの2.x系で説明されている古めの記事しかなったので新しい(と言っても相当前ですが)3.x系での書き方の紹介です。 2.xと3.xではメソッド名や関数の位置が全然違うので少し書き方が違います。ただ、古いメソッドなどが…

Cocos2d-xでバーチャルパッド(スティック操作)を実装する

今回は、Cocos2d-x(ver. 3.17.1)でバーチャルパッド(スティックキー)を実装したいと思います。 PSやXboxなどでおなじみの360°方向の入力ができるスティックキーです。 実際に実装するとこんな感じになります。 よくコントローラが画面の下部に表示されてい…

Cocos2d-x 3.17.1で円と矩形(長方形・角度あり)の衝突判定

タイトルにCocos2d-x(2D用のゲームエンジン)でと書きましたが考え方自体は普遍的な円と矩形(長方形)の当たり判定の処理についてです。と、言っても条件式式が結構難しい(当方には説明が難しい)ため解説は以下のサイトが分かりやすくまとまっていますの…

Cocos2d-xでルール画像を使ってシーントランシジョンする(シェーダー使用)

Unityだと以下のように紹介されている、ルール画像を用いたシーンの遷移エフェクトをCocos2d-xで実装してみたいと思います。 tsubakit1.hateblo.jp まずこんな感じのグレースケールのマスク画像を使用します。 画面遷移はこんな感じになります。 「マスク画…

Cocos2d-x 3.17.1のcmakeでスタティックライブラリを作成してビルドを高速化する

はじめに FirebaseをAndroidに追加するときに思ったのですが、Cocos2d-xのAndroid環境は本当に地獄ですね… 少しGradleやCMakeist.txtを編集するとフルビルドになってCocos2d-x丸ごとリコンパイルになって時間がすごくかかります。 少し前に、3.17でcmakeが推…

Cocos2d-x 3.17.1でlib-genコマンドが削除されたけどWin32プロジェクトのビルドを高速化する

あらかじめCocos2d-xのコアの部分をコンパイルしてDLLを作成し、ビルド時間を高速化する話は以前、こちらで書いたのですが、なんと3.17.1からlib-genコマンドが削除されてしまいました。従って、最新版のCocos2d-xだとlib-genコマンドによる事前ビルドが不可…

Cocos2d-x 3.17.1でハッシュ計算を行う(MD5・SHA-256)

ゲームでデータが改ざんされていないかどうかを確かめるためにデータのハッシュ値を取って照合する手法があり、ハッシュ計算が必要になった時に使用するライブラリですが、最近のCocos2d-xにはすでにハッシュ計算用のライブラリが入っています。従って以前の…

Cocos2d-xのWin32プロジェクトでFirebaseの匿名認証してみる

タイトルの通りですが、Win32上でも匿名認証が普通にできるので方法を紹介したいと思います。 前回書いた以下の記事でWin32のプロジェクトが設定済みの状態を想定します。 takachan.hatenablog.com そして、以下のページにある「デスクトップ版の Firebase …

Cocos2d-xのWin32プロジェクトにFirebaseを設定する

Android向けにアプリ開発していますが、プログラムを書くときはWin32プロジェクトで作成しているのでモバイルプラットフォーム向けのライブラリとか機能は特別な分岐コードを書かないといけないのですが、FirebaseはAndroid, iOSは対応していますがWindowsと…

Cocos2d-xでLabelやTextの色を部分的に変更する

Cocos2d-xでラベルの色を途中で変更する場合以下のサイトが出てきます。 masahirosaito.hatenablog.com Cocos2d-xのバージョンが3.17.1の今でも大抵このサイトの通りで問題ないですが、文字列中の任意の単語の色を一括で変更したいといった場合、元の文字列…

キーボードを適当に打ってスーパープログラマになれるアプリを作ってみた

タイトルの通りです。 動かすとこんな感じになります。 youtu.be サムネサイズだと小さすぎて何やってるかわからないので大きくしてみてください(見ないか…orz コードはGitHubに上げてみました。適当なのでクソコードです。 github.com 作成環境 以下で動作…