ゲムキTOP > ブログTOP

ハルポップの徒然雑記

ためになる話、どうでもいい話など

マリオの完コピvol.14 スーパーキノコ

ハルポップ 2016-05-17 23:08:35 pv:1982


キノコが現れる演出、これも絶妙によく出来ている。
敵キャラやアイテムは本来、背景より前面に出ないといけない。
それなのに?ブロックを叩いた時、キノコは?ブロックの背面からニョキニョキと出てくる。
つまり、キノコが現れてる最中はBGより背面に描画し、現れたら前面に変更しているということだ。

cocos2d-xでは
node->reorderChild
メソッドで優先度の変更が出来る。

あと本来?ブロックを叩いたら少し上に飛び出るが、動きがあるのでその最中だけBGからスプライトに変えているようだ。
そういった工夫がすごい。

他にもそういうBGとスプライトの工夫はこちらの動画で見れる。
http://www.nicovideo.jp/watch/sm13640458

マリオの完コピvol.13 レンガブロック

ハルポップ 2016-05-16 21:27:28 pv:2158
MySpriteを継承したRengaクラスを作った。
今後のキャラはこのやり方で増やしていこう。
?ブロックやクリボーは間に合わせで作ったのでまたQBlockクラスやKuriboクラスで作り変えないと。
C++だからこうやって作りやすいように作れるけど、当時のファミコンのアセンブリ言語だとどれほど難解だったんだろう。

マリオの完コピvol.12 クリボー

ハルポップ 2016-05-15 23:02:11 pv:3033
クリボーを作ってみる。
その前にスプライト系のクラスを整理。
Spriteクラスを継承したMySpriteクラスを作り、そこに速度や状態の変数を設けた。
参考資料を探していたら、「Javaでゲーム作りますが何か」というページがあり、そこの横スクロールアクションの項目が参考になった。
http://aidiary.hatenablog.com/entry/20040918/1251373370

手持ちの本は、RPGやシューティングやアドベンチャーはあるのになぜかアクションだけない。アクションが意外と難しいという事かもしれない。

そしてこのページの下のほうのリンク集で「Javaで RPGを作ろう!」ってあったがここはまさかの自分のページである。
「マップスクロールが参考になった」と紹介があったけど、あのやり方でいいんだろうか。今ならまた違うやり方になるかも。今回のマリオはレイヤーの考えがあるので簡単に実装できている。

マリオの完コピvol.11 リセット

ハルポップ 2016-05-14 23:12:39 pv:1910
マリオが死んだ後にステージを再セットするように。
初期化とメモリ解放を今のうちきちんと作っておかないと、後々泣く事になる。
Node::removeAllChildren
というメソッドで一括してノードの解放ができるから便利。

マリオの完コピvol.10 ?ブロックのコイン

ハルポップ 2016-05-13 23:52:34 pv:2682
?ブロックを叩いたらコイン出現。
?ブロックの扱いを、敵キャラのようなオブジェクト(ファミコンならスプライト)として扱うか、背景(ファミコンならBG)として扱うかで悩んだが、座標が固定されているので背景として扱う事にした。
1-2の地下で壊せるレンガが大量に並んでいるのも、背景として扱っているから処理落ちしていないのだと思う。

オリジナルのステージを確認したところ、雲や草原にレンガブロックがかぶっているところは一つもなかったので、BGであることは間違いない。コインもそうだった。
こういうところでファミコンは苦労していた事が分かる。
ファミコンではどうやっても動くブロックやコインは作れなかったということだ。