楽しく学べるプログラミング情報を発信してるよ。PHPをメインにピカチュウで学ぶオブジェクト指向など、ワクワクしながらゲーム感覚で学習しよう。LaravelやjQueryなど実践で活用できるものを中心に取り扱ってるよ。
よく分かるSEO対策、ド素人のためのネットワーク講座、初心者が最短でPHPを使えるようになるための実践的な学び方、などのシリーズで初学者やこれから学習をスタートするひとも読みやすいものが盛り沢山です。WEBプログラミングが中心ですが、デザインの知識や独立・フリーランスで活躍するためのノウハウも公開しています。
get_template_partで引数を渡す方法(WordPress5.5以降)
WordPressを触ったことがある人なら待望の機能が5.5より実装されました。それがget_template_partで読み込み先のファイルに変数を渡す方法です。今までは変数の受け渡しが出来ずに、渋々php本来の機能であるincludeを使っていた方も多いでしょう。ついに待望の変数渡しができるようになりました。
システムエンジニア向けまとめ情報サイト IT News Checker
プログラマーやシステムエンジニアには欠かせない情報収集。自身が行なっている作業を「ブログ(サイト)」という形にしたのが「IT News Checker」です。日々の情報収集に苦労している方や、最新情報が中々手に入れられない人は、ぜひお立ち寄りくださいませ。きっと役立つ情報が得られるでしょう。
PHPポケモンのわざマシン実装!最後のステップは「忘れさせる技の選択」です。バトル画面や進化画面と同じように、ホーム画面用のサービスを作成して、対象ポケモンの技入れ替え処理を作成します。post値やレスポンスを上手く活用してポケモンや技の特定しながらわざマシンアイテムの機能を完成させましょう。
わざマシンを使って技を習得させる処理を実装します。過去に作成したレベルアップによる技習得処理を活用しながら、別方向から呼び出し、また汎用性のある処理は共通化しながら実装していきます。トレイトやクラスメソッドを上手く活用しながら、管理がしやすく保守性の高いアプリケーション開発を意識していきましょう。
自分だけのポケモンに育てていくためには、わざマシンの存在がなくてはならないと言えます。PHPポケモンでも初代のわざマシンリストを参考にしながら、実装していきます。使用できるポケモンの判定方法や、クラス定数先のクラス定数へアクセスする方法などを、constant関数やdefined関数についても活用方法を紹介します。
自炊は割高になってしまう、そう考えてしまう方は多いはずです。特に一人暮らしの方にとっては悩ましいポイントです。しかし、それは調査不足と言わざるを得ません。ビジネスの仕入れと同じで、食生活も1食という単位で考えてしまうから解決が難しいのです。そして買い物に関しても、今一度向き合ってみると新たな発見があるはずです。
遂に「かみなりのいし」の実装です。103回で遂にピカチュウに進化のときがやってきました。前回作成した処理を使って、アイテムが使えるポケモンの判定、使った際の進化処理までの移管までの最終部分を組み上げていきます。過去作成したトレイトや汎用サービスを使いながら、紐付けすることで新しい処理を作り上げます。
ポケモンではレベルアップ以外にも進化条件が様々用意されています。その中でも初代で力を奮ったのが「石」を使った進化です。低レベルからでも種族値をあげることができ、序盤でゲットできてアイテムも入手できるポケモンは即戦力となりました。ポケモンの主人公格であるピカチュウの進化条件でもある「かみなりのいし」を実装しましょう。
ゲームバランス調整編 DateTimeクラスの活用 PHPポケモン 101
ゲーム感覚で楽しくPHPを学習できる「PHPポケモン」。今回はゲームバランス調整編として、DateTimeクラスを使った日付の比較(日付またぎ判定)やトレーナー戦の上限回数の監視処理を実装していきます。フロント側だけの制御ではなく、バックエンド側での制限をしっかりと作り込むことでバグを回避していきましょう。
記念すべき第100回目を迎えたPHPポケモン通信。ユーザビリティを向上させるために、jQueryのライブラリであるtoastr.js(トースト)を導入して、メッセージの表示をより見やすくしていきましょう。新しいメッセージの追加から、現在表示しているメッセージ機能の拡張方法をわかりやすく解説していきます。
EC-CUBE4内にWordPressを設置(共存)する方法
ネットショップのCMS「EC-CUBE4」の最新版と、ブログCMS「WordPress」の最新版を共存させる方法をまとめました。今回の目的は、EC-CUBE4をメインとして、blogというパスでアクセスした際にWordPress管理化を使用するといった構成となります。両者の強みを生かしたECストアを作り上げていきます。
ひとのものをとったらどろぼう!教育的ゲームでもあるポケモンの有名なセリフの一つであり、トレーナー戦でモンスターボールを投げることで相手トレーナーから発言されるものです。PHPポケモンでもトレーナー戦に同じ処理を組み込み制御、さらにトレーナー戦で必須となる賞金システムと降参アクションを導入していきます。
トレーナー戦編 バトルシステムへの追加 PHPポケモン 98
いよいよトレーナー戦をバトルシステムへ追加、実装していきます。野生のポケモンと違い、倒しても次のポケモンが出てきたり、トレーナーの演出が必要です。過去に作成したバトルシステムをそのまま活用して、トレーナーとのバトルが成立するように、機能増設をしていきましょう。今、過去に作成したトレイトが役立つときです。
バトルシステムの第2弾、トレーナー戦の実装に向けて機能増設をしていきます。どんなポケモンを持っているか、どんな技を覚えているかなどを細かく設定できるように、storage内のphpファイルに配列を用意、その設定値をトレーナークラスに読み込み、対戦相手を作成するという方法で実装していきます。
バトル中に使用できるアイテムの代表格である「ドーピングアイテム」を実装します。第7世代からは2段階上昇に変更されたプラスパワーを、PHPポケモンでも同じ効果で作成して実際に使ってみます。PHPでは多用していましたが、複数判定で役立つjQueryの$.inArrayについて、使用する利点も合わせて解説しています。
初代から登場した技「かなしばり」をPHPポケモンを使って再現します。相手の技を4ターンの間使えなくするという、他とは異なった効果をもっており、状態変化と併用して縛りを追加します。チャージ技やあばれる、ゆびをふるなどの技の変化するものなどによって判定がことなるため、分岐をいくつか設けながら実装していきます。
本格的なβ版へ向けて、待望のセーブ機能をPHPで実装します。今回は簡易的にセッションが引き継げるかどうかを確認するため、ファイルシステムを活用した書き込みと読み込みで実装しました。セッションのエンコードとデコード、書き込んだレポートの呼び出し方など、必要機能を揃えながら正常に稼働するか試してみます。
児童デイ(児童発達支援・放課後等デイサービス)で使える人員配置カリキュレーターを作成しました。神戸市仕様としていますが、基本的には全国対応となっています。現段階では重度加算は非対応となっていますが、児童指導員・専門(保育士等)・その他の従業者の加配加算も含めた算出には対応しているので、ぜひご利用ください。
オブジェクト指向を使った開発で、まだまだその便利さをフル活用できていなかったので、状態異常や状態変化などのクラスを使ってより保守性を上げられる構成に見直しをしていきます。静的メソッドを使ったり、サービスなどの役割分担も意識しながら、今まで作成してきた処理関係を1つずつ見直し、修正をかけていきます。
パーティーやボックスにいるポケモンの隣のポケモン情報へ移動する際に、両隣のポケモンが特定できなければなりません。詳細移動がスムーズにでき操作性があがるように、配列から隣の要素を特定するためのメソッドを追加します。合わせて、bootstrap4のモーダルを使った、モーダルの切り替え方法についても解説します。
画像によっては公開ディレクトリに置きたくなくても、必要に応じて表示させたいものがありますよね。ですが、普通に設置した場所へのパスを通そうとするだけでは思うように表示させることはできません。今回は、非公開ディレクトリの画像をbase64に変換して表示させる方法について、パスの取得方法と合わせてご紹介します。
これってスパム?amazon・paypalを装う悪質メールの対処方法とは
amazon・楽天に続いて三井住友やpaypalを装った悪質メールもちらほら発生しています。なぜスパムは届くのか?メールアドレスはどこから漏洩しているのか?巧みなメールを届かないようにすることはもちろん必要なことですが、そのメールが正しいものかどうかを見極めるスキルこそが、現在は求められているのです。
ゲーム開発において、データ容量を抑えたり、処理速度を早めるといった取り組みは、ユーザー満足度にも直結するため避けては通れません。近代のゲーム機ではスペックも高くなり、3Dを使ったアニメーションなど高負荷な処理にも耐えられるようになっていますが、WEBブラウザでは一体どれぐらいまで考慮すべきなのか、考えていきましょう。
オブジェクト指向をもっと理解しよう!PHPで多くの人が躓くポイントであるオブジェクト定数と静的変数についてピカブイコンビを使って解説します。staticやselfでアクセスした際に参照できる値や、プロパティとの違い・使い分けるポイントについて、ポケモンという存在を使って、楽しくわかりやすく読み解いていきます。
レベルの低いポケモンを育てる際の手段の1つ、それが交代による経験値分配です。現在はフィニッシャーのみに経験値が割り当てられる仕様になっていたので、算出式を見直しして戦闘に参加したポケモン全てに経験値を割り振るように機能実装します。技習得ポケモンや進化の重複などにも影響するため、合わせて見直ししていきましょう。
PHPポケモンα版の大型アップデートを実施しましたので、その詳細や今後の開発方針についてまとめました。今回のアップデートにより、デザインを一新したため、過去にプレイしたことがある方でも、新鮮な気持ちでゲームができるでしょう。ブログ内では未紹介の機能もいくつか実装されているので、色々と探して遊んでみてください。
ポケモンに出会い、仲間にすることで得られるものがある・・・そうそれこそが「ポケモン図鑑」のデータ。PHPポケモンでも出会ったポケモンが記録されるポケモン図鑑を作成していきます。配列歯抜けの埋め方(array_fill)や、キーの一括置き換え(array_combine)を駆使してゲームを再現していきましょう。
ポケモン預かりシステム編 システムの実装 PHPポケモン 87
ポケモン預かりシステムの実装、最終章!いよいよPHPポケモンのポケモンセンターにも預かりシステムが設置されました。ポケモンをパーティーからボックスへ移動させる処理、ボックス内のポケモンの特定方法など、PHP関数を駆使しながら実装していきます。大量データを扱う箇所のため、無駄処理回避の方法も合わせて紹介しています。
ポケモン預かりシステム編 ボックスの作成 PHPポケモン 86
ポケモン預かりシステムの軸となるクラスの作成と、その全体の流れを組み上げていきます。ポケモンを預けるという処理自体が、ポケモンオブジェクトを移動させることになるため、処理の不備があればデータが消えてしまう可能性があります。このような不具合やバグを発生させないためにも、厳格なルール付けをしながら構築していきます。
「パソコンの中にパソコンを作る」。初代ポケモンの世界でもパソコンというものは存在します。それが、ポケモン預かりシステムであり捕まえた多くのポケモンたちを格納しておくために必要なストレージの役割があります。大量のオブジェクトを扱うクラスとして処理負荷や速度計算という点にも焦点を当てながら仕様を決めていきましょう。
ポケモン交代編第2弾。通常時ではなく戦闘不能による交代処理を実装します。更新などのイレギュラーな処理が行われても選択肢を問う状態から初められるように、強制モーダルのセッティング方法から再処理回避の判定方法なども含めて作り込んでいきます。WEBプログラミング学習中の方は必見です。
パーティーの編成ができるようになったので、バトル中のポケモンチェンジ機能を実装します。これにより、複数戦力によるコンビネーションバトルができるようになり、今まで非常に難易度が高かったゲームバランスが徐々になだらかになっていきます。開発をスムーズにするためJavaScriptの関数グローバル化も紹介しています。
ポケモンをゲットできるようになったので、PHPポケモンでも複数のポケモンを使いこなせるように機能増設していきます。その最初の段階として、パーティーの並び替え機能を実装します。sortableを使った直感的な並び替え処理、そしてarray_uniqueやarray_diffを使った差分チェック等細かく作り込んでいきます。
楽しくゲーム感覚でPHPを学習できる、PHPポケモン!今回はいよいよモンスターボールの実装、最終段階としてボールアニメーションを作成します。ボールヒット時の開閉処理、ボールの放物線を描く軌道から、揺れアニメーション演出までをJavaScript(jQuery)で再現していきます。
「残念、ポケモンがボールから出てしまった」「ああ、捕まえたと思ったのに」「惜しい、あとちょっとのところだったのに」・・・これらのメッセージは捕獲処理失敗時に表示されるものです。前回定義した捕獲率の計算式を、いよいよPHPポケモンへ実装、本格的にモンスターボールが使えるように作り込んでいきます。
ポケモンの楽しみの1つである、ポケモンを捕まえる処理をPHPで作成していきます。まずそれに欠かせないアイテムである「モンスターボール」を作成、その性能設定と捕獲の際に使用される計算式を組み上げていきます。あの捕獲処理はどのように作られ、判定していたのでしょうか?その内部処理についてみていきましょう。
プログラミング・システム開発を楽しくゲーム気分で学べるPHPポケモン!今回は追加機能の実装に備えて、システムの根幹部分の見直しと整頓をしていきます。トレーナー情報やパーティー機能など、後付けで準備したものには見直しすべき点が多くなっています。それらを今後の追加機能を想定しながら修正していきます。
PHPポケモンにおけるいろんな稼ぎ方、効率良い方法をまとめてみました。真面目に確認してみると(PHPポケモンの)ゲームバランスの悪さが良くわかります。ステータス関係はポケモンwikiを参考にしているので、そっちを見れば同じ値が見れるので、他の値も参照したい方はぜひそちらを参考にしてください。
ブラウザ上で遊べるPHPポケモン!その攻略wiki(仮)が遂にオープンです。最初の小ネタは「4匹からどのポケモンを選ぶべきなのか?」について、1匹1匹にフォーカスを当てて、メリットやデメリットを取り上げてみました。初代技構成、そして最新の技性能とゲームシステムは、果たして吉と出るか凶と出るか・・・!?
ポケモンプロパティ編(全国図鑑No・捕捉率・重さ) PHPポケモン 77
新しい機能を求めて、ポケモンに3つのプロパティを追加します。それが「全国図鑑No」「捕捉率」「重さ」です。ポケモンでは図鑑の完成がオーキドより課せられた指名としてあるので、Noと捕捉率は避けては通れません。そして「けたぐり」などポケモンの重さに影響して威力変化する技も実装するために重さも追加しました。
フレンドリィショップ編 アイテムの販売 PHPポケモン 76
ようこそフレンドリィショップへ!遂にPHPポケモンでもアイテムの購入機能が完成したので開店する次第となりました!しかし、売り注文は受け付けておりませんので今しばらくお待ちください・・・開店記念といたしまして、本番環境へ最新状態を反映・プレイできるようになっております。ぜひ遊んでいってくださいね!
いよいよPHPポケモンでもアイテム機能の実装を開始します。まずは基本アイテムの1つである「キズぐすり」を作成、それをフレンドリィショップへ陳列していきます。アイテムは、ポケモンや技と同様に初代ポケモンで登場したものから優先的に実装していき、ホーム画面ではもちろん、バトル画面でも使用できるように作り込んでいきます。
なぜ、お金を配るの?悪質メール・SNSを利用した詐欺的手法への対処法とは
amazonや楽天を装った迷惑メールがいきなり届くようになった方はいませんか?悪質な手口は年々巧妙なものとなり、本物さながらの悪質メールが送られてくることも珍しくありません。また、Twitterなどで流行っているフォロー・リツイートするだけでもらえるお金配りなど、その本来の目的やそこに潜む危険についてまとめました。
メタモンの代名詞といわれる「へんしん」をPHPポケモンで実装します。他の技とは異なり、新しいオブジェクトを作成・プロパティを置き換えることで、その効果を再現します。へんしんは、メタモンとミュウのみが使える(※スケッチ等を除く)専用の技であり、初代から引き継がれてきた技のであり、ポケモンの楽しさの1つでもります。
おこづかい機能ができても、買えるものがなければ意味がありません。そして、おこづかいを増やす方法が無くても、使い切りになってしまって困る一方です。今回は消費を解決するために、お金を拾える技「ネコにこばん」を実装します。初代でも金策として重宝された技の1つであり、PHPポケモンではおこづかい稼ぎの要です。
ポケモンの必要情報が整ってきたので、今回のPHPポケモンではプレイヤー情報を作成していきます。プレイヤー名の設定や、おこづかい、ジムバッジの取得状況など、初代ポケモンを参考にしながら再現していきます。おこづかいの概念が実装できたら、いよいよ皆さん期待のアイテム要素の開発に取り掛かっていきます。
config実装編(ドット記法・多次元配列) PHPポケモン 71
システム開発をしていると、データベースに保存するほどでもない固定値を定義したくなりますね。今回は、そんな悩みを解決するconfigファイルの作成方法をご紹介します。また、簡単に多次元配列へアクセスできるよう、フレームワークでも採用されているドット記法を使った値の取得方法も合わせてご紹介します。
ゲーム感覚でPHPを楽しく学べるPHPポケモン。大人気ゲームのポケモンをWEBプログラミングで再現していきます。今回は最新世代では採用されいている、フィールド状態やランク補正の表示を、bootstrap4のモーダルなナビなどのコンポーネントを組み合わせながら、PHPポケモンでも作りこんでいきます。
ポケモンの技の中でも初代から重宝されて、特別大会も開かれている「ゆびをふる」をPHPで実装していきます。ポケモンの技の中でも初代から長く愛されてきた1つです。ですが、他の技とは違って通常の追加効果処理では実装できないため、grob関数、preg_replace関数を組み合わせながら特別処理として実装していきましょう。
ポケモン第8世代では使用不可となった「オウムがえし」の実装方法をご紹介します。初代から登場した特別な技の1つですが、その特別感とは裏腹に実践で活躍することはほとんどありませんでした※Z技等を除く。ですが、序盤に登場するポッポやオニスズメが覚えるということもあり、PHPポケモンではしっかりと再現していきます。
データベースを使わずセッションのみで管理をしていると、意外な問題に突き当たります。今回躓いたポイントが「セッション更新後のリダイレクト」についてです。生コードを書くようになると、普段使わない関数にお世話になることが多くなります。session_write_closeの挙動、バトル状態のクラス化についてご紹介します。
内部の作り込みは大事です、けどビジュアルの作り込みはもーっと大事・・・だったりすることもあります。当たり前ですが、プログラム自体がしっかりと作り込まれていなければ、ゲーム(システム)そのものが破綻してしまいます。ですが、ビジュアルはユーザーを惹き付け・獲得するための重要素でもあります。今回は少しその部分に手を加えます。
システム開発ではイレギュラー時の対応や、ある状況下・組み合わせでのみ起こる不具合を想定しなければなりません。それが発生する頻度がごくわずかだったとしても、そういった処理には意外と時間がかかるものです。今回のPHPポケモンでは、それによく似た状況「進化直後の技習得処理」の実装方法についてご紹介します。
パーティー実装編 戦闘に参加するポケモン PHPポケモン64
PHPポケモンにパーティーシステムを実装したので、こちらをバトルシステムにも合わせて導入していきます。今まで作成したものを同じように置き換えていくことで、全てを複数想定の処理にしていきます。基本的な構成は変わりませんが、補完処理やループなどをうまく使いながら、実際のゲームをPHPを使って再現していきましょう。
ポケモンのゲームでは、最大6匹のパーティを連れて旅をすることができます。PHPポケモンでは1匹のポケモンを戦わせ、育てるだけだったので、今回は仲間を連れていけるような仕様を作り込んでいきます。また、パーティーを編成するためにはトレーナーが必要なので、PHPポケモンでは初代主人公のレッドを採用します。
今回のPHPポケモンでは、未実装だった状態異常の演出処理を追加します。システム内部の大幅見直しにより、他の処理と同様に、メッセージに合わせたアクションを起こしていきます。細かな内容ですが、そのために大幅な見直しが要求されることは、システム開発ではよく起こりえます。開発ではしっかりとした要件定義・設計をして望みましょう。
フレームワークやWordPressではおなじみの、どこからでも呼び出せる関数(グローバル関数・ヘルパー関数)を、本格的に取り入れてみました。開発進めていくと、前半に作成した処理の粗が見えてきて、ガッツリ修正になるので結構大変です。ある程度しっかり作っておけば、処理自体を変更する必要はなくなるので考えて作りましょう。
カメのように、毎日コツコツと何かに取り組むことは大切です。ですが、うさぎの用にぴょーんと先に進んでしまえるのであれば、それはそれで大きな魅力ですよね。うさぎとカメが教えてくれたのは、一気にステップアップすることが悪で、スローながらも着実に進むことが正義ということではありません。本当に大切なのは目的なのです。
PHPポケモンの進化演出、フロントエンド(JavaScript・jQuery)の処理作成編です。バトルメッセージ用のJSをそのままお借りしつつ、進化画面用にカスタマイズします。どこでイベントが発生しているのか、どのタイミングで次の処理へ移行させるのかが重要なポイントです。リモートフォームを活用しながら実装しましょう。
ゲーム感覚で楽しくプログラミングが学べるPHPポケモン。今回は進化レベルに達した際の演出と、キャンセル分岐を作成します。進化処理は既に作成済みですが、ゲーム再現にはまだまだほど遠いです。なので、前編でバックエンド(PHP)、後編でフロントエンド(JavaScript)を作り込んで演出を作り込んでいきましょう。
引き継ぎ考慮のメッセージID重複回避編 PHPポケモン 58
システムでは內部でどういった処理がされているかを把握しておくこと、確率を100%または0%にすることは、エラーのない(少ない)システムを作り上げることは重要です。今回は重複率0%にするため、array_filterとarray_diffの説明をしながらPHPポケモンのレスポンス引き継ぎ処理を作り込みます。
連続の技習得編 オブジェクトをセッションへ格納 PHPポケモン57
セッション($_SESSION)を経由してオブジェクトを次の画面へ引き継ぐと、不完全なオブジェクト(__PHP_Incomplete_Class)になってしまいます。ですが、どうしても引き継ぎをしたい場合は、serializeとunserializeを使うことで、オブジェクトの受け渡しをすることができます。
忘れさせる技選択 後編(新しい技を習得) PHPポケモン 56
デバッガーは新しく「サイコキネシス」を覚えたい・・・しかし4つの技で精一杯だ・・・。サイコキネシスを覚える代わりに、他の技を忘れさせますか?・・・。ポケモンではおなじみのフレーズですが、PHPでこの分岐は意外と厄介です。言語にも向き不向きがあります。それを知るためには、実際に使ってみることが一番の近道です。
忘れさせる技選択 前編(覚えるのを諦める) PHPポケモン 55
ポケモンでは技構成がバトルにおける重要要素の1つです。今回は技習得時の処理に「忘れさせる技の選択」を追加します。既に覚えている技を新しい技に置き換えるのか、それとも新しく覚えようとしている技を諦めてしまうのか、Webプログラミングでは少し複雑化する処理途中での分岐処理をPHPを使って実装していきましょう。
ゲームでは重要な演出部分の不具合修正を行います。現段階ではPHPポケモンではHPや経験値バーなどしかありませんが、そのバーアニメーションの挙動を修正します。jQueryのanimateを今まで使用していましたが、新しくjQuery Keyframesというライブラリを使って、よりスムーズで正しい挙動を再現しましょう。
HPが減るのに合わせて色クラスを割り当てする処理は既に実装済みですが、それを動的に変更する機能は未実装でしたので、今回JavaScript(jQuery)を使って実装します。animateメソッドと、bootstrapで用意されている標準の色クラスを割当てながら変更して、実際のゲームを再現してみましょう。
一度使えば、終わるまでやめられない・・・。今回はそんな「あばれる状態」を引き起こす技(あばれる)の実装をします。チャージ技と同じく、PPの減少制御やオートバトルの機能、状態異常と状態変化の処理など今までに作成した処理を組み合わせながら再現していきます。ちなみに、げきりんは第2世代からの登場のため保留です。
フィールド効果技の実装をしたので、今回は「壁技」を作成していきます。初代から導入された壁技には「リフレクター」と「ひかりのかべ」があります。それぞれ物理または特殊のダメージを半減させることができる強力な技です。技クラスの作成、フィールドクラスの作成、ダメージ計算の追加処理を行い、壁技をPHPポケモンで再現します。
楽しくゲーム感覚でWEBプログラミング(PHP)を学習できるPHPポケモン。今回はフィールドに対して影響を与える「フィールド効果技」を実装します。まず初めは、シングルバトルでは採用率低めの「しろいきり」からです。デバフ効果を無効化するため、技クラスの実装方法についても見直しながら原作再現をしていきましょう。
システムの構成見直しと不具合修正についてのまとめです。技やタイプ、ポケモン名の重複回避対策が見直しのメインとなります。合わせてエスパータイプのメインウェポンであるサイコキネシスを実装しています。PHPポケモン(α)のエラー報告についても対応箇所と修正内容をまとめています。お気づきの点があれば報告お待ちしております。
前回に引き続き、経験値取得からレベルアップ時のアニメーション作成を行います。レベルアップ後に表示される変化後のステータスを、WEBプログラミングならではのモーダル機能を使っての演出です。メッセージアクションとモーダルの連携、bootstrap4に用意された機能をフル活用しながら、ポケモンらしさを作り上げていきましょう。
経験値取得アニメーション編(動画有り) PHPポケモン 47
ポケモンの第2世代から導入された経験値バーのアニメーション。これはグラフィックの改善と合わせてユーザーに衝撃を与えました。わかりやすい、そして育てる楽しみが増えるという点において、よりポケモンというゲームにのめり込んだ人は多いのではないでしょうか。今回はその経験値バーとレベルアップのアニメーションを実装します。
初代ポケモンでは多くの人がお世話になったであろう「そらをとぶ」と「あなをほる」の2つの技を実装します。これらは以前作成したチャージ技と異なり、チャージ中に特定の技以外は回避することができるものです。また、チャージ中には威力が変化する技なども存在するため、その細かな仕様も原作を参考にプログラミングで再現します。
すなかけ、かげぶんしん・・・。こういった技に悩まされてきた人は多いのではないでしょうか。今回は命中率に影響する技の実装と、それらを使った泥沼戦を打破するために用いられる交代技「ふきとばし」を導入します。ランク補正の計算方法やバトルの強制終了アクションなど、今まで作成した機能を拡張しながら実装していきましょう。
楽しくゲーム感覚でプログラミングを知れて学べる「PHPポケモン」。ダメージ計算ってどうやっているの?アニメーションはどうやってつければ良いの?そういったことを実際にWebプログラミング(PHP・JavaScript等)を活用して再現しました。注意事項をしっかり読んでぜひプレイしてみてください。
「儲かります」と言われたあなた、その話に乗れば間違いなく提案してきたその人が儲かります。「稼げます」と言われたあなた、その話にのれば間違いなく提案してきたその人が稼げます。「チャンスです」と言われたあなた、それはあなたではなく提案者の「チャンス」です。甘い誘いは危険の香りです。その対処方法についてまとめました。
HPバーアニメーション 後編 フロント側の対応 PHPポケモン 44
サーバー側(PHP)で用意したパラメーターを使ってフロント側(JavaScript)でアニメーションをつけていきます。PHPポケモンもれっきとしたゲームのため、やはり見た目や動き、演出というのは非常に大きなポイントです。非同期処理などPHPでは縁がなかったようなものまでしっかり解決しながら作り込んでいきましょう。
HPバーアニメーション前編 サーバー側の対応 PHPポケモン 43
2回に分けて、本格的な見た目の作り込みをします。まずは手始めとして、HPバーの作り込みからです。HPが減るアニメーションはフロント側でJavaScript(jQuery)を使って計算、再現をしますが、実際の計算処理は今まで通りサーバー側(PHP)で行います。Webアプリケーションならではの使い分けも学んでいきましょう。
初代御三家の「ヒトカゲ」一族が覚える技の1つである「いかり」を作成します。実際に使ったことがある人ならわかるかも知れませんが、他の技と判定や解除のタイミングが異なっており、世代を経る毎に進化と修正が加えられてきた「お悩まし技」のひとつでもあります。それでは御三家レベルアップ技の最終編、スタートです。
ダメージ固定技編(ちきゅうなげ・カウンター) PHPポケモン 41
ポケモンではダメージ計算システムを使用しないダメージ技がありますそれが「ダメージ固定技」です。自分のレベルや相手のHPなど、通常計算で使用するステータスや補正値とは関係なくダメージ量が決定するため、ダメージ量の算出が簡単な分、現段階での処理に新しく追加しなければなりません。今回はそのダメージ固定技を実装します。
ポケモンには強力な技がありますが、その分「反動」というデメリットが存在します。こんかいはそれに該当する初代反動技の「はかいこうせん」と「とびひざげり」の2パターンの反動処理を作成します。行動不能や失敗時の反動ダメージなどは現在の処理だけでは実装できないため、新しく判定を追加しながらゲーム再現をしてみましょう。
プログラミング学習やサイトづくりをゲームづくりで覚えられるPHPポケモン。今回は「みだれづき」や「れんぞくパンチ」などの連続攻撃技と、「つのドリル」や「じわれ」といった一撃必殺技を実装していきます。それぞれ特殊な処理が必要になるので、今まで作成したコードをカスタマイズしながらしっかりと再現していきましょう。
トークン認証とサニタイズ編 PHPポケモン 38 コード配布あり
楽しくゲーム感覚で本格的なPHPを学習できるPHPポケモン。今回はフレームワークを真似て構成の見直しをしました。ルーティングを使ったページの分岐、サービスファイルを使った構成、公開ディレクトリの設定などより本格的な構成に近づけています。現在PHPまたはその他プログラミングの学習に取り組んでいる人は必見です。
ポケモンセンターへようこそ!というポケモンをプレイしたことある方ならおなじみのフレーズです。PHPポケモンでは回復ポイントが設置されていませんでしたので、このタイミングで休憩がてら「ポケモンセンター」を作成します。今まで作成したメソッドを組み合わせるだけで簡単に建設できるので、気分転換に作成してみてください。
楽しくゲーム感覚でPHPの学習ができるプログラミング講座「PHPポケモン」。今回は技ポイント(PP)システムを実装します。技を使うとPPが減る、もし選択された技が使用不可のものであれば「わるあがき」が発動するという、実際のゲーム仕様に近づけていきます。現在未導入ですが、最大値補正についても想定して作成しましょう。
今回のPHPポケモンでは、数あるポケモンの技の中でも特別と言える1つ「わるあがき」を実装します。他のRPGゲームなどとは異なり、ポケモンには通常攻撃がありません。その関係上、わるあがきという救済処置用の技が存在します。技ポイント(PP)のシステムを作る前に、事前準備としてノータイプの特別技を作成しましょう。
バトルシステムも終盤になりましたので、このタイミングでわざ編をお送りします。追加効果や発動条件が未実装の技を作り込んでいき、選択肢を増やしてバトル要素の楽しみを増やします。今回お送りするチャージ技は、次のターンを自動行動させなければいけない少し特別な技です。敵ポケモンのAIも含め、PHPで再現してみましょう。
ゲーム開発を体験しながら楽しくプログラミング学習に取り組める、PHPポケモン。今回は廃人御用達、やりこみ要素の一つである「努力値」システムの実装を行います。すでに努力値というステータスは準備されており、ステータス計算にも反映していますが、肝心な獲得方法がありませんでした。なので、今回は仕組みを再現してみましょう。
楽しくゲーム感覚でPHPを学習するコーナー「PHPポケモン」。今回はこんらん、ひるみ、バインド、やどりぎのタネなどといった状態変化を実装していきます。それぞれに違った判定があり、そのタイミングなどがプログラムを混乱させる要因になりますが、バトルにおける一つの楽しみです。ゲームづくり、ポケモンに興味がある人は必見です。
楽しくゲーム感覚でPHPを学習できるPHPポケモン。前回に引き続き状態異常判定の作り込みをします。毎ターン終了時にチェックがどく、もうどく、やけどのダメージ判定を行います。毎ターンのダメージ量計算や行動順に合わせたダメージ判定など細かく作り込んでいきます。PHPを学習中の方やポケモン好きな人は必見です。
PHPポケモン「バトルシステム編〜状態異常による行動制限〜」30
毎ターンの行動に影響を与える状態異常の判定を追加します。状態異常は戦略的バトルにおける重要素の一つです。バトルシステム終盤では細かな判定やその順序などを本作を参考に作り込んでいきます。楽しくゲーム感覚でプログラミングを学習するPHPポケモン。ゲームづくりに興味がある人やポケモン(本作)が好きな人は必見です。
バトル一連の流れが整ったので、バトル判定に合わせた経験値の獲得処理を作成します。どのレベルのどのポケモンを倒せば、どれぐらいの経験値をもらえるのか。最新世代を参考に、独自の計算方法を導入します。最後には開発で開発で注意しておいた方が良い点を不備修正お詫びとともにまとめているので、学習中の方はぜひご参考下さい。
PHPポケモン第28回はバトルの終了判定を実装します。これで遂にバトル一連の流れが出来上がりました。画面移管などはPHPだけで判定するのは手間なので、前回実装したメッセージ判定のJavascript(jQuery)の力を借りて実装します。PHP学習もとい、Webプログラミングの学習に楽しく取り組んでいきましょう。
Bootstrap4とjQueryの力を借りながら画面の作り込みをします。HPバーもProgressという便利なものが用意されていたのでそちらに置き換え、技選択や詳細表示もmodalを使ってWebアプリケーションらしい方法でゲームを再現します。アプリの開発やプログラミング学習中の方は学習教材としてお使いください。
ダメージ計算を使って、残りHPの計算処理を実装します!見た目をどうしようかと悩んでいましたが、inputのrangeが思った以上にHPバー再現に適していたので即採用しました。今まで作成した処理を組み合わせながら、バトルシステムを作り込んで再現していきましょう。プログラミング学習中の方、ゲームづくりに興味がある方必見!
遂に奴が反旗を翻してきた!今回のPHPポケモンでは技の優先度とすばやさによる行動順序の判定を追加します。そこで導入の必要があるのは「敵ポケモンの行動AI」です。どのタイミングでどの技を選択するのか、簡易AIを作成してバトルの中枢を作り込みます。バトルシステムもいよいよ中盤戦、楽しくプログラミング学習に取り組みましょう。
PHPポケモン「状態異常+逃走編〜ねむり・こおり・やけど・どく〜」24
楽しくゲーム感覚でプログラミング学習をするPHPポケモン!今回は残りの状態異常と「にげる」の判定を実装します。にげる成功にはすばやさの実数値(補正値込み)が必要になるので、前々回実装したランク補正込みのステータス算出式の紹介もあります。ぜひゲームのダメージ計算をプログラミングしようとしている人はご参考ください。
楽しくゲーム感覚でプログラミング学習ができるPHPポケモンのコーナー。今回は状態異常の一つ、まひ状態を実装します。今回新たにarray_ key_firstの関数が登場します。フレームワークの開発ではあまり馴染みのないような、PHPを支えている豊富な関数に触れて、よりPHPへの理解を深めながら学習していきましょう。
PHPの参照渡しを最大限利用します。今回のPHPポケモンでは変化技では欠かせないランク補正の実装です。各技に追加効果のメソッドを追加して、それぞれの技を再現していきます。ステータスの減算と乗算、ランクの引き継ぎと破棄というバトルステータスの根幹づくりにはPHPのオブジェクト参照渡しが非常に役立ちます。
PHPポケモン「バトルシステム実装編〜補正値計算・乱数・急所〜」21
ポケモンのバトルシステムではなくてはならない、急所と乱数の判定計算を実装します。運の要素はチャンスのときには憎く、ピンチのときにはありがたいものです。完全再現にはなりませんが、より近い計算方法を用いながら実装していきます。プログラミング学習に取り組んでいる方や、ゲーム開発に挑戦してみようと取り組んでいる方は必見です。
「ブログリーダー」を活用して、YQUAL -ワイコール-さんをフォローしませんか?