ホームページ >php教程 >php手册 >PHP Webゲーム開発入門チュートリアル1(Webゲームデザイン)

PHP Webゲーム開発入門チュートリアル1(Webゲームデザイン)

WBOY
WBOYオリジナル
2016-06-13 12:21:101699ブラウズ

1. シンプルなプログラムフレームワーク。
ウェブゲーム プログラムは次のとおりです:
3 つの部分。
1 つ目はデータ フローです。 2つ目は手続きです。 3つ目は芸術です。
このうち、データフローには関数が含まれます。データフローは関数にのみ反映されます。
データ処理はかなり面倒なので後述します。
たとえば、製品を販売および購入する最も簡単な方法です。
この機能を実装するには。
次に、基本的な製品テーブル、製品詳細テーブル、店舗テーブル、およびバックパック テーブルが必要になります。スケーラビリティを強化する場合には、対応する二重テーブルが必須となります。
テーブルにある質問はどれも簡単です。重要なのは、このアイテムが何に使用されるかです。そのようなアイテムのソースは多くのデータであり、アイテムの方向性もまた多くのデータです。
最後に、データを一周する必要があります。
サークルというのは難しいものです。特に、より多くの関数と小道具がある場合。難易度は2のn乗です。

デザインパターンに習熟している方は、ぐるぐる回る前に。そうすれば、プロセスを簡略化することができます。難易度は2のn乗から1に変化します。
必要な仮想クラスは 3 つだけです: コントローラー、イベント ファクトリ、抽象プロップ ファクトリに加えて、タイマーとタスク エディター、これら 2 つの一般的なクラスです。つまり、堅牢で拡張性の高い Web ゲームを構築できます。
ウェブゲームでは、コントローラーはページとほぼ同等です。あらゆるテンプレート技術を使用して簡単に処理できます。
イベント ファクトリは抽象クラスであり、作業、戦闘、移動などのすべてのイベントはイベント ファクトリによって生成されます。インターフェイスも同じなので、コントローラーの制御に便利です。ファクトリーモード。
抽象小道具ファクトリーは、都市、地図、機器などのすべての小道具は抽象小道具ファクトリーによって生成されます。インターフェイスは同じで、ファクトリー モード、イベントとプロパティの組み合わせはブリッジ モードです。

アート:
UI。シンプルで美しいインターフェースには常に利点があります。小さなアイコン。小道具、地図、装備。 1 つのカテゴリに少なくとも 10 個はありますよね?およそ数百個が必要となります。
プログラムは 5 つの部分に分かれています:
サーバー タイマー。 (C言語または独自のサーバーのセットアップ) タイミングループで特定のコードを実行します。このコードは主にデータベース内のデータに基づいて更新されます。これを行う C 言語プログラマーを見つけることができます。 C 言語プログラマにとって、この関数は非常に簡単です。もちろん、データの加工やデータベースの運用の具体的な判断は自分で書く必要があります。 C プログラマーに標準コードを提供してもらうように依頼してください。 SQL ステートメントを完全にサポートします。
php の場合、それを実装するように corn を設定できます。ただし、どのようなオペレーティング システムであっても、最小構成時間は 1 分です。したがって、1 秒に 1 回更新される状況に対処したい場合。それを処理するための特別なタイマー プログラムも必要です。または、実行がスケジュールされている PHP に sleep() を含める必要があります。もちろん、リアルタイムの対話がある場合でも、サーバー側は無視できます。クライアントのみが対話の両側を処理します。 jsとajaxの実装。
機能ページと機能。主なものはデータアクセス、判断、データ方向です。
抽象クラスの使用が容易になります。ただし、サブカテゴリーの爆発的な増加は不可欠です。
ajax 関数。 (オプション) 擬似リアルタイムを必要とする特定の機能によって使用されます。
ゲームをよりクールに見せるため。使ってください。
JavaScript 関数。 (オプション) クライアント側のデータ計算をシミュレートします。つまり、ウェブゲームの時間関連データです。 2つの部分に分かれています。その一部は実際のデータであり、サーバー側のタイマーによって計算されます。他の部分には初期値のみがあり、クライアントの表示に使用されます。リアルタイム同期は必要ありません。シミュレートされた同期のみが必要です。
ここにはいくつかの美しい UI エフェクトも含まれています。結局のところ、それはゲームです。
データベース。基本データテーブルと詳細データテーブルの束。基本データテーブル:例えばレベル1からレベル100までのユーザーの初期属性値。詳細データ テーブル: 各ユーザーの特定の属性。
データベースを可能な限り最適化します。構造体が 1 バイトを使用できる場合は、2 バイトを使用しないでください。

2. 詳細な例。
データ フローについて単純に議論するのは困難です。
コードを示さずにプログラムについて議論するのはさらに苦痛です。
ここではphp mysqlが使用されています。また、この例ではクラスを使用しません。十分な時間があれば、今年末までに、デザイン パターンを使用するメリットを説明するために、リアルタイム インタラクションを備えたシンプルな Web ゲーム コードとコア クラスを提供する予定です。
非常に単純なウェブゲームの観点から説明しましょう。適切なコードと組み合わせます。役立つはずです。欠点があればご指摘ください、個人的には助かります。
ゲームの遊びやすさ、数値バランスなどは考慮しておりません。まず、簡単な例の実装だけを考えてみましょう。
それでは、ウェブゲームの基本的な内容は何でしょうか?
データベース: プレーヤー、マップ、都市、建物、武器、兵士。
機能: ログイン、アップグレード、個人戦、兵士間の戦い、都市との戦い、建物の建設、武器の製作、小道具の売買。
(注: 各関数は 1 つ以上のデータ テーブルに対応する必要があります。上記のデータベースにリストされているものは基本の基礎にすぎません。)
最初は、地図、都市、建物です。
ここでは、複数の地図が存在し、都市が地図上にあり、建物が都市内にあると考えられています。
マップテーブル
Map:Map_ID、X 座標、Y 座標、City_ID (都市 ID)、説明。
Map_ID はマップの ID を指します。自動採番ではありません。マップは Map_ID であり、これを繰り返すことができます。
城市表
City:City_ID,城市名字,城市所有人,城市等级,城市资源,描述。
建筑表
Build:ID,City_ID,建筑名称,建筑等级,建筑功能。
其中,地图表确定城市的位置,城市表确定城市的相关数据以及所有人,建筑表内的多条信息属于某一个城市。
建表后,显示出来。
一个for循环。把地图表整个取出来就ok。
跟普通网站的新闻列表没太大区别。不同的是,你需要取得X坐标和Y坐标定位。可以用tabel也可以用div。


Code

复制代码 代码如下:


class Map//地图类
{
var $Map_ID;
function Map_bg_css($Map_ID) {

$this->Map_ID = $Map_ID;

mysql_select_db($db_name,$link);
$sql="select * from map where Map_ID='".$this->Map_ID."' limit 1";
$result=mysql_query($sql,$link);
echo "