Giter Site home page Giter Site logo

gnstg's Introduction

課題レポートで作ったゲーム。Cによるオブジェクト指向で作った。

XCodeまたはCygwinでコンパイルできます。
32bitにしてコンパイルしてください。64bitでは動きません。


以下、Conceptualの内容。
------------------------------------------------------------------------
*エセオブジェクト指向
このゲームでは以下の理由によりC言語でのオブジェクト指向風の記述をしています。

*他への移植性を考えると、Apple Obj-Cは現実的ではない
*といってGNU Obj-Cはライブラリサポートが無い
*C++は嫌いというか分からない

クラス(構造体)に対するメソッド・共有変数・列挙子はそのクラス名で始まります。
例) GNSTPlayer -> GNSTPlayerCreate, GNSTPlayerRelease...

継承されている場合キャストを使ってアクセスできます。
例) GNSTEnemyをGNSTCharaとして扱う。
(GNSTChara*)enemy


*接頭語
ゲーム内で使う型・変数・構造体・列挙子には次の接頭語が付きます。
GN: ゲームに使う基本型
GNST: シューティングゲーム向けの型

*拡張
ヘッダファイルを変更すれば難易度を変えられます。
その他の追加も事前に用意されているライブラリの範囲内なら簡単にできるでしょう。
ただし、キャラクタの追加は描画命令を追加する必要があります。


*クラスとメソッド
GNAnim: アニメーション(フレームレートと時間を指定してフレームでのアニメーション)
GNMotion: 点の規則に従った移動
GNSTMap: ゲームのステージ・当たり判定
GNSTChara: キャラクタ
 +---GNSTEnemy: 敵(ボスも) (GNSTCharaを継承)
 +---GNSTPlayer: プレイヤー (GNSTCharaを継承)
GNFont: 文字を表示
GNSTBackg: 背景
GNSTInfoView: 得点などの文字を表示するView
GNNumberView: 数字を表示するView
 
*ユーティリティ関数など
GNShape.c : 図形の描画
GNGeometory.c : 座標系の基本型
GNSTCharaDraw.c : キャラクタの描画(編集・リンクしやすいように別ファイル)
main.c : メイン・GLUTインターフェース
*Param.h : ゲームや定義されたキャラクタの属性

*キャラクタ
デザインは適当。
色は全体に日本の伝統色を使用しています。なので、全体が地味な雰囲気...

*ポータビリティ
GLUTとOpenGLが使える環境であればおそらくそのまま移植できます。

*その他
./gnstg -d でデバッグモード(ソース参照)

gnstg's People

Contributors

novi avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.