AX

電霊ログ

私のやってるサイト、電子の言霊の活動ログ

カテゴリークラウド

タグリスト

最近のトラックバック

月別アーカイブ(タブ)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • [HSP超入門] 繰り返し5

前回は、リピートの中に値を少しずつ変えて行く事で結果に変化を付けられる事を紹介しました。
今回は repeat 命令の基本についてもう少し説明します。

そのためにまた新しい命令を覚えましょう。
その命令は、break 命令です。(ブレイクと読みます)
これは repeat の途中で repeat から抜けるための命令です。
ですので「繰り返し」命令の中以外では使えませんので気を付けて下さい。
次のサンプルを実行してみて下さい。

repeat 20

mes cnt
if cnt=10 :break

loop

mes "終わり"


普通なら0~19まで表示されるはずですが
if cnt=10	:break

がある事で cnt が10になった時に break が実行され repeat から抜けているので、0~10までが表示されたのです。
break が実行された後は loop の下から実行されます。

プログラムの最後に「終わり」を表示させているのは、プログラムが止まったのではなく repeat を抜けた事を確かめるためです
もしそこでプログラムが止まっているのなら、「終わり」は表示されないという事です。
HSPにはプログラムの流れを止めてしまう stop 命令があるので、試しに break を stop に置き換えて実行してみましょう。

repeat 20

mes cnt
if cnt=10 :stop

loop

mes "終わり"


これはプログラムを停止させているので「終わり」は表示されません
これで break の動きが何となく分かったと思います。

今回はこれまで、
次回は基本をもう少し。

スポンサーサイト
更新してるかなと確認しに行ったら念願のコメントが乗ってた!!
別に大した事書いてる訳じゃないけど、やっぱり入賞者の特権だし、今度いつ入賞できるか分からないのでやっぱり特別な物です。あと3年分だし(^^
他の受賞作品も見れるので、と言うよりプレイ出来るので是非是非ご覧下さい。
http://hsp.tv/contest2006/cntst_fresult.html#306
最優秀賞は3Dのスノボーゲームでした。実は自分もいつか作ろうと思っていました スノボー。自分の作りたいのとは少し路線が違うけどコンテストには送り辛くなったかな。再来年位を目指そうか・・・。


  • [HSP超入門] 繰り返し4

もう少し応用した繰り返しをやって見たいと思いますが、その前に1つ 新しい命令を覚えましょう。
覚えるのはウィンドウ内に四角を表示する boxf 命令です。

----//HSPヘルプからの引用//------------
boxf p1,p2,p3,p4

p1,p2 : 矩形の左上X,Y座標
p3,p4 : 矩形の右下X,Y座標
解説画面上に、 (p1,p2)と(p3,p4) を左上、右下の点として、現在の描画色で矩形を塗りつぶします。
---------------------------------------
これはHSPヘルプ内の boxf の説明ですが、p1,p2,p3,p4 という見慣れない物がありますね。
p1 は第一引数(パラメータ)、p2 は第二引数、p3 は第三引数、p4 は第四引数の事です。
命令によって与えるパラメータの数や内容が違ってくるので、注意してください。
見慣れない内は分かり辛いと思いますが、ヘルプなどでは全てこの書き方で書いてあるので覚えて置いて下さい。

実際に見た方が分かりやすいので、次のサンプルを実行して見て下さい

boxf 200,100,400,300


「実行結果」
20061211081520.png


この boxf 命令の引数には 矩形の左上X,Y座標 と 矩形の右下X,Y座標を指定します。
この矩形とは長方形(角が全て90度の四角形)の事で くけい や さしがた と読みます。おそらく「くけい」が一般的でしょう。
座標は前にも出て来ましたが、この場合左からどれだけ離れているか、上からどれだけ離れているかと言う距離の事で、
p1 は四角形を描き始めるX(横)座標
p2 は四角形を描き始めるY(縦)座標
p3 は四角形を描き終えるX(横)座標
p4 は四角形を描き終えるY(縦)座標
です。
ウィンドウズに初めから付いているペイントソフトには ドラッグ操作で好きな大きさの四角形を描く機能がありますが、その時のクリック押し始めの位置が p1,p2 に相当し、その後のクリックを放した位置が p3,p4 に相当します。
20061213185901.png


上のサンプルではウィンドウの左から200ピクセル(ドット)、上から100ピクセルの位置から描き始め、左から400ピクセル、上から300ピクセルの位置で描き終わる四角形を描いている事になります。
この時の四角形の大きさは横200ピクセル(400-200なので)、縦200ピクセル(300-100なので)です。(実際には1多くなります 詳しい話はまた今度。)

この boxf 命令は mes 命令と同じ様に color 命令によって色を変更する事が出来るので 試して見ましょう。

color 0,255,0
boxf 50,50,300,300


「実行結果」
20061211081526.png


ここでは 赤0、緑255、青0 を指定しているので緑色のボックスが表示されます。

それでは繰り返しの中でこの覚えたばかりの命令を使ってみようと思います。

repeat 10

color 0,0,cnt*28
boxf cnt*50,100,cnt*50+40,150

loop


「実行結果」
20061211081532.png


なんかぼーっとしてきそうなサンプルですが、順番に説明しようと思います。
まずパッと見 10回繰り返している事が分かります、そしてその中で color 命令で色を変更し boxf 命令で四角形を表示しています。
細かく見てみると、
color 命令によって色の設定をしていますが、青色を指定する場所には前回出てきた システム変数 cnt が使われていますね、boxf 命令の引数でも cnt が使われています。cnt がある事でなんか一気に複雑になった様に見えますが、順番に考えていくと分かって来る物なので ループ中の数値の動きをまとめて見ました。

「color 命令」
 1回目= color 0,0,0*28 = color 0,0, 0
 2回目= color 0,0,1*28 = color 0,0, 28
 3回目= color 0,0,2*28 = color 0,0, 56
 4回目= color 0,0,3*28 = color 0,0, 84
 5回目= color 0,0,4*28 = color 0,0,112
 6回目= color 0,0,5*28 = color 0,0,140
 7回目= color 0,0,6*28 = color 0,0,168
 8回目= color 0,0,7*28 = color 0,0,196
 9回目= color 0,0,8*28 = color 0,0,224
10回目= color 0,0,9*28 = color 0,0,252



「boxf 命令」
 1回目= boxf 0*50,100,0*50+40,150 = boxf 0,100, 0+40,150 = boxf 0,100, 40,150
 2回目= boxf 1*50,100,1*50+40,150 = boxf 50,100, 50+40,150 = boxf 50,100, 90,150
 3回目= boxf 2*50,100,2*50+40,150 = boxf 100,100,100+40,150 = boxf 100,100,140,150
 4回目= boxf 3*50,100,3*50+40,150 = boxf 150,100,150+40,150 = boxf 150,100,190,150
 5回目= boxf 4*50,100,4*50+40,150 = boxf 200,100,200+40,150 = boxf 200,100,240,150
 6回目= boxf 5*50,100,5*50+40,150 = boxf 250,100,250+40,150 = boxf 250,100,290,150
 7回目= boxf 6*50,100,6*50+40,150 = boxf 300,100,300+40,150 = boxf 300,100,340,150
 8回目= boxf 7*50,100,7*50+40,150 = boxf 350,100,350+40,150 = boxf 350,100,390,150
 9回目= boxf 8*50,100,8*50+40,150 = boxf 400,100,400+40,150 = boxf 400,100,440,150
10回目= boxf 9*50,100,9*50+40,150 = boxf 450,100,450+40,150 = boxf 450,100,490,150


どうでしょう?これなら何となく命令の動きが予想出来ると思います。
わざわざこのように書かなくても良いので、頭の中で考えてみると理解がしやすいはずです。(もちろんなれない内は書いてもOK)

ちょっと今回は分かりにくかったかもしれませんが、繰り返しによってパラメーターの値を変化させる事で、色を変えたり 表示位置を移動させていく事が出来るのです。repeat や boxf で遊んでいれば段々分かってくるので、色々と試して見て下さい。
次回も応用編ダス。

先ほどHSPコンテストの受賞コメントを送りました。
ちゃんと送れたか心配です・・・。

3年前のHSPコンテスト2003では集中線メーカーが数分間に合わず断念。
HSPコンテスト2004でも集中線メーカーを作り直すも時間が取れずに断念。
そしてHSPコンテスト2005で更に作り直した集中線メーカーがついに入賞、しかしパソコンが壊れた為コメントが載せられずガッカリ。
という事があったので、送ったコメントには2年と書きましたが実は3年分の喜びがありました。(ん? 4年か?)
おかげで集中線メーカーは毎回1から作り直していた為、最初の物に比べ かなり良くなったので一応は結果オーライなのかも。
いや~それにしても3年は長かったなぁ~、なんか一段楽した気分。
もし来年もまた開催されるなら、もっと気軽に楽しんで何も考えずに参加出来そうです。
次は なーにつくろーかなー。

  • HSPコンテスト結果発表だす!

HSPコンテスト最終結果 とうとう発表されましたね。
年々レベルが上がって来てるので心配でしたよ。特に今年は平均的に高くて正直ビビりましたぞな。3D多かったし。もうこうなったらアイディアで行こうっと。(アイディアだけの人)
それはそうと結果はというと・・・にゃんとか入りましたよ~!
今年から結果がフラッシュアニメ上で1人ずつ順番に名前が発表されるようになって、ふ~んそういう風になったのねん!っとず~っと見ていました。
そして段々発表が進んで行き諦め掛けたその時、なんと!エコペイントの名前が!
いやった~~~!これは嬉しい。これで去年に続いて2度目の入賞!
小さい賞なのでしょうが、私にとっては諦め掛けたって事もありかなり嬉しゅうございます!。
見事にフラッシュによる発表という主催者側の戦略にはまっていますね。だってドキドキ感2倍以上になってるもん。特に私の場合最後の方だったし。
実際にはアジアン・インテグレーション賞 というのを頂いたのですが、その賞品として、USB宝箱「QBOX」と言うのを頂けるそうです。
http://www.qbox.co.jp/
上のリンク先のと、まったく同じ物かは分かりませんが、なんか価格を見たら凄いリッチな賞品だなあとびっくりしました!
去年は教材ドットコム賞として500円分のクオカードを頂きましたがまだ使わずに取ってあります。価格的には凄いアップ。
前回は受賞発表の直前でパソコンが起動しなくなってしまい、受賞者のコメントが送れなかったので何とか思いを果たせたと言う事でも嬉しいです。
という事で来年のコンテストまで充電。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。