2012年12月13日木曜日

HSP&C++

今まではシューティングゲームなどをHSPで作っていました。
HSPをはじめた時も「C言語の方がイイ」という内容の文を見たことがありました。
元から「C言語」に移行するつもりだったので、先週辺りから移行しました。



ソースは「Microsoft Visual C++ 2010 Express」で書いています。
MSアカウント(旧Windows liveアカウント)は持っているので簡単にインストールできました。
ソースも講座を見ながら頑張って書いています。
やはり、C言語は難しいですが、HSPの知識でそれなりにわかります。
講座を見ていて驚いたのですが、「goto」が全く使われていません。
HSPではあたりまえだった「goto」が全く使われないのは意外でしたが、これにより「スパゲッティプログラム」になるのを防ぐことが出来るようです。
HSPで開発していた時も、gosubやスクリプトの分割を使ってスパゲッティソース化を防いでいましたが、それでも機能が増えていくにつれてわかりづらくなってしまっていました。
C++でほ、正しく書いていればそんなことは無いと思います。
HSPでわかりづらくなっていた理由として、変数の重複に気をつけるというのもありました。
C++では、ローカル変数は違う関数の中なら同じ名前でも大丈夫なので、多少プログラムを作りやすくなりました。
また、C++は処理速度が速いです。HSPとは比べ物になりませんでした。
シューティングゲームの次回バージョンの公開は今年中にできたらいいなと思っています。

2 件のコメント:

  1. どっかの受験生2012年12月13日 15:14

    で、スパゲッティ化については説明しないのな

    返信削除
  2. >どっかの受験生さん
    C+-言語やったことのある人なら誰でも知っているし、わからなければ検索という方法もあるかなぁ と推測し省略しました。
    一応、コメント欄で自分の理解している範囲で説明します。
    HSPのように、gotoを乱用するとバグが発生した際にどこで発生し、どこを修正すれば良いかを見つける作業が大変になります。(デバック作業)gotoが目で追いかけている間にやってくると、そのラベルまで飛ばなくてはならないからです。
    この、gotoを多用したソースをフォーチャートに表すと矢印が大量に必要になります。その矢印の線がたくさんあると絡まっているように見え、その様子がスパゲッティに見えるからスパゲッティソース(プログラム)といいます。
    スパゲッティ化するとデバックも大変になり、開発速度が落ち、プログラムの動作も重くなるためいいことは殆ど無いでしょう。
    詳しくはこちらをどうぞ⇒ http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%91%E3%82%B2%E3%83%86%E3%82%A3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0

    返信削除