おたくな実験集

おたくで実験好きな御宅菜プロ太の
ブログです
(内容は信用ならないかも・・・)
このページはリンクフリーです

プログラムレッスン~文字を動かす~

2007-05-20 09:57:02 | プログラム
さて自動的に文字を動かすことは可能ですが
キーで文字を動かすことをやっていきましょう
下記のスクリプトを打ってください
repeat
redraw 0
color 255,255,255:boxf
color 0,0,0
stick k,15
if k&1:px=-px
if K&2:py=-py
if K&4:px=+px
if k&8:py=+py
px=limit(px,0,630)
py=limit(py,0,470)
pos px,py
mes"○"
wait 5
redraw 1
loop
です
これを実行すると
方向キーで文字が動きます
そして壁もつきます
これは
stick命令によるものです
P1はキーコードの代入される変数で
P2が非トリーガータイプキーといって
押しっぱなしでも検出するキーです

P1で指定した変数に下記のようなキーコードが代入されます
  1 : カーソルキー左(←)
2 : カーソルキー上(↑)
4 : カーソルキー右(→)
8 : カーソルキー下(↓)
16 : スペースキー
32 : Enterキー
64 : Ctrlキー
128 : ESCキー
256 : マウスの左ボタン
512 : マウスの右ボタン
1024 : TABキー
二つ以上ボタンが押されたときは
そのキーコードの和が変数に代入されます
そして複数の和の代入された変数から
指定されたキーのチェックをするには
if & キーコード
とします
redraw 0
color 255,255,255:boxf
color 0,0,0
中略
wait 5
redraw 1
後略

説明すると長くなるので
スムーズに動いているようにみせる
(これをやるとパカパカしない)
決まり文句とでも思ってください
END

HSP講座~時計製作~

2007-05-02 19:01:19 | プログラム
さて今回は
時計を作ります
時間を表示するには
gettime関数
を使用します
関数ですので
A=B(C)
としますCの値で取得するものを変えます
0 : 年(Year)
1 : 月(Month)
2 : 曜日(DayOfWeek)
3 : 日(Day)
4 : 時(Hour)
5 : 分(Minute)
6 : 秒(Second)
7 : ミリ秒(Milliseconds)
です
曜日の取得方法は分からないので省略します
とりあえずこのスクリプトを入力してください
screen 0,170,80
*a
font"",30
cls
y=gettime(0)
mo=gettime(1)
d=gettime(3)
h=gettime(4)
mi=gettime(5)
s=gettime(6)
mes ""+y+"/"+mo+"/"+d+""
mes ""+h+":"+mi+":"+s+""
wait 100
goto *a

screen命令は画面を表示する命令です
P1=ID(番号今のところ0)
P2=Xサイズ
P3=Yサイズ
です
まだパラメーターはありますが
まあこれだけ覚えていればいいです
ちなみに時々時間が飛ぶのはご了承
まあさっきのはサンプルとしてお願いします
END

HSPレッスン~カラー選択ダイアログ~

2007-04-26 21:23:37 | プログラム
さて今回はカラー選択ダイアログ
についてです
今回のやつは出してないので出します
これです

画質は悪いですが気にしないでください
出し方は前々回教えたので省略します
そして選択されたカラーコードはR,G,Bそれぞれ
ginfo_r,ginfo_g,ginfo_bに代入されます
ですからこういうプログラムはどうでしょう
dialog "好きな色を選んでください"
dialog "",33;("内は関係ありません)
color ginfo_r,ginfo_g,ginfo_b
boxf;四角形を書く(p1,2基点X,Y座標 p3,4終点X,Y座標)
stop
boxfは新出命令ですが
説明を右に打っておいたので
省略します
END

プログラムレッスン~コモンダイアログ2~

2007-04-20 20:50:58 | プログラム
さてだいぶ前になりますが前回
コモンダイアログの説明をしました
復習をしましょうこれです

このようなものです
いいですね
さて
今回は
ファイル保存ダイアログ
などについてです
ちなみに

これです
さてではこのダイアログを使って
指定した種類のファイルを選んで
それを表示するプログラムを作ってみてください
って言っても分かりませんね
それにはこのようなプログラムを使います
dialog "jpg;*.bmp;*.ico;*.gif",16,"jpg;*.bmp;*.ico;*.gif"
if stat=0:end
picload refstr
stop
dialogに続けて
表示させたい拡張子を打ちます
また複数表示するには
abc;*.defのように
;*.を二個目以後の拡張子に打ちます
そして選択されたファイル名は
システム変数refstrに代入されます
これにはアドレスも代入されるのでどこにあろうが
関係ありません
あとカラー選択ダイアログの説明もありますが
これはまた今度と言うことで終わります

color code

2007-04-16 19:18:23 | プログラム
さてカラーコードで判別する一生懸命ですが少々問題が発覚
しました
ですのでカラーコードを公開しておきます
都道府県番号:R,G,Bです
1st:255,0,0
2nd:255,0,127
3rd:255,0,255
4th:255,127,0
5th:255,127,127
6th:255,127,255
7th:255,255,0
8th:55,255,127
9th:127,0,0
10th:127,0,255
11th:127,0,127
12th:127,127,0
13th:127,127,127
14th:127,127,255
15th:127,255,255
16th:127,255,127
17th:127,255,0
18th:0,0,127
19th:0,0,255
20th:0,127,0
21st:0,127,127
22nd:0,127,255
23rd:0,255,255
24th:0,255,0
25th:0,255,127
26th:64,0,0
27th:64,0,64
28th:64,0,127
29th:64,0,255
30th:64,64,64
31st:64,64,127
32nd:64,64,255
33rd:64,127,0
34th:64,127,64
35th:64,127,127
36th:64,127,255
37th:64,255,0
38th:64,255,64
39th:64,255,127
40th:64,255,255
41st:0,64,0
42nd:0,64,64
43rd:0,64,127
44th:0,64,255
45th:0,0,64
46th:0,127,64
47th:0,255,64
です
県番号は自分で調べてください
END

プログラム~コモンダイアログ~

2007-04-15 21:25:20 | プログラム
さて今回はこのスクリプトです
dialog "あいうえお",,"かきくけこ"
end
dialog命令はコモンダイアログを呼び出すものですコモンダイアログとは
これです
通常

警告

セーブ・ロード

(M社の著作権)
分かりましたね
これを出すにはさっきも言いましたがdialig命令を使います
dialogに続けて
"で囲って「これです」と出ている部分に出す文字
そしてダイログの種類
種類は
0 : 標準メッセージボックス + [OK]ボタン
1 : 警告メッセージボックス + [OK]ボタン
2 : 標準メッセージボックス + [はい][いいえ]ボタン
3 : 警告メッセージボックス + [はい][いいえ]ボタン
16 : ファイルOPEN(開く)ダイアログ
17 : ファイルSAVE(保存)ダイアログ
32 : カラー選択ダイアログ(固定色)
33 : カラー選択ダイアログ(RGBを自由に選択)
です(今回は3までを扱います)
その後にタイトルバーに出す文字を打ちます
たとえばこんなことも可能です
dialog "パソコンが壊れた",1,"警告"
end
とすると・・・
分かるでしょう
あと
yes,noボタンのあるものはその判定をどのようにやるのでしょう
それにはstatシステム変数を使います
statは
1 :「OK」ボタンが押された
6 :「はい」ボタンが押された
7 :「いいえ」ボタンが押された
となります
END

プログラムレッスン~サブルーチン~

2007-04-08 17:42:35 | プログラム
さてでは早速
赤色で
五回表示
と五回表示して

青で一回表示と
一回表示
そして
赤色で
五回表示
と五回表示
と表示するプログラムを作ってください
今までなら
c=0
goto *a
*b
color 0,0,255
mes "一回表示"
c=1
goto *a
stop
*a
color 255,0,0
repeat 5
mes "五回表示"
loop
if c=0:goto *b
stop

ですよね
(そのほかにも無論正解はあります)
でもちょっとめんどくさいですよね
これを簡略化します

gosub *a;a

color 0,0,255;b
mes "一回表示"

gosub *a;c
stop;f
*a;d
color 255,0,0
repeat 5
mes "五回表示"
loop
return;e
です
実行する順番を;後のアルファベットで書くと
a→d→e→b→c→d→e→f
です
なんか複雑ですよね
これを簡単に言うと
gosubで飛んだらreturnで元の行に戻ります
まあつまりはフリスビ-のように投げて行った所のプログラムを実行して
手元に戻ってくるようなものです
あといつか言おうと思っていましたが
;の後はコメントと言ってHSPが実行する上では関係有りません
c言語で;は行の終わりを現しますがHSPでは違います
END

プログラムレッスン~文字の大きさ~

2007-04-06 19:21:24 | プログラム
さて今回は文字の大きさを変えてみましょう
文字の大きさ(フォント、スタイル)を変えるには
font命令を使いますまあ文字で説明するよりも実際にスクリプトを打ちましょう
font "HG正楷書体",70,1
mes "大きな太字"
stop
ですfont命令はフォントを変えるものですまあでも大きさ書体も換えれます
パラメーター1でフォント名を指定します(直接"で囲む(Win○ows標準のもののみ))
そして2で文字の大きさですこの文字の大きさは論理サイズと言って
数字の大きさに比例した大きさになります
3では文字のスタイルを指定しますここは書かなくてもかまいません
スタイルコードは
1 : 太文字
2 : イタリック(斜)体
4 : 下線
8 : 打ち消し線
16 : アンチエイリアス(文字を滑らかにXPでは常時有効)
です
コードを合計すると二つの効果の合体となります
END