Flat Leon Works

アプリやゲームを作ってます。

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

2018年重宝したツールベスト3

去年〜今年あたりに使い始めて重宝したツールを3つ紹介します。ちなみに普段はMacを使っていますが、今回紹介するツールはすべてWindowsでも利用可能です。 第3位 Visual Studio Code ( テキストエディタ、開発環境 ) Visual Studio Code公式サイト VSCodeと…

【Nim】引数渡しの罠

Nim

Nimには値型と参照型があるのですが、引数として渡したときの挙動が C++ や C# のような他のプログラミング言語とは違う場合があるようなので調べてみました。それほど詳しく調査したわけではないので注意してください。 執筆時のNimのバージョンはv0.19.0で…

【Unity】DOTweenで複数の移動を同時に行う

DOTweenによる移動は加算ではなく代入で行われるため、基本的には複数の移動を同時に行うことができません*1。例えば、Shakeしながら移動させようとすると、Shakeか移動のどちらかが打ち消されてしまい意図した通りには動きません。しかし、やり方を工夫する…

【Unity】ソースコード編集->エディタプレイの手間を減らす(Mac)

MacでのUnityのプログラミング環境に不満があったのでちょっと改善してみました。 2018/08/19 追記 : Visual Studio Codeの場合のやり方を追加しました。 MacでのUnityプログラミング作業フローの不満点 改善後の作業フロー 方法 VisualStudio For Mac側の仕…

C#とC++の比較

C#を勉強中なのですが、C#はC++とかなり似ていながらも微妙な違いもあったりして、そこが結構ややこしいです。そこでC#とC++の違いをまとめてみました。 注意 C#はC#3.0(.Net Framework 3.5) を想定*1しています C++はC++14あたりを想定しています 「C#とC++…

【C++アイデア】ラムダ式で発生しがちな不正な参照(ダングリングポインタ)を回避する

C++

C++11から導入されたラムダ式はとても便利な機能ですが、その使われ方から不正な参照いわゆるダングリングポインタが発生しやすい機能でもあります。今回はその回避策を考えてみます。 なぜ不正な参照(ダングリングポインタ)が発生しやすいのか 不正な参照の…

【C++】C++関連ブックマーク

C++

C++関連でよく使うサイトや気になった記事をここにまとめておきます。 リファレンス cppreference.com : 有志で運営されているらしいC++のリファレンスサイト。情報が非常に充実している cpprefjp - C++日本語リファレンス : 日本語のC++リファレンスサイト…

【C++】弱参照クラスを自作する

C++

C++11から標準ライブラリにstd::weak_ptrが入りました。std::weak_ptrを使うことで弱参照を行えるようになるのですが、ちょっと使い勝手が悪いので弱参照クラスを自作してみました。 ちなみに、弱参照の良さについてはこちら↓で紹介しています。 【C++】弱参…

【C++】弱参照のすすめ

C++

弱参照というものをご存知でしょうか。弱参照はとても便利で個人的にも気に入っている仕組みなのですが、この便利さがあまり知られていないような気がします。そこで今回は弱参照の良さを紹介したいと思います。 (注意) この記事はC++を前提としています。他…

【C++】初期化子リスト関連機能を大雑把に理解する

C++

C++11から初期化子リストが導入されました。初期化子リストは簡単に見えて結構難しい機能です。そこで初期化子リストを大雑把に理解するための記事を書いてみることにしました。理解することを優先しているので言葉の定義などが不正確だったりするかもしれま…

【C++】C++14勉強メモ

C++

「C++11のお勉強」に続いて、C++14のお勉強です。 2進数リテラル 通常関数での戻り値型の型推論 decltype(auto) 後置き戻り値型でのauto ラムダ式の初期化キャプチャ ジェネリックラムダ 変数テンプレート constexprの制限緩和 deprecated属性 数値リテラル…

【C++】C++11以降の戻り値型の記述方法まとめ

C++

C++11になり、後置き戻り値型、auto型、ラムダ式が導入され、戻り値の記述方法が大幅に増えました。またC++14でさらに新しい記述方法が加わったのでとてもややこしいことになっています。そこで戻り値型の記述方法をまとめてみることにしました。(勉強中のた…

【C++】C++11勉強メモ

C++

ずっとC++03縛りを続けてきましたが、そろそろC++11に手を出してもいいだろうと思いC++11の勉強を始めてみました。C++11の情報はcpprefjpさんのページを参考にしています*1。 新機能/変更点 auto decltype 範囲for文 初期化子リスト 一様初期化 ムーブ(ムー…

MacとWindowsで共通のバッチファイル(シェルスクリプト)を利用できるようにする

Windowsにはダブルクリックでスクリプトを実行できるバッチファイルという便利な仕組みがあります。Macにはバッチファイルというものはありませんが、拡張子を.commandにしたシェルスクリプトを用意することでバッチファイルと同じようにダブルクリックでス…

【Mac】ブラウザ(HTML)上から任意のプログラムを起動する

通常、ブラウザ上から任意のプログラムを起動することはできないようになっています。これはおそらく安全性のためなので、ブラウザ上から任意のプログラムを起動することは不可能だと諦めていたのですが、最近ついにその方法を発見したので紹介したいと思い…

BlocksとGCD(Grand Central Dispatch)についてのメモ

iOS

久しぶりにiOSプログラミングをしてみたところ、GCDについてさっぱり忘れていたので、次からはすぐに思い出せるようにメモ。 Blocksとは Blocksメモ GCD(Grand Central Dispatch)とは Dispatch Queue Dispatch Queueの種類 Dispatch Queueの入手 逆引き リン…

【OpenGL】個人的逆引きリファレンス

個人的な覚書としての逆引きリファレンスです 今のところ OpenGL ES 2.0 のみを対象としています 思いついたら追加していきます 現在のフレームバッファ(カラーバッファ)のサイズを取得する iOSでデフォルトのフレームバッファをバインドする(GLKViewControl…

Macでビルドした実行ファイルが、libJPEGが原因で落ちる場合の対処法

久しぶりにMacでビルドしたプロジェクトが以下のようなエラー出力とともに実行時に落ちるようになっていました。 dyld: Symbol not found: __cg_jpeg_resync_to_restart Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO …

【Nim】マクロプログラミング用メモ

Nim

ドキュメント : macrosモジュール Nim Tutorial (Part III) 定数 型の種類一覧 NimTypeKind = enum ntyNone, ntyBool, ntyChar, ntyEmpty, ntyAlias, ntyNil, ntyExpr, ntyStmt, ntyTypeDesc, ntyGenericInvocation, ntyGenericBody, ntyGenericInst, ntyGen…

【Nim】コンパイラソースコードリーディングのためのメモ

Nim

ファイル トークン種類(tk) ASTノード種類(nk) シンボル種類(sk) シンボルフラグ(sf) 内部型種類(ty) 内部型フラグ(tf) コンパイラマジック定数(m) ファイル compiler main.nim : コンパイラ起点 lexer.nim : レキサー parser.nim : パーサー ast.nim : AST …

10年前のMac mini(2007年製)にLinux(Ubuntu)をインストールする

新年明けて何か新しいことをしようと思い、前々からやりたかったMac miniのLinuxマシン化をやってみました。 今回、Linuxマシン化したのは2007年製のMac miniです。つまり10年前のパソコンということです。このMac miniは性能的にはまだまだ使えるはずなので…