【Python】コマンドライン引数を解析する(argparseの利用)
Python2.7を対象とします。コマンドライン引数の解析argparseを利用する逆引きリファレンスコマンドライン引数を指定して解析する位置引数を追加するオプション引数を追加するオプション引数にデフォルト値を設定する引数を文字列以外で受け取る(変換を行う)引数をユニコード文字列で受け取る(変換を行う)オプション引数をフラグとして設定する引数の個数を指定する引数を複数回指定可能にするオプション引数を...
View Articleゲームにおけるタッチスクリーンの問題点
タッチスクリーンの問題点はタイミングではないモバイルのタッチスクリーンがゲームのコントロールとして最悪である理由を解明した研究論文、フィンランドの大学から | TechCrunch Japan上記の記事ではタッチスクリーンの問題点としてタイミングが不定である点を挙げています。しかし個人的にはiPhoneでゲームをやっていてタイミングに問題を感じたことはありません*1。記事ではFlappy...
View ArticlePillow(Python画像処理ライブラリ)でRGBAパレット形式のTGAファイルを保存する
PillowはPythonの画像処理ライブラリです。PillowはTGAファイルに対応しているのですが、RGBAパレット形式のTGAファイルの保存ができなかったのでソースコードをいじって対応させてみました。ちなみにRGB形式のパレットには最初から対応されていました。注意事項確認したPillowのバージョンは'2.8.2'です。ただし、最新のリポジトリでもRGBAのパレットには対応してないようです。保...
View ArticleMacでフォルダアイコンの色を変更する方法とGitの罠
Macで作業をしていて、ふとフォルダアイコンの色を変えたくなりました。調べてみたところ、Mac標準の機能だけでできることがわかったので紹介したいと思います。また、この方法はGitでちょっと問題がでるのでその対処法も紹介します。フォルダアイコン色の変更手順この動画を見たほうが早いかもしれません。紹介する方法もこの動画とほぼ同じものです。How to Change Folder Colors in OS...
View Article【Lua組み込み】Luaスクリプトのファイル分割を独自のファイルロード処理で行う方法
require関数やdofile関数のファイルロード処理はカスタマイズできないLuaスクリプトを書いていてファイル分割をしたくなった場合、Lua標準のrequire関数やdofile関数を使うと思います。dofile( 'common.lua' ) dofile( 'util.lua' ) --...
View Article【メモ】気になるツールなど
そのうち試してみたいツールなどを忘れないようにメモ。プログラム系プログラミング言語JavaScript : Webサイトだけでなくいろいろな場面で使われてるので覚えておいて損はなさそう。Nim : インデント構文、静的型、強力なマクロ、そしてC言語コードを生成。まだ若い?Haxe : モダンな文法。C言語コード生成可能。Swift :...
View Article【C++ アイデア】関数内でメンバ変数を定義する
メンバ関数の中でメンバ変数の定義ができたら便利だろうなと思ったので、方法を模索してみました。半分ネタです。やりたいのはこういう感じのことです。class A { int m_Value; // こっちは普通のメンバ変数public: void Func( void ) { local int m_State = 0; // 関数内でメンバ変数を定義if ( m_State == 0 ){...
View Article【ゲームプログラミング】ビット演算による点滅処理
ゲームプログラミングキャラクターを点滅させたいとき、以下のような実装にするかもしれません。// C++class Player { int m_DrawCount; public: Player() : m_DrawCount( 0 ){} void Draw( void ) { // 2フレームに1回描画if ( m_DrawCount % 2 == 0 ) { // 実際の描画処理 }...
View ArticleMacで60fpsの画面キャプチャGIF動画を作成する方法
普段、MacでのGif動画用の画面キャプチャはLICEcapというソフトを使っていますが、このソフトで画面キャプチャを行うとフレームレートが30fpsくらいになってしまいます。たいていは30fpsもあれば十分なのですが、ゲームの動画など60fpsにしたい場合もあります。最近、60fpsの画面キャプチャGIF動画を作る必要があったのですが、Macでやる方法がなかなか見つからなかったのでまとめてみます。...
View Article【開発中】2Dアクション「センメツコースター(仮)」
2016年4月から「センメツコースター(仮)」というiOS用のゲームを作っています。2016:08:18 20-37 from shinya on Vimeo.ジェットコースター+アクションゲームな感じです。最初は1ヶ月で完成させることを目標にしていましたが、4ヶ月も経ってしまいました。ゲーム開発って怖い…。...
View ArticleXcode7.3へのアップデート後、C++プロジェクトのビルド時間が異様に長くなる問題への対処
Xcode7.3へアップデート後、QtCreatorのC++プロジェクトのビルド時のリンク時間がやたら遅いなと思っていましたが解決法が書かれたページを見つけ、試してみたところ治ったので共有したいと思います。※Xcode自体でのビルドではなく、Xcode付属のClangを使ったときに発生した問題です。私の環境ではXcode自体でのビルドでは問題ありませんでした。参考(感謝!): Extremely...
View ArticleGitリポジトリの統計情報を見るためにGitStatsを使ってみる(Macで)
プログラミングをしていてソースコードの行数が一体どれくらいになっているのか気になることがよくあるのですが、Gitリポジトリを解析して統計情報を生成してくれるGitStatsというツールがあることを知りました。ソースコード行数はもちろん、ファイル数、コミット回数などの推移も見ることができます。公式サイト GitStats - git history statistics...
View Article【C++ アイデア】複数の名前空間に同じ別名を与える
C++では名前空間に別名を与えることができます。namespace HogeCore {} namespace Hoge = HogeCore; しかし、複数の名前空間に同じ別名を与えることはできません。namespace HogeCore {} namespace HogeGraphics {} namespace HogeAudio {} namespace Hoge = HogeCore;...
View Article【センメツコースター】ライセンス表記
------------------------------- Lua ------------------------------- /****************************************************************************** * Copyright (C) 1994-2012 Lua.org, PUC-Rio. * *...
View ArticleiOS用2Dアクションゲーム「センメツコースター」の紹介
長い間作っていたゲームがようやく完成しました。センメツコースターはiOS用2Dアクションゲームです。広告無しの有料アプリ(240円)です。...
View Articleゲームエンジンを使わずにC++とOpenGLでゲームを作った話
先日、iOS用ゲームアプリ「センメツコースター」をリリースしました。このゲームの開発にはゲームエンジンは使っておらず、C++とOpenGLとOpenALなどで実装されています。最近はゲームエンジンを使うことが当たり前になっており、ゲームエンジンを使わないゲームの作り方があまり知られていない気がしたので「センメツコースター」を例にして、どうやってC++とOpenGLでゲームを作るのかを(大雑把に)紹介...
View Article2Dアクションゲーム「センメツコースター」の開発で使ったもの
先日「センメツコースター」の開発が完了しました。そこで開発に使ったものを紹介したいと思います。制作ツールIDE : QtCreatorテキストエディタ : Visual Studio Codeドット絵作成 : Asepriteスプライトアニメーション作成 : DarkFunctionEditor絵素材作成、アイコン作成、企画書作成 : Sketch(Mac)音楽作成 :...
View Articleプログラミング言語を自作した話
数年前、「Flan」というプログラミング言語を作っていました。このプログラミング言語は長い間C++でプログラミングをしてきて感じた不満をもとに、自分好みの最高のプログラミング言語を作ろうと、そういう考えで作っていました。「Flan」は言語機能的にはだいたい完成していたのですが訳*1あって開発は中断していました。そして中断から数年経ったわけですが、このまま埋もれさせておくのももったいないなと思い、紹介...
View Article【Python】言語仕様メモ
ブール値変換ブール値変換偽になるもの NoneFalse数値ゼロ : 0空シーケンス : '', (), []空マッピング : {}__nonzero__()メソッドがFalseを返すオブジェクト__len__()メソッドが0を返すオブジェクト真になるもの 偽に当てはまらないものドキュメント: 真理値判定
View Article【Nim】Nimメモ
基本情報作者 : Andreas Rumpfさん ( GitHubではAraqという名前 )リンク公式 公式サイト : Nim programming language | NimNimの特徴 : Features | NimNimインストール方法 : Install | Nim言語マニュアル : Nim Manual標準ライブラリ : Nim Standard LibraryFAQ : FAQ |...
View Article