勇敢なタコの冒険-勇敢なタコはあなたのAndroidスマートフォンを征服する準備ができています



こんにちは。 少し前まで、私は自由な時間を過ごしました。それは突然、自分の何か大切なことをやりたいと思っていた時間と一致しました。

そして、普通のプログラマは何をしたいのでしょうか? もちろんゲーム

カットの下で、私の小さな物語は、ほとんど有益な、または異常に刺激的とは言えませんが、それでも...



それはすべて一週間前に始まりました。 原則として、私は全体としてプログラミングにかなりの経験があり、実際にはイグロデールには経験がありませんでした。 約1〜2年前、私はUnity3Dを自分インストールし 、どんな種類の獣であるかを確認しました。そのため、私が知っているのは開発ツールから選択された唯一のものです。 もちろん、すべてをキャンバスに描くことは可能でしたが、おそらく価値がないと判断しました。 この最初の知り合いから、ゲームオブジェクト、コンポーネント、およびUnity3Dで2Dゲームを作成するために正投影カメラを作成できるという事実について、まだいくつかの思い出がありました。 結局のところ、Unityの現在のバージョン(4.3以降)では、「すぐに使える」2Dサポートが登場しました。これは非常に嬉しかったです。 これで、ゲームオブジェクトを作成するプロセスは、スプライトをシーンにドラッグすることになります。 スプライトはさまざまな画面に拡大縮小できますが、幅、高さ、または一般的には面積(または多分sqrt(面積)?)でそれを行うかどうかはわかりません。

ゲーム画面の非常に恐ろしくい初期ドラフトを以下に示します。






はい、それは先史時代の不可能ゲームのスタイルのプラットフォーマーとして考案されました。

ITは突然のインスピレーションの中で描かれました。 男がそれをカップルに見せ、ピンクのメガネを脱いで考え始めました。 なぜなら 開発予算が割り当てられなかったため、私の12歳の妹はアーティスト/デザイナーであると決心しました。

これが彼女に対する再描画の例です。 気分がいい。 ゲームは子供向けに作られているので、グラフィックスが子供向けであるという事実ですよね?






そのため、開発プロセスが開始されました。



大きな間違いの時


レベルコンストラクターについて考えたとき、私はほとんどすぐに最初の間違いを犯しました。 考えた後、結束自体が素晴らしいコンストラクターであることがわかりました。 そして今、必要なすべてのオブジェクトを適切な場所のステージに追加した後、レベルをプレイ可能にしてテストした後、ネクサス5で起動し、5-10程度のfpsを確認しました。 約400個の障害物すべてを一度にステージに追加するのは得策ではないことが判明しました。 そのため、2つのスクリプトが記述されました。1つはすべてのオブジェクト、シーンからの位置と回転角度を読み取り、すべてをテキストファイルに書き込み、2つ目はこのファイルを読み取り、適切なタイミングでその場でオブジェクトを作成しました。 これで、50個のオブジェクトが同時に存在できるようになり、ネクサスは非常に健全に感じられましたが、jiayu g2については言えません。



大きな間違い2


ここで、開発が始まった場所に注意する必要があります。 私の意見では最も単純なものから始めました-ダイナミックな背景を持ちます。 つまり 互いに続く2つのスプライトがあり、左側のスプライトが非表示になると、右側に再配置され、2つのスプライトの無限のパイプラインが移動し続けます。 そして、これがまさにその後の重大なエラーを引き起こしたものです-私はプレーヤーを背景に対して動かしませんでしたが、逆も同様です。 したがって、新しいオブジェクトが出現し始めると、それらも背景とともに移動し、プレーヤーはX軸上で休み続けました。 剛体(物理学のすべての法則に従うコンポーネント、まあ、またはすべてではない)なしでは、コライダー(衝突を追跡するコンポーネント)を移動できないことがわかります。 つまり 彼のアドバイスでは、このリストは、そのようなオブジェクトがコードから作成されている場合でも、最初にそれらを作成し、次に目的の場所に移動してからコライダーを掛けるだけです。 また、ゲーム内のすべての障害は、剛体のないコライダーだけです。 そして、背景がプレイヤーに対して動いていることを考えると...一般的に、私はそれをやり直さなければなりませんでした。 プレイヤーとカメラのみが移動するようになり、jiayu g2ではゲームも非常にスムーズに動作します。



それほど大きな間違いではない


ミスも少なかった。 たとえば、次のコライダーの配置を考えると:



下の方は足で地面に触れて追跡し、すべてが順調でしたが、上の方は素早く痛みを伴う死に至りましたが、プレーヤーが障害物をすり抜けて上部のコライダーに触れることは受け入れられませんでした。 同時に、設定には、連続検出を設定する対応するチェックボックスがあります。つまり、必要なものだけに見えるでしょう。 しかし、物理法則に基づいてプレイヤーがジャンプして転倒した場合、これは物理学でのみ機能しますが、これは許可されるべきではありません。 この場合、遅かれ早かれ、ジャンプするときに変位が生じ、プレーヤーがすべてを正しく行うとプレーヤーは倒れます。

その結果、現在、落下すると、次のように2つの光線が発射されます。



1つのビームが地面に衝突し、2つ目のビームがスパイクに衝突した場合、地面へのタッチがカウントされます。 そして、例えば、仕上げは地面よりも高いです。 したがって、タッチが計算されます。





クリエイティブコモンズを通じて配信するfmaを持つ親切な人々への音楽に感謝します。



まとめ


ふう。 私の自由時間は終わり、いくつかのプロジェクトが完了しました(通常、すべてのイニシアチブは途中で停止します)。 団結については、知識の初期貯蔵を考えると、今ではほぼ無限の回数を知っていますが、これはまだ非常に小さいです。 私は今でも、これらすべてがもっと簡単に、もっと美しくできると感じています。

そして、ここで、一般的に、ゲーム自体はtyntです。



私はほとんど忘れていました! Android'eバージョン4.4以降では、adbを介して画面からビデオを録画できるようになりました。 そのため、ムービーメーカーで約10分でビデオを作成できました。





PSこの場所を読んでくれたすべての人に感謝します!

これは数時間の小さな工芸品のように思えるかもしれませんが、私は1週間かけてそれに時間を費やしました。そして、それがそのような標準的な作業週であるとは考えられず、締め切り前の最終日のようでした 毎日。 そうではありませんが、ほとんどの場合、1週間にわたるハッカソンのように見えます。 一般的に、私は田舎に行って回復しました。 ご清聴ありがとうございました、私は話しました。



All Articles