2023-10-07に更新

Godot で選択肢のカーソルをブリンクさせようぜ(^~^)?

親記事から来た

📖 Godot って何だぜ(^~^)?

はじめに

202310__godot__07-2150-CursorNotYetBlink.png

ramen-tabero-futsu2.png
「 👆 カーソルが ブリンク(Blink;点滅)してないのは 気になるぜ。
ブリンクさせよう」

kifuwarabe-futsu.png
「 スプライトを使えば アニメーションで簡単に点滅できるんじゃないか?」

ramen-tabero-futsu2.png
「 こいつ、スプライトじゃなくて Label なんで。
機種依存文字 なんで」

ohkina-hiyoko-futsu2.png
「 似非コンソールなんか 作ってるから 苦労すんのよ」

kifuwarabe-futsu.png
「 func _process(delta) メソッドを使って self.visible = not self.visible で点滅するんじゃないか?」

ramen-tabero-futsu2.png
「 self.visible = false したのだったら ずっと消えててほしいし、
self.visible = true したのだったら ずっと表示されていてほしいんだぜ。
勝手に visible をひっくり返さないでほしいんだぜ」

kifuwarabe-futsu.png
「 じゃあ 透明度を変えたらいいんじゃないか?」

ramen-tabero-futsu2.png
「 だから こいつは 画像じゃなくて Label なんだぜ」

ohkina-hiyoko-futsu2.png
「 👇 Label も、 .modulate.a プロパティがアルファ値だそうよ?」

📖 Is it possible to change the transparency of label?

ramen-tabero-futsu2.png
「 試してみるか……」

実装

#   チョイスカーソル(Choice Cursor;選択肢カーソル)
extends Label

# ...

#   カーソルが点滅するための時間カウント
var blinker_seconds = 0.0
var blinker_interval = 0.5

# ...

func _process(delta):

    #   点滅
    self.blinker_seconds += delta

    if self.blinker_interval <= self.blinker_seconds:
        if 0 < self.modulate.a:
            self.modulate.a = 0.0
        else:
            self.modulate.a = 1.0

        self.blinker_seconds -= self.blinker_interval

    # ...

ramen-tabero-futsu2.png
「 👆 おっ、これで いけた!」

親記事に戻る

📖 Godot って何だぜ(^~^)?

.

ツイッターでシェア
みんなに共有、忘れないようにメモ

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント