Skip to content

超革命的ゲームスクリプト言語アトラスXの使い方 #3 Twitterと連携して256倍楽しくする

やあshi3zだ。

みんな楽しくプログラミングしてるかな?
9leap 9Days Challenge #2の開催が決定したのは知っていると思う。

今回の9Days Challengeのテーマは「絆」
9leapに新たに搭載された新機能「Twitter連携」を活かしたゲームを募集している。

優勝すると最新のAndroid3.0端末や40インチ型テレビが貰えるという、豪華企画になっている。
見逃す手はないね。

9leapのAPI情報などは技術情報ページから見ることができる。

さっそくenchant.jsとTwitter連携機能を使ったサンプルゲームがアップされているぞ

enchant.jsの正式なプラグインは今日中にコミットされるはずだ。

さて、それにあわせて現在、仙台キャンプを開催中だ。
少人数での決行となったため、Wise9編集部の面々も一緒にゲームを作っているぞ。

そこで最近、ノンプログラマから熱い視線が寄せられているアトラスXを大幅に機能拡張した。
なんと言っても、目玉はTwitter連携機能だ。

以下の作品をまず見てほしい。

これは非常に簡単な、Twitterのフォロワーとの相性をランダムに表示するだけのプログラムだ。
しかしごく普通の相性診断でも、Twitterのフォロワーと絡むと急に新しい意味が立ち上がって来てしまうことに気づいたはずだ。

そう。現実の友達との関係性がミニゲームに出てくると、非常に面白いことになるのだ。
また、それに関連していくつか便利な新機能も追加されたぞ。

さて、さっそくこのゲームのコードを見てみよう。
ソースコードは例によってさっきの9leapのページからダウンロードできる。
見るべきなのはもちろんscenario.jsだ。

ソースコードをダウンロード

プレイヤー読み込み(); //A Twitterのプレイヤー情報を読み込む
友達読み込み(); //B フォロワー情報を読み込む
プロローグ = function(){
台詞("日替わりフォロワー相性診断","#ff8888");
台詞("今日の"+プレイヤーの名前+"さんにピッタリの相性の方を紹介します");
選択肢("占う",占い結果);
};
占い結果 =function(){
台詞("今日、"+プレイヤーの名前+"さんと相性バッチリの人は・・・");
一時停止();
相性度 = 乱数(70)+50; // C 乱数を使って50〜120%の数字を相性度というフラグ変数に格納する
台詞(友達の名前[0]+"(@"+友達のユーザID[0]+")さんです!!");  //D 友達の名前[数字]とすると、数字で示された番号の友達が参照できる
キャラ(プレイヤーのアイコン,70,120);  //E キャラという新命令が追加。指定されたURLの画像を指定した座標に表示する
キャラ(友達のアイコン[0],220,120);
画像("love.png");
選択肢("相性度:"+相性度+"% 告白のチャンス!?",function(){
game.end(0,"今日は @"+
友達のユーザID[0]+" さんと相性度"+相性度+"%です")});
};

驚くほど簡単だろう?

ではさっそく解説しよう。

AとBの行では、Twitter上からいろいろな情報を取得している。
ただし、この行があることによって起動がTwitterサーバとの通信のため若干もたつくようになる。
Twitter連携をしない通常のアプリの場合は、この行を書かなければ良いのだ。

そしてCの行。「乱数」という命令を使っている。
これも今回追加された命令だが、与えた数字を最大値とするランダムな整数を返してくれる便利な命令だ。

ここでは、乱数(70)として、0〜70までのランダムな数を得て、それに50を足すことで「相性度」に50〜120%の数値を入れている。
相性がいいフォロワーを紹介するという話なのに、相性度が50%未満というのはちょっとヘンだからね。

そしてDの行。
この行がひとつのキモだ。

今回のアトラスXでは、「プレイヤーの名前」などのフラグ変数にプレイヤーのTwitter名が入る。
実際に取得できるのは以下のような情報だ。

プレイヤーの名前
プレイヤーのユーザID
プレイヤーのアイコン
プレイヤーのフォロワー数
友達の名前[配列]
友達のユーザID[配列]
友達のアイコン[配列]
友達のフォロワー数[配列]

基本的に全て文字列で入っているが、フォロワー数だけは数字だ。

また、友達の情報は全て[配列]で入ってくる。
この配列にどのような順番で入ってくるかは原則としてランダムだ。

「友達の名前[0]」とすると、友達の中から誰か一人がランダムに選ばれて名前が表示される。
この友達のIDやアイコン画像のURLが知りたかったら「友達のユーザID[0]」や、「友達のアイコン[0]」とすればいい。

たったこれだけでTwitterと連動できるのだ。

このゲームでは、自分のアイコン画像と友達のアイコン画像をならべて表示するために、Dの行とEの行で「キャラ」という新しい命令を使っている。

これはその名の通り、キャラを表示するための命令だ。
第一引数にアイコン画像のURL、続く第二引数、第三引数で表示したい座標を示すことになる。

最後に背景に「画像」命令を使ってハートマークを表示すると、それっぽくなった。

結果はいつものように「game.end」を呼び出す。

これで完成だ。

いよいよ来週から始まる9Days Challenge #2、誰も見たことのない「ソーシャルミニゲーム」とでも言うべき作品を、待ってるぜ!

このエントリーをはてなブックマークに追加
はてなブックマーク - 超革命的ゲームスクリプト言語アトラスXの使い方 #3 Twitterと連携して256倍楽しくする
Post to Google Buzz
Share on GREE

Related posts:

  1. 超革命的ゲームスクリプト言語アトラスXの使い方 #2 フラグを使おう
  2. [enchant.js]shi3z式ゲームプログラミング #7 タイムアタックは神!
  3. shi3z式ゲームプログラミング #5 Twitterと連携だっ!
  4. shi3z式ゲームプログラミング入門 #1 72時間でゲームプログラマになる方法
  5. shi3z式ゲームプログラミング #6 覚えておくといいテクニック

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*