[5865] 点線を引きたい 投稿者:惟神 投稿日:01/07/29(日) 18:31
プログラム初心者の惟神です

今、点線を引くモジュールを作っているのですが
私のしている方法だと、psetで1文字ずつ点を打っているので
どうしても処理がかなり遅くなってしまいます
しかも、縦に引く命令と横に引く命令を一つずつ作らないといけません
何か良い方法はあるでしょうか?
どなたかご教授ください〜


;-----------------------------------------
;ten_h p1,p2,p3
;点線を下方向に引きます
;p1は描画開始 x 位置、p2は描画開始 y 位置
;p3は描画終点 y 位置です

;ten_w p1,p2,p3
;点線を右方向に引きます
;p1は描画開始 x 位置、p2は描画開始 y 位置
;p3は描画終点 x 位置です
;------------------------------------------
#module
#deffunc ten_h int,int,int
mref x ,0
mref y1,1
mref y2,2

repeat
t=y1+cnt : if t\3 : t++
if t>y2 : break
pset x,t
loop

return

#deffunc ten_w int,int,int
mref x1,0
mref y ,1
mref x2,2


repeat
t=x1+cnt : if t\3 : t++
if t>x2 : break
pset t,y
loop

return
#global
;以下サンプル
screen 0,100,100
ten_h 50,10,90
ten_w 10,50,90
stop

[6009] Re: 点線を引きたい 投稿者:惟神 投稿日:01/08/02(木) 00:05
一括レスで申し訳ありません

>> ペークさん
モジュール内でredrawを使ってしまうと、
もしループ内でこの命令を呼び出した時
モジュール内でいったん書き換えスイッチをオンにしてしまっているため
点線がチラチラしてしまいます。
これはサンプルが悪かったようですね、どうも申し訳ありませんでした

>> sprocketさん
具体的なサンプルまで用意してくださって、本当に申し訳ありません
終点が始点より負の方向にある場合は、
同じ数で引くか-1を掛ければよかったんですよね
こんな簡単な事に気付きませんでした(^^;
この方法なら私の作ったものより綺麗ですし、高速に描画されるので
このサンプルを少し改造してみたいと思います

>> ANTARESさん
そういう手もありましたか…
bufferに描画→gcopyという手は、
どうも画像を扱う時のみとしか今までは考えていませんでした(^^;
この手法はまた別のモジュールに流用できそうです
レスありがとうございました!

プログラムっていうものは、ホント発想の転換が大事なものですね

>> chokkoさん
VRAM操作にはまだ手を出した事が無いので、
直接RGB値を書き換えるという方法は思いつきませんでした(^^;
一応ヘルプ見ながら試してみたのですが、今一理解できてないので
もっと勉強してからこの方法を試して見ます
方法2は、ANTARESさんの方法と考え方は同じですね
今度、他のプログラムで流用してみます
> スタート地点からゴール地点まで、psetが一歩ずつゴールを
> 目指して追いかけて来ると考えて下さい。STGで敵が自機に向かって移動してくるのと同じです。
あ、そういう風に考えればよかったんですね
STGは以前、試しに作ったことがあるのに気付きませんでした…(^^;
レスありがとうございました!

>> すっとんきょうさん
レスありがとうございます
点線が一本ならまだしも、十数本を、しかもループ内で描画するとなると
やはりpsetによる速度低下は否めません…
高速な描画を突き詰めていくと、やはりVRAM操作は外せませんね
さくらさんのHPからTIPSをダウンロードして
今、VRAM操作について勉強しています
すっとんきょうさんのモジュールを実行してみましたが
アンチエイリアスかかっていて、しかも高速に動いていて驚きました
頑張って解読してみたいと思います(^^

[6020] Re^2: 点線を引きたい 投稿者:うっちー 投稿日:01/08/02(木) 12:48 <URL>
反応が鈍くて既にこのスレッドは終わっちゃったかもしれませんが…(^^;)

速度的にどうかは実験したことがないのでわかりませんが、
WinAPI関数の「LineTo」を使うと手軽に点線が引けます。
点線だけではなく、破線、1点鎖線、2点鎖線なんかも可能です♪
API関数を使うため、loadlib.dll等が必須ですが…
私のホームページに置いてあるので試してみてはいかがでしょう?(^-^)

[5904] Re: 点線を引きたい 投稿者:すっとんきょう 投稿日:01/07/30(月) 13:30
 ども、すっとんきょうです。

> 惟神さん
>
> 今、点線を引くモジュールを作っているのですが
> 私のしている方法だと、psetで1文字ずつ点を打っているので
> どうしても処理がかなり遅くなってしまいます
> しかも、縦に引く命令と横に引く命令を一つずつ作らないといけません
> 何か良い方法はあるでしょうか?

 一番やりやすい方法は、redraw 0の状態でをpsetで点を1つずつ打っていき
、点線を描画し終えたらredrawをかけるというやり方ですね。

 ただ、psetの速度が気になる場合はvramに直接書き込むという方法もあり
ますが、そうなると幾つか厄介な問題も出てきます。
 例えばpsetの場合は、指定した座標がスクリーンの範囲外であれば、自動
的に描画が行われないようになりますが、vramを使うと、この範囲のチェック
を自分で行う必要があります。
 もちろん、線の描画中にそのチェックが何度も行われていては、無駄な処
理が増えて描画速度が落ちてしまいます。
 その為、事前に描画範囲を確認しておく必要が生まれます。この辺りの方
法については、下記のページのアルゴリズムの解説で詳しく説明しています。
 その代わり、紹介しているプログラムはC言語ですが…。

http://www.people.or.jp/~fussy/index.htm

 その他の問題として、カラーモードに併せた操作や、画像の横幅を4バイ
ト単位に修正する作業、画像の位置が上下逆さまになっているなど、問題は幾
つかあります。

 一応自分が以前作ったライン描画モジュールも載せておきます。
 きちんと作れば、実際はこのモジュール以上の描画速度が得られるかもし
れません。

http://www3.ocn.ne.jp/~staro/hsp_dir/aaline.as

 その他、さくらさんのページのHSPTips!にあるvram操作に関する解説や、H
SPSDK中のhtmlファイルなどが参考になります。

 では…

[5894] Re: 点線を引きたい 投稿者:chokko 投稿日:01/07/30(月) 08:04 <URL>
> 今、点線を引くモジュールを作っているのですが
> 私のしている方法だと、psetで1文字ずつ点を打っているので
> どうしても処理がかなり遅くなってしまいます

(方法1)
mref ,66を使用して、VRAM内のRGBを直接書き換えると
より高速化できます。(VRAM操作の方法はヘルプに書いてあります。)
パレットモードとフルカラーモードで
VRAM内の配置が異なる点に注意して下さい。

(方法2)
まず、オフスクリーンを確保しlineで実線を書きます。
その上からディザリングさせたマスクを被せ、それを
コピーしてくるとかなり高速です。

> しかも、縦に引く命令と横に引く命令を一つずつ作らないといけません
> 何か良い方法はあるでしょうか?

スタート地点からゴール地点まで、psetが一歩ずつゴールを
目指して追いかけて来ると考えて下さい。STGで敵が自機に向かって移動してくるのと同じです。
頑張って下さい♪

[5889] Re: 点線を引きたい 投稿者:ANTARES 投稿日:01/07/30(月) 06:22 <URL>
>今、点線を引くモジュールを作っているのですが
>どうしても処理がかなり遅くなってしまいます
 モジュールとして適切なやり方ではありませんが、
最も高速に点線を引く方法は、点線の画像をbufferに
用意しておき(またはbufferにpsetで描いておき)、
gcopyする方法でしょう。

[5869] Re: 点線を引きたい 投稿者:sprocket 投稿日:01/07/29(日) 19:08 <URL>
> しかも、縦に引く命令と横に引く命令を一つずつ作らないといけません

縦も横もひとつの命令で引けるようにしたいなら次のようなやり方もあります。
斜め線も可能。
速度の改善にはなりませんが。


#module
; hasen 開始x座標, 開始x座標, 終端x座標, 終端x座標
#deffunc hasen
mref v1
mref v2,1
mref v3,2
mref v4,3

xl=v3-v1
yl=v4-v2

max=xl:if max<0 : max=-max
a=yl:if a<0 : a=-a
if a>max : max=a

repeat max
if cnt\2 : pset xl*cnt/max+v1,yl*cnt/max+v2
loop
return
#global

repeat
rnd a,256
palcolor a
x1=x2:y1=y2
rnd x2,winx:rnd y2,winy
hasen x1,y1,x2,y2 ; 必要に応じて redraw を使って高速化
wait 1
loop
stop

[5870] Re^2: 点線を引きたい 投稿者:sprocket 投稿日:01/07/29(日) 19:14 <URL>
いらんかも知れないけど訂正

>; hasen 開始x座標, 開始x座標, 終端x座標, 終端x座標 ←誤
; hasen 開始x座標,開始"y"座標,終端x座標,終端"y"座標 ←正

[5866] Re: 点線を引きたい 投稿者:ペーク 投稿日:01/07/29(日) 18:44 <URL>
redraw 0〜redraw 1で高速化してみよう
#module
#deffunc ten_h int,int,int
mref x ,0
mref y1,1
mref y2,2
redraw 0
repeat
t=y1+cnt : if t\3 : t++
if t>y2 : break
pset x,t
loop
redraw 1
return

#deffunc ten_w int,int,int
mref x1,0
mref y ,1
mref x2,2

redraw 0
repeat
t=x1+cnt : if t\3 : t++
if t>x2 : break
pset t,y
loop
redraw 1
return
#global

#でも遅くなりませんでしたよ(・_・)?
#二つ以上命令を作るなら、二つ作らないと駄目ですよ。

[5991] WEBへの入力 投稿者: 投稿日:01/08/01(水) 09:48
初めてメールします。  龍と申します。
あるホームページに自動で項目を入力したいと思っているのですが、
以下のようなスクリプトだと幾らTabキーでカーソルを指定の項目へ
おくっても、アドレスのところに文字が入ってしまい
ます。 何か方法はないでしょうか? これができれば、懸賞などの
入力にも使えると思えます。 誰か御知恵を貸して下さい。

−−− 省く −−−
exec "http://www.onionsoft.net/hsp/bbs/hspbbs.cgi?",16
wait 150
−−− 途中省く −−−
aplobj "web",2
aplact,2
aplkey 09
wait 150
aplstr "お名前"
wait 150
−−− 以下省く −−−

[6001] Re: WEBへの入力 投稿者:スミス 投稿日:01/08/01(水) 20:01 <URL>
スミスです。

ブラウザ内のオブジェクト(InputBox等)は、apl系命令では操作ができないようです。
考え方を変えて、サイト限定であればhspsockを利用して、cgiに直接引数を渡す手もあります。

[6014] Re^2: WEBへの入力 投稿者: 投稿日:01/08/02(木) 09:06
> スミスです。
>>どうも、ご返答ありがとうございます。

> ブラウザ内のオブジェクト(InputBox等)は、apl系命令では操作ができないようです。
> 考え方を変えて、サイト限定であればhspsockを利用して、cgiに直接引数を渡す手もあります。
>>hspsockは分かるのですが、cgiに直接引数を渡すと言う事がよく分かりません。 できれば詳しく教えて頂けないでしょうか。

どうかよろしくお願いいたします。 m(_)m

[6019] Re^3: WEBへの入力 投稿者:スミス 投稿日:01/08/02(木) 11:51 <URL>
スミスです。

hspsockのサンプルとしてhspsock.asというのがあります(\hsp25\sample\hspsock)。
これの*sdの処理でsockopen命令後、sockput "GET "+dir+"〜・・・
とありますが、文字列変数dirの中身は例えば"/index.html"だったりします。
これをcgiへのアクセスに置き換えると、"xxxx.cgi"となりますが、引数を
渡すのであれば、"xxxx.cgi?name=test&page=1&mode=normal"みたいな手続きで行うことが出来ます。
この中の"name"だとか"page"だとかはそのcgiで受け取ることができるパラメータ名
ということになり、これらのパラメータ名はhtmlのソースのTEXTタグのname=の部分を確認すれば判明します。

プログラムのテストで他サイトにいきなしアクセスしちゃうのも余計な負荷をかけてしまうので、
まずはご自分が契約なされているISPのWebサーバ上にテスト用のcgiを置き、
それに対してテストするなりしてください。
もしくは、Windows用のWWWサーバソフト(HTTPD)などを入れてローカルでテストしてみてください。
ご参考までに。

[6013] 無題 投稿者:MAS 投稿日:01/08/02(木) 08:46
FTPアップロードソフトを作りたいのですが、
HSPで作れますか?

[6018] Re: 無題 投稿者:トントン 投稿日:01/08/02(木) 11:48 <URL>
過去ログを検索してみてください。
それでは。

[5959] ウィンドウのサイズについて 投稿者:桑原(くわばら)です。 投稿日:01/07/31(火) 15:13 <URL>
こんにちわ。僕は、桑原といいます。

Vector から、HSP で作られたソフトをダウンロードしたことが
あるんですが、そのソフトによっては、起動するときに、
ウィンドウが一瞬白く大きくなってから指定されたサイズ、色に
なるみたいです。

そういった現象は、なぜ起こるのでしょうか?
また、その解決方法などあったら、教えてください。お願いします m(_ _)m

[6017] Re: ウィンドウのサイズについて 投稿者:桑原(くわばら)です。 投稿日:01/08/02(木) 11:38 <URL>
桜井さん、150 さん、教えてくださいまして、誠に有難う御座います。

でも、僕は、あまり HSP を使ったことがないので、殆どコマンドが分かりません。
どういったコマンドから勉強していけば良いのでしょうか?

> PS. 何も考えずHPのURLクリックしてしまいました(笑)
あ、どうもすみません。でも、僕の Web ページは、本当に下品です。
仕上がりは、殆どできてません。ちょっとした文字ぐらいです。
特に下品なのは、「変な昔話」です。今後、色々な情報を公開するつもりですが、
まだ、現在の Web ページは、未完成なので、見ないで下さい。m(_ _)m

とりあえず、メモしておきます。
今後の HSP プログラムの作成に役立てたいと思います。
誠に、有難う御座いました。m(_ _)m
また何かあったら、そのときも、どうぞよろしくお願いいたします。

[5961] Re: ウィンドウのサイズについて 投稿者:150 投稿日:01/07/31(火) 15:23
 
> Vector から、HSP で作られたソフトをダウンロードしたことが
> あるんですが、そのソフトによっては、起動するときに、
> ウィンドウが一瞬白く大きくなってから指定されたサイズ、色に
> なるみたいです。
>
> そういった現象は、なぜ起こるのでしょうか?
> また、その解決方法などあったら、教えてください。お願いします m(_ _)m

IDが0のウィンドウならば、EXE化するときにメインウィンドウを非表示にする
オプションにチェックをいれておき、描画処理終了後にgselで表示すれば
いいですし、それ以外のウィンドウの場合は、以前例示されている方が
いましたが、-500,-500など、デスクトップからは見えない場所で作成して
おき、必要なときにwidth命令でX/Yの座標を変えてやればいいですよ。

見難くなってしまった・・・反省。

[5960] Re: ウィンドウのサイズについて 投稿者:桜井 投稿日:01/07/31(火) 15:20
> Vector から、HSP で作られたソフトをダウンロードしたことが
> あるんですが、そのソフトによっては、起動するときに、
> ウィンドウが一瞬白く大きくなってから指定されたサイズ、色に
> なるみたいです。
>
> そういった現象は、なぜ起こるのでしょうか?
> また、その解決方法などあったら、教えてください。お願いします m(_ _)m

おそらくですが、実行可能ファイルを作成する時に、
"起動時にメインウインドゥを非表示にする"
にチェックを入れていなかったためかと。
まさか、ウインドウ初期化直後にまた初期化なんてしないでしょうから・・・。

PS. 何も考えずHPのURLクリックしてしまいました(笑)

[6006] API 投稿者:MAS 投稿日:01/08/01(水) 22:21
前からずっと気になっていたんですが、
皆さんが使っているAPIというものはどういうものなのですか?
過去ログ検索で「API登竜門」と言うサイトを見つけたのですが、
なぜか繋がりません。誰か教えてください・・・・
またAPIについて詳しく書いてあるサイトがあったら、
それも教えてくれるとありがたいです。

[6016] Re: API 投稿者:トントン 投稿日:01/08/02(木) 10:09 <URL>
> 過去ログ検索で「API登竜門」と言うサイトを見つけたのですが、
私のサイトのことですよね。
「API登竜門」は新コーナー「HSP-CENTER」の中に移転しました。
http://www.f8.dion.ne.jp/~skenta/hsp/hspcenter.htm
の下のほうのAPI講座がそうです。
それでは。

[6007] Re: API 投稿者:Lahan 投稿日:01/08/01(水) 23:06 <URL>
http://yokohama.cool.ne.jp/chokuto/

↑のサイト等は結構わかりやすかったですよ。
実例や簡単なリファレンスもありますし。
私は大体ここで学びました。

[6015] HSP 投稿者:htht 投稿日:01/08/02(木) 09:22
http://messages.yahoo.co.jp/bbs?action=m&board=2000083&tid=a3ha3sa3p&sid=2000083&mid=1
HSPの掲示板へ↑

[6011] 宣伝で恐縮です。 投稿者:Digm 投稿日:01/08/02(木) 02:35 <URL>
 自作ゲームをホームページにアップしました。
 タイトルは「シューティングモンスターズ」(略称シューモン)と言います。

 名前からネタがバレバレがですが、何もゲットしません。(^_^;)
(ピカチ○ーも出てきません)
 拙い作品ですが、ゲームユーザーな方のお越しをお待ちしてます。

http://www.top.or.jp/~digm

[5982] シューティングゲームで・・・ 投稿者:ひさし 投稿日:01/08/01(水) 00:39
こんばんわ、hspやって2,3ヶ月です。
今シューティングゲームを作ってるんですが、スコアの保存ができません。

score=10000 ;スコア(仮)
poke score,,score
bsave "*.*",score ;*.*はファイルネーム

スコアなので他人にメモ帳とかで変更されたくないです・・・
頑張ってるんだけど謎が謎を呼んで・・・(汗)
でもエラーが起きないって事は厳密に言うとあっているのかなぁ?
わかる人よろしくお願いします。

[5983] Re: シューティングゲームで・・・ 投稿者:sprocket 投稿日:01/08/01(水) 00:55 <URL>
> スコアなので他人にメモ帳とかで変更されたくないです・・・
> 頑張ってるんだけど謎が謎を呼んで・・・(汗)

poke が何のためにあるのか知りませんが、スコアの保存だけなら以下のようにして出来ます。
保存ファイルはバイナリデータになるのでメモ帳で変更されたりはしないと思います。
(変更されたらエラーが出るようにチェックサムをつけることもありますが)

score=12345 ;スコア
mes ""+score
bsave "temp.txt",score ;save
score=0

bload "temp.txt",score ;load
mes ""+score
stop

[6008] Re^2: シューティングゲームで・・・ 投稿者:ひさし 投稿日:01/08/02(木) 00:00
> 
> poke が何のためにあるのか知りませんが、スコアの保存だけなら以下のようにして出来ます。
> 保存ファイルはバイナリデータになるのでメモ帳で変更されたりはしないと思います。
> (変更されたらエラーが出るようにチェックサムをつけることもありますが)
>

おぉぉ!ありがとうございます!できました!

[6005] 時刻合わせ 投稿者:MOMO 投稿日:01/08/01(水) 22:16
HSPでSNTPを使った時刻合わせは可能ですか?
あれば 方法を教えてもらえないでしょうか?

[6004] ショートカットから起動 投稿者:neg 投稿日:01/08/01(水) 21:48
エクスプローラーの「送る」の様な物を作っているのですが、
どうにも上手くいきませんでしたので、質問させて頂いています。

exec命令でアプリケーションそのものにコマンドラインを与えて
起動することは出来たのですが、
ショートカットに同様の方法を取ると失敗してしまいました。

アプリケーション本体のアドレスがわからず、ショートカットのアドレスのみ
判明しているときに、コマンドラインを与えて起動するにはどうすれば良いのでしょうか?
ご存知の方は是非ご教授をお願いいたします。

[5996] HTMLタグと演算子の判別 投稿者:くみ 投稿日:01/08/01(水) 12:33
こんにちわ。質問です。

HTMLファイル内に含まれる 演算子の "<" や">" 等を
&lt;、&gt;に全置換したいのですが ">" が タグなのか
演算子なのか 判別できません。(T_T)
もし できるのでしたら やり方を教えてください。m(_ _)m

[6002] Re: HTMLタグと演算子の判別 投稿者:ペーク 投稿日:01/08/01(水) 20:19 <URL>
> こんにちわ。質問です。
>
> HTMLファイル内に含まれる 演算子の "<" や">" 等を
> &lt;、&gt;に全置換したいのですが ">" が タグなのか
> 演算子なのか 判別できません。(T_T)
> もし できるのでしたら やり方を教えてください。m(_ _)m
うすあじさんのHSPcenterに全置換スクリプトがあります。

#&amp;lt;は&amp;amp;lt;でできたり・・・

[6003] Re^2: HTMLタグと演算子の判別 投稿者:ペーク 投稿日:01/08/01(水) 20:19 <URL>
> #&amp;lt;は&amp;amp;lt;でできたり・・・
あぁ!変換されないの!?
&copy;

[5998] Re: HTMLタグと演算子の判別 投稿者:えいじ 投稿日:01/08/01(水) 17:12
> HTMLファイル内に含まれる 演算子の "<" や">" 等を
> &lt;、&gt;に全置換したいのですが ">" が タグなのか
> 演算子なのか 判別できません。(T_T)
> もし できるのでしたら やり方を教えてください。m(_ _)m

極端な話をすれば、
dim HTML,1
HTML=10
a=2<<HTML>>4
mes a
stop
みたいなことも出来るのでそのままでは無理ですね…(-;
また、HTMLタグは改行せずに続けて書いてよいので
文頭と、それに対応するものを変換という方法も無理です。
なので別のアプローチを考える必要があります。
例えば、<#>から</#>までは全て置き換えとか、
最初から特殊な記号で書くのか
(質問の意図からしてこれは意味ありませんがw)
というのが思いついた方法かなぁ。。。
あとはタグの解析をして不正な表記の場合は
変換という方法もあるけど、
利用可能タグに制限がない限りは難しいなぁ。。。
制限があるならそれのみを判別すればいいので
楽なんですが。。。

それでは再見!

[6000] エクセルを操作できますか? 投稿者:小心者 投稿日:01/08/01(水) 17:41
初めて投稿します。
最近HSPに興味を持ちいろいろ勉強しているのですが、
HSPでエクセルのシートやセルを直接操作することはできますか?
初歩的な質問で申し訳ないのですが、
どなたか教えていただければ助かります。

[5988] MIDIplayer 投稿者:MAS 投稿日:01/08/01(水) 08:50
僕はMIDIプレイヤを作っています。
それで、"2:32/5:00"のように、今演奏した時間/曲の演奏時間
と言うのを表示したいのですが、
また、できたら早送り、巻き戻し、音量調節などいろいろな機能もほしいです。
そういうdllなどはないでしょうか??

[5993] Re: MIDIplayer 投稿者:sprocket 投稿日:01/08/01(水) 10:15 <URL>
> それで、"2:32/5:00"のように、今演奏した時間/曲の演奏時間
> と言うのを表示したいのですが、
> また、できたら早送り、巻き戻し、音量調節などいろいろな機能もほしいです。
> そういうdllなどはないでしょうか??

時間表示と時点移動についてはDLLを使わなくても mci を使えば出来ます。
(自分のページでMCIコマンド集とサンプルのMIDIプレイヤーを公開しております。)
音量調節となると、APIを使う必要がありそうですが、簡単なものでいいなら
sndvol32.exe /t を呼び出せば形にならなくはないです。

[5995] Re^2: MIDIplayer 投稿者:MAS 投稿日:01/08/01(水) 10:30
> 時間表示と時点移動についてはDLLを使わなくても mci を使えば出来ます。
> (自分のページでMCIコマンド集とサンプルのMIDIプレイヤーを公開しております。)
> 音量調節となると、APIを使う必要がありそうですが、簡単なものでいいなら
> sndvol32.exe /t を呼び出せば形にならなくはないです。
ありがとうございました。
とてもためになりました。

[5989] (削除) 投稿者:(削除) 投稿日:01/08/01(水) 09:35
(削除されました)

[5990] Re: クリップボードにテキストを転送したいのですが・・ 投稿者:あはは 投稿日:01/08/01(水) 09:37
> クリップボードテキスト転送したいのですが
> 拡張命令:hspext.dllが必要です とか書いてあるけど
> どうやって拡張すりばいいのかわからないのと
>
> button"送る",*okuru
> stop
> *okuru
> clipset "strings"
>
> といれても文法が間違っていますと出ます

追記 それからクリップボードに送る文字に変数は使えますか?
それも教えてください
> どうすればクリップボードテキスト転送ができるようになりますか?
> おしえてください

[5992] Re^2: クリップボードにテキストを転送したいのですが・・ 投稿者:桜井 投稿日:01/08/01(水) 09:58
ちょっと親記事が削除されてて何がどうなってるのかわかんないんですけど・・・。

> > クリップボードテキスト転送したいのですが
> > 拡張命令:hspext.dllが必要です とか書いてあるけど
> > どうやって拡張すりばいいのかわからないのと

というのはあははさんの質問と受け取ってもいいんでしょうか?
勝手にそう仮定しますが(^^;

スクリプトの先頭に、
#include "hspext.as"
と入力して下さい。
これでhspext.dllの命令が使えるようになります。

> 追記 それからクリップボードに送る文字に変数は使えますか?
> それも教えてください

以下のスクリプトで試してみましょう。

#include "hspext.as"
buf="クリップボードに送る文字列"
button"送る",*okuru
stop
*okuru
clipset buf
end

[5994] Re^3: クリップボードにテキストを転送したいのですが・・ 投稿者:あはは 投稿日:01/08/01(水) 10:15
> ちょっと親記事が削除されてて何がどうなってるのかわかんないんですけど・・・。
>
> > > クリップボードテキスト転送したいのですが
> > > 拡張命令:hspext.dllが必要です とか書いてあるけど
> > > どうやって拡張すりばいいのかわからないのと
>
> というのはあははさんの質問と受け取ってもいいんでしょうか?
> 勝手にそう仮定しますが(^^;
>
> スクリプトの先頭に、
> #include "hspext.as"
> と入力して下さい。
> これでhspext.dllの命令が使えるようになります。
>
> > 追記 それからクリップボードに送る文字に変数は使えますか?
> > それも教えてください
>
> 以下のスクリプトで試してみましょう。
>
> #include "hspext.as"
> buf="クリップボードに送る文字列"
> button"送る",*okuru
> stop
> *okuru
> clipset buf
> end

桜井さんのおかげで
ソフトが完成しましたありがとうございました

[5976] 無題 投稿者:yah 投稿日:01/07/31(火) 20:05
私は現役の迷惑メーラーですが、無造作にメールアドレスを作り出して出会い系メールを大量に送る高機能なソフトの作り方を教えてください
お願いします
文句があるならメールに送って下さい

[5987] Re: 無題(迷惑メール作成ソフト) 投稿者:jirou 投稿日:01/08/01(水) 07:40
 >私は現役の迷惑メーラーですが、無造作にメールアドレスを作り出して
>出会い系メールを大量に送る高機能なソフトの作り方を教えてください
>お願いします

・現存するそういったソフトは、とんでもないメール数を処理しているようなので無理
・出来たとしても、倫理的に問題(迷惑)
・存在しないメールを送信した場合、エラーメールが発生するのでサーバーに負担がかかり、メール数が多いとダウンする可能性もある。


>文句があるならメールに送って下さい

こういった「文句があるなら」という発言(しかも単発)の場合
本人のアドレスでは無い場合も有るのでメールでなどは送りませんょん

# タイトルは内容が解るのを付けましょう

[5985] おしえてください 投稿者:つばっち 投稿日:01/08/01(水) 01:51
最近HSPをはじめました。
大きな数(ある数の何千乗など)の計算をしたいのですが、
正しい計算結果が得られません。
なぜでしょうか。
できないと非常にまずいんです。
よろしくお願いします。

[5986] Re: おしえてください 投稿者:HIROMI 投稿日:01/08/01(水) 04:35
> 大きな数(ある数の何千乗など)の計算をしたいのですが、
> 正しい計算結果が得られません。
> なぜでしょうか。

HSPが一度に覚えていられる桁数をオーバーしています.
暗算ではなく筆算をさせましょう.

> できないと非常にまずいんです。

筆算をさせられるようになっても速度的に無理だと思います.
もっと高速な言語を使用した方がいいかと思います.

[5921] フォルダー選択について 投稿者:geo 投稿日:01/07/30(月) 23:32 <URL>
dialogでファイルを開く(選ぶ)ことは出来るのですが、フォルダー(ディレクトリ)を選択する事が出来ません。
どなたか、知っていませんか?

[5923] Re: フォルダー選択について 投稿者:MAS 投稿日:01/07/30(月) 23:39
> dialogでファイルを開く(選ぶ)ことは出来るのですが、フォルダー(ディレクトリ)を選択する事が出来ません。
> どなたか、知っていませんか?
selfolder命令でできます。
この命令はhspext.dllを使います。
詳しくはマニュアルを読んでください。

[5984] Re^2: フォルダー選択について 投稿者:geo 投稿日:01/08/01(水) 01:14 <URL>
> > dialogでファイルを開く(選ぶ)ことは出来るのですが、フォルダー(ディレクトリ)を選択する事が出来ません。
> > どなたか、知っていませんか?
> selfolder命令でできます。
> この命令はhspext.dllを使います。
> 詳しくはマニュアルを読んでください。
フォルダー選択の方法を教えてくださいってありがとうございます。

[5974] パレットについて。 投稿者:あい 投稿日:01/07/31(火) 18:03
こんばんは。
ただいま、パレットについてちょっと混乱しています。

「screen」や「buffer」で画面モードを0(フルカラー)にしているので、
パレットについて特に意識はしていなかったのですが、
「gmode 2」にして透明色を使いはじめてから、
うまく表示されない場合がでてしまいました。
それぞれの画像は、サイズ節約のため16色や256色などパレットの内容もバラバラです。

これだけの説明では伝わらないかも知れませんが、
画面モードをフルカラーにしていれば、
特にパレットは意識しなくて構わないのでしょうか。
透明色は、RGB=(0,0,0)にしておけば、
パレットの番号などは意識しなくて構わないのでしょうか。

どなたか御教授お願いします。

[5980] Re: パレットについて。 投稿者:K-K 投稿日:01/07/31(火) 21:21

>「gmode 2」にして透明色を使いはじめてから、
>うまく表示されない場合がでてしまいました。
>それぞれの画像は、サイズ節約のため16色や256色などパレットの内容もバラバラです。
まず,画像の表示自体がおかしい場合は,画像やウインドウの横の幅が4の倍数に
なっているかを確かめてください.4の倍数になっていないと正常にコピーできない
ことがあります.
あと,RGB(0,0,0)だと思っていたのがRGB(0,0,1)とか見た目は黒でも
実際にはRGB(0,0,0)になっていないような場合も考えられます.

>画面モードをフルカラーにしていれば、
>特にパレットは意識しなくて構わないのでしょうか。
フルカラーモードではパレットは無いので意識する必要は無いです.

では.

[5981] Re^2: パレットについて。 投稿者:あい 投稿日:01/07/31(火) 22:30
レスありがとうございます。
アドバイスいただいて、もう一度はじめからやりなおしてみたところ、
あっさり成功してしまいました。

原因は、アドバイスの通りRGB(0,0,0)でなかったみたいです。
書き込む前に、そこも注意して何度も確認していたのですが、
windowsのペイントを使っていたのがまずかったみたいです。
起動が遅くて使っていなかったPhotoshopで作りなおしたらできました。

こんな恥ずかしい私ですが、
また何か問題が発生したときにはよろしくお願いします。
ありがとうございました。

[5969] はじめは・・・ 投稿者:iwa 投稿日:01/07/31(火) 16:46
はじめて書き込ませていただきます
僕は、イマ中2でHSP暦1ヶ月です
大体の命令にもなれてさぁゲームをつくるぞぉぉぉ
っとおもったんですが
なにを作ったらいいかわかりません
シューティングはむずかしすぎるし・・・
どなたかご教授おねがいします

[5970] Re: はじめは・・・ 投稿者:150 投稿日:01/07/31(火) 17:00
> シューティングはむずかしすぎるし・・・
> どなたかご教授おねがいします

自分は一番最初にHIT&BLOWを作りましたよ。
画面も、オリジナルっぽくつや消しシルバーを基調として作りました。
ゲーム自体は大した事ないですが、出来るだけ見た目クオリティー高そうな
のを、というコンセプトで。

三並べなんかに挑戦するのもいいかも知れません。

シューティングもぜんぜん難しくはない(ある程度のものまではですが。)
ので、ぜひ挑戦されていはいかが?

あまり参考になりそうにもありませんね。ゴメン。

[5977] Re^2: thankyou 投稿者:iwa 投稿日:01/07/31(火) 20:16
ありがとうございます
3並べに挑戦したいと思います
ありがとうございました

[5975] 無題 投稿者:yah 投稿日:01/07/31(火) 20:03
 

[5973] はじめまして 投稿者:たけC 投稿日:01/07/31(火) 17:47
MLDファイル再生するソフトをHSPで作りたいと思っているんですが、MLDファイルが再生できるスクリプト、または、dllがダウンロードできるサイトをご存知の方がいらっしゃれば教えてください。

よろしくお願いします

[5968] 追加して objprm するには 投稿者:あはは 投稿日:01/07/31(火) 16:35
ちゃんとできました
ありがとうございます
すこし複雑ですが
がんばります

[5971] Re: 追加して objprm するには 投稿者:sprocket 投稿日:01/07/31(火) 17:01 <URL>
> ちゃんとできました
> ありがとうございます
> すこし複雑ですが
> がんばります

それはよかったです。
ただ、連続する話題はレスに対する返信にしてくださいね。

[5972] Re^2: 追加して objprm するには 投稿者:あはは 投稿日:01/07/31(火) 17:26
> > ちゃんとできました
> > ありがとうございます
> > すこし複雑ですが
> > がんばります
>
> それはよかったです。
> ただ、連続する話題はレスに対する返信にしてくださいね。

はい こんどからそうします

[5965] 追加して objprm するにはどうすればいいのですか? 投稿者:あはは 投稿日:01/07/31(火) 16:16
追加して objprm するにはどうすればできますか?
あとobjprm するとき英文字【aなど】を入れたいときに
どうしても変数と認識してしまうのですが
解決できますか?

[5967] Re: 追加して objprm するにはどうすればいいのですか? 投稿者:sprocket 投稿日:01/07/31(火) 16:31 <URL>
> 追加して objprm するにはどうすればできますか?

メッセージボックスのバッファの内容に文字列を加算します。

sdim buf,32768
mesbox buf,400,300,1
button "add",*add
stop
*add
objprm 0,buf+" add"
stop


> あとobjprm するとき英文字【aなど】を入れたいときに
> どうしても変数と認識してしまうのですが
> 解決できますか?

それは、英文字を "ダブルクォーテーション" で囲んでないためです。

[5966] Re: 追加して objprm するにはどうすればいいのですか? 投稿者:ペーク 投稿日:01/07/31(火) 16:26 <URL>
> 追加して objprm するにはどうすればできますか?

┐;~_~)┌ドウイウコッチャ

> あとobjprm するとき英文字【aなど】を入れたいときに
ダブルクォーテーション(")でかこめば問題ありません。

[5964] 宣伝です。 投稿者:トントン 投稿日:01/07/31(火) 15:46 <URL>
トントンです。
BRANCHの新コーナーが出来たので、この場で報告させていただきます。
タイトルはHSP-CENTERです。HSPに関するコラムやアルゴリズムをやっています。
ぜひ1度来てみてください。
それでは。

[5932] VRAMについて 投稿者:トントン 投稿日:01/07/31(火) 08:30 <URL>
トントンです。
VRAMについて知りたいのですが、ヘルプのどこに書いてあるのでしょうか?ご存知の方、教えてください。

[5933] Re: VRAMについて 投稿者:桜井 投稿日:01/07/31(火) 09:45
> トントンです。
> VRAMについて知りたいのですが、ヘルプのどこに書いてあるのでしょうか?ご存知の方、教えてください。

HSPマニュアル総合インデックス → HSPからのDLL呼び出し方法リファレンスマニュアル
のところの最後にちょこっと書いてありますよ〜(^^)

では(^-^)ノ

[5963] Re^2: VRAMについて 投稿者:トントン 投稿日:01/07/31(火) 15:42 <URL>
ありがとうございます。見つけました。
少し複雑ですががんばってみます。

[5957] いろいろ教えていただきありがとうございます 投稿者:あはは 投稿日:01/07/31(火) 14:51
みなさんに教えていただいたおかげでだいぶソフトができましたが
ここから下に書く質問はまだわからないので教えてください


メツセージボックスにボタンを押していれることができましたが
2つボタンを押すと2つとも並んで表示することができますか?
----------------------------------------------------------------
こんなふうにしたい↓
________________
| | ←メッセージボックス
----------------
(こんな)  (ふうに) ←ボタン

↓ボタンを押したらこんなのになるようにしたい
 ________________
| こんなふうに | ←メッセージボックス
----------------
(こんな)  (ふうに) ←ボタン

[5958] Re: いろいろ教えていただきありがとうございます 投稿者:sprocket 投稿日:01/07/31(火) 15:08 <URL>
> メツセージボックスにボタンを押していれることができましたが
> 2つボタンを押すと2つとも並んで表示することができますか?

メッセージボックスの内容に新しい内容を追加して objprm することで
可能です。


投稿のタイトルは内容を簡潔に表すものにしてください。

また、掲示板は多くの人が共有する場です。
同じ質問を続けて投稿することは避けていただけるとありがたいです。
特にツリー表示を使っている人にとっては混乱の元となります。

[5962] Re^2: いろいろ教えていただきありがとうございます 投稿者:あはは 投稿日:01/07/31(火) 15:41
> > メツセージボックスにボタンを押していれることができましたが
> > 2つボタンを押すと2つとも並んで表示することができますか?
>
> メッセージボックスの内容に新しい内容を追加して objprm することで
> 可能です。
>
>
> 投稿のタイトルは内容を簡潔に表すものにしてください。
>
> また、掲示板は多くの人が共有する場です。
> 同じ質問を続けて投稿することは避けていただけるとありがたいです。
> 特にツリー表示を使っている人にとっては混乱の元となります。

すいません こんどから注意します

[5954] 別ウィンドウ(2回目...) 投稿者:たう 投稿日:01/07/31(火) 14:00 <URL>
width 200,220
font "MS UI Gothic",12
objmode 2
cls 1
*main
key=""
pos 25,10:mes "キーワード"
pos 20,25:input key,150,22
objsize 100,12

pos 25,75:mes "検索エンジン"
pos 10,90:chkbox "Yahoo!JAPAN",yahoo
pos 10,102:chkbox "excite",excite
pos 10,114:chkbox "Google",Google
pos 10,126:chkbox "infoseek",infoseek
pos 10,138:chkbox "フレッシュアイ",フレッシュアイ
pos 10,150:chkbox "LYCOS",LYCOS
pos 10,162:chkbox "goo",goo

pos 10,190:objsize 88,21:button "OK",*go
pos 98,190:objsize 88,21:button "キャンセル",*owari
stop
*go
if yahoo=1:exec "http://search.yahoo.co.jp/bin/search?p="+key,16 ;yahoo
if excite=1:exec "http://www.excite.co.jp/search.gw?search="+key,16 ;excite
if Google=1:exec "http://www.google.co.jp/search?q="+key,16 ;Google
if infoseek=1:exec "http://www.infoseek.co.jp/Titles?col=JW&qt="+key,16;infoseek
if フレッシュアイ=1:exec "http://search.fresheye.com/?term=monthly&kw="+key,16;フレッシュアイ
if LYCOS=1:exec "http://www.lycos.co.jp/cgi-bin/pursuit?query="+key,16 ;LYCOS
if goo=1:exec "http://www.goo.ne.jp/default.asp?MT="+key,16 ;goo
stop
*owari
end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
という感じのスクリプトなんですが、
2つ以上の検索エンジンを選択すると、
ウィンドウ1つしか開かなくてうわがき(?)
されてしまってこまってます。
どうすればいいのでしょうか?
なるべくならHSPver.2.5でつくりたいです。

[5956] Re: 別ウィンドウ(2回目...) 投稿者:HIROMI 投稿日:01/07/31(火) 14:27
公開するものですか?
もしそうだとすると,新しいウィンドウで開く,ということ自体が実現困
難なことだと思います.
ユーザーはどんなブラウザを使用しているかわかりません.
そのブラウザがどんなオプションで新しいウィンドウを開くのかわからな
いし,タブ型ブラウザなら新しいウィンドウを開く機能ははじめから付いて
いないでしょう.
??ユーザー限定,とするならばそれにあわせたスクリプトを組めばいいわ
けです.

IEならば・・・
ieDir="\"C:\\Program Files\\Internet Explorer\\IExplore.exe\""
;↑各ユーザーが指定
exec ieDir+" http://www.goo.ne.jp/default.asp"

[5948] また質問です 投稿者:あはは 投稿日:01/07/31(火) 12:28
ボタンを押すとメッセージボックスに文字が
表示されるようにしたいのですが
どうすればできるでしょうか?
教えてください
(pos命令でボタンの場所を変えることができました。
 ありがとうございました。           )
 

[5952] Re: また質問です 投稿者:MAS 投稿日:01/07/31(火) 13:17
> ボタンを押すとメッセージボックスに文字が
> 表示されるようにしたいのですが
> どうすればできるでしょうか?
objprmを使ってはどうでしょう?
objprm オブジェクトID,表示される文字列変数
---サンプルソース
screen 0,640,480
a=""
mesbox a,winx,winy-50,5,500
button "押して",*SAMPLE
button "消すよ",*DEL
stop
*SAMPLE
b="表示する文字列です"
objprm 0,b
stop
*DEL
c=""
objprm 0,c
stop

[5953] Re^2: また質問です 投稿者:MAS 投稿日:01/07/31(火) 13:18
あ、先越されてたですね・・・

[5950] Re: また質問です 投稿者:ペーク 投稿日:01/07/31(火) 13:15 <URL>
button "Push",*push
stop
*push
input a
stop

[5951] Re^2: また質問です 投稿者:ペーク 投稿日:01/07/31(火) 13:16 <URL>
> button "Push",*push
> stop
> *push
> input a
> stop
あ、間違えてる(勘違いしてた。)
input a
button "Push",*push
stop
*push
objprm 0,"あ";変更
stop

[5949] メッセージボックスに文字表示 投稿者:脱力 投稿日:01/07/31(火) 13:14 <URL>
> ボタンを押すとメッセージボックスに文字が
> 表示されるようにしたいのですが
> どうすればできるでしょうか?
> 教えてください

buttonでラベルに飛んだあとに
objprmで、メッセージボックスに表示したい文字を送ればいいです。

objprmのHELP参照・・・
オブジェクトIDが厄介だとおもいますが・・

[5935] 無題 投稿者:たう 投稿日:01/07/31(火) 09:58 <URL>
[exec]でInternet Explorerを開くとき別ウィンドウで
ひらくことはできますか?おしえてください。
(execじゃなくてもいいです)

[5942] Re: 無題 投稿者:takadeko 投稿日:01/07/31(火) 11:53 <URL>
> [exec]でInternet Explorerを開くとき別ウィンドウで
> ひらくことはできますか?おしえてください。
> (execじゃなくてもいいです)
たぶん何もしなくても、別ウィンドウで開くと思います。
一応、命令です。↓

*hata
button"GO",*goweb
stop
*goweb
exec"http://dekodekomameta.hoops.ne.jp/",16
stop

です。参考にしてください。

[5945] Re^2: 別ウィンドウで開く 投稿者:たう 投稿日:01/07/31(火) 12:04 <URL>
できませんよぅ(T_T)
うちのPCの設定が違うから??

[5947] Re^3: 別ウィンドウで開く 投稿者:HIROMI 投稿日:01/07/31(火) 12:15
ここにはだいぶお久しぶり|・)ノ

> できませんよぅ(T_T)
> うちのPCの設定が違うから??

HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Topic ←ここの
WWW_OpenURL ←これを
WWW_OpenURLNewWindow ←こう

でも配布するんならこんなことやると嫌がられるので,
HKEY_CLASSES_ROOT\http\shell\ に
opennewキーを付け足して,HSP2.55でp3に"opennew"を指定しましょう.

[5946] Re^3: 別ウィンドウで開く 投稿者:takadeko 投稿日:01/07/31(火) 12:08 <URL>
> できませんよぅ(T_T)
> うちのPCの設定が違うから??
?????????んーーーよくわかんないんだけど・・
それは、あれですか?
button押した上に、IEが立ち上がるということですか?

[5936] 別ウィンドウで開く(かきなおし) 投稿者:たう 投稿日:01/07/31(火) 09:59 <URL>
 [exec]でInternet Explorerを開くとき別ウィンドウで
ひらくことはできますか?おしえてください。
(execじゃなくてもいいです)

[5862] バイナリ 投稿者:HyperSystem 投稿日:01/07/29(日) 18:20
こんにちわ、いきなりですが質問をさせていただきます。
えっとですね、着メロデータを作れるようなソフトを作りたいのですが、HSPでバイナリデータを作ることは可能なんでしょうか?
もし、可能ならどんな方法があるのでしょうか?
教えてください。

[5890] Re: バイナリ 投稿者:ANTARES 投稿日:01/07/30(月) 06:23 <URL>
 誤解があるように思うので、バイナリデータについて
説明します。
 バイナリデータにはいろいろなものがあります。
midiファイルもexeファイルもwavファイルもbmpファイルも
そのデータはバイナリデータです。テキストデータでないものは
すべてバイナリデータです。
 HSPはバイナリデータを作るのに十分な機能を持っていますが、
それがわかっただけで着メロデータが作れるわけではありません。
 例えば、htmlファイルはテキストファイルですし、HSPは
テキストファイルを作るのに十分な機能を持っていますが、
HSPでテキストファイルが作れるようになったからといって
htmlファイルが作れるとは限りません。どういうルールに
基づいてテキストデータを並べればhtmlファイルになるのかを
知り、そのルールに基づいてテキストデータを作って
初めてhtmlファイルを作ることができるのです。
 同様に、着メロデータを作るには、どんなデータをどんな
順序で並べればいいかというルール(フォーマットと言います)を
知って、そのルールにしたがってバイナリデータを作ることが
必要です。それは、いわば、bmpsaveを使わずにbmpファイルを
作るようなものです。
 ですから、着メロデータを作るには、まずそのフォーマットを
知ることが必要です。この点については、残念ながら私は
何の役にも立てません。

[5944] Re^2: バイナリ 投稿者:HyperSystem 投稿日:01/07/31(火) 11:59
あ、そういうのは知ってます。
すでに着メロデータに関する仕様書(?)みたいなものも手に入れていますし(解析サイトとかで
HTMLファイルもHSPで作ってこともありますしね。
わざわざ心配してくださってありがとうございます。

[5864] Re: バイナリ 投稿者:sprocket 投稿日:01/07/29(日) 18:27 <URL>
> えっとですね、着メロデータを作れるようなソフトを作りたいのですが、HSPでバイナリデータを作ることは可能なんでしょうか?

バイナリデータの操作は peek, poke で行えます。

[5943] Re^2: バイナリ 投稿者:HyperSystem 投稿日:01/07/31(火) 11:58
返事が遅くなってすみません。
peekとpokeでできるんですか。ありがとうございます。

[5937] 場違いな質問 投稿者:MAS 投稿日:01/07/31(火) 11:06
非常に場違いな質問ですいません。
僕は今じぶんのホームページでHSPの講座などをやりたいと
思っているんですが、それっておにたま氏の許可を取らないといけないんでしょうか?
(おにたま氏は今忙しいと思うのでこちらに投稿してみました。)

[5939] Re: 場違いな質問 投稿者:takadeko 投稿日:01/07/31(火) 11:48 <URL>
> 非常に場違いな質問ですいません。
> 僕は今じぶんのホームページでHSPの講座などをやりたいと
> 思っているんですが、それっておにたま氏の許可を取らないといけないんでしょうか?
私も昔同じような質問をしたことがあります。
これは、うすあじ氏によると、
☆こんなのならいい
1、講座やHSPに関するサイトであるなら、いいそうです。
2、DLLをUPしている。
☆してはいけないこと
1、HSP本体をDLできるようにしている。
または直リンク。
こんなかんじです。
-------------------------
わたしもHSPのサイトつくってるんで、暇だったらどうぞ
web : dekodekomameta.hoops.ne.jp/

[5941] Re^2: 場違いな質問 投稿者:MAS 投稿日:01/07/31(火) 11:52
> わたしもHSPのサイトつくってるんで、暇だったらどうぞ
> web : dekodekomameta.hoops.ne.jp/
  ↑このサイトなら時々行きます。お気に入りにもはいってます。
ありがとうございました。  

[5938] 質問です 投稿者:あはは 投稿日:01/07/31(火) 11:45
初めてHSPでソフトを作っているのですが
ボタンの座標はどうやってきめればいいのですか?
教えてください

[5940] Re: 質問です 投稿者:MAS 投稿日:01/07/31(火) 11:49
> 初めてHSPでソフトを作っているのですが
> ボタンの座標はどうやってきめればいいのですか?
> 教えてください
ボタンにかかわらず、オブジェクトの座標は
pos x座標,y座標
で指定できます。

[5927] hspdxをつかっての、弾の連射はできますか? 投稿者:たくてくす 投稿日:01/07/30(月) 23:51
 STGをつくっているのですが、hspdxに依存しない自機弾の連射を
組んでいたのですが、処理的に重くなってしまうのでスプライトを使用して
自機弾の連射を行おうとしたのですが、どうしても上手く行きません。

 何回か連射を行うと、弾が出なくなってしまい、しかも、スプライトの有効範囲を
出ているのに、スプライトが削除されずに処理が続いているようで、
どんどん処理速度が落ちていきます(結果的に、DirectXに依存していない
方よりも重くなってしまいます(TT。


*********************************************************
*myshot
repeat SHOTMAX:ym=cnt
if jkey1>=16:sht.ym=1:jkey1-
if sht.ym=1:gosub *weapon

es_draw xm,1
loop

return

*weapon
es_new xm,500
if xm<520 {
es_set xm,x+12,y,500;弾スプライト位置(No500)
es_type xm,4;type値(4)
es_adir xm,16,4000;X軸+
sht.ym=2
}

******************************************************

このようなサブルーチンで処理しているのですが、
どうしても上手く動きません……。

[5929] Re: hspdxをつかっての、弾の連射はできますか? 投稿者:たかのん 投稿日:01/07/31(火) 01:21 <URL>
> *myshot
> repeat SHOTMAX:ym=cnt
> if jkey1>=16:sht.ym=1:jkey1-
> if sht.ym=1:gosub *weapon
>
> es_draw xm,1
> loop

jkey1というのは弾を撃つキーの判定変数でしょうか?
それとも弾の生存期間を示すタイマーなんでしょうか?
どうもこのあたりに原因がありそうです。

ちなみに es_draw はこの repeat〜loop の区間では
必要ありません。es_sync と同様メインのループで
1回行えばOKです。


> *weapon
> es_new xm,500
> if xm<520 {
> es_set xm,x+12,y,500;弾スプライト位置(No500)
> es_type xm,4;type値(4)
> es_adir xm,16,4000;X軸+
> sht.ym=2
> }

このスプライトの生成処理部分は問題なさそうですね。
多分、なんですが、描写範囲を超えてスプライトが削除されても、
配列変数shtの値がリセットされてないため、変数SHOTMAX以上の
弾数が撃てなくなってるのではないかと。

hspdx.dll用のサンプルシューティング&スクリプトがありますんで、
よかったら参考にしてみてください。講座は途中かけなんだよな^^;

http://homepage1.nifty.com/takanon/hsp/sample30.lzh

[5931] ありがとうございました! 原因解明! 投稿者:たくてくす 投稿日:01/07/31(火) 04:25
> ちなみに es_draw はこの repeat〜loop の区間では
> 必要ありません。es_sync と同様メインのループで
> 1回行えばOKです。

1番大きな原因はコレだったようです^^;
実は雑魚敵を描くときにも別に1個に使ってたんで、それと妙な具合に干渉していたようです…。
 さらに2回描写してるからそれで処理が重くなっていたようです^^;


>
> http://homepage1.nifty.com/takanon/hsp/sample30.lzh

↑、じつはそちらのサイトの講座を参考にDirectX用にスクリプト移植してました(笑

本当にありがとうございました^^ノ

[5928] 修正… 投稿者:たくてくす 投稿日:01/07/30(月) 23:54
>  STGをつくっているのですが、hspdxに依存しない自機弾の連射を
> 組んでいたのですが、処理的に重くなってしまうのでスプライトを使用して
> 自機弾の連射を行おうとしたのですが、どうしても上手く行きません。
>
>  何回か連射を行うと、弾が出なくなってしまい、しかも、スプライトの有効範囲を
> 出ているのに、スプライトが削除されずに処理が続いているようで、
> どんどん処理速度が落ちていきます(結果的に、DirectXに依存していない
> 方よりも重くなってしまいます(TT。
>
>
> *********************************************************
> *myshot
> repeat SHOTMAX:ym=cnt
> if jkey1>=16:sht.ym=1:jkey1-
> if sht.ym=1:gosub *weapon
>
> es_draw xm,1
> loop
>
> return
>
> *weapon
> es_new xm,500
> if xm<520 {
> es_set xm,x+12,y,500;弾スプライト位置(No500)
> es_type xm,4;type値(4)
> es_adir xm,16,4000;X軸+
> sht.ym=2
> }
return

すいません、またコピー&ペーストのミスです(><
最後のreturn写し忘れてました

[5887] 思考ルーチンについて質問です。 投稿者:鈴菜 萌 投稿日:01/07/30(月) 06:19 <URL>
ちょっと前にも書き込ませていただきました鈴菜というものです。
思考ルーチンって、なんですか?・・・なんていったらタコられそうなので(苦笑)改めて・・・。
思考ルーチンは、どういう風に作り上げていけば言いのでしょうか?
前回のカキコ同様すごろくゲームを作っているわけなのですが、的の動きに関するところでストップしてしまっています。
ほかに関しては大体見通しがついているだけにちょっと悔しい状況・・・。
簡単なサンプルをいただけると感激モノです。
思考ルーチンに関して、フォーマットとかあるんでしょうか?
教えていただけると幸いです。

頑張れ卒製っ!いや、なんでもないです(笑

[5893] Re: 思考ルーチンについて質問です。 投稿者:chokko 投稿日:01/07/30(月) 07:45 <URL>
>思考ルーチンは、どういう風に作り上げていけば言いのでしょうか?

本来プレイヤーが受け持つパートを、鈴菜さんが受け持ったと思って
それをそのままスクリプトで表現して行けば大丈夫です。
通常は、プレイヤーのキー入力判定部分を、
そっくりそのまま思考ルーチンに置き換えます。
思考ルーチンで考えさせたベストなキー操作を、
stickの取得変数に直接自分で代入させるだけで構いません。

ちなみに、双六ならランダムな値をビットシフトして、
そのままstickのp1に放り込むだけで、
そこそこ動くような気がします(^^;)

>思考ルーチンに関して、フォーマットとかあるんでしょうか?
全く無いので、自由に作って行けばOKです。頑張って下さい。

[5930] Re^2: 思考ルーチンについて質問です。 投稿者:鈴菜 萌 投稿日:01/07/31(火) 01:44 <URL>
レス、ありがとうございました。
早速取り掛かりたいと思います。

最終的にはネット対応に・・・とか思ってたりします^^;
目指せ完成〜〜♪

[5892] Re: 思考ルーチンについて質問です。 投稿者:トントン 投稿日:01/07/30(月) 07:35 <URL>
もう少し具体的に
1.どういうソフトを作っているのか。
2.どういう処理をしたいのか。
という事が述べられていると、答える側も答えやすいと思います。
シミュレーションゲームについては888さんのページのゲームクリエーターズルームで
少し解説されています。
http://hp.vector.co.jp/authors/VA020801/

[5888] Re: 思考ルーチンについて質問です。 投稿者:鈴菜 萌 投稿日:01/07/30(月) 06:20 <URL>
> 前回のカキコ同様すごろくゲームを作っているわけなのですが、的の動きに関するところで・・・
的じゃなくって敵ですね。
あぅ、変換ミス・・・^^;

[5922] aplstr 投稿者:MAS 投稿日:01/07/30(月) 23:34
質問なんですが、
今僕はHP作成ソフトを作っています。
ウインドウが二つあって、右ウインドウにはボタンがあり、
それを押すと左ウインドウのエディタ部にタグが書かれるやつです。
僕はその機能を、hspextのaplstrで実現しようとしたわけなんですが、
たとえば
  aplstr "<IMG SRC="sample.gif" ALT="さんぷる">"
という命令を実行すると
  >
と右端の一文字しか表示されないんです。
どうにかして全部の文字を表示させられないでしょうか?

[5925] Re: aplstr 投稿者:K-K 投稿日:01/07/30(月) 23:41

>  aplstr "<IMG SRC="sample.gif" ALT="さんぷる">"
>という命令を実行すると
>  >
>と右端の一文字しか表示されないんです。

aplstr "<IMG SRC=\"sample.gif\" ALT=\"さんぷる\">"
としてみてください.

「"」は文字列の始まりと終わりを意味します.
MASさんの書いたものを見ると,どこからどこまでが文字列なのかが
おかしくなっています.
"<IMG SRC=" と " ALT=" と ">" が文字列として扱われます.
「"」を表示させるためには,「\"」と書く必要があります.

[5926] Re^2: aplstr 投稿者:MAS 投稿日:01/07/30(月) 23:50
> 
> >  aplstr "<IMG SRC="sample.gif" ALT="さんぷる">"
> >という命令を実行すると
> >  >
> >と右端の一文字しか表示されないんです。
>
> aplstr "<IMG SRC=\"sample.gif\" ALT=\"さんぷる\">"
> としてみてください.
>
上の命令を実行したらちゃんと動きました。
K-Kさんありがとうございました。

[5908] 多次元の配列への代入について 投稿者:Иα 投稿日:01/07/30(月) 16:00
お初に書き込ませて頂きます。
早速ですが質問です。

array.0.0=A
array.0.1=B
array.0.2=C
配列変数「array」にこういう感じの文字列を代入する場合に、
記述を簡略化する方法は無いでしょうか?

array.0.0="A"
array.0.1="B"
array.0.2="C"
だと、同じような配列を沢山使うために
エディタの画面が見づらくなってしまうんです。。
かといって、
array.0="A","B","C"
としても、
パラメータは
array.0=A
array.1=B
array.2=C
となってしまいますし。。。
こういう場合に何か..見やすい記述って出来ますでしょうか?

[5919] Re: 多次元の配列への代入について 投稿者:K-K 投稿日:01/07/30(月) 21:46

>array.0.0=A
>array.0.1=B
>array.0.2=C
>配列変数「array」にこういう感じの文字列を代入する場合に、
>記述を簡略化する方法は無いでしょうか?

解決策ではありませんが,いっそのこと配列の数字を今と逆に使うように
プログラムが作れないでしょうか?
つまり,1番目の数字と2番目の数字の役割を逆にするということです.

array.1.0 array.2.0 array.3.0の3つは連続したメモリ上にあるので
もしかしたらほんの少しだけ処理速度も上がるかもしれません.
また,場合によってはこの方が扱いやすいと思います.

実際に何をしているのかが分からないので,役に立つかどうかは分かりませんが…

[5912] Re: (poke を使うなら…)多次元の配列への代入について 投稿者:すもも 投稿日:01/07/30(月) 17:31 <URL>
> array.0.0=A
> array.0.1=B
> array.0.2=C
> 配列変数「array」にこういう感じの文字列を代入する場合に、
> 記述を簡略化する方法は無いでしょうか?

HSP の記述法だと、

array.0.0 = "A","B","C", ..

と代入すると、

array.0.0 = "A"
array.1.0 = "B"
array.2.0 = "C"

となります・・。
それでよければ、

sdim ch, 2 ; バッファ
sdim array,2,26,2 ; 2バイトの26個の配列が2個ある配列

repeat 26
poke ch, 0, cnt+65
array.cnt.0 = ch
poke ch, 0, cnt+97
array.cnt.1 = ch
loop

stop

; もしくは・・

sdim ch, 2
sdim array,2,2,26

repeat 26
poke ch, 0, cnt+65
array.0.cnt = ch
poke ch, 0, cnt+97
array.1.cnt = ch
loop

stop

#先日はハメをはずしてしまい、みなさまにはご迷惑をおかけしました m(_ _)m

[5914] Re^2: (poke を使うなら…)多次元の配列への代入について 投稿者:すもも 投稿日:01/07/30(月) 17:53 <URL>
以下のようでもできるみたいです・・。(式を簡略化しただけです)

sdim ch, 2 ; バッファ
sdim array,2,26,2 ; 2バイトの26個の配列が2個ある配列

repeat 26
poke array.cnt.0, 0, cnt+65
poke array.cnt.1, 0, cnt+97
loop

stop

[5909] dialogのmessage 投稿者:うなぎ 投稿日:01/07/30(月) 16:23
はじめまして

ファイルオープンのdialogでbmpとpngを選択したいんですが
dialogのmessageに複数登録することって出来ますか?

お願いします。

[5910] Re: dialogのmessage 投稿者:Иα 投稿日:01/07/30(月) 16:34
> はじめまして
>
> ファイルオープンのdialogでbmpとpngを選択したいんですが
> dialogのmessageに複数登録することって出来ますか?
>
う〜ん、よく解らないけど
dialog "bmp;png",16,"BMPファイル, PNGファイル"
とか
dialog "bmp;*.png",16,"BMPファイル, PNGファイル"
とかでいいんじゃないでしょうか。

[5911] Re^2: dialogのmessage 投稿者:sprocket 投稿日:01/07/30(月) 16:39 <URL>
> う〜ん、よく解らないけど
> dialog "bmp;png",16,"BMPファイル, PNGファイル"
> とか
> dialog "bmp;*.png",16,"BMPファイル, PNGファイル"
> とかでいいんじゃないでしょうか。

二個目の拡張子の前に *. をつけます。二つ目が正解

[5916] Re^3: dialogのmessage 投稿者:うなぎ 投稿日:01/07/30(月) 20:05
Иαさん、sprocketさんレスありがとうございます

";"ですか…気が付かないですよこれは。

ありがとうございます。

[5872] 「;」を使いたい! 投稿者:亮輔 投稿日:01/07/29(日) 20:49
HSPにはいつもお世話になってます。
今回は自動HP作成ソフトを作っています。
そこで、問題が生じてしまいました。
HSPでは;を常にコメントの開始としてコメントアウトしてしまいますが、
HPのhtmlの特にjavascriptなんかは改行の前に;を入れないと
エラーになってしまうのです。
;を入れても、アウトプットされずにかなり戸惑っています。
「;」を出力するためのコードとかありますか。
あったらぜひ教えてください。

[5873] Re: 「;」を使いたい! 投稿者:J.S.BUFFER 投稿日:01/07/29(日) 21:07 <URL>
\;

↑これでできます。

[5874] Re^2: 「;」を使いたい! 投稿者:亮輔 投稿日:01/07/29(日) 21:21
簡潔な答えをありがとうございます。
私もいつもは\;で対処してきたのですが、今回はうまく行かないのです。
どうやら文字列の{" 〜 "}内であることが原因のようです。
{" 〜 "}でもうまく行くようにするにはどうすれば良いでしょうか。

[5913] Re^3: 「;」を使いたい! 投稿者:J.S.BUFFER 投稿日:01/07/30(月) 17:35 <URL>
> 簡潔な答えをありがとうございます。
> 私もいつもは\;で対処してきたのですが、今回はうまく行かないのです。
> どうやら文字列の{" 〜 "}内であることが原因のようです。
> {" 〜 "}でもうまく行くようにするにはどうすれば良いでしょうか。

RiffRaffさんの返信された通り、どうやら「使えない」というのが答えのようですが、
(僕も {" "} の中で使えないというのは今日初めて知りましたが<笑)

でも、ちょっと面倒になりますが、応用次第で可能です(^^)

mes {"
1行目です。
2行目"}+"\;"+{"です。
3行目です。
"}

stop

・・・これで、しっかりと「;」が表示されるはずです。
ちょっとセコいやり方かもしれませんが(爆)

[5881] Re^3: 「;」を使いたい! 投稿者:RiffRaff 投稿日:01/07/30(月) 00:42
こちらを参照してください。

http://www.onionsoft.net/hsp/beta/betabbs.cgi?mode=allread&no=251&page=20

[5903] スクリプトエディタに 投稿者:am.ll 投稿日:01/07/30(月) 13:26
今、自分で作って自分しか使ってないスクリプトエディタあります。
それには、コンパイルの時に(コンパイル直前に)変換することで
『/*』から『*/』の間をコメントとしたり、『_』を使って一行を複数行に
分けたり、といった機能のようなものをつけているんですが、
これってHSP本来の文法からそれた記述をすることになりますよね。

こういうものを使用したり、
公開してはまずいのでしょうか?

[5907] Re: スクリプトエディタに 投稿者:sprocket 投稿日:01/07/30(月) 15:32 <URL>
>//略
> これってHSP本来の文法からそれた記述をすることになりますよね。
>
> こういうものを使用したり、
> 公開してはまずいのでしょうか?

別にまずくはないと思います。

[5851] (削除) 投稿者:(削除) 投稿日:01/07/29(日) 13:04
(削除されました)

[5871] Re: インターネットエクスプローラーの履歴をクリアする 投稿者:ν 投稿日:01/07/29(日) 20:06
> インターネットエクスプローラーの履歴をクリアするAPIはありますか?
C:\WINDOWS\Historyの中身を消しましょう。え?ダメ?

[5876] Re^2: インターネットエクスプローラーの履歴をクリアする 投稿者:Edit1.text 投稿日:01/07/29(日) 22:27
> > インターネットエクスプローラーの履歴をクリアするAPIはありますか?
> C:\WINDOWS\Historyの中身を消しましょう。え?ダメ?

普通には消せないんです。
特殊なフォルダのようで

[5902] Re^3: インターネットエクスプローラーの履歴をクリアする 投稿者:faust 投稿日:01/07/30(月) 13:23
> インターネットエクスプローラーの履歴をクリアするAPIはありますか?
IEのバージョンに依存してしまうのですがIUrlHistoryStg・IUrlHistoryStg2を使う方法があります。IE5.5以上推奨ですが
IE5でも大丈夫みたいです(私はIE5ですが上手くいきました)。
取り敢えずRiffRaffさんのLOLLIPOPモジュールを使って
http://cgi14.plala.or.jp/riffraff/hsp/lollipop/index.htm
IUrlHistoryStg2のClearHistoryメソッドを呼ぶサンプルを載せます。
(履歴が全て削除されます。)

#include "llmod.as"
#include "rrmod/com/lollipop.as"

clsid = "{3C374A40-BAE4-11CF-BF7D-00AA006946EE}"
CLSIDFromString CLSID_CUrlHistory, clsid
rclsid_CUrlHistory = stat

iid = "{AFA0DC11-C313-11d0-831A-00C04FD5AE38}"
IIDFromString IID_IUrlHistoryStg2, iid
riid_IUrlHistoryStg2 = stat

prm = rclsid_CUrlHistory, 0, CLSCTX_INPROC_SERVER, riid_IUrlHistoryStg2
CoCreateInstance pUHS2, prm

if (stat == 0){
callmethod 9, prm, 0, pUHS2 ;ClearHistory
Release pUHS2
}

CoUninitialize

dialog "completed"

他のメソッドについては自分で調べてみてください。

[5906] Re^4: インターネットエクスプローラーの履歴をクリアする 投稿者:Edit1.text 投稿日:01/07/30(月) 15:24
> > インターネットエクスプローラーの履歴をクリアするAPIはありますか?
> IEのバージョンに依存してしまうのですがIUrlHistoryStg・IUrlHistoryStg2を使う方法があります。IE5.5以上推奨ですが
> IE5でも大丈夫みたいです(私はIE5ですが上手くいきました)。
> 取り敢えずRiffRaffさんのLOLLIPOPモジュールを使って
> (http://cgi14.plala.or.jp/riffraff/hsp/lollipop/index.htm
> IUrlHistoryStg2のClearHistoryメソッドを呼ぶサンプルを載せます。
> (履歴が全て削除されます。)
>
> #include "llmod.as"
> #include "rrmod/com/lollipop.as"
>
> clsid = "{3C374A40-BAE4-11CF-BF7D-00AA006946EE}"
> CLSIDFromString CLSID_CUrlHistory, clsid
> rclsid_CUrlHistory = stat
>
> iid = "{AFA0DC11-C313-11d0-831A-00C04FD5AE38}"
> IIDFromString IID_IUrlHistoryStg2, iid
> riid_IUrlHistoryStg2 = stat
>
> prm = rclsid_CUrlHistory, 0, CLSCTX_INPROC_SERVER, riid_IUrlHistoryStg2
> CoCreateInstance pUHS2, prm
>
> if (stat == 0){
> callmethod 9, prm, 0, pUHS2 ;ClearHistory
> Release pUHS2
> }
>
> CoUninitialize
>
> dialog "completed"
>
> 他のメソッドについては自分で調べてみてください。


ありがとうございます。

[5905] RS232C 投稿者:たか 投稿日:01/07/30(月) 14:39
始めまして、たかです。

早速質問なんですが、パソコンとハンディーターミナルを
RS232Cで接続するのですが、HSPを使用して
ファイル転送は可能でしょうか?

よろしくお願いします!

[5899] カレントディレクトリって。 投稿者:ryu 投稿日:01/07/30(月) 11:25
カレントディレクトリっていったなんでしょうか。
EXEにするときに
カレントディレクトリにpackfaileがみつかりませんでしたとでます。

[5901] Re: カレントディレクトリって。 投稿者:No.9 投稿日:01/07/30(月) 11:29 <URL>
どうも、No.9です。

> カレントディレクトリっていったなんでしょうか。
> EXEにするときに
> カレントディレクトリにpackfaileがみつかりませんでしたとでます。

要するに現在作業を行っているフォルダの事です。(確か(^^;)
試しに、
a=curdir : mes a : stop
としてみれば、現在のカレントディレクトリが参照できます。
そこに packfile が無いのでエラーが出るのだと思います。
フォルダを移動する命令をヘルプで調べて、使うと上手く行くと思いますよ

[5896] packfile生成 投稿者:yuu 投稿日:01/07/30(月) 10:17 <URL>
packfileを、エディター上で行なわずに
HSPプログラム上で生成したいのですが、
hspcmp.dllの、pack_xxx命令系統でなんとかなるでしょうか。

DPMファイルに関する知識もなかったためか、
hspcmp.dllリファレンスを見ても方法がわかりませんでした。

[5900] Re: packfile生成 投稿者:No.9 投稿日:01/07/30(月) 11:25 <URL>
どうも、No.9です。

> packfileを、エディター上で行なわずに
> HSPプログラム上で生成したいのですが、
> hspcmp.dllの、pack_xxx命令系統でなんとかなるでしょうか。

出来ますよ(^^)
packfile 自体ただのテキストと思ってもらって大丈夫です。
よって、ただ単に packfile 自体を作るのであれば、
pack_ini 等の命令は必要ありません。
note命令を使って作成するだけです。
頑張って下さい♪

[5897] Re: packfile生成 投稿者:桜井 投稿日:01/07/30(月) 10:35
> packfileを、エディター上で行なわずに
> HSPプログラム上で生成したいのですが、
> hspcmp.dllの、pack_xxx命令系統でなんとかなるでしょうか。
>
> DPMファイルに関する知識もなかったためか、
> hspcmp.dllリファレンスを見ても方法がわかりませんでした。

ただ単にpackfileを作りたいだけなら、ファイル名を改行で区切って作れます。

↓こんな風に
pic01.bmp
pic02.bmp
wav01.wav
wav02.wav

これをそのまんまpackfileというファイル名でbsaveすれば、
packfileの出来あがりです。
その後、DPMファイルやEXE・SCRファイルを作る時に
pack_xxx系の命令を使います。

#これでいいんでしょうか(・_・)?
#もしかして全然ちがう?

[5898] Re^2: packfile生成(訂正) 投稿者:桜井 投稿日:01/07/30(月) 11:03
> #これでいいんでしょうか(・_・)?
> #もしかして全然ちがう?

と自分で書いておきながら全然違うような気がしてきたのでもう一個。

前述した方法でpackfileを作った後に、
pack_ini "作成するDPMファイル名"
でpackfileマネージャの初期化を行い、その後に
pack_make
でpack_ini命令で指定したファイル名で
packfile内で指定されたファイルを結合してDPMファイルを作成します。

#今度こそこれでいいんでしょうか(・_・)?
#もしかしてまたもや全然ちがう?

[5843] 文字の改行 投稿者:まり 投稿日:01/07/28(土) 23:49
なんか質問ばっかりでごめんなさい。

あの、文字を勝手に改行させることってできないんでしょうか?
たとえば2行ずつ表示したい長文があるとして・・・
エンター押すとまた次の2行がでるって感じのなんですが・・・

画面の外まで文字が行っちゃって困ってます。
どうかよろしくおねがいします。(ぺこり)

[5847] Re: 文字の改行 投稿者:pumpkin! 投稿日:01/07/29(日) 01:26
> なんか質問ばっかりでごめんなさい。

なんかわしばっか答えてごめんなさい。
来たらちょうど、ずら〜っと並んでいたんだよおぉぉっ。

> あの、文字を勝手に改行させることってできないんでしょうか?
> たとえば2行ずつ表示したい長文があるとして・・・
> エンター押すとまた次の2行がでるって感じのなんですが・・・

文字を表示する際の mes 命令のパラメータに
あらかじめ \n を埋め込んでおくのじゃダメなんですか?

text 150
mes "今日もニコニコ\n楽しくHSP"
stop

みたいに。

[5848] Re^2: 文字の改行 投稿者:まり 投稿日:01/07/29(日) 01:58
えっと・・・・もっと長文の時の場合はどうすればいいでしょうか?
それでもって例えば300ピクセルの幅にして
ぴったしその範囲で改行できるようにしたくって、
さらにエンター押したら続きが出るって感じの・・・・

ごめんなさい、説明がすっごい下手!!

ついでに前の文字が消えるようにしたいです。
文字が重なっちゃう・・・・・しくしく。

[5891] Re^3: 文字の改行 投稿者:pumpkin! 投稿日:01/07/30(月) 06:54
お詫びシリーズその2(ツリー版利用者には意味分かんないな) m(_ _)m 

> もっと長文の時の場合はどうすればいいでしょうか?

ちょっと意味がよく分かりません。
長文にした上で、そこに \n を挟むのじゃいけないんでしょうか?
「mes "今日もニコニコ明日もニコニコ楽しくHSP!!\nおにたまさん、どうもありがとう"」とか。
ただし、あまり長くすると制約にひっかかるので注意。

> 300ピクセルの幅にして ぴったしその範囲で改行できるようにしたくって、

原始的だけど、等幅フォントを指定した上で、文字数を数えて \n を挟むのが
いちばん手っ取り早い気がするなぁ。
あるいは、例えば1行が20文字でぴったりならば、20字掛ける何行かの
テキストファイルを別に作っておいて、2行ずつ読み出していくとか……。
この方法については同梱サンプルの「NOTE1.AS」あたりが参考になると思います。

> ついでに前の文字が消えるようにしたいです。

背景色(背景画像)で塗りつぶすことでまず元の文字を消し、その後に次の文字を書きます。
以下のサンプルはボックス部分(若干おおまか)を左クリックすると文字を書き換えます。

sdim chara,64,2
chara.0="今日もHSP・・・ \n明日もHSP・・・ !!"
chara.1="HSPは \nおにたまさんの著作物です。"

color ,,255 : boxf
gosub *draw_box : wait 50
a=0 : gosub *draw_character

*main_loop
repeat;          repeat〜loop間を左クリックされるまで繰り返す
wait 1;       無限に続くrepeat〜loop間には入れなければいけない命令
stick ky,0,1;   キー入力されたら、何のキーなのかその番号が変数kyに入る
if ky=256 : break; 左クリック(番号256)されたら繰り返しを終了する
loop
if mousey<300 : goto *main_loop
;           クリック位置のy座標が300未満ならまた戻り、以上なら下のスクリへ
gosub *draw_box;            元の文字を消す
a=1 : gosub *draw_character;     新たな文字を書く
stop

*draw_box;    水色のボックスを塗るサブルーチン
color ,125,255 : boxf 20,300,620,460 : return

*draw_character; 文字を書くサブルーチン
color 255,255,255 : font "MS ゴシック",36,1
pos 100,340 : text 100 : mes chara.a : return

[5895] Re^4: 文字の改行 投稿者:pumpkin! 投稿日:01/07/30(月) 08:35
> 長文にした上で、そこに \n を挟むのじゃいけないんでしょうか?
> 「mes "今日もニコニコ明日もニコニコ楽しくHSP!!\nおにたまさん、どうもありがとう"」とか。
> ただし、あまり長くすると制約にひっかかるので注意。

おっと皆さんすみません。「\n」のことにばかり頭が行ってしまいました。

mes "今日もニコニコ明日もニコニコ楽しくHSP!!\nおにたまさん、どうもありがとう"

などと書くぐらいなら

mes {"
今日もニコニコ明日もニコニコ楽しくHSP!!
おにたまさん、どうもありがとう
"}

の方が見やすいし、1行文字数の制約に対する心配も、多少は少なくなりますね。

[5879] 複数のasのファイル使えますか? 投稿者:まり 投稿日:01/07/30(月) 00:05
ごめんなさい、また質問です・・・(;;)

んと、プログラムが長くてダラダラしてて見にくいので
小分けにしたいんですけど、複数の○○.asをくっつけることができますか?
#includeって最初に書いてやると変になっちゃうし・・・

希望としてはオープニングみたいなので一つのasをつくって、
ボタン押したら次のasに進むみたいな・・・
できたらおしえてやってくださいな〜!
我侭で悪いんですが簡単な言葉で教えてくださると嬉しいです。
ほんとに全然わからないんで・・・とほほ〜!

[5886] Re: 複数のasのファイル使えますか? 投稿者:pumpkin! 投稿日:01/07/30(月) 04:39
公開糾弾してしまったのでお詫びに(^-^)。

> プログラムが長くてダラダラしてて見にくいので
> 小分けにしたいんですけど、複数の○○.asをくっつけることができますか?

#include 命令を使えばできます。
変になるのは「命令を出している場所が」間違っているからだと思います。

「小分けしたいときに使う」#include 命令は、最初に書く必要はありません。
#include 命令とは「その命令を出した場所に」あなたの指定したファイルの内容を
そのまま差し込む命令です。具体的に説明します。

命令1
命令2
命令3

というスクリプトを書いたとします。このうち「命令2」を小分けして
別のasファイルにしたいとします(もちろん命令2は、何十行、何百行でも可)。
そして、その「別のasファイル」のファイル名を「another.as」とつけるとします。
その場合、次のようにすればOKです。

命令1
#include "another.as"
命令3

「#include "another.as"」で another.as にある「命令2」が挿入されるため、
元のスクリプトと同じことになります。

> 希望としてはオープニングみたいなので一つのasをつくって、
> ボタン押したら次のasに進むみたいな・・・

スクリプトの整理が目的ならば、include命令の出し場所を工夫すれば
十分じゃないかと思います。ボタンを押した跳び先のスクリを小分けしたうえで
includeするような感じで……。

[5861] 画像の一部をクリックできますか? 投稿者:まり 投稿日:01/07/29(日) 17:39
毎度質問ばかりでごめんなさい。

えっと、画像の一部分だけをクリックして進むことってできますか?
画像というかウィンドウの一部分って感じで・・・
例えば400*300のウィンドウがあって
横が100、縦が100の位置から
200*100の横長の長方形だけをクリックしたいと・・・

□□□□
□■■□   ←この黒の部分だけクリックみたいなかんじです。
□□□□

この黒い部分だけクリックはできるんでしょうか?
なんかstickとかmouseだかループだかさっぱりで・・・

どなたかよろしくおねがいします。(ぺこり)

[5875] Re: 画像の一部をクリックできますか? 投稿者:くま 投稿日:01/07/29(日) 22:11
こんにちは 浜口ユヅさん&ペークさんにより既に正攻法のやり方
が示されていますしその方法がためになると思いますが、

> なんかstickとかmouseだかループだかさっぱりで・・・

という状態なのであれば、以下のような方法もあります(Forceさん
作の拡張プラグインExforce.dllを使います)

#include "Exforce.as"

screen 0,400,300 : color 0,0,255 : boxf
color 255,255,255 : pos 110,140
mes "この辺にボタン有り"

objsize 200,100 : pos 100,100
button "",*lb : id=0
style=0
drawbtn id,style ;Exforce.dllの命令です
stop
*lb
dialog "ボタンが押されました!"
stop

上記の状態で、ボタンは背景を透過して枠だけ表示されてる感じに
なってます。この状態で充分にデバッグし、その後 style=0 を
style=$b にすれば、ボタンは全く見えなくなります。機能自体は
通常のボタンと同じであり、処理の書き方も同じでOKです。

# ExforceはANTARESさんや和哉さんのHPでDLできたと思います

[5863] Re: 画像の一部をクリックできますか? 投稿者:浜口ユヅ 投稿日:01/07/29(日) 18:23
 プログラミングで大事なのは発想の転換だと思うんですが。
stickはマウスやキーボードが押されたかを調べる命令です。mouseはマウスの
座標が入っているシステム変数です。ループは処理をぐるぐると回らせること
ができます。というわけで、大体この三つでお望みの処理は出来ます。

 以下の処理を無限ループさせます。
 まずはマウスが200*100の長方形の中に入っているかどうか調べます。
mousex、mouseyをそれぞれif命令で判定します。
if (mousex>画像のx座標)&(mousey>画像のy座標)&(mousee<=画像のx座標+200)&(mousey<=画像のy座標+100)
こうですね。
それでコレが真ならば、stickでマウスが押されているか確認します。クリッ
クされていればstickは256を返すので、if命令で256が返されているか
調べます。返されていれば画像の一部をクリックされたと言うことになる
ので、break命令でループを抜け出して押された場合の処理に繋げればいいの
です。
 返されていなければループの最初に戻ります。最初のif命令後が偽であれば
これもループの最初に戻ります。

 と、これをHSPの命令で書けばいいのです。
 ただしmouseと言う変数は、waitあるいはawaitが無いと中身が更新されませ
ん。なのでループの最初にますwait 1ないしawait 1を入れて置いてくださ
い。

[5867] Re^2: 画像の一部をクリックできますか? 投稿者:ペーク 投稿日:01/07/29(日) 19:01 <URL>
> if (mousex>画像のx座標)&(mousey>画像のy座標)&(mousee<=画像のx座標+200)&(mousey<=画像のy座標+100)
> こうですね。
(),=が抜けています。mouseeになっています。
if (mousex>=画像のI座標)&(mousex>=画像のy座標)&(mousex<=(画像のx座標+200))&(mousey<=(画像のy座標+100))

[5868] Re^3: 画像の一部をクリックできますか? 投稿者:ペーク 投稿日:01/07/29(日) 19:02 <URL>
> if (mousex>=画像のI座標)&(mousex>=画像のy座標)&(mousex<=(画像のx座標+200))&(mousey<=(画像のy座標+100))
訂正!
                 ↓ここ
if (mousex>=画像のI座標)&(mousey>=画像のy座標)&(mousex<=(画像のx座標+200))&(mousey<=(画像のy座標+100))

[5877] Re^4: 画像の一部をクリックできますか? 投稿者:まり 投稿日:01/07/29(日) 23:30
くまさん、ユヅさん、ペークさんありがとうございました〜〜!
なんとか?クリックできました、うれし〜v

dllってなんなのかわかんなかったけどまた勉強しよっと!
また分からないことがいっぱいでると思いますけど
そのときはよろしくおねがいしますね〜〜v

[5882] まりさんへ(Re. 画像の一部をクリックできますか?) 投稿者:pumpkin! 投稿日:01/07/30(月) 01:54
こんにちは。
場の雰囲気を壊して申し訳ありませんが
ちょっと厳しいことを言わせていただきます。

> まりさん
> 例えば400*300のウィンドウがあって
> 横が100、縦が100の位置から
> 200*100の横長の長方形だけをクリックしたいと・・・
>
> □□□□
> □■■□   ←この黒の部分だけクリックみたいなかんじです。
> □□□□

人に安易に聞く前に少しは考えてください。
教えられたことは理解してから先に進んでください。
教えられたことが分からないというのなら、追加質問するなりして
理解するように努めてください。

あなたが質問された内容は 2001/07/28 03:47:58 に
「Re^2: 文字をクリックしたいです。」として回答した
スクリプトを理解しさえすれば、ごくわずかな改造だけで実現できます。
「改造」というのすら大げさで、そのまんまのスクリプトといっても
いいぐらいのものです。

また、投稿したスクリプトは、決して避けては通れない「公式」のような
ものであることは、スーパー初心者以外の方はみな「その通りだ」と
うなずいてくれるはずです。
もしまりさんが、みなさんから教えてもらったことを
ただコピペ、つぎはぎして、「私が作ったソフトだ」と言うのなら
とんでもない話です。
あなたのためです。考え方をあらためてください。

# メアドを公開されていないため、公開での苦言、ごめんなさい。

[5883] Re: まりさんへ(Re. 画像の一部をクリックできますか?) 投稿者:まり 投稿日:01/07/30(月) 02:19
ごめんなさい、いろいろ進めていく内にわからないことも増えちゃって・・・
参考書片手にどうにかがんばってたんですけど乗ってないとこもあって。

たしかに聞けば済むって感じになっちゃってごめんなさい。

これからは発言を控えるようにしますね・・・すいませんでした。

[5885] Re^2: まりさんへ(Re. 画像の一部をクリックできますか?) 投稿者:pumpkin! 投稿日:01/07/30(月) 03:20
> これからは発言を控えるようにしますね

いえいえ、発言を控えろって言っているわけじゃないです。
「回答してもらったスクリは理解するように努めてください」ということです。
じゃないと、今回のようにほとんど同じことを質問するなんてことにも
なってしまいますし、いつまでたっても工夫・応用ができないままです。

もちろん、回答をもらっても、その回答が理解できないこともありますよね?
その場合は、分からない部分について
それこそ「どんどん」追加質問をしたらいいと「私は」思います。
みなさんもきっとそういう人に対しては、「質問ばっかりしやがって」とは思わず
「一生懸命理解しようとしている人だな」と逆に好感を持つのではないかと思います。

ただ単に自分の期待する動作をするスクリを入手できれば
その内容を理解しなくてもいい、みたいな投稿に見えましたので
これじゃいつまでたっても同じだな、と苦言を書き込みました。
質問が多いことへの苦言ではないですよ。

まじめな話、前回投稿したスクリプトは絶対に理解すべきものですので
ヘルプと突き合わせてぜひ自由に使えるようになってください。

まりさんのまたの投稿を楽しみにしています。

[5856] ネットゲーについて 投稿者:じゃむ 投稿日:01/07/29(日) 14:24
AkihiroさんのAMdplayを使って、ネット格闘ゲームを作っているんですけど
データの送信に0.5秒〜1秒かかってしまいます。
リアルタイムということで、同期とらなければいけないので
キー押してから、送信して0.5秒後に動くとなるとゲームになりません。
データの量を1バイトにしても1000バイトにしても変わらないですし
自分のPCで2個立ち上げてやっても変わりません。
何か、原因があるんでしょうか?
それとも限界なんでしょうか?
教えてくださいー

[5880] Re: ネットゲーについて(通信速度 投稿者:スミス 投稿日:01/07/30(月) 00:23 <URL>
スミスです。

> AkihiroさんのAMdplayを使って、ネット格闘ゲームを作っているんですけど
> データの送信に0.5秒〜1秒かかってしまいます。

考えられる原因はいくつもあり、それを特定して改善するしかないです。

まず、大きく二つに切り分けて構成を洗い出し調査します。

<システム環境の側面>
・ハードスペックとして十分なのか。
(おそらく十分なスペックかと思いますが何も情報がないので一応)
・ネットワーク構成は?
(LANなのかInternetなのか、C/S型なのかPtoPなのか)
・回線種別や通信機器のタイプなどは?
(アナログなのかISDNなのかなど)
などを視点にそれに関わる機器の設定が最適化されているのかなど。
(モデムのバッファ設定などは最適か、HUBによる衝突が発生していないかとか)

<ソフトウエア/通信アルゴリズム>
・同期なのか非同期なのか
・DirectPlayに対する詳細設定はどうなのか
(コネクション時のフラグ設定など)
・ユーザのキー入力(要求)を受けてからAMdplayのsend命令までのフローは最適なのか
・データをRecieveしてからその結果を処理し再現(描画)するフローは最適なのか
などたくさんありますが、それらを少しづつ調べて悪ければ改良なりするしかないです。
0.5sec以上かかるということですが、付属サンプルはどうですか?同じですか?
もしサンプルでは正常ならば、
たぶんプログラム内での通信アルゴリズムが最適な組み方になっていない可能性が大きいです。

ちなみに私のプログラムでは、Internet経由でも50ms〜200msでデータ送受信とその結果を再現し終えてます。
ネットワークゲームならではのレスポンスが早く思えるようにするテクニックもあるので、
いろいろと研究してみてください。
数をこなさないとそれらはわからないことが多いかもしれません。
(書籍には載っていないようなことが多いです)

たいしたことないですが私のサイトも参考にしてみてください。
http://di2-rpg.hoops.ne.jp/
ネットワークゲーム製作講座をしてます(まだまだ途中ですが)

[5878] HPソフト 投稿者:MAS 投稿日:01/07/29(日) 23:57
僕もHP作成ソフトを作っています。
そのソフトで、ファイルをWEBサーバーに転送する
いわゆるFTPソフトのような機能を盛り込みたいのですが、
そういった機能を追加するdllなどはあるんでしょうか?

[5857] どうするの? 投稿者:目太 投稿日:01/07/29(日) 15:03
ボタンを押したら,ボタンに書いてある文字を
メッセージボックスに表示させるようなことは出来ますか?

[5860] Re: どうするの? 投稿者:暇な人 投稿日:01/07/29(日) 17:02
> ボタンを押したら,ボタンに書いてある文字を
> メッセージボックスに表示させるようなことは出来ますか?
以下のように記述してください。

btn="こんにちは";ボタンに表示される文字
msb="ボタンを押してください";最初にメッセージボックスに表示する文字

mesbox msb,200,25,1;メッセージボックス
msbid=0;メッセージボックスのオブジェクトID
objsize 100;ボタンのサイズを指定
button btn,*gogo;ボタン
stop
*gogo
objprm msbid,btn;メッセージボックスの内容を書き換える
stop

[5859] Re: どうするの?(ボタンのテキストを取得) 投稿者:桜井 投稿日:01/07/29(日) 16:53
> ボタンを押したら,ボタンに書いてある文字を
> メッセージボックスに表示させるようなことは出来ますか?

これで出来ましたが、例によってウラワザかもしれません。

;ボタンをクリックしたら文字列型変数bufに
;ボタンに表示されているテキストを取得します。
objsize 320,24
button "ボタンに表示するテキスト",*Label
sdim buf,256
mesbox buf,320,240,1
stop
*Label
sdim buf,256
objsend 0,$0D,256,buf,0
objprm 1,buf
stop

# objsendの p1 にはボタンのオブジェクトID、
# p2に $0D(WM_GETTEXT)、
# p3にテキストを取得する変数が確保しているバッファのサイズ、
# (sdimで確保したサイズ-1 がいいと思います)
# p4にテキストを取得する変数名、p5に 0 を指定します。
# システム変数statには取得した文字のバイト数が代入されます。
# ボタン以外に、chkbox・mesbox・inputにも使用できるようです。

[5832] サイズを固定する方法 投稿者:あさり 投稿日:01/07/28(土) 15:54
ID=2以降のウィンドウで、スクロールバーをつけたままで、ウィンドウの端をドラッグしても
サイズを変えられないようにしたいのですが、方法ないでしょうか?

[5835] Re: サイズを固定する方法 投稿者:sprocket 投稿日:01/07/28(土) 16:14 <URL>
> ID=2以降のウィンドウで、スクロールバーをつけたままで、ウィンドウの端をドラッグしても
> サイズを変えられないようにしたいのですが、方法ないでしょうか?

β版のHSPなら対応しています。(2.5ではダメです。)

screen 2,,,4
stop

[5849] Re^2: サイズを固定する方法 投稿者:KEN 投稿日:01/07/29(日) 05:15
> > ID=2以降のウィンドウで、スクロールバーをつけたままで、ウィンドウの端をドラッグしても
> > サイズを変えられないようにしたいのですが、方法ないでしょうか?
>
> β版のHSPなら対応しています。(2.5ではダメです。)
>
> screen 2,,,4
> stop

スクロールバーをつけたままという条件だからβ版のHSPでも無理なんじゃない?

#include "llmod.as"

screen 2,640,480,,dispx-320/2,dispy-240/2,320,240
mref BMSCR,67 : prm=BMSCR.13,-20,$200 : setwndlong prm
prm.1=-16,$16F00000 : setwndlong prm
prm.1=0,0,0,0,0,$27 : dllproc "SetWindowPos",prm,7,D_USER
stop

↑無理矢理スタイル変更すれば、それっぽい事は出来なくも無いですけど WS_THICKFRAME 有りと
WS_THICKFRAME 無しでは、フレームのサイズが違うので色々と問題が出てきます。
あまりと言うか全然お勧めは出来ませんが...なら書くなよ...σ(^_^)

ループで監視して、サイズが変更されたら width命令で元のサイズに戻すっていうのが
一番無難なんじゃないかな

[5858] Re^3: サイズを固定する方法 投稿者:あさり 投稿日:01/07/29(日) 16:51
sprocketさん>
> β版のHSPなら対応しています。(2.5ではダメです。)
>
> screen 2,,,4
> stop

これだとスクロールバーが消えちゃうんです〜(^_^;

KENさん>
> ループで監視して、サイズが変更されたら width命令で元のサイズに戻すっていうのが
> 一番無難なんじゃないかな

無理やり変えるよりこの方法がよさそうですね。
お二人ともどうもありがとうございました。

[5855] RS232C通信プロトコル 投稿者:Ken,I 投稿日:01/07/29(日) 14:15
comopen分で、パリティを偶数とか奇数にするにはどうしたらよいのでしょうか?パリティ無しは”N”で良いみたいですけど、、、、、、

[5460] RS232Cの制御コードの表示法を教えてください。 投稿者:Ken,I 投稿日:01/07/18(水) 21:27
mesboxに制御コード16進数を表示させたいですが、アドバイスを下さい。
現在ワンチップマイコンのRS232Cを使いPCから送った文字をエコーバックさせて実験しています。当然PC側からも制御コードを送れないようです(¥n ¥rは送られてはいますEnter Keyにより でも表示は ・・のみ)

[5466] Re: RS232Cの制御コードの表示法を教えてください。 投稿者:ANTARES 投稿日:01/07/19(木) 08:53 <URL>
>mesboxに制御コード16進数を表示させたいですが、アドバイスを下さい。
 単に制御コードを16進数文字列に変換したいだけならば、
str命令で、できます。

[5473] Re^2: RS232Cの制御コードの表示法を教えてください。 投稿者:Ken 投稿日:01/07/19(木) 19:50
> >mesboxに制御コード16進数を表示させたいですが、アドバイスを下さい。
>  単に制御コードを16進数文字列に変換したいだけならば、
> str命令で、できます。
有難うございます。
str a,18 で変換できましたけど、2文字以上変換できないんです????
おしえてくださ〜い。

[5486] Re^3: RS232Cの制御コードの表示法を教えてください。 投稿者:No.9 投稿日:01/07/20(金) 00:05 <URL>
どうも、No.9です。

> str a,18 で変換できましたけど、2文字以上変換できないんです??
??
> おしえてくださ〜い。

str a,18 の18というのは、16進数2桁の意味だと思います。
ゆえに、表示したい桁数を16に足せば変換出来ると思いますよ♪

[5489] Re^4: RS232Cの制御コードの表示法を教えてください。 投稿者:ANTARES 投稿日:01/07/20(金) 06:50 <URL>
 制御コードが2文字を超えるはずはないし、仮に超えたとしても
必要な桁数になるはずなので、私も質問の意味が
よくわかりませんでしたが、唯一思いついたことは、
以下のようなスクリプトになっているとうまくいきません。
aが文字変数のままであることが原因ですが、
「poke a,0,127」を「a=127」にするか、
pokeの前に「a=0」または「int a」を挿入すると、
うまくいきます。

a=16
str a,18
mes "a="+a
poke a,0,127
str a,18
mes "a=["+a+"]"
stop

[5490] Re^5: RS232Cの制御コードの表示法を教えてください。 投稿者:ANTARES 投稿日:01/07/20(金) 07:01 <URL>
"\n"を「\n」と表示したい(または改行したい)のなら、
受け取ったデータが13のときに「\n」を表示して(または
バッファに"\n"を加えて)データ10を無視すればいいでしょう。
ただし、これはワンチップマイコンが改行コードとして
「CR(13)+LF(10)」を送ってくる場合です。
(改行コードとしてCRしか送ってこない場合も結果的には
うまくいきます)

[5509] Re^6: RS232Cの制御コードの表示法を教えてください。 投稿者:Ken 投稿日:01/07/20(金) 21:19
> "\n"を「\n」と表示したい(または改行したい)のなら、
> 受け取ったデータが13のときに「\n」を表示して(または
> バッファに"\n"を加えて)データ10を無視すればいいでしょう。
> ただし、これはワンチップマイコンが改行コードとして
> 「CR(13)+LF(10)」を送ってくる場合です。
> (改行コードとしてCRしか送ってこない場合も結果的には
> うまくいきます)
有難うございます。こんな感じでしょうか?もう一息だと思います。
cls 1
alloc jyusin_moji,32000 ; テキストのバッファを確保(受信用)
jyusin_moji="" ; バッファをクリア
objsize 645,250
pos 19,30: mesbox jyusin_moji,,,1

; 文字列16進数で取り出す
jyusin_moji="ABCDEFG 123456\r"
strlen len,jyusin_moji ;文字列の長さを求める
sdim moji,len ;長さ分の配列を用意
len1=len*2
sdim code1,len1
moji=jyusin_moji
code=0
n=0:d=0
*kurikaesi
await 1
peek code,moji,n:n++ ; インデックス n 番目の文字を代入(ここでは10進数)
str code,18 ;10進を16進2桁に変換
poke code1,d,code:d+=2 ;文字を代入
poke code1,d,",":d+=1 ;文字間を","であける
code=0
if n=len{ objprm 0,code1 : stop }
goto *kurikaesi

もう少しですが、頭がまわらない。

[5514] Re^7: RS232Cの制御コードの表示法を教えてください。 投稿者:ANTARES 投稿日:01/07/21(土) 07:53 <URL>
誤:sdim moji,len			;長さ分の配列を用意
正:sdim moji,len+1 ;長さ分の配列を用意
 文字列の終わりにはターミネータ(終わりの目印)が必要です。
詳しくはマニュアルの「文字列の秘密」をご覧ください。

誤:len1=len*2
正:len1=len*4
 16進数にして2バイト、カンマを加えて3バイトになるので、
足りません。上とともに、再現不能な不具合の原因になります。

修正前
poke code1,d,code:d+=2 ;文字を代入
poke code1,d,",":d+=1 ;文字間を","であける
修正後
code+=",": strlen m,code: if d+m+1>len1: dialog "len1が足りません": end
code1+=code: d+=m
 あえて修正する必要はありませんが……

[5694] Re^8: RS232Cの制御コードの表示法を教えてください。 投稿者:Ken 投稿日:01/07/25(水) 21:35
ANTARESさん、有難うございます。232Cの制御コードを無事表示できるようになりました。話は変わりますけど computは文字列しか扱えないのでしょうか?制御コードが送信出来ないので、困っています。なにかよい知恵は、ありませんでしょうか。

[5765] Re^9: RS232Cの制御コードの表示法を教えてください。 投稿者:Ken 投稿日:01/07/27(金) 19:42
comgetcは数値が扱えるのに、computは数値は駄目なのかな。
例えば、制御コードの02h”STX”を送信するにはどうしたら
よいのでしょう。どなたか 教えてください。
現在mesboxに書かれた文字を、取り出し送信しようとしています。

[5766] Re^10: RS232Cの制御コードの表示法を教えてください。 投稿者:K-K 投稿日:01/07/27(金) 19:59 <URL>
> comgetcは数値が扱えるのに、computは数値は駄目なのかな。
> 例えば、制御コードの02h”STX”を送信するにはどうしたら

HSP 2.55β2に付いているhspext.dllにはcomputcという命令が新しく
加わってます.いまのhspext.dllでやるなら,
str s
poke s,0,$2 ;制御コード
poke s,1,0 ;文字列の終わりに0を書き込む
comput s

なんてしても出来るかも知れません.(実際には試してないので,分かりませんが)

[5854] Re^11: RS232Cの制御コードの表示法を教えてください。 投稿者:Ken 投稿日:01/07/29(日) 13:52
K−Kさんβ2で制御コードを送信できました。有難う

[5852] 検索機能 投稿者:MAS 投稿日:01/07/29(日) 13:29
文字列検索で、文字列がヒットしたときにその文字列を選択範囲に指定するという機能を作りたいのですが・・・
instrで検索し、strlenで長さを調べ、
その長さ分だけ選択範囲に指定すればいいと思うのですが、
その選択範囲に指定する命令がわかりません。
誰かそういう命令知りませんか???

[5853] Re: 検索機能 投稿者:sprocket 投稿日:01/07/29(日) 13:50 <URL>
> 文字列検索で、文字列がヒットしたときにその文字列を選択範囲に指定するという機能を作りたいのですが・・・
> instrで検索し、strlenで長さを調べ、
> その長さ分だけ選択範囲に指定すればいいと思うのですが、
> その選択範囲に指定する命令がわかりません。
> 誰かそういう命令知りませんか???

標準の mesbox を使うなら objsend という命令があります。
こういうことですよね?

sdim buf,1024
buf="http://www.web-sanin.co.jp/p/sprocket/"
astr="sprocket" ; この文字列を選択

mesbox buf,winx,winy,1

strlen l,astr
instr a,buf,astr,0
wp=a
lp=a+l
tp=1
objsend 0,$b1,wp,lp,tp ; くわしくはopjsendリファレンスを
stop

[5846] カーソルの変化がキタナイ 投稿者:あい 投稿日:01/07/29(日) 01:22
こんばんは。

HSPでのカーソルの変化は、
「Exforce.dll」を使った「chgcursor」が一般的なようですが、
カーソルを変えると、ちょっとした処理の間に一瞬だけ元に戻ってしまい、
表示が汚くなってしまいます。

過去ログで検索したら、
「チラつきは色数を減らせ」という様なことが書いてありましたが、
チラつきとはこのことなのでしょうか。
2色のカーソルでも一瞬だけ元に戻ってしまいます。

みなさんキレイに表示されていますか?
原因・改善方法など御教授お願いします。

[5803] 文字をクリックしたいです。 投稿者:まり 投稿日:01/07/28(土) 02:20
こんにちわ〜!どなたかおしえてください〜!
HSPの本読んでも難しくて最初のほうで混乱してるし・・・
なんで皆こんな難しい本、理解できるんだろ。すごい!!

ところでえっと、ボタンではなく文字をクリックして先にすすめる
ようなことはできないんでしょうか?
いつもボタンなんですけどなんか見栄えわるくって・・・

どうぞよろしくおねがいします、ぺこり。

[5841] Re: 文字をクリックしたいです。 投稿者:まり 投稿日:01/07/28(土) 23:17
みなさん教えてくれてありがとうございました〜!!

初心者みたいですけど実はもう何年?もこの状態なんです。
頭わる〜〜!本も難しくて・・・・もっと初心者向けの本つくってほしいな〜!

あ、それからまた質問が・・・
えっと、エンターキー押したら進むっていうのできるようになったんですけど・・・
何度も書くの面倒なので台詞もループさせたら
(文字の変数に1ずつ足してループさせて次の台詞に進む)
台詞が次にでてきた台詞と重なっちゃうんです。
もっと前のほうにrepeatをもっていったら
今度はgcopyのせいで画面が真っ白になっちゃうし・・・
どうしたらいいんでしょうか・・・(;;)
誰か助けてください、ほんとお馬鹿でごめんなさ〜い!

[5845] Re^2: 文字をクリックしたいです。 投稿者:pumpkin! 投稿日:01/07/29(日) 01:03
> 初心者みたいですけど実はもう何年?もこの状態なんです。

しまった。サービスするんじゃなかった(冗談)。

> えっと、エンターキー押したら進むっていうのできるようになったんですけど・・・
> 何度も書くの面倒なので台詞もループさせたら
> (文字の変数に1ずつ足してループさせて次の台詞に進む)
> 台詞が次にでてきた台詞と重なっちゃうんです。
> もっと前のほうにrepeatをもっていったら
> 今度はgcopyのせいで画面が真っ白になっちゃうし・・・
> どうしたらいいんでしょうか・・・(;;)

書いたスクリプトを投稿してみてはいかが?
そのほうが的確な回答が得られると思います。

[5819] Re: 文字をクリックしたいです。 投稿者:jun_wolf 投稿日:01/07/28(土) 13:13 <URL>
うちのホームページにマウスクリック座標判定の追加命令が
あるので、使えば簡単に作れると思います、暇があったらつかってください。
[IFMOUSE]HSPの追加命令のところにあります。

[5804] Re: 文字をクリックしたいです。 投稿者:No.9 投稿日:01/07/28(土) 03:09 <URL>
どうも、No.9です。

> ところでえっと、ボタンではなく文字をクリックして先にすすめる
> ようなことはできないんでしょうか?
> いつもボタンなんですけどなんか見栄えわるくって・・・

その文字のある位置範囲をクリックすれば、次の処理に進むという
スクリプトを組めば出来ますよ(^^)
過去ログを『画像ボタン』なんかで検索すれば、
サンプルが出てくると思います。
頑張って下さい♪

[5806] Re^2: 文字をクリックしたいです。 投稿者:pumpkin! 投稿日:01/07/28(土) 03:47
入門者さんっぽいのでサービス。
(というか、レス書いていたら先越されてしまったんだよおぉぉっ T-T)
やっていることはNo.9さんのおっしゃっている内容です。
1個所だけ分かりにくいかなと思うところがありますが、
まあ頑張ってください。

screen 0,400,400,0
color 0,128,255 : boxf
color 255,255,255 : font "MS ゴシック",48,1
pos 200,300 : mes "★Click★"
pos 200,350 : mes "★here!★"

*main_loop
repeat
wait 1
x=mousex/200 : y=mousey/100
stick ky,0,1
if ky=256 : break
loop
if x!=1 | (y!=3) : goto *main_loop

color ,125, : boxf : stop

なお、さくらさんのホームページ内「HSP Tips」の030番も参考になると思います。
http://www.silkroad.ne.jp/sakura/web/main/tips/tipmain01.htm
ただし、ちょっと難しいかもしれません。

[5840] 教えてほしいことが・・・ 投稿者:たかひさ 投稿日:01/07/28(土) 22:38
はじめまして。
いまhspで、格闘ゲームを作っています。
そこで、自分が右向きは作れるんですが、相手より右に行って左向きがわかりません。
右向きの画像以外に左向きの画像を作るのでしょうか?
もしくは作らないで他の命令使えばいいんでしょうか?
まだ初心者なので教えていただきたいです。
よろしくお願いします

[5842] Re:画像の反転 投稿者:150 投稿日:01/07/28(土) 23:19

> 右向きの画像以外に左向きの画像を作るのでしょうか?
> もしくは作らないで他の命令使えばいいんでしょうか?

width 100,100
buffer 2,100,100,0
gsel 2
picload "bitmap.bmp"
gsel 0
pos 100,0
gzoom -100,100,2,0,0,100,100
stop

 ↑のスクリプトを実行すると、任意のビットマップ画像
 (100x100ドット)が反転されます。
 ※ハイ&ローのカードゲーム作っていた時の、カードがめくれる
  アニメーションで使っていた一部分です。

 ご参考までに。

[5844] Re^2:画像の反転 投稿者:pumpkin! 投稿日:01/07/29(日) 00:50
> いまhspで、格闘ゲームを作っています。
> そこで、自分が右向きは作れるんですが、相手より右に行って左向きがわかりません。
> 右向きの画像以外に左向きの画像を作るのでしょうか?
> もしくは作らないで他の命令使えばいいんでしょうか?

もうほかの掲示板で解決済みのようですね?
「同時」マルチポストをすると、
せっかく回答をしてくださった150さんのように
解決済みのことに無駄な時間を使うことになるので
礼儀としてやめてほしいと思います。

[5824] ツールバーとかを表示するDLL 投稿者:えび 投稿日:01/07/28(土) 14:34
ツールバーなどを表示できるようにするDLLがあると聞いたのですが、
どこからダウンロード可能でしょうか?

[5838] Re: ツールバーとかを表示するDLL 投稿者:MAS 投稿日:01/07/28(土) 18:14
> ツールバーなどを表示できるようにするDLLがあると聞いたのですが、
> どこから