スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iPhone5を買いました!

ついにiPhone5を買いました!
(というか、アプリ開発すると言っていたのに、まだ実機が無かった

で触った感触なんですが、軽い!
今までのiPhone4とかを、みかん1個分の重さとするならば、
iPhone5はイチゴ2個分くらいの重さしかないです。 すごい軽い。


とりあえず、早速ディベロッパプログラムだとかに加入をして、
アプリを開発する環境を整えたいと思います。

で、実際に開発できる様になったら、
iPhoneアプリを作る為の環境構築の手順を
記事にして纏めたい
なと思います。

今年は色々と動くぞ~!(`・ω・´)*

【余談】
※iPhone5は、博多駅内にある カメラのキタムラで購入しました。

MNP(他キャリアからの、電話番号を維持して乗換え)を行うと、
3万円キャッシュバックされるというキャンペーンをやってたので、
それを利用して申し込んでみました。

※更に、2人同時加入の場合、2人目は3万5000円のキャッシュバックになる。(2013/1/31現在)
30000円分 or 35000円分のUCギフトカードが3か月後くらいに届くようです。

たまたま立ち寄って知ったという人が多く、
あまり知られていないキャンペーンらしい。
(店の人も、周知があまり上手くいってないとか言ってました。)
スポンサーサイト

テーマ : 日記 - ジャンル : 日記

ジャンプ9号感想

●食戟のソーマ
とうとう全員 全裸になってしまった。
-----------------------

めばえっ

-----------------------
どういう表現なのか分かりませんでしたが、
美味しかったのでしょう。

しかし、「め」のコマが露出度高すぎる。
(露出っていうか全裸だけど)

コレがOKなら、ToらぶるもOKなんじゃないか、というぐらい。
電車とかで読んでて、
突然「め」のコマが出てきたら焦り
ますね。

~本題~
この漫画のタイトルでもある、「食戟」について少し語られましたね。
詳細不明ですが、「食戟」=制限時間/審査員などを用意した、公式の料理バトル
みたいな感じかなーと思ってます。


●トリコ
---------------------
始まったか・・・
---------------------
「始まったか」って何だァアー!?

あらかじめ襲撃される事が分かっていたなら、
フェスを中止にするなり、観客を避難させるなりした方が良かったのではないか。

・・・まぁ、「ジュラフバード」などを配置してたから迎撃出来る
考えていたのかもしれませんが。

で、色々とバトルが開始しましたが、
個人的に気になるのがトミーロッドさんですね。

この人に関しては最後のチャンスだと思ってます。

※個人的に、『敵が活躍できるのは敗北1回まで』
という説を提唱しています。
------------------------------
【1】1度の敗北 → 復讐
【2】2度以上の敗北

------------------------------
【1】はパワーアップしたから、今度は主人公が負けるのかな?
という印象を持つのですが、

【2】のように、敗北→リベンジ!→やっぱり敗北 という流れになってしまうと、
またコイツ出て来たけど、主人公に負けるだろという空気が出来てしまうのです。
(かませ犬的な扱いになる)

球磨川先輩とか、そんな感じになってますね。

【2】のパターンになってしまうと、
下記の様に、どちらに転んでも話が盛り上がらないので、
-------------------------------------------------
敵勝利: えー…、こいつに主人公が負けるのかよ…。
敵敗北: やっぱり負けたな。

-------------------------------------------------

なんか下記の様に、
敵の親玉から殺されるという展開にする漫画もあったりする様な気がする。

「お前はもう要らん」
「待って下さい!もう一度チャンスを うわぁぁーー」


敵が何度も敗北した場合、
こういう展開が一番妥当なのかな?
と思った。


●暗殺教室
ついに自立思考固定砲台さんと双璧をなす兵器が登場しました。
(兵器というか、見た目人間ですね。)

しかし「兄さん」とか言っているのだが、これはどういう事だ…?

------------------------------------------------------------
【1】"生物兵器として"の兄さん
生物兵器を作っている組織があって、殺せんせーは先に作られた。
先に作られたので、年上的な扱い。


【2】血のつながった実際の兄弟
人間だったころ、本当に血のつながった兄弟だった。

【3】殺せんせー = 兄さん は、偽の記憶
殺せんせーを殺し易いように、偽の記憶で動機づけしている。

------------------------------------------------------------
さて、どれだろう。

物語的には【2】が妥当でしょうか。
映画の兄弟再会のシーンで、殺せんせーは何か想うところがあるっぽいですし。

どうでもいいが、「兄さん」という単語を見るだけで
マリオを呼ぶ永遠の二番手のあの人を想像してしまう。


●クロガネ
あぁ…終わってしまいました。
剣道のルールとか技とかが出てくるのであれば、
もう少し読んでみたいな
とは思ったのですが。

この漫画は序盤の導入に失敗したのかなぁと思った。

もう少し早くキャラクターの紹介をして、
剣道の試合に入って、二刀流だとかのルールや戦術の紹介なんかをしてたら、
また違ったんじゃないかなと思う。


●新米婦警キルコさん
-------------------------
キルコ「ウヒィィィーーーーーッ!!」
-------------------------
なんか知らんが笑った。

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

外部ファイルで、実行ファイルの動作を自在に変更するシステムを作ってみた!

苦節 2週間。 (短いな)

とりあえず、外部ファイルで
実行ファイルの動作を完全に書き換えるシステム
を作ってみました。
(DXライブラリ、C++で実装。)


今年は、開発に必要なシステムや技術を、
どんどん実装したい、とか思ってます。頑張ります。
(「こうしたいなー」とかではなく、実現させて形にする。


【要約】
・SampleGame.exe
・MyArchive.arc


必要なのは上記2つ。

実行ファイルは、MyArchive.arcの中身を解析して実行するようになっており、
MyArchive.arcを書き換えれば、
SampleGame.exeを実行した際の動作がガラリと変える事が出来る
という仕様になっております。

極端な話、
SampleGame.exeを実行したら"ぷよぷよ"みたいなパズルゲームだったのに、
MyArchive.arcを別のものに差し替えたら、アクションゲームに変貌
した、
という事も出来るのです。


まだ簡易版なので、様々なゲームには対応出来ないと思いますが、
ひとまず、実装方法のご紹介。


~やり方~
----------------------------------------------------
【1】命令と引数がセットの構造体を作る
【2】構造体の配列を作る
【3】命令をswitchで場合分けし、引数を各関数に渡して処理

----------------------------------------------------
これだけ。意外と単純です。


//色んな型に対応できる共用体
union ParamInfo {
int m_Int;
float m_Float;
double m_Double;
DWORD m_Dword;
};

//命令を示す列挙体
enum CommandID {
CMD_GET_POSX,//描画オブジェクトのX座標取得
CMD_GET_POSY,//描画オブジェクトのY座標取得
CMD_GET_POSZ,//描画オブジェクトのZ座標取得
CMD_IF_I, //int型同士のif判定をさせる
CMD_CHANGE_INIT, //命令配列の、何番目の命令から実行するかを変更
CMD_FINISH, //1フレーム毎の処理終了を示す
CMD_END //命令を終了する。
};

//命令と、引数(共用体)の構造体
struct CommandInfo {
CommandID m_Command;
std::vector< ParamInfo > m_ParamVec;
};


class CMover {
public:
CMover();
~CMover();
MoveStateID Move();
private:
std::vector< CommandInfo > m_CommandVec; //命令の配列。
int m_InitVecNum; //何番目の命令から実行するか?(初期値は0。)
int m_NowVecNum; //現在の命令配列の添え字
MoveStateID m_MoveState;
};

MoveStateID CMover::Move()
{
//命令配列の何番目から実行するかをセット
m_NowVecNum = m_InitVecNum;

//1フレームの終了命令 と CMoverクラス自体の破棄命令ではなく、
//かつCMoverクラスが有効である場合は ループ。
while( m_CommandVec[ m_NowVecNum ].m_CommandID != CMD_FINISH &&
m_CommandVec[ m_NowVecNum ].m_CommandID != CMD_END && m_MoverState == MOVE_NOW ){
switch( m_CommandVec[ m_NowVecNum ].m_CommandID ){
case CMD_GET_POSX: GetPosX(); break;
case CMD_IF_I: CompInt(); break;
case CMD_CHANGE_INIT: m_InitVecNum = m_CommandVec[ m_NowVecNum ].m_ParamVec[ 0 ].m_Int;
case CMD_FINISH: break;
case CMD_END: m_MoverState = MOVE_FINISH; break;
default: m_MoverState = MOVE_ERROR; break;
}
}
return( m_MoveState );
}



色々と省略してますが、
上記の様な感じです。


命令番号は上記の例と一致してませんが、
読み込ませるアーカイブファイルは下記のフォーマットのようになります。

■描画オブジェクト0番のX座標を、
 5秒(5000ミリ秒)かけて50から180へ動かすサンプル

0 0:CMD_SET_NOW_TIME, 0 //変数[0]に現時刻をセット
1 1:CMD_SET_VALUE_DWORD, 1, 5000 //変数[1]に5000をセット
2 1:CMD_SET_VALUE_DWORD, 2, 50 //変数[2]に50をセット
3 1:CMD_SET_VALUE_DWORD, 3, 180 //変数[3]に180をセット
4 2:CMD_CHANGE_INIT, 5, //命令の初期位置を[5]にする
5 0:CMD_SET_NOW_TIME, 4, //変数[4]に現時刻をセット
6 3:CMD_DIF_DWORD, 5, 4, 0 //引き算。 [4] - [0] = [5] (現時刻 - 開始時刻)
7 8:CMD_IF_DWORD, 5, 2:LARGE, 1, 14, 8 //変数[5]が変数[1]より大きければ命令配列[14]、そうでなけば[8]へ移動 ( if( 経過時間 > 5000 ) )
8 4:CMD_DIV_DWORD, 6, 5, 1 //変数[5]を変数[1]で割る ( 経過時間 / 5000 = 変数[6] )
9 3:CMD_DIF_DWORD, 7, 3, 2 //変数[3] - 変数[2] = 変数[7] ( 180 - 50 = 130 )
10 5:CMD_MULTI_DOUBLE, 8, 7, 6 //変数[7] * 変数[6] = 変数[8] ( 130 * 割合 = 変数[8] )
11 6:CMD_ADD_DWORD, 9, 2, 8 //変数[2] + 変数[8] ( 50 + 変数[8] = 変数[9] )
12 7:CMD_SET_POSX, 0, 9 //変数[9]を、描画オブジェクト0番のX座標にセット
13 9:CMD_FINISH, //1フレームあたりの処理終了
14 7:CMD_SET_POSX, 0, 3 //変数[3]を、描画オブジェクト0番のX座標にセット (Object[0].PosX = 180)
15 10:CMD_END


※ポイント
命令番号[0]~[4]は、初回のループ時のみ実行されます。
(命令番号[4]にて、命令開始初期位置を[5]に変更しているため。)

つまり、コンストラクタのような初期化処理を実装できるのです。


で、見ても分かりますが・・・可読性0です。
これはちょっと、エディタが必要かもしれない。


とりあえず、会社でもポチポチとcsvファイルをいじって開発できるようになったので、
(勝手に会社のPCに visual stdioなどの開発環境をインストールしたりするのはマズいが、
    メモ帳なんかで文字を打つぐらいなら何も言われん。)

多少は開発速度が上がるかもしれない。
どーよ!(`・ω・´)

【課題】
・vectorとか、mapとか、listとかも操作できるようにしたい。
・エディタ作りたい。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ジャンプ8号感想

●トリコ
ついに戦闘が始まりました。
2週間ぐらいコックの紹介だけで終わったときは絶望してましたが、
いよいよ面白くなってきそうです。

"ジュラフバード"が敵を迎撃しているのですが、
なんか斬られた首から色んな動物の頭部が生成されてますね。

もはやキリンでも鳥でもないよ。
何なんだこの生物は。

ともかく、来週以降のバトルの展開に期待です!


●食戟のソーマ
今度は主人公が全裸になったよ。

なんでこの漫画の登場人物たちは
料理を食べると全裸になったりするのか。

とりあえず、今回 十傑の料理を食べた訳ですが、
感想が「美味すぎるっ!」だけだったのが残念だったかも。
いったい どんな風に美味かったのかが気になって仕方がない。


●暗殺教室
--------------------------
カラスマ…
殺りたいの…ダメ?

--------------------------
これは…なんか、
同音異義語を使った薄っぺらい本が出そうな予感。
(出たとしても見る事はないと思うが)

まぁ、それは置いておいて、本編。
今回の件で、「烏間先生は強い」というイメージが出来ました。

勝負には敗北するのですが、油断して負けたという訳でもなく、
また、イリーナ先生が暗殺者として能力が無かったという訳でもなく、

「どちらも素晴らしかった」という決着の付き方で良かったと思います。


次回は、自立思考砲台さんと共に完成した
もう一つの兵器がやってくるのかな?
(なんやかんやで、 自立思考砲台さん VS もう一つの兵器 になりそうな気がする。)


●新米婦警キルコさん
最初は、
犯罪者を捕まえたり、犯罪率の推移とかを描写して欲しいとか思ってたんですが、
(若干シリアスな警察モノ。)

なんか、日常風景を描写するだけでもいいかなーと思えてきた。
(べるぜバブ的なポジション)

ただ、その場合はネタ切れを起こしそうなのと、
(日常風景の描写が)読者に興味を持たれなかったら打ち切りコースになる
のが心配。

警察という題材を扱っているので、いざとなったらリボーンみたく
若干シリアスな物語編に入ってもいいかも?


<追記予定!>

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

FlashBuilderで作ったプロジェクトに広告を表示させてみた

更新が滞り気味になっていたので、
とりあえず現状報告です!

現在、アプリ公開するなら広告収入もあった方が良いよなと思い、
その方法を調べてました。

で、一番手っ取り早いなと思ったのが、
StageWebViewオブジェクトを使う方法です。

StageWebObjectは、アプリ内に
描画領域を指定して直接HTMLなどを表示出来ます。
( Webで言うところの、iframe(インラインフレーム)みたいなもの )

とりあえず、描画領域の左上の部分がx,y = (0, 180)で、
640×470の描画領域を指定して、
事前に用意しておいた、Amazonアソシエイトの広告が貼ってあるHTMLを表示させてみた。

【参考画像】
AdSample.jpg

※実機ではなく、FlashBuilderのデバッグ機能(エミュレータ)で実行しました。


こんな嫌がらせみたいな広告を貼るつもりはありませんが、
(画面のど真ん中である。)
せっかくなのでちょっと試してみました。

■懸念点
・Amazonアソシエイト利用規約に違反していないか?
・そもそもAppleの審査に通るのか?


まぁ、某アプリではAppleの申請の時だけリジェクトされる要因(広告とか)を消して、
申請に通ったら、隠していた機能を表示みたいな事をやっているので

そんな対応で切り抜けられるかもしれない。

(どうなるか分からんので、実際にはやらない方がいいです。
  訴訟とか訳の分からんことになっても、責任は持てません。)


あと、StageWebViewオブジェクトは、
アプリで良くある「運営のお知らせ」とかにも使えますね!

【参考画像】
AdSample2.jpg

巷で出回っているアプリも、
たぶん、上記の様な実装をしてるんじゃないかなーという予想。


ひとまず今回のソースコードです。

【ソースコード】StageWebView.txt

FlashBuilderで、「新規>ActionScriptモバイルプロジェクト」を選択、
名前を「TestActionScript」として作成した後、TestActionScript.asファイルに
下記のソースコードを貼り付ければ動作するはずです。
========================================================
【要点】
・StageWebViewオブジェクトは、一番前面に表示されます。

 (アプリ内の画像などは背後に隠れる。)
・StageWebViewオブジェクトを非表示にしたい場合は、
 新しく生成したRectangleを突っ込んでやればOK.

(上記サンプルでは、クリックした際に非表示になるようにしてます。)
========================================================



もしアプリを公開できたら、アスタとかネンドとかに登録してみようとか思っています。

■ネンド
iPhone/Android向け広告を表示できるサービス。
最短で一時間で広告配信開始できる。
既に完成済みのサイトやアプリを、登録の際に記載する必要あり。

【参考URL】nend(ネンド)-iPhone・Androidなどスマートフォン向けアドネットワーク広告出稿

■アスタ
サービス登録を行う事により、アプリ内でアイコン型広告などを設置出来るサービス。
登録には、既に完成しているアプリが必要。

【参考URL】スマホ、スマートフォンのアプリ広告で収益収入最大化ならアスタ

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

toyparkにて、PHPとMySQLの連携が成功!

レンタルサーバーのtoyparkを使用して、
PHPとMySQLの連携の練習を行っているのですが、
ひとまず成功しました!


~やり方~
【1】toyparkのphpMyAdminにログインする。
【2】データベースに、任意のテーブルを作成
【3】作成したテーブルにアクセスするPHPファイル作成
【4】アップロードしたPHPファイルを実行



~詳細手順~
【1】toyparkのphpMyAdminにログインする。
まずは、下記のURLにアクセスして、
MySQL用のID(5つの数字)と、パスワードを入力。
※パスワード … toyparkにログインする時のパスワードでOK.

【参考URL】 toypark - phpMyAdmin


【2】データベースに任意のテーブルを作成

1)画面左の、ID(数字5つ)が表示されている部分をクリック
MySQL.jpg

2)テーブル名とフィールド数を入力して、「実行する」をクリック
MySQL2.jpg

3)任意のフィールド情報を入力して、「保存する」をクリック
MySQL3.jpg

4)テーブルが作成できたら、挿入をクリック
MySQL4.jpg

5)各フィールドに、任意のデータを入力して「実行する」をクリック
MySQL5.jpg

6)挿入が無事出来たら、「表示」をクリック
MySQL6.jpg

7)正常に挿入したデータが表示されれば準備完了
MySQL7.jpg


【3】作成したテーブルにアクセスするPHPファイル作成
<html>
<head>
<title>PHP TEST</title>
</head>
<body>
<?php

$link = mysql_connect('localhost', '00000', 'password');
if (!$link) {
die('接続失敗です。'.mysql_error());
}

print('<p>接続に成功しました。</p>');

$db_selected = mysql_select_db('00000', $link);
if (!$db_selected){
die('データベース選択失敗です。'.mysql_error());
}

print('<p>データベースを選択しました。</p>');

print('<p>クエリー開始です。</p>');
$result = mysql_query('SELECT id, pass FROM MyGuestData');
print('<p>クエリー終了です。</p>');
if (!$result) {
print('<p>クエリー失敗です。</p>');
die('クエリーが失敗しました。'.mysql_error());
}

print('<p>クエリー成功です。</p>');

while ($row = mysql_fetch_assoc($result)) {
print('<p>');
print('id = '.$row['id']);
print(', pass = '.$row['pass']);
print('</p>');
}

$close_flag = mysql_close($link);

if ($close_flag){
print('<p>切断に成功しました。</p>');
}
?>
</body>
</html>


上記は、'MyGuestData'テーブルから、
id, passフィールドを選択して読み込み表示するサンプル
です。

注意すべき点としては、
・赤字の部分 … 自分のMySQLID(数字5つ)と、パスワードに置き換えること。
・青字の部分 … 自分が作成したテーブル名、フィールド名に置き換えること。
です。そうしないと上記のPHPを実行しても正常に動きません。

【4】アップロードしたPHPファイルを実行
あとはアップロードしたPHPファイルにURL指定でアクセスすればOKです。
一番上位階層に"Sample.php"というファイルをアップロードした場合は、
下記のURLになるかと思います。

http://ユーザー名.toypark.in/Sample.php

ついでに実行結果を表示させてみた ↓
【参考画像】
MySQL8.jpg

指示されたとおりに、登録されている顧客情報とパスワードを全部表示するという、
セキュリティ的に最悪な実行サンプルではありますが、上手く行きました。

あとは、Flash → PHP → MySQL の流れを実装するだけです…!

※記事には書いていませんが、実は
・Flash側からPHP側にデータを送信(POST)
・PHP側からFlash側にデータを送信

という処理も本日 正常に行われる事を確認できました。

あとは、これらを組み合わせて3本柱のシステムにすれば行けるはず…!
というわけで、今日やった事はこれにて終了です。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

現在のゲーム製作状況とか 1/9版

とりあえず現状報告。

~もくじ~
【1】C++とDirectXで製作しているゲームについて。
【2】iPhoneアプリについて。



【1】C++とDirectXで製作しているゲームについて。
こっちのほうは、
---------------------------
・自動アップデート機能
・外部ファイル読み込み機能

---------------------------
を色々と調整中。

外部ファイル読み込みの部分に関しては、
まず外部ファイルを全部int型の変数に変更。


【変更前】
VecNum FileName  SizeX  SizeY SplitX  SplitY
0   Sample.png  512  512   8    8

【変更後】
VecNum FileNo  SizeX  SizeY SplitX  SplitY
0     1  512  512   8    8


何でこうしたかというと、パラメータにint型とか、string型とかが混ざってると、
(読み込むファイルの種類ごとに、固有のフォーマットが定義されていると)
読み込みクラスを派生しないといけないのですよ。
-----------------------------------------
・CLoaderBase
・CTextureLoader  ←派生クラス
・CMoverLoader  ←派生クラス
・CAnimationDataLoader  ←派生クラス
-----------------------------------------
派生しすぎて酷い事になったので、(クラスが増加しすぎて見づらい)
もう全部int型にしようと思ったのでした。

全部int型の場合、
Loaderクラスは、「毎フレームint型のデータを●個読み込む」とだけ指定すればいいので、
もう派生する必要が無くなるのです。
--------------------------------------------------------
・CFileLoader(100) ←クラスは一個だけ。引数だけが違う。
・CFileLoader(250) ←1フレームあたり、250個までLoad
・CFileLoader(300) ←1フレームあたり、300個までLoad
・CFileLoader(10)  //以下略
--------------------------------------------------------

現在の大まかな流れは下記の通り。
① Loaderクラスで、int型の変数読み込み、int型のvector配列にpush_buck。
② int型のvector配列を、CDataFactoryクラスに渡す。
③ CDataFactoryクラスにて、switchを用いて生成する方法を分岐
※int型の羅列として渡されるので、何番目のint型が何を意味するのか?を
うまく処理してやらないといけない。
例:
switch( t_FileType ){
  case CREATE_TEXTURE: t_VecNum = t_Vec[ 0 ];
          t_FileNum = t_Vec[ 1 ];break;
  case CREATE_LOADER: t_FileNo = t_Vec[ 0 ];
          t_LoadNumPerFrame = t_Vec[ 1 ];
}

④ 各Managerクラスに登録


=====================================
開発に関しては上記のような感じ。

で、色んな本も参考に読んでみたのですが、
下記の本に「効率的な開発をするのなら、
データとメソッドを外部に出そう」



みたいな事が書いてありました。

確かにその通りである。
現在、データのみの外部への追い出しはやっているんですが、
メソッドの部分(関数での処理とか)は依然、コード内にあります。

下記の様に、細かい動作内容は
CMoverBaseの派生クラスで対応させているのですが
------------------------------------
・CMoverBase
・CMoverPazzleGame ←派生クラス
・CMoverTitleScene ←派生クラス
・CMoverAnimation ←派生クラス
・CMoverPlayer ←派生クラス

std::list< CMoverBase > m_MoverList
it->Move();
------------------------------------
関数内での動作部分すらも、
外部ファイルにする事が出来たら最強
なのではないかと思った。

コレをうまく実装できれば、
もう「パッチファイルを当てる」だとか、「新しい.exeファイルをダウンロードして下さい」とか、
そういうのが無くなります。

ネット上に、データおよび動作をも定義したテキストファイル等をアップロードして、
後は、それをInternetReadFile関数で読み込んでやれば終了です。

という訳で、動作部分を外部ファイルに出す実験をしてみます。
(コレ、なかなか難題のような気がする。)



【2】iPhoneアプリについて。

iPhoneアプリの方ですが、
せっかくなのでIDとPassによるユーザー認証とか、
通信対戦だとか、そういうのも実装したいと思ってます。

で、調べてみたんですが、
どうやらサーバサイドスクリプトとかを使うみたいですね。

■サーバサイドスクリプト----------------------------------------
Webサーバ上で動作し、Webサーバ上でプログラムの実行が要求されるたびに、
結果をウェブブラウザに対して送信するようなプログラムのこと。

PHP、 Perl、Python、Rubyなどがある。
------------------------------------------------------------


顧客情報や、ゲーム内のアイテムリストなどはMySQLなどの
データベース管理システムを使うようです。

【参考URL】ソーシャルゲームのためのデータベース設計
【参考URL】そーだったのか?ソーシャルゲームの作り方

現場の人が言ってるんだから間違いない。

なので、現在
PHPとMySQLを用いてデータ管理を実装してみようと思ってます。

そしてPHPもMySQLも使える
"ToyPark"という無料レンタルサーバ
があるっぽいので、
早速登録しました。

【参考URL】Toypark無料ホームページホスティング


で、PHPの動作も簡単に確認してみました。
確認した方法は下記の通り。
-----------------------------------------------------------
1)任意のフォルダに、HTMLとPHPをアップロード
※HTML側には、submitタイプのボタンを配置しておき、
 ボタンをクリックした際に、該当のPHPファイルを実行するようにしておく
※PHPの方は、$_POSTとかいうデータを受け取る予め決められた連想配列があるようなので、
 その連想配列でデータを受け取り、任意の動作(表示など)をするようにしておく

2)HTMLファイルをURL指定でアクセス
3)テキスト入力欄に任意の文字列を入力して、ボタンをクリック
4)phpのページに移動して、テキスト入力欄の文字が表示される事を確認

-----------------------------------------------------------

■Test.html
<form action="Test.php" method="POST">
<input type="text" name="input1">
<input type="submit" value="送信">
</form>

■Test.php
<?php
print $_POST["input1"];
?>

で、例を書いといて何なんですが、上記のサンプルは
セキュリティ的に危険
なので一般公開するのは止めましょう。

※ちょっとだけ解説。
まず「Hello PHP!」と書いてボタンをクリックすると下記の様になります。
phpSample.jpg

何も問題ないですね。
テキスト入力欄に入力した文字を、そのままphpが表示してくれてます。

では次に、「<BUTTON type="reset">クリックすると死ぬ</BUTTON>と入力してみます。

phpSample2.jpg

はい、なんと、
文字列ではなく、「クリックすると死ぬ」ボタンが生成されてしまいました。

このように、ちゃんと"ただの文字列"だと認識させてあげないと、
"意味のある文字列"だと判断され、
対応するオブジェクトを生成したりしてしまう
のです。

これインジェクション攻撃と呼ばれたりします。
ここら辺のセキュリティ関連の対策も、おいおい解説記事として纏めたいと思ってます。


ちょっと余談になりましたが、
今やってることを纏めると下記になります!(`・ω・´)

・動作部分の外部ファイル化
・PHP、MySQLとの連携によるデータベース設計
( しかし。覚えるべきことが一杯ありますね。DirectXも最新版はDirectX11だとか。。
 WindowsXPしかないので放置してたが、DirectX最新版の仕様も覚えてた方が良さそう。 )

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ジャンプ6・7号感想

●氷上布部
普通のギャグ漫画かと思いきや、
最後に意外な展開 & 良い話になりました。

トーコさんはこれで成仏するのかな。
・・・いや、なんかこんな展開になりそうかなと思った。
--------------------------
「トーコォォ!!」
「え?なに?」
「成仏してないのかよ!」

--------------------------


●食戟のソーマ
------------------------------------
あたしのこと あっためてほしい
お願い 抱いてーーーっ

------------------------------------
・・・。
時の流れとは残酷なものである。

・・・残酷なものである。(2回言いました)

とりあえず、料理が美味かったら突然キスとかしてくる
大御堂さんはある意味怖い存在
なのだろう、と思う。

あと、主人公についてですが、
失敗作を田所さんに食わせすぎて田所さんが敬遠してしまっています。

自分でも「不味い」と思ったものを
わざわざ他人にまで食わせなくても良いんじゃないかなーと思うんですが、どうでしょう?


●HUNGRY JOKER
----------------------------------------------
次はオマエの番だ
( あ”~~死ぬかと思ったァァー
   頼むからテメーもやられてくれコノヤロー)

----------------------------------------------
うーん、やっぱり違和感がある。
「心の中で思ったことを表情には出さない」というのならまだしも、
コレ、思っている事と言っている事が真逆なんですよね。

なんかちぐはぐな感じがする。何でこんな設定にしたのだろう?


●暗殺教室
烏間先生 意外と強かった。
(今まで「強い」と言う描写があまり無かったので、予想外だった)

イリーナ先生は模擬暗殺できるのかな。
誘惑だけじゃ確実に無理でしょうし。

策を練るよりも、適当にナイフ投擲しまくったら一発ぐらい当たるんじゃないのだろうか。
(ぜんぜん "暗"殺にはなってないけど)

<追記予定!>

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

Flashの貼り付け方

FlashをブログやHPに貼り付ける場合は、embed要素を使用します。

■embed要素
Netscape Navigator 2.0というブラウザにて、独自に実装されていた機能。
しかし、後にFirefoxやInternet Explorerなどの他のブラウザも対応し
使用することが出来るようになっている。

■使用できる属性
embed要素の中には、下記の属性を指定して
貼り付け方を決めることが出来る。

・src属性 ・・・ 貼り付けるデータのURLを入れる。
・width属性 ・・・ 表示領域の横幅を決める。
・Height属性 ・・・ 表示領域の縦幅を決める。
・border属性 ・・・ 周囲に枠線を引くかを決める。 (ドット単位の数値)
・hidden属性 ・・・ 表示するか、非表示にするかを決める。
    (特に指定しない場合は"表示"扱いになるので、
    非表示にしたい時のみ明示的に記載すればOKかなと。hidden = true)

・pluginspage属性 ・・・ 必要なプラグインが存在しない場合に、
            プラグインの入手先を提示をすることが出来る。(URLを指定)
・type属性 ・・・ 貼り付けるデータのタイプを指定する。
※貼り付けるデータのタイプと、対応する文字列の一覧。
WindowsMediaPlayer  application/x-mplayer2
RealPlayer audio/x-pen-realaudio-plugin
SoundVQ audio/x-twinvq-plugin
Quicktime audio/quicktime
Shockwave application/x-director
AIFF audio/aiff
ASF video/x-ms-asf
ASX video/x-ms-asf
AU audio/basic
FLASH application/x-shockwave-flash
MIDI audio/midi
M3U audio/mpegurl
MP3 audio/x-mp3
MPEG audio/mpeg" ? type="video/mpeg
WAV audio/wav
WAX audio/x-ms-wax
WM video/x-ms-wm
WMA audio/x-ms-wma
WMD application/x-ms-wmd
WMV video/x-ms-wmv
WMX video/x-ms-wvx
WMZ application/x-ms-wmz

■【貼り付けの例】
縦幅:300
横幅:300
データタイプ:Flash
データのURL:http://blog-imgs-43.fc2.com/r/u/d/rudora7/TestFlex.swf
外枠:6ドットの太さ
プラグインの入手先:http://www.adobe.com/go/getflashplayer_jp

上記のように貼り付け方を指定したい場合は、下記の様に記載します。

<embed src="http://blog-imgs-43.fc2.com/r/u/d/rudora7/TestFlex.swf" type="application/x-shockwave-flash"width="300" height="300" border = "6" pluginspage="http://www.adobe.com/go/getflashplayer_jp"/>
↓実際に貼り付けてみたFlash。
(画像読み込んで表示するだけ)


【追記】
"FC2ホームページ"にてアップロードしたファイルは、
直接リンクしないとファイルにアクセス出来ない(上記のFlashが表示されない)ようなので、
iframe形式(インラインフレームけいしき)にしてみました。

そういえば自作曲を公開するときもこの問題が発生して、
(アクセス権限が無いとか言われて、視聴できない)
"このURLをコピペして、直接貼り付けて確認してください"という対応をしたんだった。

↓iframe版。

※iframeについては、また別途解説記事としてまとめてみます

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

【FlashBuilder4.7】Flash・アプリ製作Tips

※作りかけのページです
ここにTips集を記載していきます。

Flashの貼り付け方

テーマ : ゲーム製作 関連 - ジャンル : ゲーム



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。