カードゲームの作り方

保護中: 【一時的】デジタルカードゲームの作り方【応用編】

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

ABOUT ME
みじんこ
【名前】みじんこ(ここのブログ書いてるひと) ・大学2年の時に「ゲームが作りたいー!!」って思ったのに、ゲームの作り方を解説してるサイトがことごとく何言ってんのか分かんなくて挫折した。 ・数年な時を経て「だったら俺が完全初心者にも超わかりやすいサイトを作ってやんよ!」って事で、初めてゲームを作ろうとしてる方向けに解説記事を書いてるよ。

POSTED COMMENT

  1. 匿名 より:

    無事に完走することができました。
    とても参考になりました。ありがとうございます。

    自分としては
    ・デッキ編成画面の実装の解説
    ・ガチャ(パック開封)の実装の解説

    この2つが特に気になりますので解説していただけたら嬉しいです。

    1
    • みじんこ より:

      コメントありがとうございます、そして完走お疲れ様です!
      デッキ編成とガチャの実装ですね。了解です。
      「そろそろ次の記事を書こうかなー」と思っている所でしたので、解説記事をちまちまと書いていきたいと思いますね!

      1
      • 匿名 より:

        ありがとうございます!今までの記事のおかげでデッキ編成はなんとかなりました!
        ガチャの方はまだ実装出来ていないのですが
        ①全カードIDのリスト(またはパックから出るカードのリスト)
        ②カードIDと所持枚数を格納しておくDictionary

        を作って①の中からランダムでIDを出力して出力されたカードをDictionaryに追加でいけるかなー?と思っているのですが、大丈夫でしょうか?

        1
        • みじんこ より:

          おー、素晴らしいですね!
          機能の実装の仕方は色々あるかと思いますが、基本的にそのやり方で問題ないと思います!!

          1
          • より:

            お返事ありがとうございます!
            おかげさまでパック開封もなんとかなりました!
            今はCPUのAI実装で悩んでおります

            1
          • みじんこ より:

            >秋さん
            CPUのAI実装は難しそうですよね、、
            私もどうやればいいのか分からなかったので触れずにきました。。笑
            もし進捗あればまた教えてください!!(・∀・)

  2. ヤック より:

    こんばんは、こちらの記事非っっっ常に参考にさせていただいております。
    これまでと同様とても分かりやすい解説ありがとうございます。

    恐らく、もう既に何度か言われてるかもしれませんが、もしできそうであれば、オンライン対戦等のやり方の解説があると非常にありがたいです!

    1
    • みじんこ より:

      ヤックさん、嬉しいコメントありがとうございます!
      参考になったようでよかったです(´∀`)
      オンライン対戦のやり方解説は確かに需要ありそうですね、、
      了解です!ちょっと私も勉強しないとですけど、
      今書いてる解説シリーズを出し切ったら次はオンライン対戦の解説を出すので、首を長めにしてお待ちを、、!

      • ヤック より:

        返信ありがとうございます
        それは非常に楽しみです。
        有料記事出る前から参考にしてたので、待つだけなら大得意です。気長に待たせていただきますね。

        1
  3. より:

    カードゲームの作り方、とても参考になりました!
    オンライン対戦、気長に待ちたいと思います!
    ガチャパックとデッキのはまだ取り掛かっていないのですが、この回で作ったゲームにも組み込める感じですかね?

    あと、質問ばかりで申し訳ないのですが、敵がモンスターをフィールドに召喚するアビリティを使ったときに、モンスターを召喚し終わる前に、以前出していたカードが攻撃可能になって攻撃を始めてしまうのですが
    WaitForSecondsの秒数で調整したらいいでしょうか?
    色々自分で手を加えてしまったので、僕のコードがおかしいかもしれません・

    1
    • みじんこ より:

      コメントありがとうございます!!
      ワさんのゲーム制作のお力になれたならよかったです( ´∀`)

      パック、デッキの内容もシステム的には同じように作っているので、
      今回作ってもらったゲームに取り込めると思います!
      ただ若干のコードの読み替え、書き換えとかは必要なので、
      ゲーム制作に慣れてない場合は一回、別のプロジェクトで実装してみて、
      内容を理解してから、今回のゲームに復習がてら組み込むのがおすすめです。

      >あと、質問ばかりで申し訳ないのですが、敵がモンスターをフィールドに召喚するアビリティを使ったときに、モンスターを召喚し終わる前に、以前出していたカードが攻撃可能になって攻撃を始めてしまうのですが
      >WaitForSecondsの秒数で調整したらいいでしょうか?
      恐らく効果によって待つ秒数が変わると思うので、秒数で調整するのは拡張性の面であまり推奨ではないですね。
      記事の内容通りであれば敵のモンスターの召喚時にも、下記コードのようにyield returnで効果処理が終わるまで処理止めているので、攻撃し始めることはないと思います。
      yield return StartCoroutine(SummonCard(1, false));
      EnemyTurnメソッド内のSummonCardが、yield return StartCoroutineで実行されているか。
      もしくはSummonCardメソッドの内部で実行されている処理もyield returnで処理を止めているか。
      このあたりを確認して頂けると原因が見つかるかと思います!!

      また不明点あったらコメントください!

      • より:

        原因わかりました!ありがとうございます!

        • みじんこ より:

          お、よかったです!
          また何かあったら聞いてください。(`・ω・´)

          • より:

            すみません、また質問いいでいすか。
            ShowChangeTurnPanelのパネルの表示中に手札のカードをフィールドにドラッグすると(ドラッグ自体はできない)手札の中に攻撃カードなどが生成されて表示がおかしくなってしまいます。
            お忙しいとは思いますが、ご教授いただければ幸いです。

            1
          • みじんこ より:

            返信遅くなってすみません!
            あー、確かにそのような挙動になりますね。
            色々対処の仕方はあるかと思いますが、
            一番簡単にターン変更のパネルを画面全体にしてドラッグ自体が出来なくしてしまうのはいかがでしょうか??

  4. あるっす より:

    質問失礼します
    第1章の最後で実行するとオブジェクトが参照ができていないとエラーをはかれました。
    コードはすべてコピペでやっているのですが…
    ご教授いただければ幸いです

    1
    • みじんこ より:

      オブジェクト参照系のエラーは恐らくコードでなく、
      何かしらのオブジェクトのアタッチが出来てないことによるエラーかと思います。
      第一章までは問題なく動いていたなら、確定でそこのミスだと思うので、
      『第一章のアタッチするところ』を重点的に見返してみてください!

  5. akasa より:

    Transform playerHand = GameObject.Find(“PlayerHand”).GetComponent();
    Transform playerHand = GameObject.Find(“PlayerHand”).GetComponent();

    モンスターの能力でカードを引くときにこの文章にエラーがあるといわれるのですがどのような問題が考えられますか?CardContollorの50行あたりのプログラムです

    • akasa より:

      二行目は気にしないでください

    • みじんこ より:

      ※下記のコードであることは前提で話を進めます。(恐らくakasaさんのコメント表示の問題だと思いますが念のため。)
      Transform playerHand = GameObject.Find("PlayerHand").GetComponent();

      んー、パッと見で思いつくのは、
      Hierarchy上に「PlayerHand」という名前のモノがないのでエラーが出ているんだと思いますが、
      もしかして、そもそもゲームを実行する以前にコードを書いた時点でエラーが出てるってことですかね??
      もしエラー内容とかが分かるなら、教えてもらえるとお力になれるかもです!!

  6. akasa より:

    解決しました。
    原因はPlayerHandのPが小文字でした…
    色々とご教授ありがとうございました。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です