« 2007年02月 | メイン | 2007年04月 »

2007年03月20日

【よみもの】もーりおのつぶやき 第5回

みなさモ、こんにちモ。
舌足らずな牛、『もーりお』でフガフガ。

今日はきれいな夕日をみたモ。
思わず食べかけた草を忘れて、うっとりみとれたモ。
うっとりねっとりセクシーに違いないモモ。
でも、草食べてたせいでむせたフガフガ。


o O(もーりおのつぶやき)
夕焼けが ぼくの人生 うつしだす
うつったぼくは 草と涙で すっぱかった。

意味:夕焼けを見てセンチメンタルジャーニーに
ひたりたかったのに、草でむせてしまった。
苦しくてゴホゴホとせきこんで涙まででて、
すっぱいのは草と涙のせいなのか
ぼくの生き方がすっぱいせいなのか…。


今日のもーりおのつぶやきはいかがだモ?
もーりおは子牛なりに、生きる哀しみがわかってるモ?
これでもういっぱしの牛、間違いなフガフガ。


もーりおは、つぶやくことが趣味モ。
感想を待ってるモ。

みんなもつぶやきたいことがあったら送ってほしいモ。
短歌や川柳なんかでもいいモ。
宛先は”うすあじ”( hsptv@hspcenter.com )までだモモ~。

(ゆめゆめゆうか)

投稿者 usuaji : 23:07

【講座】HSPよく使うフレーズ 第26回 配列で移動

今回は”すごろく”のような表示を作ってみたよ。

クイズやシューティングゲームのステージ表示、すごろくなど、
決められた座標にキャラクターが移動する表示は結構面倒なもの。

キャラクタの位置が16ドット毎など、計算しやすい位置ではなく、
1つずつ違う場合には、座標を配列に入れておくと簡単にできる。

メルマガではグラフィックの用意が面倒なので、最初にバッファ2に
背景を作成しておく。自分でゲームを作る場合には、事前に
グラフィックツールなどで作成してもOK。

キャラクタの移動時には、その背景をgcopyして利用している。

サンプルはマウスのRボタン、Lボタンで移動、ESCキーで終了。

配列の数値は、いろいろ細工しながら何度か使ってるのもポイントだ。
配列っていろいろ使えて便利だよ。

dim px,10:dim py,10
px.0=50,200,450,300,100
py.0=20,50,100,230,300
ofset1=50:ofset2=40
//screen 2,640,480
buffer 2,640,480
cls 4
//ライン描画
color 0,200,255
repeat 4
x1=px(cnt)+ofset1:y1=py(cnt)+ofset1
x2=px(cnt+1)+ofset1:y2=py(cnt+1)+ofset1
line x1,y1,x2,y2
wait 10
loop
//パネル配置
repeat 5
x=px(cnt):y=py(cnt)
color 255,255,0:boxf x,y,x+100,y+100
wait 10
loop
color 255,255,255:pos 400,430
mes "[mouse R/L button] Move."
mes "[esc key] End."
//最初の画面作成
screen 0,640,480:gcopy 2,0,0,640,480
//メインループ
*mainloop
stick key,,1
if (key&128)!0:end
if (key&256)!0:panel--
if (key&512)!0:panel++
panel=limit(panel,0,4)
gosub *meput
await 10
goto *mainloop
stop
*meput
redraw 0
pos 0,0
gcopy 2,0,0,640,480
x=px(panel)+ofset2
y=py(panel)+ofset2
pos x,y
color 0,200,0
mes "★"
redraw 1
return

[hsp3/panel.hsp]

(うすあじ)

投稿者 usuaji : 23:07

【講座】HSP3ワンポイントテクニック 第17回

このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。

今回はテキストファイルを扱う方法を取り上げてみましょう。
HSPでは、テキストを扱うために、メモリノートパッドと呼ばれる
命令セットを用意しています。以下はその使用例です。

notesel buf
noteload "test.txt" ; テキストファイル読み込み
repeat notemax ; テキスト行数分繰り返す
noteget a,cnt ; 1行づつ取り出す
mes a
loop

このサンプルでは、「test.txt」というテキストファイルを
変数bufに読み込んで、noteget命令で1行づつ取り出して表示して
います。このように、とても手軽に1行単位のデータを取り出す
ことができるようになっています。
しかし、メモリノートパッド命令はメガバイト単位の大きな
テキストファイルに対しては実行速度がそれほど速くありません。
そこで、1行づつ順番に取り出す場合は、getstr命令を使うことで
高速化することができます。以下はそのサンプルです。

notesel buf
noteload "test.txt" ; テキストファイル読み込み
repeat
getstr a,buf,index,0 ; 1行づつ取り出す
index=index+strsize ; 次の取り出し位置に移動
if strsize=0 : break ; サイズが0ならば終了
mes a
loop

これも、さきほどのスクリプトと同様にテキストファイルの内容を
1行づつ取り出します。notesel命令を使用しているのは、テキスト
ファイルを読み込むためで、noteload命令は変数バッファに
ファイルの内容をそのまま読み込む命令だと考えて問題ありません。
getstr命令のパラメーターについては、ヘルプを参考にしてみて
ください。

(おにたま)

投稿者 usuaji : 23:06

HSPTV!メルマガ 第35号

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HSPTV!メルマガ 第35号 N0.0035 2007/03/20 発行

編集長:うすあじ ( hsptv@hspcenter.com )
発行:HSPTV!(ONION software)
WEBサイト:http://hsp.tv/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録解除などはこちら http://hsp.tv/play/service.html

■はじめに

こんにちは、うすあじです。

春は別れと出会いの季節。

みなさんの環境にも、いろいろ変化があったのだと思います。

卒業や就職といった出来事で不安もあるかもしれません。

そんな時は、”もーりお”に向かってつぶやいてみてはいかがでしょうか?

では、メルマガスタートです。

(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今回のインデックス

【よみもの】もーりおのつぶやき 第5回(ゆめゆめゆうか)

【講座】HSP3ワンポイントテクニック 第17回(おにたま)

【講座】HSPよく使うフレーズ 第26回(うすあじ)

【募集】メルマガ投稿募集中

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【よみもの】もーりおのつぶやき 第5回

みなさモ、こんにちモ。
舌足らずな牛、『もーりお』でフガフガ。

今日はきれいな夕日をみたモ。
思わず食べかけた草を忘れて、うっとりみとれたモ。
うっとりねっとりセクシーに違いないモモ。
でも、草食べてたせいでむせたフガフガ。


o O(もーりおのつぶやき)
夕焼けが ぼくの人生 うつしだす
うつったぼくは 草と涙で すっぱかった。

意味:夕焼けを見てセンチメンタルジャーニーに
ひたりたかったのに、草でむせてしまった。
苦しくてゴホゴホとせきこんで涙まででて、
すっぱいのは草と涙のせいなのか
ぼくの生き方がすっぱいせいなのか…。


今日のもーりおのつぶやきはいかがだモ?
もーりおは子牛なりに、生きる哀しみがわかってるモ?
これでもういっぱしの牛、間違いなフガフガ。


もーりおは、つぶやくことが趣味モ。
感想を待ってるモ。

みんなもつぶやきたいことがあったら送ってほしいモ。
短歌や川柳なんかでもいいモ。
宛先は”うすあじ”( hsptv@hspcenter.com )までだモモ~。

(ゆめゆめゆうか)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSP3ワンポイントテクニック 第17回

このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。

今回はテキストファイルを扱う方法を取り上げてみましょう。
HSPでは、テキストを扱うために、メモリノートパッドと呼ばれる
命令セットを用意しています。以下はその使用例です。

notesel buf
noteload "test.txt" ; テキストファイル読み込み
repeat notemax ; テキスト行数分繰り返す
noteget a,cnt ; 1行づつ取り出す
mes a
loop

このサンプルでは、「test.txt」というテキストファイルを
変数bufに読み込んで、noteget命令で1行づつ取り出して表示して
います。このように、とても手軽に1行単位のデータを取り出す
ことができるようになっています。
しかし、メモリノートパッド命令はメガバイト単位の大きな
テキストファイルに対しては実行速度がそれほど速くありません。
そこで、1行づつ順番に取り出す場合は、getstr命令を使うことで
高速化することができます。以下はそのサンプルです。

notesel buf
noteload "test.txt" ; テキストファイル読み込み
repeat
getstr a,buf,index,0 ; 1行づつ取り出す
index=index+strsize ; 次の取り出し位置に移動
if strsize=0 : break ; サイズが0ならば終了
mes a
loop

これも、さきほどのスクリプトと同様にテキストファイルの内容を
1行づつ取り出します。notesel命令を使用しているのは、テキスト
ファイルを読み込むためで、noteload命令は変数バッファに
ファイルの内容をそのまま読み込む命令だと考えて問題ありません。
getstr命令のパラメーターについては、ヘルプを参考にしてみて
ください。

(おにたま)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSPよく使うフレーズ 第26回 配列で移動

今回は”すごろく”のような表示を作ってみたよ。

クイズやシューティングゲームのステージ表示、すごろくなど、
決められた座標にキャラクターが移動する表示は結構面倒なもの。

キャラクタの位置が16ドット毎など、計算しやすい位置ではなく、
1つずつ違う場合には、座標を配列に入れておくと簡単にできる。

メルマガではグラフィックの用意が面倒なので、最初にバッファ2に
背景を作成しておく。自分でゲームを作る場合には、事前に
グラフィックツールなどで作成してもOK。

キャラクタの移動時には、その背景をgcopyして利用している。

サンプルはマウスのRボタン、Lボタンで移動、ESCキーで終了。

配列の数値は、いろいろ細工しながら何度か使ってるのもポイントだ。
配列っていろいろ使えて便利だよ。

dim px,10:dim py,10
px.0=50,200,450,300,100
py.0=20,50,100,230,300
ofset1=50:ofset2=40
//screen 2,640,480
buffer 2,640,480
cls 4
//ライン描画
color 0,200,255
repeat 4
x1=px(cnt)+ofset1:y1=py(cnt)+ofset1
x2=px(cnt+1)+ofset1:y2=py(cnt+1)+ofset1
line x1,y1,x2,y2
wait 10
loop
//パネル配置
repeat 5
x=px(cnt):y=py(cnt)
color 255,255,0:boxf x,y,x+100,y+100
wait 10
loop
color 255,255,255:pos 400,430
mes "[mouse R/L button] Move."
mes "[esc key] End."
//最初の画面作成
screen 0,640,480:gcopy 2,0,0,640,480
//メインループ
*mainloop
stick key,,1
if (key&128)!0:end
if (key&256)!0:panel--
if (key&512)!0:panel++
panel=limit(panel,0,4)
gosub *meput
await 10
goto *mainloop
stop
*meput
redraw 0
pos 0,0
gcopy 2,0,0,640,480
x=px(panel)+ofset2
y=py(panel)+ofset2
pos x,y
color 0,200,0
mes "★"
redraw 1
return

[hsp3/panel.hsp]

(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【募集】メルマガ投稿募集中

”HSPTV!メルマガ”への投稿をお待ちします。

募集するコーナーは

(1)「教えて!おにたま!!」

HSPの素朴な疑問をHSPの作者おにたま氏に聞いてみよう!
というコーナー。疑問。知りたいテクニックなどを直接聞く
チャンス。

(2)「もーりおのつぶやき」

つぶやき、短歌や川柳を受け付けてます。

(3)「こんなHSP3本が欲しい」

あなたが欲しい、読んでみたいHSP3の本を教えてください。
ひょっとしたら実際に本になるかも。

メルマガに関する要望や感想、日常のお便りもお待ちしています。

全ての投稿は”うすあじ”( hsptv@hspcenter.com )まで。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PR]オススメHSP3の本
・HSP3 リファレンスブック
・公認 HSPファンブック 楽しく始める/極める本
・逆引きHSP3プログラミング事典[応用編]
・逆引きHSP3プログラミング事典[基本編]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記

うすあじが今はまっているのは”DSもじぴったん”。

公式サイトではサンプルゲームが遊べます。
http://namco-ch.net/mojipittan_nds/index.php

簡単で、ちょっと遊べて、ハッピーになれるゲーム。
勉強にもなるってのが現代風かな。
見習いたいものです。

では、お元気で!

(うすあじ)

■バックナンバーについて

バックナンバーの公開ページはこちら
http://www.hspcenter.com/hsptvm/

■解約方法

登録解除などはこちら
http://hsp.tv/play/service.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集長:うすあじ ( http://hspcenter.com/ )
記事の投稿、ご意見、ご希望はこちらまで hsptv@hspcenter.com

ONION software Copyright 2007(c) All rights reserved.
メルマガ本文の再配布・商利用、転載は禁止させて頂きます。
HSPのスクリプトサンプルは自由に再利用しても構いません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

投稿者 usuaji : 23:05

2007年03月06日

【講座】HSPたまひよ塾 - 特別編「指定した年月の日数を得る」

はーい。たまひよ塾、久方ぶりの復活です。悠黒は生きてます。

1~3月は個人的に毎年忙しく、体調不良な時期でもあって、
わりと息を潜めて過ごしてますが、最近メルマガに貢献してないのと、
ゆめゆめゆうかさんが風邪でダウンしちゃってるなんてこともあり、
ピンチヒッター的に登場してみました。

さてさて、以下はカレンダーを作るときなどに便利なスクリプトです。
変数 y に西暦年を、変数 m に月を入れ、「*ymdays」ルーチンを呼び出すと、
指定した年月の日数を変数 d に入れて返します。
;----------------------------------------
repeat 8
y=2000+cnt :m=2 :gosub *ymdays
mes ""+y+"年"+m+"月の日数="+d
loop
stop
*ymdays
; 指定された年(西暦)月の日数を返します。
;
d=31
if m=2 { d=28
if (y\4)=0 { d=29
if ((y\100)=0)&((y\400)!0) :d=28
}
}
if (m=4)|(m=6)|(m=9)|(m=11) :d=30
return
;----------------------------------------
来年は閏年(うるう年)。もちろん、その計算もバッチリ入ってます。
ちなみに閏年の判定条件は以下の通り。

・西暦が400で割り切れる年はうるう年である。
・400で割り切れない場合、西暦が100で割り切れる年はうるう年ではない。
・100で割り切れない場合、西暦が4で割り切れる年はうるう年である。
・4で割り切れない場合、うるう年ではない。

今回は、何となーくワンポイントテクニック的な解説になりましたな。
それでは皆さま、また会う日まで。御機嫌よう~ン(^^)/~

(悠黒喧史)

投稿者 usuaji : 21:25

【講座】HSP3ワンポイントテクニック 第16回

【講座】HSP3ワンポイントテクニック 第16回

このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。

ファイルを扱うツールなどを作成していると、フォルダ内にある
ファイル一覧を取得する必要が出てくる場合があります。
複数のファイルに対して、同じ処理を行なう時などは、フォルダ内や
特定の拡張子だけをまとめて扱うと効率的です。
このような処理を「バッチ処理」と呼んだりします。
HSP3では、ファイル一覧を取得するための命令として「dirlist」が
用意されています。これは、指定されたフォルダ内にあるファイル
全てか、または名前に特定のパターンを持つものを複数行文字列として
取得できるというものです。
ファイル名を特定するためには「ワイルドカード」と呼ばれる表現を
使用します。これは、「*(アスタリスク)」記号を万能な名前として
扱うもので、「*.txt」と書けば拡張子が「.txt」のものすべて、
「*.*」の場合はすべてのファイルを表しています。

さて、dirlist命令でフォルダ内のファイル一覧は取得できますが、
その中にあるフォルダの下も含めて、すべてのファイルを取得したい
時には困ってしまいます。
そんな時のために、dirlistの上位バージョンにあたるdirlist2命令が
拡張プラグインHSPEXT.DLLで提供されています。
dirlist2命令は、フォルダの下の階層も含めてすべてのファイルを
取得する機能を持っています。また、同時にファイルのサイズや、
更新日時など付加情報も取得することができるのです。

以下は、変数dirで指定したフォルダ以下のファイル一覧を表示する
サンプルです。dirlist命令よりも手順が多くなっていますが、
取得される内容は大きく変わりません。

#include "hspext.as"
buf=""
dir=dir_cur ; 調べるパス
mes dir+"フォルダ以下のファイル一覧"
mesbox buf,640,400
chdir dir ; カレンドディレクトリに移動
dirlist2h 1 ; 初期設定
dirlist2 size,"*.*", 0, '\\' ; サイズを取得
sdim ftmp,size ; サイズを確保する
dirlist2r ftmp ; 結果を取得
objprm 0,ftmp ; 表示する
stop

(おにたま)

投稿者 usuaji : 21:24

【講座】HSPよく使うフレーズ 第25回 敵が弾を撃つ

【講座】HSPよく使うフレーズ 第25回 敵が弾を撃つ

前回、背景がスクロールするゲームのようなものでした。

今回は何をしようかな?と思っていたところに、ちょっと前に
掲示板に”敵が弾を撃つ”方法に関しての質問があったので、
ちょっと実験してみることにしたよ。

スクリプトが長くなるので、今回は背景スクロールは無しにして、
プレイヤーは動いて、敵は固定、弾がプレイヤーを目指して発車される、
という事にしてみた。

X座標とY座標をみて、割り算で1回分の増分を、と思ったけど
ここでは全部整数になっちゃうんだよねぇ。
おかげで、プレイヤーに向けて弾を撃ってきても全然あたらない
安全地帯が出来ちゃう。

小数点が扱えるようになると、もっと当たると思うんだけど・・・
正直、あまり高度な計算でもないし、動きも単純だなぁ。

まあ、その改造は見てる読者にお任せします。

いろいろ改装して、カッコ良く、正確に、弾を撃たせまくって下さいね。


screen 0,640,400
mx=200:my=300
//teki
tx=300:ty=40
gosub *tama_mk
*lp1
redraw 0
color 0,0,100:boxf
stick a,5,0
if a&4:mx+=10
if a&1:mx-=10
//me
mx=limit(mx,0,620)
title ""+dx+"/"+ystep
pos sx,sy:color 255,255,0:mes "*"
pos tx,ty:color 255,255,255:mes "■"
pos mx,my:color 0,200,0:mes "▲"
//tama
sx=sx+dx:sy=sy+dy
if sy>400:gosub *tama_mk
redraw 1
await 10
goto *lp1
//
*tama_mk
sx=tx:sy=ty:dy=5
if mx = sx {
dx=0
} else {
ystep=(my-sy)/dy
dx=(mx-sx)/ystep
}
return

[teki1.hsp/hsp3]

(うすあじ)

投稿者 usuaji : 21:22

HSPTV!メルマガ 第34号

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HSPTV!メルマガ 第34号 N0.0034 2007/03/06 発行

編集長:うすあじ ( hsptv@hspcenter.com )
発行:HSPTV!(ONION software)
WEBサイト:http://hsp.tv/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録解除などはこちら http://hsp.tv/play/service.html

■はじめに

今週の”もーりおのつぶやき”が作者急病の為、お休みです。
そのかわり硬派な記事が集まりましたよ。

みなさんも健康に注意して過ごしてくださいね。

では、硬派なメルマガのスタートです!

(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今回のインデックス

【講座】HSPたまひよ塾 - 特別編(悠黒喧史)

【講座】HSP3ワンポイントテクニック 第16回(おにたま)

【講座】HSPよく使うフレーズ 第25回(うすあじ)

【募集】メルマガ投稿募集中

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSPたまひよ塾 - 特別編「指定した年月の日数を得る」

はーい。たまひよ塾、久方ぶりの復活です。悠黒は生きてます。

1~3月は個人的に毎年忙しく、体調不良な時期でもあって、
わりと息を潜めて過ごしてますが、最近メルマガに貢献してないのと、
ゆめゆめゆうかさんが風邪でダウンしちゃってるなんてこともあり、
ピンチヒッター的に登場してみました。

さてさて、以下はカレンダーを作るときなどに便利なスクリプトです。
変数 y に西暦年を、変数 m に月を入れ、「*ymdays」ルーチンを呼び出すと、
指定した年月の日数を変数 d に入れて返します。
;----------------------------------------
repeat 8
y=2000+cnt :m=2 :gosub *ymdays
mes ""+y+"年"+m+"月の日数="+d
loop
stop
*ymdays
; 指定された年(西暦)月の日数を返します。
;
d=31
if m=2 { d=28
if (y\4)=0 { d=29
if ((y\100)=0)&((y\400)!0) :d=28
}
}
if (m=4)|(m=6)|(m=9)|(m=11) :d=30
return
;----------------------------------------
来年は閏年(うるう年)。もちろん、その計算もバッチリ入ってます。
ちなみに閏年の判定条件は以下の通り。

・西暦が400で割り切れる年はうるう年である。
・400で割り切れない場合、西暦が100で割り切れる年はうるう年ではない。
・100で割り切れない場合、西暦が4で割り切れる年はうるう年である。
・4で割り切れない場合、うるう年ではない。

今回は、何となーくワンポイントテクニック的な解説になりましたな。
それでは皆さま、また会う日まで。御機嫌よう~ン(^^)/~

(悠黒喧史)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSP3ワンポイントテクニック 第16回

このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。

ファイルを扱うツールなどを作成していると、フォルダ内にある
ファイル一覧を取得する必要が出てくる場合があります。
複数のファイルに対して、同じ処理を行なう時などは、フォルダ内や
特定の拡張子だけをまとめて扱うと効率的です。
このような処理を「バッチ処理」と呼んだりします。
HSP3では、ファイル一覧を取得するための命令として「dirlist」が
用意されています。これは、指定されたフォルダ内にあるファイル
全てか、または名前に特定のパターンを持つものを複数行文字列として
取得できるというものです。
ファイル名を特定するためには「ワイルドカード」と呼ばれる表現を
使用します。これは、「*(アスタリスク)」記号を万能な名前として
扱うもので、「*.txt」と書けば拡張子が「.txt」のものすべて、
「*.*」の場合はすべてのファイルを表しています。

さて、dirlist命令でフォルダ内のファイル一覧は取得できますが、
その中にあるフォルダの下も含めて、すべてのファイルを取得したい
時には困ってしまいます。
そんな時のために、dirlistの上位バージョンにあたるdirlist2命令が
拡張プラグインHSPEXT.DLLで提供されています。
dirlist2命令は、フォルダの下の階層も含めてすべてのファイルを
取得する機能を持っています。また、同時にファイルのサイズや、
更新日時など付加情報も取得することができるのです。

以下は、変数dirで指定したフォルダ以下のファイル一覧を表示する
サンプルです。dirlist命令よりも手順が多くなっていますが、
取得される内容は大きく変わりません。

#include "hspext.as"
buf=""
dir=dir_cur ; 調べるパス
mes dir+"フォルダ以下のファイル一覧"
mesbox buf,640,400
chdir dir ; カレンドディレクトリに移動
dirlist2h 1 ; 初期設定
dirlist2 size,"*.*", 0, '\\' ; サイズを取得
sdim ftmp,size ; サイズを確保する
dirlist2r ftmp ; 結果を取得
objprm 0,ftmp ; 表示する
stop

(おにたま)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSPよく使うフレーズ 第25回 敵が弾を撃つ

前回、背景がスクロールするゲームのようなものでした。

今回は何をしようかな?と思っていたところに、ちょっと前に
掲示板に”敵が弾を撃つ”方法に関しての質問があったので、
ちょっと実験してみることにしたよ。

スクリプトが長くなるので、今回は背景スクロールは無しにして、
プレイヤーは動いて、敵は固定、弾がプレイヤーを目指して発車される、
という事にしてみた。

X座標とY座標をみて、割り算で1回分の増分を、と思ったけど
ここでは全部整数になっちゃうんだよねぇ。
おかげで、プレイヤーに向けて弾を撃ってきても全然あたらない
安全地帯が出来ちゃう。

小数点が扱えるようになると、もっと当たると思うんだけど・・・
正直、あまり高度な計算でもないし、動きも単純だなぁ。

まあ、その改造は見てる読者にお任せします。

いろいろ改装して、カッコ良く、正確に、弾を撃たせまくって下さいね。


screen 0,640,400
mx=200:my=300
//teki
tx=300:ty=40
gosub *tama_mk
*lp1
redraw 0
color 0,0,100:boxf
stick a,5,0
if a&4:mx+=10
if a&1:mx-=10
//me
mx=limit(mx,0,620)
title ""+dx+"/"+ystep
pos sx,sy:color 255,255,0:mes "*"
pos tx,ty:color 255,255,255:mes "■"
pos mx,my:color 0,200,0:mes "▲"
//tama
sx=sx+dx:sy=sy+dy
if sy>400:gosub *tama_mk
redraw 1
await 10
goto *lp1
//
*tama_mk
sx=tx:sy=ty:dy=5
if mx = sx {
dx=0
} else {
ystep=(my-sy)/dy
dx=(mx-sx)/ystep
}
return

[teki1.hsp/hsp3]

(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【募集】メルマガ投稿募集中

 ”HSPTV!メルマガ”への投稿をお待ちします。

 募集するコーナーは

(1)「教えて!おにたま!!」

 HSPの素朴な疑問をHSPの作者おにたま氏に聞いてみよう!
というコーナー。疑問。知りたいテクニックなどを直接聞く
チャンス。

(2)「もーりおのつぶやき」

 つぶやき、短歌や川柳を受け付けてます。

(3)「こんなHSP3本が欲しい」

あなたが欲しい、読んでみたいHSP3の本を教えてください。
ひょっとしたら実際に本になるかも。

メルマガに関する要望や感想、日常のお便りもお待ちしています。

 全ての投稿は”うすあじ”( hsptv@hspcenter.com )まで。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PR]オススメHSP3の本
・HSP3 リファレンスブック
・公認 HSPファンブック 楽しく始める/極める本
・逆引きHSP3プログラミング事典[応用編]
・逆引きHSP3プログラミング事典[基本編]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記

今回はちょっと男子校みたいなメルマガでした。
たまにはこんなのもイイかもね。

さて、今週お休みの「もーりおのつぶやき」では、
つぶやき、短歌や川柳を受け付けてますよ。
応援のメッセージもお待ちしてます。

それから、ちょっとお知らせ。

「逆引きHSP3プログラミング事典」でおなじみ、
さくらさんのサイト”HSPNEXT”がサーバーを換えてリニューアルです。
http://hspnext.com/

HSP関連の豊富な情報が集まってるので、是非一度訪ねて見てください。

では、皆さん、お元気で!

(うすあじ)

■バックナンバーについて

 バックナンバーの公開ページはこちら

http://www.hspcenter.com/hsptvm/

■解約方法

 登録解除などはこちら
http://hsp.tv/play/service.html

■広告の掲載など

 本メールマガジンの広告掲載のご相談は
”うすあじ”( hsptv@hspcenter.com )までお願いします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集長:うすあじ ( http://hspcenter.com/ )
記事の投稿、ご意見、ご希望はこちらまで hsptv@hspcenter.com

ONION software Copyright 2007(c) All rights reserved.
メルマガ本文の再配布・商利用、転載は禁止させて頂きます。
HSPのスクリプトサンプルは自由に再利用しても構いません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


投稿者 usuaji : 21:21