購入。Kindle Paperwhite

届きました。

最新モデルのKindle Paperwhite。

世代で言うと第10世代で、Kindle Paperwhiteとしては4代目らしい。

これがリリースされたのが2018年だから2年前なのね。

左が本体。右がカバーです。

今まで使用していたのは、第7世代(Kindle Paperwhite3代目)。

左が今まで使用していたKindle。右が新品。

サイズはほんの少しだけ右の方がコンパクトになっているね。

サイズが変わっているので、カバーも一緒に買っておいて良かった。

Kindleはディスプレイ部分が衝撃に弱いので、手帳型のカバーを買っていた方が長持ちします。

実際に、1回ディスプレイ破れました。

無償で本体を交換してくれましたが。

それがあってから、スマホ・タブレットのケースは手帳型最強説を唱えています。

今回のKindleで何が変わったかというと、

一番大きなところで、防水仕様になりました。

見た目からして、ディスプレイがフラット仕様になっていますね。

お風呂の中での読書もはかどります。

最近半身浴で長時間お風呂に浸かっていることが多いので、防水のKindleが欲しかったんですよね。

あと、本体の容量が4GBから32GBになりました。

Kindleの本のデータサイズはかなり小さくなるように調整されていますが、それでも4GBはあっという間に埋まり、定期的にデータ削除とデータダウンロードを繰り返しています。

Kindleはデータダウンロード時に一番バッテリーを消費するらしいので、あらかじめWi-Fi環境下で充電しながらダウンロードしておくのが一番良いらしいですよ。

一度ダウンロード済ませておけば、ほとんどバッテリー消費すること無く読書を楽しむことができます。

古いKindleはメルカリで売ることにします。

分解するにはもったいないので。

まだまだ十分使えますし。

【C#】【ALTSEED】【数独】パレットに×を追加。

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

最新ソースはこちら(gitHub)

https://github.com/takishita2nd/sudokuGUI

引き続き、パレットの中身を実装していきます。

パレットに×を追加します。

×のフォントをフォントジェネレータで作成して実装します。

    static class Resource
    {
        private static asd.Font _fontBatsu = null;

        public static asd.Font getFontBatsu()
        {
            if (_fontBatsu == null)
            {
                _fontBatsu = asd.Engine.Graphics.CreateFont("batsu.aff");
            }
            return _fontBatsu;
        }

これを使用します。

クラスは・・・PaletteSquareObjectを拡張しましょうか。

    class PaletteBatsuSquareObject : PaletteSquareObject
    {
        public PaletteBatsuSquareObject(int row, int col) : base(row, col)
        {
            _valueText.Font = Resource.getFontBatsu();
        }

        public void showBatsu()
        {
            _valueText.Text = "×";
        }

        public new void setPosition(asd.Vector2DF pos)
        {
            _x = _row * width + (int)pos.X;
            _y = _col * height + (int)pos.Y;

            _backTexture.Position = new asd.Vector2DF(_x, _y);
            _valueText.Position = new asd.Vector2DF(_x + fontOffsetX - 8, _y + fontOffsetY);
        }
    }

コンストラクタで、フォントを追加した物に指定、showBatsu()で×を表示します。

また、×の表示位置を調整するため、setPosition()をオーバーライドしています。

    class SquareObject
    {

        public void hide()
        {
            _valueText.Text = "";
        }

SquareObjectクラスにhide()を追加しました。これでわかりやすく文字を消すことができます。

これらをPaletteクラスに実装します。

    class Palette
    {
        PaletteBatsuSquareObject PaletteBatsuSquareObject = new PaletteBatsuSquareObject(0, -1);

        public void setEngine()
        {
            asd.Engine.AddObject2D(_texture);
            for (int row = 0; row < 3; row++)
            {
                for (int col = 0; col < 3; col++)
                {
                    asd.Engine.AddObject2D(paletteSquareObjects[row, col].getBackTexture());
                    asd.Engine.AddObject2D(paletteSquareObjects[row, col].getTextObject());
                }
            }
            asd.Engine.AddObject2D(PaletteBatsuSquareObject.getBackTexture());
            asd.Engine.AddObject2D(PaletteBatsuSquareObject.getTextObject());
        }

        public void show(asd.Vector2DF pos)
        {
            palettePosition = new asd.Vector2DF(pos.X, pos.Y - 64);
            _texture.Position = palettePosition;
            _texture.Texture = Resource.getPalette();
            int value = 1;
            for (int row = 0; row < 3; row++)
            {
                for (int col = 0; col < 3; col++)
                {
                    paletteSquareObjects[row, col].setPosition(pos);
                    paletteSquareObjects[row, col].setValue(value);
                    value++;
                }
            }
            PaletteBatsuSquareObject.setPosition(pos);
            PaletteBatsuSquareObject.showBatsu();
        }

        public void hide()
        {
            _texture.Texture = null;
            for (int row = 0; row < 3; row++)
            {
                for (int col = 0; col < 3; col++)
                {
                    paletteSquareObjects[row, col].hide();
                }
            }
            PaletteBatsuSquareObject.hide();
        }

やることは他の文字と同じで、Altseedエンジンへの追加、表示、消去を行います。

実行結果はこんな感じです。

まあまあですかね。