Coder Social home page Coder Social logo

matchland's People

Contributors

forestone23 avatar mmorihiro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

matchland's Issues

enable test

Purpose

coreプロジェクトを view, controller, model に分割(MVCパターン)し、modelプロジェクトでテストを可能にする。

TaskList

  • view, controller, model に分割した状態で、#1 と同等の動作を可能にする。
    • viewとcontrollerは依存関係が似ているので、packageのみでの区別にする。
  • modelプロジェクトのテストを Spek KotlinTestを使って書く。
    • Spekではガバレッジの測定が難しいのでKotlinTestを使う。
  • travis ciでのテストおよびガバレッジの計測を開始する。

create random maps

Purpose

上画面のマップをランダムにする。

TaskList

  • マップを作り続けるようにする
  • ランダムなマップをModelプロジェクトで生成する
  • スターを追加する
  • アクション実行中にはポインターの移動を制限する

ScreenShot

image

add counter of bullets

Purpose

残りの弾数を数えられるようにする。(弾数を制限する)

TaskList

  • カウンターの画像を追加する
    • BarView に追加する
    • ShapeRenderer でパーセントを表すバーを表示(パーセントに応じて描画)
    • 25%以下になったらオレンジ
  • パーセントバーと残りの弾の数を同期させる
    • 発射の際にBarViewに通知する
    • 0%になったら停止
  • 文字で表示する
    • バーの右上にbulletsと表示する。(Labelを使う)
    • 弾のサイズを小さくする
    • 残りの弾の数 / 元々の数 を表示する。(残りの弾の数は2桁にする)
    • 位置をパーセントバーに合わせる

ScreenShot

gif11

Add map to upper screen

Purpose

下画面で取ったバブルの個数から距離を, 種類から方向を求めて上画面に表示する。

TaskList

  • ポインターを追加する。
  • バブルをポインターの位置に追加する。
  • 移動可能領域を制限する。
  • スターを追加する。
  • ポインターの位置を変更できるようにする

ScreenShot

image

Create top screen

Purpose

トップ画面を作ってゲーム画面と行き来できるようにする。

TaskList

  • 背景画像を作る
  • プレイヤーがアイコンを変更できるようにする
  • ゲーム画面に一時停止ボタンを追加する

ScreenShot

image
image

make jewels move

Purpose

シューティングゲームらしくするために宝石を動かし、それを取れるようにする。

TaskList

  • 弾が命中した場合に取れるようにする。
    • とりあえずエフェクトは抜きで削除する。
  • 宝石が動くようにする。
    • 動きは仮実装で1種類のみとする。
    • 壁、大砲、他の宝石に当たった時に方向転換する。

ScreenShot

gif8

Effect when connecting

Purpose

エフェクトを追加する。

TaskList

  • アイコンを移動させる
  • タイルの色が変化する際のエフェクト

ScreenShot

gif61

add jewels

Purpose

宝石を的として追加する。

TaskList

  • 宝石4個程度(2種類)をImage として追加する。
  • かぶらないようにする
    • 大砲とかぶらないようにする。
    • 他の宝石とかぶらないようにする。

ScreenShot

image

decide the winner

Purpose

プレイヤーと敵の勝敗の判定をする。

TaskList

  • 判定を出力する

    • 全てのバブルを取り終えたときと残りの玉が0になったときのコールバックを追加
    • 相性を含めて判定する(modelプロジェクトで実装)
  • テストを追加

    • KotlinTestを2.0.0にバージョンアップする
    • 勝敗判定のテストを追加

Replace config4k with moshi

Purpose

config4kがAndroidでは動かないので、Moshiに変更して動くようにする。

TaskList

  • Moshiを導入
  • java.io.Fileの代わりにGdx.filesを使う

Screenshot

screenshot2

Add loading screen

Purpose

ゲーム起動時の演出を追加

TaskList

  • 下画面にバブルが落ちてくる演出を追加

Add bubbles under items

Purpose

バブルをアイテムと同じように並べる。

TaskList

  • バブルをアイテムの下に配置する
    • 色は緑と黄色

ScreenShot

image

Add record window

Purpose

ライフが0になったら記録を表示する。

TaskList

  • ウィンドウを表示
    • スターの数を表示
  • 5段階の記録を表示

ScreenShot

image

Change repository name

Purpose

レポジトリの名前をlarger-circleから新しいものに変更する(変更はゲームが大体完成したら)

新しい名前

MatchLand

Improve PuzzleView

Purpose

PuzzleView の機能を改善する。

TaskList

  • 使えるアイコンの種類を増やす
  • 波アイコンがプレイヤーの色を消さないようにする
  • プレイヤーの色を敵の色が上書きしてしまうのを防ぐ

ScreenShot

image

shoot a bullet to a touched position

Purpose

**からクリックされた座標に向けて弾が発射されるようにする。

TaskList

  • Stageを継承するViewを作り、クリック位置を検知する。(ktx-actorsを使用)
  • 弾を表すImageをViewに追加し、クリックされたら表示する(動かさない)。
  • ActorにActionを追加し、クリックされた座標に向けて発射する。
  • 画面外に出たら、削除されるようにする。

ScreenShot

gifcam

decrease jewels

Purpose

宝石を一度に1つにする。

TaskList

  • List<Image> からImageにする(テストも変更)

  • 宝石(1つ)が取られたら新たに1個追加する

ScreenShot

image

IndexOutOfBoundsException

再現方法

2回目以降に6列目を選択する。

StackTrace

Exception in thread "LWJGL Application" java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
        at java.util.ArrayList.rangeCheck(ArrayList.java:653)
        at java.util.ArrayList.get(ArrayList.java:429)
	at mmorihiro.larger_circle.view.PuzzleView.getBubbleFromPoint(PuzzleView.kt:34)
	at mmorihiro.larger_circle.controller.TouchActionKt.onTouchDragged(TouchAction.kt:51)
	at mmorihiro.larger_circle.controller.PuzzleController$view$2.invoke(PuzzleController.kt:15)
	at mmorihiro.larger_circle.controller.PuzzleController$view$2.invoke(PuzzleController.kt:11)
	at mmorihiro.larger_circle.view.PuzzleView.touchDragged(PuzzleView.kt:74)
	at com.badlogic.gdx.InputMultiplexer.touchDragged(InputMultiplexer.java:102)
	at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:335)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:217)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)

Change stage

Purpose

ステージクリア時に新しいステージに進む

TaskList

  • 新しいステージに進む(エフェクトはなし)
  • 文字列を表示

add a cannon

Purpose

弾が大砲から発射されているように見えるようにする。

TaskList

  • 大砲をImageとして**に追加する。

  • 弾を発射したときに大砲が点滅するようにする。

  • 背景画像を追加する。

ScreenShot

gif5

Add bar

Purpose

色の割合を示すバーを下側に追加する。

TaskList

  • 色の割合を表示
    • バーの画像を追加
  • 3個の ⭐ をバーの上に配置

ScreenShot

image

Add new stages

Purpose

ステージの種類を増やす

TaskList

  • 敵の強さを調整する
  • 星の位置を調整する
  • 初期のタイルの色の配置をステージごとに変える

Add items

Purpose

アイテムをハニカム構造に並べる。

TaskList

  • アイテムのアイコンを用意(背景も変更、references.md を更新)
  • 方向バブルをアイテムで置き換える(コードの名前も変更、MapView は廃止して上下の区別をなくす)
  • ハニカム構造に並べる

ScreenShot

image

enable to get bubbles by touch

Purpose

バブルをシューテイングで取るのを中止する。(下画面)

TaskList

  • バブルの移動方法を変更する
    • 上から下へ移動させる。
  • バブルの取り方を変更する
    • 接している同じ色のバブルを取れるようにする。
  • 結果を表示する
    • この時点で上画面に通知する。(上画面は未実装なので何もせずに終了する)

ScreenShot

image

StageChange window

Purpose

ステージ変更の際にウィンドウを表示する

TaskList

  • ウィンドウを表示
    • ktxでUIを組み立てる
    • continueボタン
  • 画面遷移のエフェクト

ScreenShot

gif67

Add new bubbles

Purpose

空いた部分に新しい要素を追加する。

TaskList

  • 配列を縦にする
    • 最初の落ちてくるエフェクトは廃止
    • つなげた要素には黒いフィルターをかける
    • MapView との連携はいったん解除
  • 空いた部分に新しい要素が落ちてくるようにする
    • 下がなくなった既存の要素を落とす
    • 空白部分に新しいものを追加

ScreenShot

gif45

add bar

Purpose

画面の一番上に状態を表示する。

TaskList

  • 残りのターンを表示する
  • スターを取ったときにスターの表示を増加させる

ScreenShot

image

Save stage number

Purpose

終了時のステージを記録して、再開できるようにする。

TaskList

  • ファイルに記録する
    • config4kを使用
  • ステージの番号を表示

ScreenShot

image

Bubble to square

Purpose

バブルから正方形に背景を変える。

TaskList

  • 並べ方を元に戻す(アイコンも変更)
  • 色アイコンを実装
    • 炎 ➡️ 赤, 雷 ➡️ 黄色, 波 ➡️ 無色
    • つなげた数が多ければそのアイコンに対応する色が増える
    • 既に色があるタイルは、波アイコンで無色にしてからでないと新たな色にできない

ScreenShot

image

Use AppWarp

Purpose

AppWarpを使ってオンラインで二人のプレイヤーが対戦できるようにする

TaskList

  • AppWarp を導入

add jeweled door

Purpose

上画面に2つのドアを追加し、取られた宝石を右側のドアにはめ込む。

TaskList

  • ドアと宝石をはめ込むスペースを追加

    • 宝石の数はとりあえず4つ
  • ドアにはめ込まれる宝石と下画面に出てくる宝石を一致させる

  • 宝石をドアの追加したスペースに入れる

ScreenShot

image

make player go to left door when no ammo

Purpose

弾切れになったときに左側の扉へ行くようにする。

TaskList

  • 弾切れのコールバックで currentViews を更新する
    • 弾切れの判定は最後の玉が画面外に出たときとする。(最後の玉を発射した時ではない)
  • 部屋の位置を表示する
    • 上部に文字で表示する。
    • 左側に進む時は列を変えず、右側に進んだときに列を一つ右にする。
    • 行は新しいステージを作ったときに変更するので、現状は据え置きで1のままにする。
  • 移動時のエフェクト

ScreenShot

TODO

make bubbles fade in/out

Purpose

バブルがフェードイン、フェードアウトしながら移動するようにする。

TaskList

  • 残りの弾数を大砲の部分に表示する
    • グラフィックは今後
  • バブルにフェードイン、フェードアウトのアクションを追加する
  • バブルをフェードアウトの後に移動させる
    • CircularMotion をベースにする
    • テストを作成

ScreenShot

gif19

add player and enemy

Purpose

上画面にプレイヤーと敵を表すバブルを追加する

TaskList

  • プレイヤーと敵のバブルの画像を追加

    • 従来のViewをリネーム。DoorView ➡️ BattleView, BasicView ➡️ ShootingView
  • 下画面でバブルを取ったときにプレイヤーを強化する

    • 数字を大きくする
    • 取ったバブルに色を合わせる
    • バブルを膨らませる

ScreenShot

image

add bubbles to upper screen

Purpose

大砲で取れるように上画面にバブルの列(3列)を追加する。

TaskList

  • バブルの列を追加する。 
  • 下画面で取ったバブルを上画面の大砲が発射するようにする。
  • 発射された弾がバブルを取れるようにする。
    • 当たったら取る
    • 相性を考慮する
    • 新たな行に移行する。

ScreenShot

image

Implement enemy

Purpose

プレイヤーの色ではない色を増やそうとする敵を追加する。

TaskList

  • 敵が選ぶアイコンを決める
  • 選んだアイコンを動かす

ScreenShot

gif63

Connect bubbles

Purpose

下画面のバブルをつないで消せるようにする。(今まではクリックのみで、隣接するものが全て消えていた)

TaskList

  • 隣接するバブルを強調して表示する
  • バブルをつなげられるようにする
    • 隣接していれば操作中のバブルを変更し、個数を表示する
    • 離された時点で上画面に伝える
    • 再選択可能にする

change jewel to bubbles

Purpose

下画面の宝石をバブルに変更。

TaskList

  • #13 を打ち消し、宝石から複数のバブルにする
    • 動きは無しで、停止したままにする
    • BasicViewModelSpec を修正
  • 背景を変更
    • 下画面の背景も透明なバブルに変更し、その内部にバブルが配置されるようにする
    • 弾は円の範囲外に届いた場合、削除する
    • バーは表示しない (#19 で表示場所を変える)
  • バブルを円**させる
    • 円**の方法
    • libgdxのactionを拡張して実装する(RelativeTemporalActionを継承したCircularMotionを作成)
    • テストは#19 で作成

ScreenShot

image

Use Viewport

Purpose

全てのViewで FitViewPort を使い、解像度が違っても問題なく動作するようにする。

move the cannon

Purpose

下画面の大砲を削除し、上画面に大砲を追加。

TaskList

  • 画像を変更する
    • 上画面に大砲を追加
    • 上画面をとりあえず大砲だけにする
    • 下画面の大砲の画像や背景を変更(点滅はなくす)
    • references.mdを更新
  • 下画面の弾の軌道を調整

ScreenShot

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.