コンピュータ・インターネットノウハウをみんなで自由に編集し合える!

HSPプログラミング講座(2) コンピュータ・インターネット

HSPプログラミング講座第二回です
今回は画像の表示、変数について解説します(フラグは治まりきりませんでした)
前回書いたソースコード※は廃棄してかまいません
(小さい※印がついている用語にマウスを乗せるとそれに関する説明が見れます)
まずは画像の表示から
ただここでひとつ問題が、画像の表示には、その画像のアドレスを指定する必要があるのですが…
それにはまず二つの方法があります、絶対パス指定と相対パス指定です
絶対パス指定とはPC全体から見た画像のアドレスを指定する方法です
ただしこの方法はアドレスが使用しているPCによって変わるため、まず使われません
というか使いません、よほど限られた環境でなければ
相対パス指定とは、

そのプログラムがある場所から見た画像のアドレスを指定する方法です
今回は、というより以後ずっとこれを使います、絶対パス指定は使いません
相対パスの書き方に関しては後に説明するため、とりあえずおいといて
今回の場合、相対パスの基準位置ですが…ソースファイルがある場所です
とはいえ、現在ソースファイルをまだ作成していない状態です、この場合ソースフォルダとして扱われる場所ですが…
エディタの上部メニューから[ツール]→上から五番目の[ソースフォルダを開く]
を選ぶと開くことが出来ます
ソース未保存の場合、マイドキュメントが開かれると思います
(OSによって違うかもしれませんが頭の中で置き換えてください)
では、ソースフォルダを見つけたところで
いよいよプログラムに画像を表示してもらいます

まず、ソースフォルダであるマイドキュメントに適当な画像を置いてください
形式は[.bmp .jpg .gif .ico]にしてください
本当はこっちで用意しようと思ったけどめんどくさかった
何でもかまいませんが、出来るだけ小さいほうがいいです
準備が出来たら、エディタに
picload "画像の名前と拡張子",1
と入力して実行してください
画像が表示されたと思います
もちろんこの命令は「指定した画像を表示する」という意味の命令です
ただこの命令には後ろに[1]というのがついています、これは何なのかというと
画像読み込みモードの指定です
ためしに picload "画像",0 としてみてください
はい、今度は画像サイズに合わせてウィンドウが表示されたと思います
0にすると、ウィンドウを初期化してウィンドウの大きさを画像に合わせて、表示します
1にすると、現在のウィンドウの上にそのまま画像を表示します
基本的には1を使います、どうやっても画像しかウィンドウに表示されない!orウィンドウサイズがおかしい!
って方はここら辺を疑ってみてください

次は、ラベルの説明…をすっとばして変数のお話です
今回のものすごく大事なところの1つです
変数というのは数学の授業でならうxとかyとかと同じものです
ただ数学と聞いて敬遠するのはいけませんよ、あれよりめちゃくちゃ簡単です
プログラミングでの変数の扱いは「名前がつけられて、中に自由に物が入れられる箱
とお考えください
たとえば
a = "hello world"
mes a
と入力してみてください
mesの前の行は水色になりませんが、気にしなくてもいいです
実行すると

はい、右上にhello worldと表示されるはずです
これが変数です
ちなみに[a = "hello world"]ですが、[a]という名前の変数(箱)に「hello world」という内容を入れる
という意味ですね
そして [mes a]は [a]という変数の内容を表示する という意味です
また、mes命令のとき変数を指定したときは""は必要ありません
この""は「これに囲われた文字は文字列だ」と教えるための括りで
データである変数aは文字列ではないので、このくくりが必要ないんですね
ちなみにこの「a」を""でくくってしまいますと、「a」と表示されてしまいます
また、逆に「hello world」の""をなくしてしまいますとエラーが吐かれてしまいます
これは間の半角スペースをプログラム側が何らかの区切り、という風に誤認してしまい、エラーを起こしてしまいます
そこでさらに捻くれて「helloworld」と入力しますと、今度は画面に「0」と表示されます
これはプログラム側が[helloworld]を変数として認識してしまい
その結果、[helloworld]の中身、[0]が画面にでてきます
余談ですが、他の言語では「変数宣言」という作業であらかじめ変数をプログラム側に認識させてから変数を使います
ここで宣言をしなかった変数を使おうとするとエラーを吐いてしまいます
HSPはこの宣言が必要ないので、土壇場で変数を勝手に作っても認識してくれますが
今後のことも考えて、プログラムの文頭で使う変数をあらかじめ書き出すようにしましょう
さて、この変数ですが、いまいち使い道がピンと来ないと思います
というわけで今度はこれを入力してください
a = "hello world"
mes a
wait 100
a = "good luck!"
mes a
新しい命令が出てきましたがとりあえずスルーして実行してみてください
まず最初にhello world!
と表示された後…
すこしだけして good luck! と表示されると思います
正しく実行されない方は、それぞれの文字列が""で閉じられているか
文字が水色になっているか、aと=の間に半角スペースがおいてあるか
うっかり全角スペースが紛れ込んでいないか確認してください
はい、これが変数の強みです
状況に応じて変数の中身を変えることによって、さまざまな変化を起こさせます
今はプログラムの流れが1本なので特に旨みはありませんが、
条件分岐やフラグを使うときに大きな意味を持ってきます

ちなみに今回新登場したwait命令ですが
これは[一定時間待つ]という命令です
単位は100/1秒です
今回の場合、1秒待つ、という意味ですね
というわけで今回のまとめです
・picload命令は相対パス指定で使用する
  ・picload命令はアドレスの後のモードを1にして使用する
・相対パスはソースフォルダを基準とする
・変数は、名前を自由につけられて、中に自由にものを入れられる箱
  ・変数の中身は基本的にいつでも出し入れできる
・変数の中身を替えることで、実行結果などを変えることが出来る
・wait命令はプログラムに一定時間待たせる命令
・単位は100/1秒

講座の内容が間違っている、分からない事がある等々は
ブログのコメント欄、またはtwitterでcannabis021宛にリプライを飛ばしてもらえれば
すぐに対応します
次回はいよいよプログラムの流れを変える、フラグと条件分岐について解説します

http://jewel19cannabis.blog74.fc2.com/blog-entry-102.html

関連ノウハウ

このノウハウを評価する

評価、コメントするにはサービスに登録してください。

サービス登録をする

コメントを見る

この記事を通報する

ノウハウを書く