日記 2013年  7月分

title


2013/07/31(水)

 特性インピーダンスというものを自分で測ってみました。
 ヘッドホンでインピーダンス何Ωというあの値のことです。
 これってテスターで抵抗何Ωって測るのとは違っていて、そう簡単には測れないものです。

 このページにまとめました。→


2013/07/28(日)

この金土日にやっていたこと…
(金曜日は会社が休みだった)
もう寝る時間なので画像なしで文字だけでゴー。

<金曜日>
半田こての練習
 会社で専門的な機械を作る生産部の仕事をさせてもらっていて、その関係ではんだづけの資格試験を受ける予定です。

Nintendo3DSで「ふぁみこん昔話 新鬼ヶ島 前後編」(1987年 任天堂 ¥500)を購入
 高校の友達が話題にしていたゲームが、DSの復刻版(バーチャルコンソール)で出ていたのでダウンロード。
 ~昔々、おじいさんは山へ しばかり におばあさんは川へ洗濯に行きました。
 川上から おわん がどんぶらこと流れてきました。
 おわんのふたには「内側の線までお湯を…」と書いてありました。
…といったノリ。
 ところで、しばかり って庭の芝を刈るとかそういうんじゃなくて、柴を狩る ということで、つまり 焚火にするための小枝(=柴)を取ってくる という意味なんだそうだ。
 山にそんなきれいな芝があって、庭を手入れするように刈るんだ…?と、子どものころから謎だった。

<土曜日>
自作ソフト「関数スイッチャー」開発進行
 テキストファイル上で「ある関数がほしい」と記入すると、その関数を挿入してくれる自作のソフト。
 今回機能向上を図ろうとしたら、プログラムを根本的に変更しないと機能向上できないことに気づき、しぶしぶ いちから作り直しました。
 思いついてすぐにガシガシ作り始めるからこうなるんだ…しぶしぶ

自分のPCのファイル環境を変更
 LANにつながったNASを、自分のマイドキュメントフォルダに設定して、PC上のハードディスクは、そのNASのバックアップという変な 使い方で1,2年くらい使っていました。
 どのPCからもアクティブな唯一のマイドキュメントとして使える…というメリットはあるものの、何かと細かい問題があったので、”PC上の ハードディスクをマイドキュメントにして、NASはそのバックアップ”という役割に変更しました。(それが普通)
 数十ギガバイトあるデータを NAS←→PC 間で入れ替え(コピー&削除)したので丸一日かかりました。
 それだけ。

電子回路部品を通販買物
 いつものように自分への投資として、あまり裕福ではないけど、買い物しました。
 ケーブルのコイルとしての値と、コンデンサとしての値を測定し、計算すると、テレビのケーブルで使われる75Ωとか、オーディオで使われて いそうな50Ωとか、そういう数値を導き出せると言うことで、LCRメーターというものを買いました。
 たぶん、ヘッドホンのケーブルを測定して計算すると、ヘッドホンの説明書に書かれている何Ωという数字が出てくるはず…。そういう体験をす ると、難解なインピーダンスを理解する手掛かりになるのではないかと思って。
 その他もろもろも買いました。

<日曜日>
ソーシャルネットワークゲーム「パズドラ」
 ニュースで取り上げられたし、なんか騒いでいるようなので、どんなものかなと思ってダウンロード&プレイしました。
 本気でプレイ・本音でレビュー。
 面白くない…。何が面白いのか? 最近はこういうのがいいのか?
 最初はそう思っていたけど、30分程度遊んだだけでそう判断するのはどうかと思って、面白くないと思いつつ、何が面白いのか、根気でプレイ し ました。
 それでわかったんですが、結構面白くて はまる。
 パズル部分も面白いし、モンスターを集める部分も面白い。
 最近の子供たちのムーブメントがわかった気がして良かった。
 ムーーーーーブ

小山の花火を観た
 毎年の花火を観ました。
 周りに人がどやどや増えてくると、居心地が悪くなって退散してしまいました。
 この辺の へこみ は課題だなぁとか思いながら。

パワーポイントで発表準備
 会社で発表する予定なので準備しました。
 パワーポイント買って良かった。

 この金土日もやまごもりのように部屋にこもり、ありあわせの食料でなんとかしのぐような生活をしていました。こんなことしているから独り者 なんだよ…。それとも独り者ゆえにこんなことができるのか…。
 日曜日の夕方にさすがに食料がなくなって買い物へ出かけました。


2013/07/21(日)

ニンテンドー DSi ウェア「プチコンmkII」 (\800)

キー入力を 受け取るにはどうすれ ばいいのだろう?

●サンプルプログラム1

   CLS
   @RUN
   K=BUTTON(0)
   LOCATE 0,0
   PRINT K
   GOTO @RUN

キー入力は上記プログラムのように BUTTON(0) で受け取れます。

プログラムを実行するとキー入力を受け取り、受け取ったキー番号を画面に表示します。
ゲームで使うような、滑らかなキー入力は、このBUTTON(0)で行えます。

※BUTTON(0)は一瞬のキー状態を調べるだけです。GOTOで繰 り返し調べるようにす るこ とで、キー入力し続けるようになります。


BUTTON() で受け取れる キー番号の例

1
2
4
8
  
この矢印はDSの十字ボタンです。
この数字を頼りにプログラムしていきます。


スプライト を使いたい

●サンプルプログラム2


このサンプルプログラムでは、DSの十字ボタンでシューティングゲームの自機が動きます。

SPSET文でスプライトを作成しています。作成すると同時に画面に表示されます。
画像はプチコンmkIIであらかじめ用意されているプリセット画像です。事前の準備は不要で、プログラムでいきなりSPSET 0,288,..と書けば、すぐに288番の画像が表示されます。
SPOFS文で作成したスプライトの座標を変更しています。


 このサンプルプログラムの中央付近にIF文が4つ並んでいて評価部分は K AND 1 のようになっています。KはBUTTON(0) で受け取ったキー番号です。キー番号1は上ボタンを表します。
 『キー入力が上ボタンのときは、Y方向の座標を増やす』としたいとき、単純に考えれば IF K==1 THEN ...とすると思います。
 私も最初はそう書いたのですが、どうも自機の動きがカクカクしていて滑らかではありません。
 下記のサンプルプログラムのように IF K AND 1 THEN ...としたほうが自機の動きが滑らかになります。それはなぜな のか。
 この下のほうで説明します。

    CLS        @INIT        ADD=2    PLAYERX=0    PLAYERY=0    SPSET 0,288,11,0,0,1    SPSET 1,289,11,0,0,1            @RUN        ADDX=0    ADDY=0    K=BUTTON(0)        IF K AND 1 THEN ADDY=-ADD    IF K AND 2 THEN ADDY=ADD    IF K AND 4 THEN ADDX=-ADD    IF K AND 8 THEN ADDX=ADD    PLAYERX=PLAYERX+ADDX    PLAYERY=PLAYERY+ADDY            @DRAW        LOCATE 0,0    PRINT K    SPOFS 0,PLAYERX,PLAYERY    SPOFS 1,PLAYERX,PLAYERY+16    VSYNC 1    GOTO @RUN            '*** END OF PROGRAM ***
BUTTON() の返り値を K AND 1 という形で処理すると自機の動きが滑らかになる。そのしくみとは?

上下左右に動かす..と思って単純に書くとこうなると思います。

IF K==1 THEN ADDY=-ADD '上
IF K==2 THEN ADDY=ADD '下
IF K==4 THEN ADDX=-ADD '左
IF K==8 THEN ADDX=ADD '右

 しかし、このように書く場合は、ななめの処理ができません。
 ななめというのは、たとえば、DSの十字ボタンを左下に押した場合に、Kは4(左)にもならず2(下)にもならず、6(左と下)になり ま す。
 6(左下)の処理を書いていないのでななめに押したときは、自機は動かずに止まってしまいます。
 そのため滑らかではなく、カクカクとした動きになってしまいます。
 RPGのように上下左右だけで、ななめには動かない場合はこれでも良いかもしれません。

では、その書いていない6(左下)の処理などを書けば良いかもしれません。

IF K==1 THEN ADDY=-ADD '上
IF K==2 THEN ADDY=ADD '下
IF K==4 THEN ADDX=-ADD '左
IF K==8 THEN ADDX=ADD '右
IF K==5 THEN ADDY=-ADD : ADDX=-ADD '左上
IF K==6 THEN ADDY=ADD : ADDX=-ADD'左下
IF K==9 THEN ADDX=-ADD : ADDY=-ADD'右上
IF K==10 THEN ADDX=ADD : ADDY=ADD'右下

記述は多くなりますが、これで滑らかな操作になります。
わかりやすくて良いと思います。

でも、記述を減らしてすっきりまとめたい場合は、以下のようになります。
(サンプルプログラムで使っている書き方です)

IF K AND 1 THEN ADDY=-ADD '上
IF K AND 2 THEN ADDY=ADD '下
IF K AND 4 THEN ADDX=-ADD '左
IF K AND 8 THEN ADDX=ADD '右

 さきほど、「IF K AND 1 THEN ...としたほうが自機の動きが滑らかになります。それはなぜなのか。」と書きましたが、これを理解するためには、「2進数」と「論理演算」というモノを知っている必要 があるんじゃないかと思います。
 これらの説明は難しいので省かせてもらいますが、『Kという変数のなかに複数のフラグがあって、ANDという計算をすることで、その中 の 必要なフラグだけ を取り出して見ている...』といったことをやっています。
 1つの数値なのに、上のボタンが押されたかどうか、下のボタン、左右のボタンABボタン等、複数のボタンの押し下げ情報を入れられま す。
 たとえば、Kがそのとき9だったとすると、上ボタンと、右ボタンのフラグが立っている..という見方ができ ます。
 そのときは 上記の4行の例の、1行目と4行目のIF文がtrueとなり(このときなんでtrueとなるのか説明するのが難しい)、その結果ADDYがマイナスになり、ADDXが プラスになり、座標は右上へ動く...という処理になります。
 ななめの処理となるので、上下左右だけの処理にくらべて、滑らかに動 きます。

 スプライトの処理は、プチコンmkIIのBASICの処理系とは別になっている感じで、上記のようなちょっとしたサンプルプログラムだ けでかなり滑らかな動きを実現できます。スプライトの当たり判定なども自分でプログラムを組まなくても、スプライトのシステムが行ってく れるようです。
 結構面白くてイイですね。


ゲームの品を良くするVSYNC  (ブイシンク)

 サンプルプログラムの下から2行目あたりにVSYNC 1という行があります。
 これがないとプログラムは指示された処理をつぎつぎとこなし、人間の見た目には画面がしぱしぱ矢継ぎ早に動いたり、モタモタと遅くなっ たりと、不安定なスピードで動いてしまいます。
 VSYNC 1と書くと、メトロノームのような定期的な信号が来るまで、そこでストップできます。その結果、処理のし過ぎを抑えて、見た目には安定した動きをみせてくれるようになりま す。
 アマチュアのゲームプログラマーがぜひとも使いたい機能がVSYNCです。
 WindowsにもVSYNCはありますが、いろいろ大変だという話を聞きました。


以上


2013/07/19(金)

最近…

●映画を観ました。「エイリアン」(1979年アメリカ)SD画質\400レンタル
「エイリアン」はGooglePlayには置いてなくて、iTunesStoreに置いてありました。
d_kawakawaの名でレビューも書きました。削除されてなければここで読めますだ。
https://itunes.apple.com/jp/movie/eirian-direkutazu-katto-zi/id562829057


●あれこれ買ったという話題が多いですが、今度はパワポ (PowerPoint 2013)を買いました。

 買い物にはそれぞれ理由があって、下のNintendo3DSは仕事場の仲間と話を合わせるため、パワポは急きょ会社で発表することになっ たため(あわわわ)、高価な買い物は自分への投資の場合が多い…

 新しいバージョンのOfficeは最近のアプリらしくスルスルーっといろいろ動きます。


●新しいホームページエディタ「BlueGriffon」

 同じホームページエディタの「Kompozer」がなかなか更新されないので調べたところ、Kompozerの後継の 「BlueGriffon」というものがあるのを知りました。
 通常のブラウザと同等の表示を維持したまま、ワープロみたいに文章が書ける感じです。選択中みたいな点線枠も表示されません。



2013/07/06(土)

 Nintendo3DS LL を購入しました。
 ゲームソフトは買っていなくて、Nintendo eShop というサイトから 「プチコンmkII」 という BASIC の開発環境をダウンロードで買いました (\800)。
 他に初回特典として 「クラブニンテンドー ピクロス」 というパズルゲームをダウンロードできました。マインスイーパーみたいなゲームで、普通におもしろい。


「プチコンmkII」

▲BASIC のコーディングの様子。
ペンでコードを入力します。
思ったよりも快適に入力できます。



▲とりあえず作成したRPGみたいな画面。
主人公を中心にして周囲のマップが動きます。
処理速度が遅いなと思った。

「クラブニンテ ンドー ピクロス」

▲初回特典のダウンロードソフト。



 左の写真の BASIC のコードを見てもらうとわかると思うけど、init とか run とかのラベルを使って Java っぽくなっている。
 むかし BASIC を やっていたころ(中高生のころ)と比べると、オブジェクト指向を自然と気にしていたりして、コーディングのしかたがずいぶん変わっていて、感 慨深く思っ た。

※あと右の写真に顔が写ってしまった。あまり良い顔じゃないからな。。


ページ制作 homepage6047


ページの上端へ (もくじ開く)