RPG Class

RPG ゲームで使用する Object Class を作成します。

RPG Object Class

  1. RPG ゲームで使用する Object Class(class rpg_class) です。
    Class の主要な機能は DB(Data Base) を介しての情報交換です。
    DB の基本的な説明は RPG データベース を参照して下さい。
  2. RPG で使用する Object Class(rpg_class.php)です。
    utf-8 でタイプしてアップロードして下さい。
    <?php
      header("Content-Type: text/html; charset=utf-8");
    class  rpg_class
    {   var $name;          //Image Name
    
        // Constructor
        function rpg_class()
        {   $this->name = '-';
            if (file_exists('rpg.db')==false)
            {   $db = new SQLite3('rpg.db');
                $db->exec('create table table1(id text,img text,name text,x int,y int)');
                $db->exec("insert into table1 values('AA','img/anime1.gif','Dog1',200,100)");
                $db->exec("insert into table1 values('BB','img/anime2.gif','Dog2',300,100)");
                $db->exec("insert into table1 values('CC','img/anime3.gif','Dog3',400,100)");
                $db->close();
            }
        }
        function  put($id, $x, $y)
        {   if ($id=='-')   return;
            $str = "update table1 set x=$x,y=$y where id=\"$id\"";
            print "UPDATE : $str<br>\n";
            $db = new SQLite3('rpg.db');
            $db->exec($str);
            $db->close();
        }
        function  draw($id, $x, $y)
        {   if ($id=='-')   return;
            $db = new SQLite3('rpg.db');
            $results = $db->query("select * from table1 where id like \"$id\"");
            $row = $results->fetchArray();
            $db->close();
            $img = $row[img];
            $str= " style=\"position:absolute;left:{$x}px;top:{$y}px;\"";
            print "<img src=\"$img\" name=\"Dog\"" . $str . ">\n";
        }
        function  view($idw)
        {   $db = new SQLite3('rpg.db');
            $results = $db->query("select * from table1");
            while($row = $results->fetchArray())
            {   $id = $row[id];
                if ($id!=$idw)
                {   $img = $row[img];
                    $name = $row[name];
                    $x = $row[x];
                    $y = $row[y];
                    $str= " style=\"position:absolute;left:{$x}px;top:{$y}px;\"";
                    print "<img src=\"$img\" name=\"$name\"" . $str . ">\n";
                }
            }
            $db->close();
        }
        function dbcheck()
        {   $db = new SQLite3('rpg.db');
            $results = $db->query('select * from table1');
            print("<table border='1'>");
            print("<tr><th>ID</th><th>IMG</th><th>NAME</th><th>X</th><th>Y</th></tr><tr>");
            while($row = $results->fetchArray())
            {   print("<td>$row[id]</td>");
                print("<td>$row[img]</td>");
                print("<td>$row[name]</td>");
                print("<td>$row[x]</td>");
                print("<td>$row[y]</td></tr>");
            }
            print("</table>\n");
            $db->close();
        }
    }
    
  3. rpg_class.php の説明です。
    Constructor で 'rpg.db' が存在しないときには、新規に作成しています。
    プレイヤーの ID は、本来なら参加するときにタイプ入力するのでしょうが、今回は 'AA', 'BB', 'CC' とします。
    アバターのイメージも選択出来るようにするのでしょうが 'anime1.gif', 'anime2.gif', 'anime3.gif' とします。
    dbcheck() はゲームには直接関係しない "rpg.db" の記録を表形式で印字する関数です。
  4. put($id, $x, $y) は $id のレコードを最新の状態に更新します。
        function  put($id, $x, $y)
        {   if ($id=='-')   return;
            $str = "update table1 set x=$x,y=$y where id=\"$id\"";
            print "UPDATE : $str<br>\n";
            $db = new SQLite3('rpg.db');
            $db->exec($str);
            $db->close();
        }
    
  5. draw($id, $x, $y) は $id のアバターを $x,$y の座標に描画します。
    この関数は矢印キーで操作中のアバターを描画するために使います。
    キー操作で移動するので name="Dog" に設定して下さい。
        function  draw($id, $x, $y)
        {   if ($id=='-')   return;
            $db = new SQLite3('rpg.db');
            $results = $db->query("select * from table1 where id like \"$id\"");
            $row = $results->fetchArray();
            $db->close();
            $img = $row[img];
            $str= " style=\"position:absolute;left:{$x}px;top:{$y}px;\"";
            print "<img src=\"$img\" name=\"Dog\"" . $str . ">\n";
        }
    
  6. view($idw) は 'rpg.db' に登録されている情報を参照して $idw を除くアバターを描画します。
    $img がアバターの Image File で、$name が画像を識別する Image Name で、$x と $y がアバターの座標です。
        function  view($idw)
        {   $db = new SQLite3('rpg.db');
            $results = $db->query("select * from table1");
            while($row = $results->fetchArray())
            {   $id = $row[id];
                if ($id!=$idw)
                {   $img = $row[img];
                    $name = $row[name];
                    $x = $row[x];
                    $y = $row[y];
                    $str= " style=\"position:absolute;left:{$x}px;top:{$y}px;\"";
                    print "<img src=\"$img\" name=\"$name\"" . $str . ">\n";
                }
            }
            $db->close();
        }
    

[Next Chapter ↓] キーで操作
[Previous Chapter ↑] RPG データベース

前田稔の超初心者のプログラム入門
PHP Program