【ナナオン】ガチのバンドリーマーがナナオンをプレイして見た。

22/7(ナナブンノニジュウニ)音楽の時間。

オイラはリズムゲームを本格的にプレイ始めたのはガルパが初めてだったので、他のリズムゲームもプレイして見たいとも思っていまして、

で、何故このゲームかというと、最近リリースされたばっかりなので、他のプレイヤーとそんなに差が開いていないだろう、と思ったためで、

まぁ修行っす。修行。

で、このゲーム、一部の界隈ではガルパのパクリと言われているゲームです(言っちまった。)

まぁ、ゲームシステムが似ているゲームは他にもたくさん知っているのでいちいち驚きはしません。

ゲームは22/7のメンバーが(秋元先生の)指令で学校に転校になって、主人公は彼女達の担任の先生兼マネージャーとなります。

まぁ、あれこれ差分を洗い出すのはめんどくさいので、とりあえずプレイして見るよ。

やはりエキスパート所見フルコンボは無理でした。

ハードならなんとか。

ライブ設定ですが、ノードのスピードはガルパと同じ10.5、スキンはノードの区別がわかりやすい(と思った)タイプ2を選択。

コンボ数の表示は中央だとめちゃくちゃ邪魔なので、右に表示。

スキルのカットインも非表示。

あと、マルチプレイの特殊演出も消したいんだけど、設定ある?

やってみた感想としては、やっぱり譜面のクセというか、ガルパと違っててちょっとやりづらいというのも最初はありましたが、慣れればなんとかなるかな、と思いました。

そもそも、ガルパは7レーンですが、ナナオンは5レーンなので。

でもリズムゲームとしては悪くないと思います。

今はガルパの方がイベント終了後のインターバル期間なので、もう少しやってみます。

あと、気になったのが、さすがアニプレックスというか、

カバー曲にコネクト(ClariS)、ideal white(綾野ましろ)、IGNITE(藍井エイル)、outh sign(LiSA)、桃色タイフーン(春奈るな)。

お気づきでしょうか。

みんなソニーミュージックの面々だということを。

あーこれらはガルパではカバーされないな(確信)。

【ラズパイ】【GLCD】画面に直線を引く

前回までの状況はこちら。

最新ソースをgitHubにアップしました。

https://github.com/takishita2nd/GLCD

今回は画面に直線を引きます。

始点と終点の座標を与えると、直線を引くようにします。

傾きがあった場合でも引けるようにします。

といっても、サンプルをPythonに書き換えただけですが。

def GLCDLine(Xp0, Yp0, Xp1, Yp1):
    #差分の大きい方を求める
    steep = (abs(Yp1 - Yp0) > abs(Xp1 - Xp0))
    #X,Yの入れ替え
    if steep == True:
        x = Xp0
        Xp0 = Yp0
        Yp0 = x
        x = Xp1
        Xp1 = Yp1
        Yp1 = x
    if Xp0 > Xp1:
        x = Xp0
        Xp0 = Xp1
        Xp1 = x
        x = Yp0
        Yp0 = Yp1
        Yp1 = x
    #傾き計算
    deltax = Xp1 - Xp0
    deltay = abs(Yp1 - Yp0)
    er = 0
    y = Yp0
    ystep = 0
    #傾きでステップの正負を切り替え
    if Yp0 < Yp1:
        ystep = 1
    else:
        ystep = -1
    #直線を点で描画
    for x in range(Xp0, Xp1 + 1):
        if steep == True:
            GLCDPutPixel(y, x)
        else:
            GLCDPutPixel(x, y)
        er += deltay
        if (er << 1) >= deltax:
            y += ystep
            er -= deltax

まずどちらの方向に描画していくか(縦or横)を判定します。

基本的に絶対値が大きい方向に描画していきます。

縦方向に描画していく場合はx/yを入れ替えます。

あとは傾きに応じてy/xを加算しながらx/y方向に描画していきます。

def __main():
    PinsInit(20, 7, 8, 9, 18, 19, 10, 11, 12, 13, 14, 15, 16, 17)
    GLCDInit()
    GLCDDisplayClear()
    GLCDBox(0, 0, 127, 63)
    GLCDLine(0, 15, 127, 15)

    try:
        while True:
            time.sleep(1.0)
    except KeyboardInterrupt:
        GLCDDisplayClear()
        GPIO.cleanup()
def __main():
    PinsInit(20, 7, 8, 9, 18, 19, 10, 11, 12, 13, 14, 15, 16, 17)
    GLCDInit()
    GLCDDisplayClear()
    GLCDBox(0, 0, 127, 63)
    GLCDLine(0, 15, 127, 18)

    try:
        while True:
            time.sleep(1.0)
    except KeyboardInterrupt:
        GLCDDisplayClear()
        GPIO.cleanup()