2014年2月20日木曜日

横スクロールゲーム(2Dゲーム)キャラクター、ステージ作成

やっとテストが終わり今日は院試の勉強をするつもりだったのですが、全くせず。。。。
その代わりににずっとUnityをさわっていました。javascriptもわからずに。ほぼコピペです。乏しい英語力で公式のリファレンスをよみ、少ない理解力で頑張りました。では本題にいきましょう。

まずは"Assets"を右クリックして"Create"→"Folder"からテキトーにフォルダを作っておいてください。この中にゲームで使いそうな材料とかを入れていきます。今回自分は”MyStudyGame”としておきました。
横スクロールゲーム(2Dゲーム)キャラクター、ステージ作成なので
はじめにステージの作成。

これはとりあえず


"Create"から


”Cube"を選択します。



囲んだところのようにパラメータを入れると横に長い四角が作られます。こんなかんじでステージとか四角の障害物とかを作っておきます(正しいのかどうかは知りません。

次にプレイヤーを作ります。
先ほど作ったフォルダの中にプレイヤーとして動かしたい画像をドラッグして"MyStudyGame"に入れておきます。今回は動いてくれるプレイヤーとしてドロイド君を採用しました。

次に敵キャラです。敵キャラはUnityのアセットストアから引っ張ってきました。
そのなかの敵キャラにドロイド君と対峙してもらいます。この敵キャラを"MyStudyGame"にドラッグします。

次にドロイド君をステージの中に出現させます。




"Hierarchy"の中にドラッグするとテキトーな位置に置かれるので"Transform"の中のパラメータを調整してステージの好きな位置にのせてしまいましょう。同様にして敵キャラも配置します。

ここまですると簡単なステージができて、敵キャラ、プレイヤーが配置されていている状態になります。

少し記事が長くなったのでこれの続きは次回にしようと思います。次回はゲームをプレイモードで実行してステージの地面との当たり判定、プレイヤーが動くようにしようと思います。
ではでは。









2014年2月18日火曜日

Unity4、横スクロールゲームでのアイテム発射のスクリプト

Unityは多くは3Dゲームを簡単に作るためのゲームエンジンみたいなところがあるような気がするのですが、自分はAndroidのアプリとして公開することを目的としているのでUnityを2Dでゲームを作っている。

横スクロールのゲームならやっぱアイテムが横にぶっ飛んでそれで敵をバシッ!と倒すのようなアクションって絶対あると思うのでそのスクリプトを自分のメモとして書いておきます。プレハブとかの適用のしかたは各自調べてください。(わからなかったのは俺くらいかもな。。。。
#pragma strict

var rocketPrefab: GameObject;
var rocketSpeed= 20;


function Start () {

}

function Update () {
 if(Input.GetButtonDown("Fire1")){

 var pos: Vector3 = transform.position;

 var rocket:GameObject = Instantiate(rocketPrefab, transform.position,Quaternion.Euler(new Vector3(0,0,0)));

 rocket.rigidbody2D.velocity = new Vector2(rocketSpeed,0);
 
 }
 
 
 
}



ゲームの形がひと通りできたらきれいな記事としてちゃんと書きます。とにかく今は形にしてしまってやり方というか付け焼き刃のスキルにしていきたい。。。。

ではでは。


2014年2月16日日曜日

Unity4をはじめた

最近のアプリにはUnityというゲームエンジンを導入されているものが多い(らしい)。
有名なところで言うと、ケリ姫とか。
あーゆーゲーム系のアプリをただ作りたくなったので少し勉強しています。
今回は初めてチョット躓いたところを少し書いておこうと思います。
Unityで使用できる言語はC#、Javascript(UnityScript)、Boo(きいたこともない)の3つ。
メジャーなのはC#みたいな気がします。自分はなんとなくJavascriptの方が理解がしやすい気がしたのでJavascriptでコーディングします。(お陰で英語のリファレンスを読むハメになりました。)

まず、作る予定のゲームは2Dのスクロールゲーム。


  1. 物体の衝突判定にはCollider 2Dというコンポーネントを使う。また衝突検知はCollider 2D同士でしか判定されない。
  2. 重力を与えたいもの(特にプレイヤーとかに適用する)にはrigidbody2dというコンポーネントを使う。またFixedangleにチェックを入れておくと段差とかに半端に乗った時にでも転けないようになる。


今回の記事は自分がわかるように書いただけの記事なので 詳しいやり方とかスクリプトとかは後日また書くことにしておきます。
がんばろう。おれ。ではでは。

2014年2月12日水曜日

MySQL、自分用のメモ

select name from week where Sut=1;

weekテーブルのSutのカラムが1であるところを表示させる。


select  sum(Sun);


Sunカラムの合計を求める。


2014年2月10日月曜日

MySQLのパスワードを忘れた。。。

今日は1日MySQLを勉強するつもりが随分前にインストールしたので、パスワード忘れているということで仕方なくその辺を全部はじめからやりなおしました。

具体的にはrootのパスワードを変更して、それ以外のログインユーザー、ホストは消してしまいます。これが今回やることです。
そしてこちらが今回参考にしたページです。


Desktop Linux Q&A

参考ページにしたがって、まずSQLを停止します。

$sudo service mysql stop
$/etc/init.d/mysql stop

どちらかを実行します。

次に

sudo /usr/sbin/mysql --skip-grant-tables --skip-networking &


このコマンドを実行するともしかしたらちょっとメッセージがダラっと出てきたりしますが、'Enter'は押さずに以下のコマンドは実行します。

$mysql -u root

mysql>flush privileges;
mysql>set password for root@'localhost' = password('password');
mysql>quit


set password for root@'localhost' = password('password');の'password'は自分の設定したいパスワードを'(シングルコーテーションマーク)でくくってください。

んで最後にもう一度sqlサーバーを起動させます。

$sudo service mysql  start
$/etc/init.d/mysql  start

のどちらかを実行。
$sudo mysql -u root -p
を実行。そしたらSQLのパスワードを聞かれるので、それを入れてログインできたら成功です。

次に自分の場合は以前いろいろテキトーにユーザーとかをつくっていたので その辺も整理していきます。まずはSQLにログインして、今登録されているユーザー、ホストを確認します。この時に参考にしたページはこちら

Tomo's pageMySQLの基本操作


mysql>select host,user from mysql.user;
を実行。以下のような結果がでてきました。


+-------------------+------------------+
| host              | user             |
+-------------------+------------------+
| ::1               | root             |
| localhost         | debian-sys-maint |
| localhost         | root             |

+--------------------+


 ::1               | root             |   これを消します。

消すときのコマンドは


mysql>delete from mysql.user where user='root' and host ='::1';

を実行。んで、もう一度
mysql>select host,user from mysql.user;
を実行。以下のような感じになりました。


+-------------------+------------------+
| host              | user             |
+-------------------+------------------+
| localhost         | debian-sys-maint |
| localhost         | root             |


消えましたね。やっとこれからちゃんと勉強出来ます。

ではでは


MySQLの文字コード対応(utf-8に変更する)

テスト期間中なのですが、まぁなんだかモチベーションが下がってるのでとりあえずPCの前でくだらないようなことでもしておこうかと思いながら、ずいぶん前に立てておいた勉強用のサーバーを起動させてAndroidでもデータベース使うし、データベースの勉強をしていてつまずいたところを今回はメモしていこうと思います。


mysql>show variables like 'char%';

でまずは今使われている文字コードを確認。自分のはこんな感じになっていました。



+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


なのでこちらのサイトを参考にしながら、

sudo vi /etc/mysql/mysql.cnf

から

[client] default-character-set = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8



を追記。

んで再起動。再起動のコマンドはこれです。rootで

/etc/init.d/mysql restart

そしてMySQLの文字コードを再び確認。んで出てきたのがこちら。


+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+



character_set_database   | latin1      、character_set_server     | latin1 。。。。。
くそ。完全には除き切れなかったか。。。 


めんどくさいですが個別に対応します。

mysql>set character_set_database = utf8;
mysql>set character_set_server  = utf8;


を実行。もう一度確認。



+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+



よし。全部対応出来ました。
実際全部setでやればいけるちゃあいけるんでしょうね。

ではでは。