読者です 読者をやめる 読者になる 読者になる

トレースコーダー

ゲーム好きのSEが、実際にあるアプリケーションからソースを(妄想で)模倣して作成しています。

モバイルゲームを作ろう(ローカルサーバー準備編)

バイルゲームを作ろう

明けましておめでとうございます。

2017年が始まったところで、そろそろ自分に蓄えられた知識をアウトプットしようと思い、それを応用した簡単なモバイルゲームを作成しようと思います。

毎年やろうやろうと思ってもなかなか行動しない自分に鞭打つために、今年こそは!との意気込みです。 ('ω')

作ろうとしているもの

RPG系のゲームが作りやすいので、イメージとしてはバトル系を作ろうと思います。

↓のようなバトルゲームが出来たらいいなぁ。。。

image...

まずは準備しましょ。始めましょ。

クライアント
  • Unity
サーバー

まずはサーバーから準備

最初に見た目としてUnityに着手しがちなのですが、クライアント⇔サーバーには色々と準備がいるので、まずはサーバーから準備しましょう。

まず、ローカルサーバーを立てなければなりません。^1

ローカルサーバー建築

特にこれといってこだわりはないので、xamppというツールを使います。

phpとかmysqlとか、色々と入っているのでとても便利です。(´∀`)

というわけで早速

f:id:glom_s:20170109223302p:plain

詰まったところは、apatch設定のところでport80が使えなかったところです。

が、これは以前別の用途でIISを同じportで使用していたために起こったことでした。

IISの設定を切って、無事終了!

mySQLの設定

DBも使用したいので、xamppの設定でmySQLも使えるようにしました。

試しにuser_tというテーブルを作成して完了。

f:id:glom_s:20170109223257p:plain

phalconフレームワーク追加

純粋なphpで作成していくと面倒なことになるので、時短のためにフレームワークを導入します。

選ぶ主な基準としては、

  • (慣れているから)MVCを使用すること
  • mySQLとの疎通が楽なこと
  • 速度が速いらしいので(なんとなく)使ってみたいから

というザックリな理由です。

MVCは信者なわけでもなのですが、日頃の仕事でも使っているので頭の切り替えが少なくて済むという点で選んでます。

というわけで、こいつもサックリと疎通させました。

f:id:glom_s:20170109223255p:plain

地味~に苦労したのは、versionが自分の合ってないとインポートに失敗するという点です。

x86じゃないとダメだったところに、時間かかりました。。

x64で何回も失敗してたよ。。。orz

※Phalcon 3.0.3 - Windows x86 for PHP 7.0.0 (vc14) を使用

組み合わせ確認

今までの組み合わせの確認として、

  1. localhostを通して
  2. phalconを使用したphpで、
  3. phpMyAdminで作成したDBに
  4. 接続して情報を取得し
  5. 画面に表示する

という手順を確認します。


testコントローラー

<?php

class TestController extends ControllerBase {

    public function indexAction() {
        // user_tから全レコードを取得
        $users = UserT::find ();

        // view側に変数を設定する
        $this->view->setVars ( array (
                'users' => $users
        ) );
    }
}

phalcon develop toolで自動作成されたuser_t

<?php

class UserT extends \Phalcon\Mvc\Model
{

    /**
     *
     * @var integer
     * @Primary
     * @Column(type="integer", length=11, nullable=false)
     */
    public $user_id;

    /**
     *
     * @var string
     * @Column(type="string", length=20, nullable=false)
     */
    public $name;

    /**
     * Initialize method for model.
     */
    public function initialize()
    {
        $this->setSchema("trace_test");
    }

    /**
     * Returns table name mapped in the model.
     *
     * @return string
     */
    public function getSource()
    {
        return 'user_t';
    }

    /**
     * Allows to query a set of records that match the specified conditions
     *
     * @param mixed $parameters
     * @return UserT[]|UserT
     */
    public static function find($parameters = null)
    {
        return parent::find($parameters);
    }

    /**
     * Allows to query the first record that match the specified conditions
     *
     * @param mixed $parameters
     * @return UserT
     */
    public static function findFirst($parameters = null)
    {
        return parent::findFirst($parameters);
    }

}

view側のコード

<div class="page-header">
    <h1>Congratulations!</h1>
</div>

<p>You're now flying with Phalcon. Great things are about to happen!</p>

<p>This page is located at <code>views/index/index.volt</code></p>

<?php

    foreach ($users as $user) {
        echo "<h2>", $user->user_id;
        echo $user->name, "</h2>";
    }

?>

eclipse上は下記のような状態

f:id:glom_s:20170109223247p:plain

表示された結果

f:id:glom_s:20170109223252p:plain

この辺は後半はトントン行きました。

前半は、phalconのデベロッパーツールのphalcon.bat(windows版)が上手く使えなかったという点。。。

ここだけで一時間くらいかかりました。(ドツボ)

@echo off

@ ↓のsetではエラーが出る※Cドライブじゃないのが原因っぽい
@set PTOOLSPATH="%~dp0\"
@ 絶対パスにすると行ける!
set PTOOLSPATH=D:\workspace\phalcon-devtools-3.0.x\
php %PTOOLSPATH%phalcon.php %*

参考

AdminWeb

f:id:glom_s:20170109223247p:plainf:id:glom_s:20170109223252p:plainf:id:glom_s:20170109223255p:plainf:id:glom_s:20170109223257p:plainf:id:glom_s:20170109223302p:plain