ラベル プログラマ の投稿を表示しています。 すべての投稿を表示
ラベル プログラマ の投稿を表示しています。 すべての投稿を表示

2018年3月24日土曜日

HSPを少しずつ進める。

何事も放置すると、忘れたり、鈍ったりするわけで。
少しずつでもHSPのプロジェクトを完成に近づけなければ。

そもそも、何を作るかすら決まっていないけどな!

さて、今日の目標は、10年前には無かった(はず)module機能についてだ。
追記:過去のソースコードに、#module が記述されていた。ただ、それだけで、modfuncなどは使ってなかった模様。

とりあえず、インスタンスを作り、モジュール関数をコールし、
いわゆる、セッターやゲッターの動作も確認できた。

一通りやった(つもり)なので、早速実践。
ゲームには必須である、画面のフェードイン/アウトアウト機能をmoduleで作ってみる。

基本は、過去に deffunc で作ったものをコピペ…する予定だったが、
目に余るコードだったため(笑)、1から作り直す。

とはいえ、ゲームプログラマなら、
簡単なフェードシステムのコード書くのに30分も掛からないはずだ。

というわけで、出来たものを実行っと。

 う ご か な い !

いや、そんなはずは。
ちまちまとミスはあったが、そんなレベルではない、何かが違う。

試しに module外のメインループに移すと、きちんとフェードしている。
ということは、moduleが独立空間であるがゆえに、何かしらの障害が発生しているということだ。

さて、なんだろうか?
もしかして、module内では、gsel や gcopy などが使えない?
ありえそうだが、マニュアルには、そういうことは、一切書いてない。
さらに、付属のサンプルでは、思いっきり、moduleの中で、gcopyしてる。

まったくわからん!

が、独立空間という観点で見たときの問題が、もう1つあるじゃないか!

ゲーム作りの鉄則として、後から変更がありそうな部分は、define で一括で変更できるようにする。
Windowsのゲームだと、画面サイズなどが真っ先に定義される。
今回も、
#define screenW = 1280
#define screenH = 720
と定義している。
が、定義している箇所は、当然、#globalだ。

module内の gcopyは、

gcopy 1,0,0,screenW,screenH
になっている。

全くエラーは出てないが、これが悪いんじゃね?
というわけで、変更。

gcopy 1,0,0,screenW@,screenH@

ビンゴ!うまく表示されたわ。
うーむ、module内で全く定義せずに使用している変数は、
エラーを出さず、0として使われてるようだな。

マニュアルでは、module内から globalを参照するのは推奨しないとされている。
スクリーンのサイズを取得する変数や関数があるだろうか?

…あった。

画面の描画エリアXサイズ
ginfo_winx
画面の描画エリアYサイズ
ginfo_winy

定数をこちらに置き換えて、動作することを確認。
ま、なければ、セッターで画面サイズ渡せば良いだけか。

こういうのが、やってて面白いところだな。

追記:
#define の後に、global をつけることで、全module対象になるんだと!

#define global screenW 1280

これが正解の書き方ということだな。




2017年5月4日木曜日

啓発本が読みたくなったので買って来た

立ち寄った先に、ブックオフがあった。
スーパーセールで、本が全て20%引きだったのと、転職するという不安定な心理状況もあり、仕事術的な本を読んでモチベーションを上げようと思ったのだが…。
どれも面白くない(笑)

ビジネスの自己啓発本は自分に合わないようだ。
だが、帰り際に、新書ではなく、文庫の方を見たら、ちょいと面白そうな本があった。

↓これだ。

ブックオフの、中古価格で960円。
だが何故か、「レジで半額」という札が貼られており、さらに20%OFFということで、380円の低価格で購入できた。

アマゾンの批評にもあるが、多少、言葉が過ぎる部分がある。
私にもその傾向があるが(苦笑)、さすがに有料で買ってもらう書籍には向かない書き方であると、私でも思う。

だが、内容的には、面白い。
2015年初版なので、そんなに古い話でも無いし。

・プログラマだけがプロジェクトの進め方を知っている(多少誇張しすぎと思うけど)
・良いリーダー ≠ 好かれるリーダー、良いリーダー = 完遂できるリーダー

まさにその通り。
そして、今の会社で完遂できているプログラマのリーダーは…。
多分、私だけである。

ここ数年でリリースしてきたプロジェクトを見てみよう。

・PS3のゲーム
・3DSのゲーム3プロジェクトのセット

これが私が関わってきたライン(プロジェクト)だが、評価は上々。
3DSの1本目~2本目の間は2ヶ月しかない=2ヶ月で作ったんだぜ。
それで、そこそこの評価がもらえているのがスゴイところ。

そして、もう1つのライン(プロジェクト)だが、

・Vitaのゲーム(1)
・Vitaのゲーム(2)

(1)の方は発売延期、(2)の方は、納期厳守のため、内容ボロボロ…。

念のため付け加えておくと、(2)のリーダーは頑張った方である。
(1)の方は…正直言って、誰がリーダーがすら分からない状態だった。

合間合間に、スマホのプロジェクトもあったのだが、どれもリリースにすら至らず…。
どれも端から見てる分には、リーダーとして引っ張る人が居ない…というのが感想。

そんな状態なのに、私が辞めることに、大賛成のようだからな。
まあ、頑張ってくれ(笑)