双方向通信、相手のカード表示、ドロー、ディスカードが出来るようになった
ネルケが出たのでサボっていたタワーづくりを再開。
1. マッチングロビーに他人がいればその人に対戦の申請
(二人はロビーリストから削除される)
2. 申請を受けるとバトルスタート、タワー関数を呼び出し
3. タワー関数呼び出しでサーバーにタワーを作らせる
4. タワーを二人に送る
5. ドローすると自分の手札の左端に表示、ドローしたことをサーバーに伝える
6. サーバーからほかのユーザーにドローがあったことを伝えてドローしたユーザーと同じ部屋(対戦相手)ならドローされたカードを相手手札に表示
7. 互いのタワーを1つ進める。
8. 手札のカードをタッチするとディスカード、ドローと同じようにディスカードがあったことをサーバーに伝えて他の人にブロードキャスト。
9. 手札を1枚削除する。左端にカードを詰める。
特定の相手にだけ通信するやり方がよくわからない。socket.ioにはルームの概念もあるらしいが全く分からない。
デバッグするのが難しくなってきた、一応何人でもできるはずだが?
画面が思ったよりも狭い。MTGは手札土地盤面があるのでめっちゃスペースがいる。
みんなデバッグを手伝うと思ってニックネームを入れてくれ(誰だかわからん)
socket.ioを使って双方向通信できるようになった。マッチングロビーをコピペで作った。
タワー開発日記
手札を7枚出す、カードを選んでディスカード、左上部のタワーのつもりで置いてるカード裏面をタッチするとドローをできるようにした。
インターネッツを参考にして数値べた書きではなく定数を設定した。
問題点 : カードイメージ(sprite)にインデックスを振る方法がわからない(タッチしたカードが左から何番目か判別できない)。
仕方がないのでタッチイベントの際にspriteが保持している座標とあらかじめ作っておいたhandList内の座標とを照らし合わせてタッチしたカードが左から何番目か判別しているがものすごくあほな感じがする。
次 : 土地とキャストできるようにすれば一人回しにはなるか?
タワー開発日記
カード7枚出すのにcard1~card7までvar card1 = new Spriteみたいにしていたが、for文で出せることに気が付いた。
Sprite一つ一つにcard.ontouchstart = touchFuncみたいな感じで押したときの動作を設定できるようになった
一度Sceneに載せたSpriteを剥がせるようになった。
結果タワーからカードをドローし続けられるようなプログラムができた。
問題は、押したときに押した場所にまたカードを表示する方法がわからないこと
(もとのSpriteの座標って保持できるのか?)
参考文献
タワー開発日記
タワー開発日記
ブログ主旨 : タワーの開発日記をつけて困ったことをインターネットの偉い人に聞く
ゴールイメージ : 手札があって、盤面を共有出来て、ドロー、土地埋め、墓地送り、ライフカウントができる。目隠し将棋をするのがきついので将棋盤を作るくらいのイメージ。効果の処理は全部手動でする。
現状 : ver1.0をサーバーたてて公開できるようになった
次 : タワーのデッキを作ってカード一枚ずつ引けるようにする。土地埋めとプレイエリア作ってなんか一人回しできるようにする。
課題 : カード表示一つ一つ手打ちしているがオブジェクトってやつにした方がよいのでは?
指定フォルダの中のカードイメージ数数えて配列作るみたいなのが意外と難しい
コード :
使ってるもの :