Flat Leon Works

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

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

【C++】短絡評価(ショートサーキット)を知ろう

短絡評価とは 短絡評価の例 なぜ短絡評価が存在するのか 短絡評価の使い道 ポインタと合わせて使う 軽い処理を先に持ってくる 短絡評価の注意点 まとめ 短絡評価とは 短絡評価とは論理演算子&&と||で行われる、式の評価の省略のことです。ショートサーキット…

【C++ 小ネタ】delete演算子とfree関数はNULLチェックは不要

delete演算子とfree関数はNULLチェックは不要 delete演算子とfree関数は、NULLを渡した場合、何も処理が行われないことが保証されています。なので以下のようなコードは、 if ( p ) { delete p; } このようにシンプルに書くことができます。 delete p; mallo…

【C++】条件演算子いろいろ

条件演算子のメリット 条件演算子の使いどころ 条件演算子ではなくif文を使うべきところ 条件演算子を入れ子にする 条件演算子の注意点 演算子の優先順序に気をつける 結果の型は同じである必要がある 三項演算子という呼び方 まとめ 条件演算子のメリット …

【C++ アイデア】const_castをちょっと楽にする

const_castはちょっと手間 const_on / const_off 関数を作る 使い方 まとめ const_castはちょっと手間 const_castはconstを付けたり外したりするためのキャストなのですが、ちょっと記述が面倒です。 class PlayerCharacter{}; const PlayerCharacter player…

【C++ イディオム】Pimplイディオムを使って真のprivateを実現する

privateが見えちゃってる問題 Pimplイディオムとは Pimplイディオムのメリット Pimplイディオムのデメリット プライベートクラスを一部に公開する Pimplイディオムを使う場面 Pimplイディオムの注意点 まとめ 参考リンク privateが見えちゃってる問題 C++の…

【C++】クラスの前方宣言いろいろ

クラスの前方宣言とは クラスの前方宣言の用途 ヘッダーでの別のヘッダのインクルードを減らす 相互参照を実現する クラスの前方宣言とポインタ変数の宣言を同時に行う クラス内でそのクラスの内部クラスの前方宣言 内部クラスの前方宣言にはクラスの定義が…

【C++ アイデア】ファイルのフォルダ分けをしつつ、ヘッダのインクルードを楽にする

ファイルのフォルダ分けをすると#includeが面倒になる問題 ファイルをフォルダ分けしたことによる問題 ファイルを移動したことによる問題 解決法?1: フォルダ分けを諦める 解決法?2: 楽に#includeをするのを諦める 解決法3: インクルードパスを設定する 解…

【C++ 小ネタ】ポインタ変数の初期化はif文の条件式で行うと一石三鳥

関数の戻り値やdynamic_cast結果のポインタはNULLの可能性があります。そしてNULLポインタへのアクセスはプログラムをクラッシュさせたりします。 Hoge* p_hoge = GetHoge(); p_hoge->SetValue( 4 ); // p_hogeがNULLだとアウト 当然、if文でNULLチェックを…

【C++】プリプロセッサの基礎(マクロ編)

マクロとは マクロの役割 マクロを定義する 定数マクロの例 関数マクロの例 定義したマクロを削除する #ifでマクロが定義されているかどうかを利用する 組み込みマクロ 可変個引数のマクロ マクロ引数の文字列定数化 マクロ引数の連結 複数行に渡るマクロ定…

【C++ 小ネタ】ブロック文を活用する

ブロック文とは C++にはブロック文というものが存在します。ブロック、あるいは複合文とも呼ばれます。 // これがブロック文 { // ここはブロックスコープとなる } ブロック文はスコープを作り出すだけで、特に意味のない存在のように見えますが、実は結構便…

当サイトのC++記事の基本方針

C++

当サイトが公開するC++記事の注意点と基本的な方針を説明します。 注意点 C++と記述した場合、C++03を指します。 C言語に該当する話題や機能でもC++のものとして扱います。ブログ記事のカテゴリーもC++としています。 ブログ記事はC++11以降について考慮しま…

iOS有料アプリ「うさプレイヤ」の1年目の売上を公開します

初めて作ったiOS有料アプリ「うさプレイヤ」をリリースしてから約1年経ちました(2015年1月23日にリリース)。せっかくなので振り返りを兼ねて売上を公開したいと思います。有料アプリの売上ってあまり見たことがないので貴重かもしれません。 ( 目次 ) アプリ…

GLFWをMac環境で動かすとウインドウが表示されてないときのみCPU使用率が異様に高くなる場合がある

Mac環境でGLFWを使ったプログラムを書いていて気付いたのですが、ウインドウが表示されていないときのみCPU使用率が異様に高くなります。ちょっと調べてみたところ、glfwSwapBuffers でvsync(垂直同期)が発生しなくなってるのがわかりました。つまり、ウイン…

近況

新 ↓ 旧 2019/02/04 「うさプレイヤ」をバージョンアップ 2019/01/14 「うさぎのソリティア」が完成 2018/03/27 「うさプレイヤ」をバージョンアップ 2017/07/09 「センメツコースター」が完成(結局1年以上かかってしまった) 2016/04 横スクロールアクション…

SwordGirl(仮)の開発状況

一応、見た目でわかる部分の進捗は Vimeo に動画を上げています。(最近さぼりがち) ※現在開発中断してます 完成度 : 10% (2016/04) 2015/04 開発開始 プレイヤーキャラデザインを考える Asepriteを使いはじめる。棒人間でアニメーションを作ってみる 2015/05…

SwordGirl(仮)の開発環境

普段はゲームプレイを含めMac上で作業していて、たまに操作感の確認などのためにiOSで動かしています。 ※今のところ配布はiOS版のみを考えています。 OS : MacOSX プログラム プログラム言語 : C++ 描画ライブラリ : OpenGL(Mac) / OpenGLES(iOS) サウンドラ…

はてなブログ(無料版)でLightboxとbxSliderを利用する

はてなブログを使って運用している「うさプレイヤ公式サイト」にLightboxとbxSliderを導入してみたので、そのときのメモ。 補足 はてなブログとは別にファイルをアップロードする場所も必要になります。 私はGoogleドライブに置くようにしてます(2016/08/10 …