Flat Leon Works

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

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

【Nim】クラス定義マクロを作ってみる

Nim

Nimにはクラスという概念がありません。しかし、オブジェクト指向プログラミング自体はサポートされており、object型を使えばクラスとほぼ同じことが可能になっています。ただし、object型の定義が微妙に面倒なことに加え、やはりクラスが欲しいということで…

【Nim】seq型とstring型のリファレンスの罠【追記:v0.19.0にて解決済み】

Nim

[追記] Nimバージョン 0.19.0 で、seq型とstring型のデフォルト値が nil ではなく @[] と "" になりました。この仕様変更により、ここで指摘していた"罠"は根本的に解決されたことになります。一応この記事は残しておきますが、もう気にする必要がないことで…

【Nim】文字列操作

Nim

Nimでの文字列操作関連をまとめてみました。 Nimのバージョンは 0.17.2 を想定しています。( 執筆時の最新バージョン ) 文字列の基本 文字、文字列リテラル 文字、文字列型 文字列関連モジュール 標準モジュール(system,strutils)の文字列関連プロシージャ …

NimとC++を比較してみる

この記事は「Nim Advent Calendar 2017」の記事として登録させてもらっています。 NimはNimソースコードをC言語ソースへ変換するトランスコンパイラ言語です。これは普段C++を使っている人にとって非常に重要なことです。なぜなら、C++(C言語)が使える環境な…

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

Nim

Nimの勉強を兼ねて逆引きリファレンスとしてまとめてみようと思います。随時更新。(最終更新日:2022/4/10) この記事は「Nim Advent Calendar 2017」の記事として登録させてもらっています。 注意: 使用しているNimのバージョンは1.6.0です 間違っているかも…

【Nim】メモ

Nim

基本情報 リンク 標準ライブラリ 言語仕様メモ 諸条件の違いによるマクロ仮引数のNimNode構造の違い テンプレートでのシンボル束縛(bind)について テンプレート仮引数の参照ルール テンプレートの衛生 逆引きリファレンス未作成項目 基本情報 作者 : Andreas…

【Python】言語仕様メモ

ブール値変換 ブール値変換 偽になるもの None False 数値ゼロ : 0 空シーケンス : '', (), [] 空マッピング : {} __nonzero__()メソッドがFalseを返すオブジェクト __len__()メソッドが0を返すオブジェクト 真になるもの 偽に当てはまらないもの ドキュメン…

プログラミング言語を自作した話

数年前、「Flan」というプログラミング言語を作っていました。このプログラミング言語は長い間C++でプログラミングをしてきて感じた不満をもとに、自分好みの最高のプログラミング言語を作ろうと、そういう考えで作っていました。「Flan」は言語機能的にはだ…

2Dアクションゲーム「センメツコースター」の開発で使ったもの

先日「センメツコースター」の開発が完了しました。そこで開発に使ったものを紹介したいと思います。 制作ツール IDE : QtCreator テキストエディタ : Visual Studio Code ドット絵作成 : Aseprite スプライトアニメーション作成 : DarkFunctionEditor 絵素…

ゲームエンジンを使わずにC++とOpenGLでゲームを作った話

先日、iOS用ゲームアプリ「センメツコースター」をリリースしました。このゲームの開発にはゲームエンジンは使っておらず、C++とOpenGLとOpenALなどで実装されています。最近はゲームエンジンを使うことが当たり前になっており、ゲームエンジンを使わないゲ…

iOS用2Dアクションゲーム「センメツコースター」の紹介

長い間作っていたゲームがようやく完成しました。 センメツコースターはiOS用2Dアクションゲームです。広告無しの有料アプリ(240円)です。 レールの上をコースター(乗り物)で移動して敵を倒す(センメツ)するのが目的です。 こんな人におすすめです。 iPhone…

【センメツコースター】ライセンス表記

------------------------------- Lua ------------------------------- /****************************************************************************** * Copyright (C) 1994-2012 Lua.org, PUC-Rio. * * Permission is hereby granted, free of charg…

【C++ アイデア】複数の名前空間に同じ別名を与える

C++

C++では名前空間に別名を与えることができます。 namespace HogeCore {} namespace Hoge = HogeCore; しかし、複数の名前空間に同じ別名を与えることはできません。 namespace HogeCore {} namespace HogeGraphics {} namespace HogeAudio {} namespace Hoge…

Gitリポジトリの統計情報を見るためにGitStatsを使ってみる(Macで)

プログラミングをしていてソースコードの行数が一体どれくらいになっているのか気になることがよくあるのですが、Gitリポジトリを解析して統計情報を生成してくれるGitStatsというツールがあることを知りました。ソースコード行数はもちろん、ファイル数、コ…