はじめのいーっぽ!

アバター
大白定義
記事: 14
登録日時: 14年前
住所: 三重県

はじめのいーっぽ!

投稿記事 by 大白定義 » 14年前

だるまさんがころんだ! というわけで、大白定義と言います。
SNSとか作れるのは、羨ましい。
PerlやPHP、Rubyなんかはちびちび勉強してますが、掲示板とかああいう類のは俺には絶対無理そうですわ。
作れてもひどい脆弱性とかが発見されて総叩きくらいそうで。

というだけでは日記っぽくないので、日記っぽくだらだらと書き綴ろうと思います。
あ、先に言っておきますが、重度のネット中毒者で重度のニコ厨なのでネットスラングばしばし使ってる可能性があります。
(…って書いておけば誤字もネットスラングだと思われるに違いない)

現在、弾幕STGを無計画にダラダラと作ってます。(一応企画書もどきはありますが)
言語はC言語。一応ファイルはcppにしてあるので厳密にいえばC++なのかもしれませんが、クラスとか使ってないのでC言語でいいですよね。

で、今はどの部分に取り掛かっているかというと、弾の部分です。
んでは投稿テストも兼ねて、弾の構造体を載せてみます。

CODE:

typedef struct{
    st_Code   C;
    st_Accel  A;
    st_Speed  S;
    st_Figure F;
    st_Aliver Al;
    void (*Move)(void *bullet);
} st_Bullet;
見事に構造体だらけです。本当にありがとうございました。
別の構造体を貼るとクソタレ長くなるので文で説明すると、上から
「座標」、「加速度」、「速度」、「角度」、「生存」の構造体です。
…と書くと尚更よく分からないかもしれませんが、まぁ内容がどうなってるのかまで書くと長くなるので割愛させていただきまする。
一番下の関数ポインタは、名前の通り、弾の動作の関数のポインタを入れるためのものです。
敵が弾を発射する時に、弾を登録する場面で関数ポインタを登録することで、いちいち別の関数を作ってswitch文で分岐、といった面倒なことをしなくてすむかなぁ、と思ったのでこうしてあります。
効率は悪いかもしれませんが…。

で、なんでこんな風にしたのん?というのは、関数ポインタとかと同様に、めんどい事をできるだけ楽にしようと思ったからです。

もうちょっとkwsk言いますと、
1、引数の数を減らすことで管理が楽になるんじゃないか
2、2つ以上の要素を返り値として出したいときに、構造体をまるごと返り値とすれば楽になるんじゃないか
という2つの楽ができるかなぁ、と思ったのです。

…とまぁ、こんな感じですかね。
聞かれても無いこと語りまくって、書いた後にドヤ顔するのがネット日記の醍醐味だと思うんですがどうでしょう。
まぁそんな感じで、今日は失礼します。
最後に編集したユーザー 大白定義 on 2010年10月16日(土) 21:39 [ 編集 1 回目 ]

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前

Re: はじめのいーっぽ!

投稿記事 by Dixq (管理人) » 14年前

こんにちは、ご登録ありがとうございます^^
こちらのサイトはOpenPNEというオープンソースから作っているので脆弱性の辺りはすぐに割としっかりしたものが作れるようです。

関数ポインタをもし使いたいならクラスを使ってはどうでしょう?
クラスであれば変数と関数のセットが簡単に作れますよ☆

アバター
大白定義
記事: 14
登録日時: 14年前
住所: 三重県

Re: はじめのいーっぽ!

投稿記事 by 大白定義 » 14年前

うはぁ、気づかなかった。6日近くコメント放置しててすみませんorz

C++はすごく便利なんで勉強していきたいんですけどね・・・。
いや、どうにもクラス関連は食わず嫌いしてしまうんですよね。
一応勉強してはいるのですが・・・。