忍者ブログ

日記帳の裏側で。

自分が思ったことや興味を持ったことを中心に日記として書いています。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

パソコンの調子が悪い

こんにちは。

なんか久しぶりになりましたが、
そろそろ9月ですね。


2週間前くらいですが、
パソコンを起動するといきなりブルースクリーンになって、
勝手に再起動したかと思ったら、3F0エラーが出るようになりました。
起動用のディスク(SSD)が認識できないようです。


起動したときは CrystalDiskInfo などでは問題なさそうなのですが、
いきなり反応しなくなったり、起動したり…。
リカバリーを試そうとしても途中で認識できなくなるのか失敗します。


修理を考えつつ、今までNECを使っていて、
今回だけhpを使っていたから浮気して怒られたか?
なんて思って、一応新PCにしてみました。
せっかくなので、Ryzen 7 Extreme な奴にしてみました。


今後ともよろしくお願いします。

拍手

PR

月曜が近づく・・・

こんにちは。


この土日は晴れていて、暑かった(暑い)です。
散歩する季節ではなくなってきましたね。


もぐら。の Android 版を作っていたのですが、
リジェクト(非承認)を食らってしまいました。


収益も見込めない(非課金・広告なし)うえ、
Web ブラウザー上で遊べてしまうもぐら。に
コストを掛けられないなと思い、
これ以上進めるのは今はやめにしておこうかと思います。


こういう理由でリジェクトされるということは、今回勉強になりました。
ただ、アプリ自体の問題というより、
公開設定を直し、整備すれば通りそうな感じではあります。

拍手

【Android】this.getPreference と getSharedPreference って違うんだ...

こんにちは。


Android のプログラムで、
データを記録する Shared Preference という機能があるのですが、
いままで、アクティビティに以下の通り書いていました。

val preference = this.getPreference(Context.MODE_PRIVATE)

このあと、別アクティビティで同じようにして
データを呼ぼうとしたら、取得することができませんでした。
どうも下記のように書くようです。

val preference = getSharedPreference("SAVEDATA", Context.MODE_PRIVATE)

どちらも同じなのかと思ったら違ったのですね。。。

拍手

NEC LAVIE の 2021 年春モデルが発表された

こんにちは。

今年の頭に CES 2021 で発表する内容をプレス発表していましたが、
新機種も大体この時期なので、発表されましたね。
  • モバイルノートの LAVIE Pro Mobile
  • 一体型デスクトップの LAVIE A27/A23
  • 11型 Android タブレットの LAVIE T11
Pro Mobile は CES 発表通りで Intel 第11世代の CPU が乗ったようです。
Intel IRIS Xe ってどんな性能なのか気になります。

その流れで、
A27/A23 にも 第11世代でグラフィックス性能 UP を期待していたのですが、
10世代のままでした。画面は、23型推しになったのかな?
筐体も昨年モデルと同じですね。

11型タブレットの T11 は有機 EL 搭載モデルも出て、
オプションでスタイラスペンとキーボードもあるので、
作業とかお絵描きとかに使えるのでしょうか。


毎年一体型デスクトップに期待しながら、
その通りになってくれないもどかしさがありますね。
まあ、ノートメインですよね。


追記:14型 LAVIE N14 も発表されていました。こちらも上位機種に Intel 第11世代 CPUを搭載していますね。(Home Mobile の置き換え?)
LAVIE N12 も Intel 第11世代 CPU …デスクトップはダメですか。。。

拍手

Canvas で画像がちらつくと思ったら

こんにちは。

もぐら。で遊んでいて、いつも画像のちらつきが気になっていました。
ロゴとか、もぐらがちかちか、とたまにちらつくな、と。
したら単純なミスでした。

そもそもどう描画しているのか

もぐら。は JavaScript の Canvas で描画していて、
1つの画像内にいくつかもぐらのしぐさによって、
絵をかき分けて書いています。
(プログラム上で画像を分割して使用する)

単純にバッファの問題かと思った

他のゲーム制作とかだと、
事前に見えないウインドウなどを作って、描画する絵を作っておいて、
必要な時に作った絵をコピーして、見えるウインドウに貼り付ける
ダブルバッファリングというみたいな処理が必要なのかと思っていたのですが、
結果何も変わらない・・・。チカチカーemoji

画像を描画する処理で

こんな書き方していました。

function drawimg() {
let img = new Image();
img.src="画像のパス";
drawImage(img, ...);
}

この関数は描画するたびに呼ばれます。
例えば、もぐらの穴を描画したいとき、
穴は26個あるので、26回呼ばれます。

このコードで問題なのは new Image() を毎回しているところで、
ここで画像を管理する仕組みを呼び出して、画像管理.src (ソース)にて、
画像のパスを指定します。ここで画像がパスから読み込まれます。

これをだいたい 30 fps (1秒間に30回画面の書き換え) を行うため、
画像を毎回パスから読み込んで表示していたようです。。。

これは、ブラウザーでよく F12 キーを押すと出てくる開発者ツールの、
ネットワークの通信内容を確認する機能があり、
そこで確認するとその画像が毎回ではないにしろ、
点滅する時点で読み込まれているのがわかりました。

結局は、
let img;
// drawImg が呼ばれたら実行
function drawImg() {
drawImage(img, ...);
}

// ページ読み込み時に発火
window.addEventListener('load', function {
// 先に画像を読み込んで
img = new Image();
img.src = "画像パス";
// 描画処理をする (ここでは3枚)
drawImg();
drawImg();
drawImg();
}
);

と、先に、画像を読み込んでおいてから、
画像を描画することで開発者ツールも1度の読み込みのみになりました。


初歩的なミスでしたが、本日プログラムをアップデートしました。
ネットで探しても改善するわけないよなーという事例でした。
(自分用・・・)


2020.11.27 addEventListener のコードの記述ミスを修正

拍手