[19637] 画像ファイルが。。 投稿者:R 投稿日:05/03/18(金) 23:11
はじめまして。
質問なんですが、
なぜかpicload命令で画像を表示させると、
あるはずなのに画像ファイルがありませんとなります。
何か原因があるのなら、アドバイスお願いします。

[19674] Re: 画像ファイルが。。 投稿者: 投稿日:05/03/22(火) 02:58
私の経験だと、asファイルを関連付けさせてダブルクリックで開くと
作っているソフト用のフォルダではない場所から開こうとするので
そのソースと同じフォルダにあるエディタにドロップするかそのエディタ
を開いて開くで指定するかしないとだめくさいです。

[19680] Re^2: 画像ファイルが。。 投稿者:ジロー 投稿日:05/03/22(火) 17:16
> 私の経験だと、asファイルを関連付けさせてダブルクリックで開くと
> 作っているソフト用のフォルダではない場所から開こうとするので
> そのソースと同じフォルダにあるエディタにドロップするかそのエデ
ィタ
> を開いて開くで指定するかしないとだめくさいです。

HSP3からは、カレントディレクトリをエディタで指定できますよ。
ベータ版ですが僕はもう乗り換えてます(^^

[19673] Re: 画像ファイルが。。 投稿者:さんだぁ 投稿日:05/03/21(月) 20:34
chdirでカレントディレクトリを画像ファイルがあるディレクトリに変えて
みたらどうでしょうか。

[19640] Re: 画像ファイルが。。 投稿者:通行人A 投稿日:05/03/19(土) 11:15
> あるはずなのに画像ファイルがありませんとなります。
> 何か原因があるのなら、アドバイスお願いします。

.過去の経験からですが拡張子.bmp・.jpgを加工保存したソフト
により読み込めない場合がありました。
:他のソフトで再保存すると直るかもしれません。

[19651] Re^2: 画像ファイルが。。 投稿者:R 投稿日:05/03/19(土) 15:33
> > あるはずなのに画像ファイルがありませんとなります。
> > 何か原因があるのなら、アドバイスお願いします。
>
> .過去の経験からですが拡張子.bmp・.jpgを加工保存したソフト
> により読み込めない場合がありました。
> :他のソフトで再保存すると直るかもしれません。

すいません。。
他のソフトで再保存とゆうのがよく理解できないのですが・・
分かりやすく説明していただければうれしいです。

[19652] Re^3: 画像ファイルが。。 投稿者:通行人A 投稿日:05/03/19(土) 15:48
> 他のソフトで再保存とゆうのがよく理解できないのですが・・
> 分かりやすく説明していただければうれしいです。

.標準付属のMSPAINT.EXEで.bmpを読込んで別名で保存とか
 その他フリーのペイント・レタッチソフトをVECTOR等から
 ダウンロードして読込み保存を試してみては。

:1ドットぐらい編集しないとそのまま保存されてしまうソフト
 もあるので注意!。(ヘッダーを再構成しないで)

[19638] Re: 画像ファイルが。。 投稿者:Irisawa 投稿日:05/03/18(金) 23:14
> なぜかpicload命令で画像を表示させると、
> あるはずなのに画像ファイルがありませんとなります。

指定したディレクトリが間違っているんじゃないですか?
または、対応していないファイルとか・・・。
まさか、拡張子を指定していないということはありませんよね。

[19675] フォルダ単位 投稿者:分からんな〜 投稿日:05/03/22(火) 07:00
ファイルの呼び出しはファイル単位で出来るのですがフォルダ単位で
指定することはHSP標準で、出来ないでしょうか。
どうしても分からんので教えてください。

[19678] Re: フォルダ単位 投稿者:数英知 投稿日:05/03/22(火) 13:25
そのフォルダにカレントディレクトリを移して、
そこに存在するすべてのファイル名を取得する方法は
dirlist
を使えば出来ますが駄目ですか?

[19659] アイテム生成の計算式 投稿者:とりす 投稿日:05/03/20(日) 00:38
今作ってるゲームで、アイテムを、ランダムに作成したいので、
アイテムに0から100までのレアレベルをつけています。
このままrnd a,100と実行すると、味気ないので
例えば宝箱の価値が20なら
レアレベルが20付近のアイテムがよくとれて
20より高いか低いレベルのアイテムは、20から値が遠くなるほど
とれる確率を低くしたいと思っています。
(例:レアレベル80がとれる確率は200/1とか)
この確率をスマートに求められる計算式はないでしょうか?
よろしくお願いします。

[19671] Re: アイテム生成の計算式 投稿者: 投稿日:05/03/21(月) 04:22
> 今作ってるゲームで、アイテムを、ランダムに作成したいので、
> アイテムに0から100までのレアレベルをつけています。
> このままrnd a,100と実行すると、味気ないので
> 例えば宝箱の価値が20なら
> レアレベルが20付近のアイテムがよくとれて
> 20より高いか低いレベルのアイテムは、20から値が遠くなるほど
> とれる確率を低くしたいと思っています。
> (例:レアレベル80がとれる確率は200/1とか)
> この確率をスマートに求められる計算式はないでしょうか?
> よろしくお願いします。

面白そうな命題ですな。
まず、価値〜100で、価値に近い数字が出る確立が高いランダムは、

k=20 ;価値
randomize
rnd r,100-k+1
rnd i,r*r/(100-k)+1
i+=k
mes i ;アイテム

こんな考え方でどうか(試してないので上手くいくか不明)
昔から良くみるランダムの応用だが。

そして、0〜価値で、価値に近い数字が出る確立が高いランダムを考える。
上の応用でできるか…できないかもしれんw

考える楽しみを奪うのは申し訳ないので(というか自分がハマリ
そうなのでw)、取り合えずヒントまで、と言うことで。
分からないようだったら、もう少し考えてみる。

#古参プログラム書きが好きそうな問題かもw

[19660] Re: アイテム生成の計算式 投稿者: 投稿日:05/03/20(日) 01:19
rnd a,10000
くらいにして0はXXXじゃなくて
0〜10はXXXとかそんな感じにすれば良いのではないでしょうか

[19589] 画面送信 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/15(火) 12:55
お互いのデスクトップ画面をみれるソフトを作ったのですが
データを送信して受信するのに一分くらいかかります
どうすれば早くデータをおくることができますか?おしえてくださ
い!!

[19597] Re: 画面送信 投稿者:汗涙 投稿日:05/03/16(水) 05:40
> お互いのデスクトップ画面をみれるソフトを作ったのですが
> データを送信して受信するのに一分くらいかかります
> どうすれば早くデータをおくることができますか?おしえてくださ
> い!!

単純に容量の問題ではないでしょうか。
1024x768の画像で約2MBもあるので、ナローバンドはもちろん、ADS
L(上がりの速度が遅い)でも結構かかると思います。
デスクトップ画面は背景色など単調な場合が多いので、圧縮するとかなり
サイズが削れます。
ただ、圧縮なのでサイズがまちまちになり、安定した速度は難しいと思い
ますが。
見当違いでしたらすみません。

[19596] Re: 画面送信 投稿者:イド3 投稿日:05/03/15(火) 20:24
> お互いのデスクトップ画面をみれるソフトを作ったのですが
> データを送信して受信するのに一分くらいかかります

http://www.onionsoft.net/hsp/bbs/hspbbs.cgi?mode=find&log=20&word=19236
ボクは上のように実装しています。
これでも1分かかりますか?

ちなみに、コレで相手のパソコンの遠隔操作ソフトなんて作っちゃいました^^

[19666] Re^2: 画面送信 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/20(日) 22:12
30秒まで縮まりましたw
がもう少しはやくできませんかね?

[19667] Re^3: 画面送信 投稿者:アンテナ使い 投稿日:05/03/21(月) 00:01
> 30秒まで縮まりましたw
> がもう少しはやくできませんかね?
画像の色数を取得し、256色以下ならGIFかPNGに、256色以上ならJPEGで圧
縮率を高くしちゃえばほぼ一瞬で転送が終わるかと思われます。
でもダイアルアップだと、予想通りに行くかは絶望的かと…。

[19665] CHECK IT OUT!!! 投稿者:Howie 投稿日:05/03/20(日) 21:47 <URL>
Hi, my name is Howie. I am American. I am studying Japanese. I
have a popular English language site. Recently, I also made a
Japanese language site. The Japanese site also became popular
.

International EFL Cafe
http://internationaleflcafe.com/
International JFL Cafe
http://internationaleflcafe.com/japanese.htm

Both sites are free. Everyone, check it out.

こんにちは。私の名前はハウイです。私はアメリカ人です。日本語
を勉強しています。私はゆうめいな英語のサイトを持っています。さ
いきん日本語のサイトも作りました。日本語のサイトもゆうめいにな
りました。

International EFL Cafe
http://internationaleflcafe.com/
International JFL Cafe
http://internationaleflcafe.com/japanese.htm

どちらもただのサイトです。みんなさんチェックしてね。

[19628] ボタンのメニュー 投稿者:a-man 投稿日:05/03/18(金) 19:17
http://www.vector.co.jp/soft/dl/win95/net/se347029.html
の上部のような選択できるボタン?を実現するにはどうすればいい
のでしょう。
ご教授願います。

[19629] Re: ボタンのメニュー 投稿者:Irisawa 投稿日:05/03/18(金) 20:02
> http://www.vector.co.jp/soft/dl/win95/net/se347029.html
> の上部のような選択できるボタン?を実現するにはどうすればいい
> のでしょう。

ラジオボタンのことでしょうか?
何度かでているので過去ログでも検索してください。

[19646] Re^2: ボタンのメニュー 投稿者:a-man 投稿日:05/03/19(土) 13:32
いや、ラジオボタンではないです・・・
なんというか、

ファイル|編集|表示|お気に入り

みたいにボタンが並んでて、押すとそのボタンがへこんで選択できる・・
・みたいなものなんですが。
ご教授願います。

[19661] Re^3: ボタンのメニュー 投稿者:eternally 投稿日:05/03/20(日) 01:43 <URL>
たしかタブコントロールにこのようなものがあったと思います。

[19662] Re^4: ボタンのメニュー 投稿者:eternally 投稿日:05/03/20(日) 02:02 <URL>
ちょくとさんのホームページ
http://yokohama.cool.ne.jp/chokuto/urawaza/tabctl2.html
にあるサンプルスクリプトの
> pm.4 = 0x52000000 ; WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS
となっているところを
> pm.4 = 0x52000100 ; WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS
に変えてみてください。
やりたいことが出来ると思います。

[19657] Re^3: ボタンのメニュー 投稿者:HunterD 投稿日:05/03/19(土) 23:53
> ファイル|編集|表示|お気に入り
>
> みたいにボタンが並んでて、押すとそのボタンがへこんで選択できる
・・
> ・みたいなものなんですが。

自分で、
・なんも選択されてないとき
・マウスが上に乗っかってるとき
・ボタンが押されたとき
の3とおりのボタン画像を作っておいて、
マウス座標やクリックをプログラム中で取得して画像を切り替えるしかな
いのでは?

[19655] bufferについて 投稿者:機械構造用炭素鋼鋼材 投稿日:05/03/19(土) 20:29
HSP付属ヘルプ、本掲示板過去ログ、HSPBC、くるとんルーム、google
検索(検索文字=「HSP buffer」及び「HSP 仮想画面」)などで結果が
得られなかったため、質問いたします。

buffer命令で、ウィンドウIDを33個以上取得することは出来ない
のでしょうか?
やはり、0〜31のIDを上書きして使い回すしかないのでしょうか?
是非ともご教授お願いいたします。

[19656] Re: bufferについて 投稿者:通行人A 投稿日:05/03/19(土) 22:42
> やはり、0〜31のIDを上書きして使い回すしかないのでしょうか?

.SKDよりSKHかな?。
.何故そんなに必要なのですか?
:画像ならbufferの中で分割するとか。
:buffer番号を変数にして入れ替えるとか。
:メモリー上に読み込んでメモリーからロードするとか。
 では対応できないのでしょうか?。

[19658] Re^2: bufferについて 投稿者:機械構造用炭素鋼鋼材 投稿日:05/03/19(土) 23:58
> .SKDよりSKHかな?。
> .何故そんなに必要なのですか?
> :画像ならbufferの中で分割するとか。
> :buffer番号を変数にして入れ替えるとか。
> :メモリー上に読み込んでメモリーからロードするとか。
>  では対応できないのでしょうか?。

ご返答ありがとうございます。
単純に沢山使えれば便利だと思っただけですが、とても参考になりました
。ありがとうございました。

[19644] フリードロー 投稿者:Bive 投稿日:05/03/19(土) 12:40
連続投稿してすみません。

ペイントソフトでは、フリードローという機能があります。
自由な線が描ける、あの機能です(一般的に鉛筆やペンと呼ばれて
います)
あれを実現するにはどうすればいいのでしょうか?

*label
getkey a,0
if a=1:pset mousex,mousey ; 点の色は黒
wait 1:goto *label

↑のようにすると、
すばやくマウスを動かしたときに線になりず、とびとびに点が描か
れます。
でもペイントソフト(Mspaint.exeなど)の場合は、どんなに早く動か
しても
きちんと線が描けます。

どうすればいいのでしょうか?
処理上の関係で、解決できないのでしょうか・・・・。

[19650] Re: フリードロー 投稿者:LonelyWolf 投稿日:05/03/19(土) 14:12 <URL>
> ペイントソフトでは、フリードローという機能があります。
> 自由な線が描ける、あの機能です(一般的に鉛筆やペンと呼ばれて
> います)
> あれを実現するにはどうすればいいのでしょうか?
普通どうやって実装するのかは知らないのですが、
lineで、1つ前に描画した点から線を引けば良いと思います。

下記にサンプルを書いて置きますが、画面外に出たときなどの
対策を行っていないので、このままでは実用できません(^-^;
あと、WindowsXPなどではウィンドウの左端にカーソルを
持ってくると、mousexが65535になるので、
そのときは無視するなどの対策が必要です。
(mx = mousex << 16 >> 16として、mxを使うという手もあります)

repeat
getkey click, 1
if click{
; line p1,p2,p3,p4のp1,p2の点は描画されないのを
; 利用しています。
if flg = 0: x = mousex - 1: y = mousey: flg = 1
line x, y, mousex, mousey
x = mousex: y = mousey
flg = 1
} else {
flg = 0
}
await 1
loop

[19643] スクリーンのサイズ 投稿者:Bive 投稿日:05/03/19(土) 12:09
スクリーンの最大サイズはdispx,dispyより大きくならない
のでしょうか?screen 0,dispx,dispy+50,0と指定した場合
とscreen 0,dispx,dispy,0と指定した場合のサイズが同じ
になっています。

デスクトップをキャプチャし、それをウィンドウに表示
するということを考えています。
そのためにはタイトルバーの高さを取得し、
dispx,dispyより大きなウィンドウを作成して、タイトルバーの
高さだけ↑にずらすという方法を考えているのですが・・。

・dispx,dispyより大きなウィンドウを作成
・タイトルバーの高さの取得方法

この二つが知りたいのですが、誰か教えてください。

[19649] Re: スクリーンのサイズ 投稿者:Bive 投稿日:05/03/19(土) 13:57
> スクリーンの最大サイズはdispx,dispyより大きくならない
> のでしょうか?screen 0,dispx,dispy+50,0と指定した場合
> とscreen 0,dispx,dispy,0と指定した場合のサイズが同じ
> になっています。
>
> デスクトップをキャプチャし、それをウィンドウに表示
> するということを考えています。
> そのためにはタイトルバーの高さを取得し、
> dispx,dispyより大きなウィンドウを作成して、タイトルバーの
> 高さだけ↑にずらすという方法を考えているのですが・・。
>
> ・dispx,dispyより大きなウィンドウを作成
> ・タイトルバーの高さの取得方法
>
> この二つが知りたいのですが、誰か教えてください。

なんとなくわかりました。とりあえずもう一度試みてみます。

[19648] Re: スクリーンのサイズ 投稿者:イド3 投稿日:05/03/19(土) 13:55
> デスクトップをキャプチャし、それをウィンドウに表示するということを考えています。

デスクトップの大きさは dispx×dispy なので、screenは dispx×dispy で初期化すれば問題ないのでは?
(クライアント領域がそのサイズになりますし)
またはbgscrで初期化してみるとか?

[19645] Re: スクリーンのサイズ 投稿者:Xellos 投稿日:05/03/19(土) 13:21
とりあえずタイトルバーの取得方法を。

#include "llmod.as" ;既にインクルードしてればコメントアウト
prm=4 : dllproc "GetSystemMetrics",prm,1,D_USER

これで変数dllretにサイズが代入されてるはずです。

[19627] これはHGIMGXの設定ですか? 投稿者:pp7 投稿日:05/03/18(金) 19:16
連続スレッド投稿すいません。気になった点があったので質問させて
頂きます。
自分としては、戦闘機をZ軸回転を右に90°し、それから戦闘機を中
心として(Z回転時に座標軸を回転している状態)、X軸回転を上に90
°して、旋回させたいのですが、
座標軸が回転してくれてないようで、Z90°状態でX90°するとおか
しくなります。

まぁ百聞は一見にしかず。とりあえずすこし重たいですけど、やっ
てみてください。
http://homepage3.nifty.com/harukata/download/exe.lzh
矢印キーにて回転します。
バトルモードという奴です。

ちなみに、Z回転は
selang ziki
objaddf1 2,0.05f
X回転は
selang ziki
objaddf1 0,-0.05f

としています。だれかご指導お願いします。

[19647] Re: これはHGIMGXの設定ですか? 投稿者:Rosh 投稿日:05/03/19(土) 13:39 <URL>
> 自分としては、戦闘機をZ軸回転を右に90°し、それから戦闘機を中
> 心として(Z回転時に座標軸を回転している状態)、X軸回転を上に90
> °して、旋回させたいのですが、
> 座標軸が回転してくれてないようで、Z90°状態でX90°するとおか
> しくなります。
もし単純に回転させる順序を変えるだけで解決するのであれば
親子化(階層化)を用いて回転軸を追加してみてはどうでしょうか。
要は戦闘機の上にNULL代わりのオブジェクトを追加するわけです。

そうすれば「親」の回転した分だけ「子」の回転軸全てがずれるので
「子」をX軸に回転させ「親」をZ軸に回転させれば
お望みの動作が実現できると思います。

ちなみにNULL(ヌルもしくはナルと読む)とは
座標軸(回転軸)だけの存在なんですが
HGIMG上で作れるかどうか分からないので
もしNULLを実現したい場合には
見えないくらい小さなポリゴンを代用してみてください。

[19641] タイトルバーの・・・ 投稿者:初心者148 投稿日:05/03/19(土) 11:26
フォルダやIEのタイトルバーの下にあるファイル編集表示お気に入り
ツールヘルプ・・・みたいなボタン?を作りたいのですがどうすれば
いいのですか?

[19642] Re: タイトルバーの・・・ 投稿者:Bive 投稿日:05/03/19(土) 11:48
> フォルダやIEのタイトルバーの下にあるファイル編集表示お気に入り
> ツールヘルプ・・・みたいなボタン?を作りたいのですがどうすれば
> いいのですか?

Exforce.dllを使えば簡単に作ることができます。
Exforce.dllの入手方法は、以前自分がここの掲示板に質問したこと
なので、過去ログ20、21を見ればわかると思います。

[19635] ×なしウインドウについて 投稿者:kazuhira 投稿日:05/03/18(金) 22:09
久しぶりに投稿します。
ウインドウで右の×なしタイプはどうしたらできるか誰か教えてく
ださい。ボタンオブジェクトでないと終了させたくないので・・・・

よろしくお願いします。

[19636] Re: ×なしウインドウについて 投稿者:Irisawa 投稿日:05/03/18(金) 23:01
> 久しぶりに投稿します。
> ウインドウで右の×なしタイプはどうしたらできるか誰か教えてく
> ださい。ボタンオブジェクトでないと終了させたくないので・・・・

こんな感じです。

#include "llmod.as"
#const GWL_STYLE -16
#const WS_SYSMENU 0x00080000

screen 0, , , 2
mref bmscr, 67
hwnd = bmscr.13
prm = hwnd, GWL_STYLE
dllproc "GetWindowLongA", prm, 2, D_USER
prm.2 = dllret ^ WS_SYSMENU
dllproc "SetWindowLongA", prm, 3, D_USER
gsel 0, 1
stop

クローズボックスはシステムメニューに含まれるのでシステムメニューを
外します。
その代わりにシステムメニューを表示できません。

また、[Alt]+[F4]でも終了できるのでどちらにしてもこのままでは
あまり役に立たないので実際にはonexitを併用した方がいいです。

[19639] Re^2: ×なしウインドウについて 投稿者:kazuhira 投稿日:05/03/19(土) 09:40
Irisawaさん ありがとうございます。
やってみます。


> > 久しぶりに投稿します。
> > ウインドウで右の×なしタイプはどうしたらできるか誰か教え
てく
> > ださい。ボタンオブジェクトでないと終了させたくないので・
・・・
>
> こんな感じです。
>
> #include "llmod.as"
> #const GWL_STYLE -16
> #const WS_SYSMENU 0x00080000
>
> screen 0, , , 2
> mref bmscr, 67
> hwnd = bmscr.13
> prm = hwnd, GWL_STYLE
> dllproc "GetWindowLongA", prm, 2, D_USER
> prm.2 = dllret ^ WS_SYSMENU
> dllproc "SetWindowLongA", prm, 3, D_USER
> gsel 0, 1
> stop
>
> クローズボックスはシステムメニューに含まれるのでシステムメニュ
ーを
> 外します。
> その代わりにシステムメニューを表示できません。
>
> また、[Alt]+[F4]でも終了できるのでどちらにしてもこのままでは
> あまり役に立たないので実際にはonexitを併用した方がいいです。

[19631] 圧縮 投稿者:初心者 投稿日:05/03/18(金) 20:36
圧縮の方法を教えてください。

[19634] Re: 圧縮 投稿者:Xellos 投稿日:05/03/18(金) 21:38
なんの圧縮でしょうか?
LHAとかZIPのことでしたら各種アーカイバを使ってください。

[19605] 3Dモデルの多方向回転時の不都合について 投稿者:pp7 投稿日:05/03/16(水) 22:09
いつも3Dなどについて質問させていただいているpp7です。
3Dモデルをさまざまな方向に回転させたいのですが、うまく動作し
ないので質問させて頂きます。(一部でHGIMGXのバグとの噂

3Dの飛行機モデルを、まず向いている向きの方向に直進させます。
で、Y軸に対して回転させ、真後ろをむきます。そのとき、X軸にた
いして回転(上に向く)しても上に進んでくれるのですが、

最初の状態にもどして、まっすぐ向いてる方向に直進させ、少しX軸
回転させ、(ちょっと上を向いて状態)
Y軸回転(よこに旋回)すると、真後ろをむくころには、上を向いて
いたはずが、下を向いているようになってしまいます。
Y軸回転しただけなのに、X軸についての回転の向きが、上だったら
下に同じ分逆になってしまいます。

経験者じゃない人には意味がわからないかもしれませんが、誰か返
信お願いします。

[19606] Re: 3Dモデルの多方向回転時の不都合について 投稿者:huruku 投稿日:05/03/16(水) 22:37
> 最初の状態にもどして、まっすぐ向いてる方向に直進させ、少しX軸
> 回転させ、(ちょっと上を向いて状態)
> Y軸回転(よこに旋回)すると、真後ろをむくころには、上を向いて
> いたはずが、下を向いているようになってしまいます。
> Y軸回転しただけなのに、X軸についての回転の向きが、上だったら
> 下に同じ分逆になってしまいます。
hgimgは回転順序が常にZ->Y->Xのためです。
なので、X軸回転を先に設定させてしまっても、Y軸回転から始まるので
180℃回転時に下を向いているわけです。

ですので、回転順序をZ->Y->Xを常に意識しながら設定する必要があ
ります。
・・・といっても、90℃,180℃などはなんとか出来ますが任意角の時が・
・・順序固定時は困りますね。
回転順序が選べれば楽ですが。

[19609] Re^2: 3Dモデルの多方向回転時の不都合について 投稿者:pp7 投稿日:05/03/17(木) 13:46
> hgimgは回転順序が常にZ->Y->Xのためです。
> なので、X軸回転を先に設定させてしまっても、Y軸回転から始まるの

> 180℃回転時に下を向いているわけです。
>
> ですので、回転順序をZ->Y->Xを常に意識しながら設定する必
要があ
> ります。


回転順序を意識するってことがどういうことなのかがわかりません。
詳しく教えていただけませんか?

[19613] Re^3: 3Dモデルの多方向回転時の不都合について 投稿者:huruku 投稿日:05/03/17(木) 20:39
> 真後ろに向いて、上を向くと、下に
> 下がります。下を向くと、上にあがります。

> 回転順序を意識するってことがどういうことなのかがわかりません。
> 詳しく教えていただけませんか?
これは、pp7さんが思っている回転の順番とhgimgの内部で行われている回
転の順番が異なっているのです。

pp7さんの考えている動作は、まずX軸を元に回転をし、それからY軸を元に
回転して欲しい。(上を向いて、後ろを向く)
ですが、
hgimgでは、常にZ->Y->X回転の順番に従います。
ですので、Y軸を元に回転しそれから、それからX軸を元に回転しているの
です。(後ろを向いてから、X軸の回転が行われるので逆方向に回転する。18
0°ならX軸の回転をマイナスにすれば逆方向には一応ならない。)

これは、アフェイン変換で使用する行列を作り出す際に、常にZ->Y->
;Xで回転行列が乗算されて作成されるのです。
アフェイン変換と行列で検索すれば分かりますが、変換行列の乗算順序が
大切です。

#ヘルプ内だと、回転行列の演算順序しか書かれてないけど、他はどういう
乗算順序だろう・・・

[19616] Re^4: 3Dモデルの多方向回転時の不都合について 投稿者:pp7 投稿日:05/03/17(木) 21:38
返信ありがとうございます。
めちゃめちゃ難しくてあんまり理解できません。いろいろ試しては見たの
ですが、兆しが見えてきません。

具体的にドコをどういうふうにすればいいのでしょうか?
(プログラマーらしかぬ行為ですけど・・教えてください。)

[19617] Re^5: 3Dモデルの多方向回転時の不都合について 投稿者:huruku 投稿日:05/03/17(木) 22:23
> 返信ありがとうございます。
> めちゃめちゃ難しくてあんまり理解できません。いろいろ試しては見
たの
> ですが、兆しが見えてきません。
>
> 具体的にドコをどういうふうにすればいいのでしょうか?
> (プログラマーらしかぬ行為ですけど・・教えてください。)
う、う〜ん・・・一応、3Dを扱う上での基礎知識とか調べておいたほうが
よいかもしれません。
3Dを扱う場合、プラグインのヘルプのみでは十分な理解は得られないと思
いますので。(3D関連の基礎知識なしで、3D関連のプラグイン使うのは危険
のような気がする今日この頃)

一応、後ろを向くという状況ならば、X回転をマイナスにしてみてください

10.0f->-10.0f
こうすれば、後ろを向いても上を向いてくれるでしょう。

[19618] Re^6: 3Dモデルの多方向回転時の不都合について 投稿者:pp7 投稿日:05/03/17(木) 22:44
後を向くという状況っていうのは後を向いたとき、-にするってことですか


プレイヤーがX回転したりY回転したり操作するので後を向いているってい
う状況を調べるにはちょっとめんどい作業が必要かと思うのですが。

[19633] Re^7: 3Dモデルの多方向回転時の不都合について 投稿者:Yuki 投稿日:05/03/18(金) 20:59
HGIMGXは使ったことが無く、提示されたコードもそのままでは動かないので
必ずしも適切なアドバイスは出せないかもしれませんが、

objaddfの使用をやめるしかないのではないでしょうか?

回転というものは座標とは違って単純に足せばよいというものではありま
せん。
普通3Dゲームの場合、回転はクォータニオンという形で扱います。
オイラー角と違ってクォータニオンは掛け算することで思い通りの回転が
可能です。
アフィン変換行列と違って簡単にオイラー角に戻すことができるので、ク
ォータニオンで回転を計算しつつ、オイラー角に戻してobjsetfすれば行け
るのではないかと思います。

ただクォータニオンの計算ができるDLLは同時にDirect3Dの描画もできるで
しょうからHGIMGXを使う理由は無いですが・・・。

[19608] Re^2: 3Dモデルの多方向回転時の不都合について 投稿者:pp7 投稿日:05/03/17(木) 11:34
返信ありがとうございます。
ただ順番を入れ替えるだけでいいですかね?
前の説明に書いてなかったのですが、真後ろに向いて、上を向くと、下に
下がります。下を向くと、上にあがります。



;勝手に直進する===

selang ziki ;回転
objgetfv fv2
fvdir fv2,0.0f,0.0f,2.2f ;fv2回転
fvadd fv,fv2.0,fv2.1,fv2.2









if k&1 { ;カーソルキーの「←」が押されたときの動作
selang ziki ;回転
objaddf2 0.0f,-0.1f
fadd myang.1, -0.3f
objaddf1 2,-0.5f
}

if k&4 { ;カーソルキーの「→」が押されたときの動作
selang ziki ;回転
objaddf1 1,0.1f
fadd myang.1, 0.1f
objaddf1 2,0.5f

}



GetKey state6,90 ;Z

if state6 = 1{ ;X
selang ziki ;回転
objaddf1 2,-0.1f
fadd myang.0, -0.1f

}

GetKey state7,88 ;X
if state7 = 1{ ;X
selang ziki ;回転
objaddf1 2,0.1f
fadd myang.0, 0.1f

}

[19632] テクスチャ? 投稿者:S・F 投稿日:05/03/18(金) 20:56
こんにちは。
texloadで読み込んだ画像が、うまく表示できません。
ゆがんで表示されます。
うまく表示する方法を教えて下さい。

[19620] IEのプロパティ 投稿者:みかん 投稿日:05/03/18(金) 14:09
こんにちは、みかんと申します。

私は今WebブラウザをHSPで作っているのですが、
IEの「インターネットのプロパティ」ウインドゥは
HSP上からどうやって呼び出せばいいのですか?
おしえてください。
よろしくお願いします。

[19622] Re: IEのプロパティ 投稿者:さくら 投稿日:05/03/18(金) 15:50
> こんにちは、みかんと申します。
>
> 私は今WebブラウザをHSPで作っているのですが、
> IEの「インターネットのプロパティ」ウインドゥは
> HSP上からどうやって呼び出せばいいのですか?
> おしえてください。
> よろしくお願いします。

exec "rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl",0

[19623] Re^2: IEのプロパティ 投稿者:Irisawa 投稿日:05/03/18(金) 16:17
> exec "rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl",0

あぁ、「インターネットオプション」のことでしたか。
なぜかIE側のメニューなどでは「インターネットオプション」と書いてある
のにコントロールパネルから開いた場合だけ「インターネットのプロパティ」に
なっていますね。
それで調べてみると実際にはIOleCommandTargetインターフェイスのExec
メソッドで開くみたいです。

http://d.hatena.ne.jp/santamarta/20050219

ほとんど同じ画面を開くけど別物なんでしょうか。

[19630] Re^3: IEのプロパティ 投稿者:さくら 投稿日:05/03/18(金) 20:33
> > exec "rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl",0
>
> あぁ、「インターネットオプション」のことでしたか。
> なぜかIE側のメニューなどでは「インターネットオプション」と書いて
ある
> のにコントロールパネルから開いた場合だけ「インターネットのプロパ
ティ」に
> なっていますね。
> それで調べてみると実際にはIOleCommandTargetインターフェイスのExe
c
> メソッドで開くみたいです。
>
> http://d.hatena.ne.jp/santamarta/20050219
>
> ほとんど同じ画面を開くけど別物なんでしょうか。
プリンタ(印刷)や検索、お気に入りといった主要のダイアログは
Shdoclc.dllの内部にHTMLとしてリソースを持っていて、それらを
表示させているようですが、インターネットオプションは、コントロール
パネルのものと同じものを利用しているようです。(不確定の推測ですが)

[19621] Re: IEのプロパティ 投稿者:Irisawa 投稿日:05/03/18(金) 14:56
> 私は今WebブラウザをHSPで作っているのですが、
> IEの「インターネットのプロパティ」ウインドゥは
> HSP上からどうやって呼び出せばいいのですか?
> おしえてください。
> よろしくお願いします。

ページのプロパティのことでしょうか。
WebBrowser Controlについて調べてみるとどうやらExecWBメソッドに
OLECMDID_PROPERTIES(10)を指定すると表示できるみたいですね。

http://griffy.pekori.to/soft/technologies.html

HSPでのサンプルはちょっと書けません。

[19624] マウスの 投稿者:ド初心者 投稿日:05/03/18(金) 17:32 <URL>
mousex mousey等では、HSPの実行画面上のものしか取得できません。

全WINDOW上のマウスのX座標Y座標を得る方法はないでしょうか?
つまり実行画面以外のX座標Y座標を手に入れることはできないでし
ょうか?

ご教授願います

[19625] Re: マウスの 投稿者:SHI 投稿日:05/03/18(金) 17:46
> mousex mousey等では、HSPの実行画面上のものしか取得できません。
>
> 全WINDOW上のマウスのX座標Y座標を得る方法はないでしょうか?
> つまり実行画面以外のX座標Y座標を手に入れることはできないでし
> ょうか?
>
> ご教授願います

ginfo 0

[19619] LAN 投稿者:雅業 投稿日:05/03/18(金) 11:51
いま、LANを通して違うパソコンにデーターを書きこむソフトを作っ
ているんですが、LANでつないだパソコンAからパソコンBにファイル
を保存するスクリプトってどんなのになるんでしょうか?

よろしくお願いします。

[19612] なぜかエラーが 投稿者:ド初心者 投稿日:05/03/17(木) 20:23
     a=100
str a,16
int a
mes a
stop

というプログラムでなぜか二行目のところで、
”代入できない変数を選んでいます”
というエラーがでます。
3.05βをつかっているからでしょうか?
よろしければ教えてください。

[19614] Re: なぜかエラーが 投稿者:数英知 投稿日:05/03/17(木) 20:44
β版使用されているならばβ版の掲示板を使われる方がよろしいかと思いま
す。
3.0からstr,int等は関数になりました。
こんな感じで同じ動作をすると思います。

a=100
mes strf("16進[%x]",a)
stop

[19615] Re^2: なぜかエラーが 投稿者:ド初心者 投稿日:05/03/17(木) 21:23 <URL>
     mes "ありがとうございました"
stop

[19611] 著作権 投稿者:rex 投稿日:05/03/17(木) 19:56
コンテストの参加賞のステッカーが明らかに「イン○ル」の
パクリに思えるのですが、これは著作権違反ではないのですか?

[19601] UV付のmx 投稿者:ネモ 投稿日:05/03/16(水) 14:35
前回hgimgについて質問した者です。
立方体の外面に画像を貼り付けてHSPで表示してみたのですが、
画像が切れていたりとうまく表示されません。
一通り、設定の変更は試したのですが、もうお手上げです。
http://www6.ocn.ne.jp/~takuwann/question.zip
スクリプトやMXファイルなどについては上記にアップしました(6K
B)。
どなたか助けてください。

[19610] Re: UV付のmx 投稿者:Rosh 投稿日:05/03/17(木) 16:03 <URL>
> 立方体の外面に画像を貼り付けてHSPで表示してみたのですが、
> 画像が切れていたりとうまく表示されません。
「50×50」のテクスチャを「64×64」に変えると
正常に表示されますよ。

「HGIMGX」だけの制限かと思ったら「HGIMG」にもあるんですね…
とりあえず
画像の縦横サイズは「2のn乗」に合わせてみて下さい。

[19579] はじめまして 投稿者:普通の豆 投稿日:05/03/14(月) 11:33
getkeyやステックで「め」「ろ」「む」などは
どうにか読み込めないんですか?

[19580] Re: はじめまして 投稿者:Irisawa 投稿日:05/03/14(月) 12:34
> getkeyやステックで「め」「ろ」「む」などは
> どうにか読み込めないんですか?

無理(不可能)です。
基本的に仮想キーコードを元にしているので。
どうしてもIMEの入力状態を取得したいのでしたらIME系APIを使用するしか
ないです。
一応、llmodモジュールにime.asがあるのでそれを使用してみたらどうで
しょうか。

できるかどうかは試していないので分かりませんが。

[19594] Re^2: はじめまして 投稿者:Jam 投稿日:05/03/15(火) 17:31 <URL>
> > getkeyやステックで「め」「ろ」「む」などは
> > どうにか読み込めないんですか?
> 無理(不可能)です。

もしかして純粋に、
getkeyのヘルプに載っていないキーの情報は取得できないか
という質問ではないでしょうか?
/とか\とか]とか,とか.とか……(以下略

とりあえず↓のような表を見つけました。
http://quasiquote.org/hspwiki/HSP%A4%CETips:HSP%A5%AD%A1%BC%A5%B3%A1%BC%A5%C9%C9%BD

私は↑から探すのが面倒なので、
http://www.susono.com/~sakmis/hsp/keyboard.as
↑を使っています。実行して少し弄ってみれば理解できると思います。

また、工夫すればgetkeyでstickのトリガーようなコトをするコトも可能です。
過去ログにあったかな?

質問の解釈が間違っていたらスミマセン。

[19607] ありがとうございます 投稿者:普通の豆 投稿日:05/03/17(木) 03:52
> > > getkeyやステックで「め」「ろ」「む」などは
> > > どうにか読み込めないんですか?
> > 無理(不可能)です。
>
> もしかして純粋に、
> getkeyのヘルプに載っていないキーの情報は取得できないか
> という質問ではないでしょうか?
> /とか\とか]とか,とか.とか……(以下略
>
> とりあえず↓のような表を見つけました。
> http://quasiquote.org/hspwiki/HSP%A4%CETips:HSP%A5%AD%A1%BC%A5
%B3%A1%BC%A5%C9%C9%BD
>
> 私は↑から探すのが面倒なので、
> http://www.susono.com/~sakmis/hsp/keyboard.as
> ↑を使っています。実行して少し弄ってみれば理解できると思います

>
> また、工夫すればgetkeyでstickのトリガーようなコトをするコトも
可能です。
> 過去ログにあったかな?
>
> 質問の解釈が間違っていたらスミマセン。

> http://www.susono.com/~sakmis/hsp/keyboard.as
にのっているスプリクトが使いやすかったです。やっぱり
使えるんですねよかったです。やる気が出てきました。

[19528] 狙い撃ち弾 投稿者:加俊 投稿日:05/03/11(金) 16:59
シューティングゲームで、狙い撃ち弾が作れなくて困っています。
それほど精度は要求していませんので、誰か教えてください。
お願いします。

[19530] Re: 狙い撃ち弾 投稿者:こな 投稿日:05/03/11(金) 18:47
誘導弾のことでしょうか?

簡単に行くなら
弾と目標のX座標を毎フレーム比較して
ズレがあればx座標を毎フレーム増減するようにすれば
それなりに追いかけてくれます。
敵がこっちに撃つ誘導弾向きですが…

お好みでY座標も弄ってもいいかもしれません。

[19540] Re^2: 狙い撃ち弾 投稿者:加俊 投稿日:05/03/11(金) 22:02
> 誘導弾のことでしょうか?
>
> 簡単に行くなら
> 弾と目標のX座標を毎フレーム比較して
> ズレがあればx座標を毎フレーム増減するようにすれば
> それなりに追いかけてくれます。
> 敵がこっちに撃つ誘導弾向きですが…
>
> お好みでY座標も弄ってもいいかもしれません。

いえ、打った瞬間の敵位置に、直線で同じスピードで進む弾です。

[19541] Re^3: 狙い撃ち弾 投稿者:こな 投稿日:05/03/11(金) 22:10
>いえ、打った瞬間の敵位置に、直線で同じスピードで進む弾です。

自機がショットボタンを押した瞬間の敵の位置に直線でまっすぐ
飛んで行くだけで追尾はしないという意味でしょうか?
それとも追いかけつづけるのでしょうか?

どっちにせよ、どこでつまづいているのか分からないです。

[19542] Re^4: 狙い撃ち弾 投稿者:加俊 投稿日:05/03/11(金) 22:21
> >いえ、打った瞬間の敵位置に、直線で同じスピードで進む弾です

>
> 自機がショットボタンを押した瞬間の敵の位置に直線でまっすぐ
> 飛んで行くだけで追尾はしないという意味でしょうか?
> それとも追いかけつづけるのでしょうか?

はい、追尾はしません。

> どっちにせよ、どこでつまづいているのか分からないです。
えっと、スピードを一定にしたいのですが、
その場合、一回のX軸の移動量とY軸の移動量は、
敵のいる方向によって変わってしまいます。
その移動量の求め方が知りたいのです。

[19546] Re^5: 狙い撃ち弾 投稿者:HaGU 投稿日:05/03/12(土) 03:01
> えっと、スピードを一定にしたいのですが、
> その場合、一回のX軸の移動量とY軸の移動量は、
> 敵のいる方向によって変わってしまいます。
> その移動量の求め方が知りたいのです。

三角関数は使って無いんですか?

[19548] Re^6: 狙い撃ち弾 投稿者:加俊 投稿日:05/03/12(土) 11:48
> > えっと、スピードを一定にしたいのですが、
> > その場合、一回のX軸の移動量とY軸の移動量は、
> > 敵のいる方向によって変わってしまいます。
> > その移動量の求め方が知りたいのです。
>
> 三角関数は使って無いんですか?

三角関数はまだ習っていないのでわかりません(-_-3)

[19561] Re^7: 狙い撃ち弾 投稿者:HaGU 投稿日:05/03/13(日) 09:44
> 三角関数はまだ習っていないのでわかりません(-_-3)

すいません僕では、勉強してください…としか、言いようが無いです(;-
ω-)
多分、ここで誰かが教えてくれるのを待つよりも、自分で色々(図解入りの
参考書とか)探した方が早いと思います。
まあ、ヒントは三角関数ということで。

[19549] Re^7: 狙い撃ち弾 投稿者:通行人A 投稿日:05/03/12(土) 13:23
> 三角関数はまだ習っていないのでわかりません(-_-3)

α=角度
DEG=360
RAD=360=6.28
R=半径=原点からの距離
X=COS(α)*R
Y=SIN(α)*R

30°=30*(3.14/180)

程度で利用可能かと。

[19563] Re^8: 狙い撃ち弾 投稿者:... 投稿日:05/03/13(日) 11:22
#include "hspext.as"
x1=10 :y1=10 ;(X1,Y1)
rnd x2,200 :x2+=10 :rnd y2,200 :y2+=10 ;(X2,Y2)
ematan a1, x2-x1,y2-y1 ;Angle
emsin s1,a1 : emcos c1,a1 ;SIN&COS
pos x1,y1:mes "(X1,Y1)"
pos x2,y2:mes "(X2,Y2)"
color 255
repeat 500,30
emint x3,s1*cnt ;PositionX
emint y3,c1*cnt ;PositionY
if x3 == x2 :break ;X2=X3=STOP
pset x3,y3
loop
stop

:これでどうでしょうか?。(HSP2.61)

[19564] Re^9: 狙い撃ち弾 投稿者:加俊 投稿日:05/03/13(日) 11:38
> #include "hspext.as"
> x1=10 :y1=10 ;(X1,Y1)
> rnd x2,200 :x2+=10 :rnd y2,200 :y2+=10 ;(X2,Y2)
> ematan a1, x2-x1,y2-y1 ;Angle
> emsin s1,a1 : emcos c1,a1 ;SIN&COS
> pos x1,y1:mes "(X1,Y1)"
> pos x2,y2:mes "(X2,Y2)"
> color 255
> repeat 500,30
> emint x3,s1*cnt ;PositionX
> emint y3,c1*cnt ;PositionY
> if x3 == x2 :break ;X2=X3=STOP
> pset x3,y3
> loop
> stop
>
> :これでどうでしょうか?。(HSP2.61)
やっぱりDLLを使うしかないのでしょうか?
標準命令だけでなんとかしたいのですが・・・。
1/2乗の計算はできないですかね?

[19568] Re^10: 狙い撃ち弾 投稿者:Yuki 投稿日:05/03/13(日) 18:05
> 標準命令だけでなんとかしたいのですが・・・。
> 1/2乗の計算はできないですかね?

えっと1/2乗(平方根)の意味はわかっていますか?
意味がわかっていれば簡単にできるはずです。
また検索などすればニュートン法などを使用したソースも見つかるはずで
す。

[19565] Re^10: 狙い撃ち弾 投稿者:... 投稿日:05/03/13(日) 11:56
> 標準命令だけでなんとかしたいのですが・・・。
> 1/2乗の計算はできないですかね?

;単純にP1-P2を等分で良いのでは?。
x1=10 :y1=10
x2=100 :y2=200
x3=x2-x1 :y3=y2-y1
xx=x3/10 :yy=y3/10

repeat 10
pset x1+(xx*cnt),y1+(yy*cnt)
loop
stop

;hspext.asも殆ど標準命令に近いと思うのですが。(修正)
#include "hspext.as"
randomize
*S
cls :color 0,0,0 :button "START",*S
x1=30 : y1=30 ;(X1,Y1)
rnd x2,600 :x2+=30 :rnd y2,400 :y2+=30 ;(X2,Y2)
ematan a1, x2-x1,y2-y1 ;Angle(256=360)
emsin s1,a1 : emcos c1,a1 ;SIN&COS
pos x1,y1:mes "(X1,Y1)" ;DisplayPoint
pos x2,y2:mes "(X2,Y2)"
color 255
repeat 1000
emint x3,s1*cnt ;PositionX
emint y3,c1*cnt ;PositionY
if ((x1+x3) = x2) + ((y1+y3) = y2) :break ;X2=X3=STOP
pset x1+x3,y1+y3
loop
stop

[19604] Re^11: 狙い撃ち弾 投稿者:加俊 投稿日:05/03/16(水) 18:10
> > 標準命令だけでなんとかしたいのですが・・・。
> > 1/2乗の計算はできないですかね?
>
> ;単純にP1-P2を等分で良いのでは?。
> x1=10 :y1=10
> x2=100 :y2=200
> x3=x2-x1 :y3=y2-y1
> xx=x3/10 :yy=y3/10
>
> repeat 10
> pset x1+(xx*cnt),y1+(yy*cnt)
> loop
> stop
>
> ;hspext.asも殆ど標準命令に近いと思うのですが。(修正)
> #include "hspext.as"
> randomize
> *S
> cls :color 0,0,0 :button "START",*S
> x1=30 : y1=30 ;(X1,Y1)
> rnd x2,600 :x2+=30 :rnd y2,400 :y2+=30 ;(X2,Y2)
> ematan a1, x2-x1,y2-y1 ;Angle(256=36
0)
> emsin s1,a1 : emcos c1,a1 ;SIN&COS
> pos x1,y1:mes "(X1,Y1)" ;DisplayPoint
> pos x2,y2:mes "(X2,Y2)"
> color 255
> repeat 1000
> emint x3,s1*cnt ;PositionX
> emint y3,c1*cnt ;PositionY
> if ((x1+x3) = x2) + ((y1+y3) = y2) :break ;X2=X3=STOP
> pset x1+x3,y1+y3
> loop
> stop

ありがとうございました。
しょうがないのでhspextを使いたいと思います。
ところで、スクリプトが無駄が多いのか、1000行ぐらいになって
見にくくなってしまいました。
分けてやることは出来ませんかね?

[19558] Re^8: 狙い撃ち弾 投稿者:こな 投稿日:05/03/13(日) 00:17
昔の自分のソースが解読不能なので全然違う方法で作ってみました。
三角関数を使ってませんが、かなり強引な力技なので全くお奨めできませ
ん。
エライひとの光臨を待ちましょう(笑

※現状では敵との角度によって微妙に速度が変わると思います。
※敵との距離をX距離+y距離で横着してるのでモジュール等でどうにかす
れば…

#define XS 640
#define YS 480
#define OFS 4 ; スプライトオフセット量
#define SHOT_SPD 2 ; 弾速度
screen 0,XS,YS
;-----------------------------
Exmov=4 : Pspd=4
Px=XS/2 : Py=YS/8*7 ; 自機の位置
Ex=XS/2 : Ey=YS/2 ; 敵機の位置
; Mx,My ミサイルの位置
; Tx,Ty ミサイルの狙い位置
; Pxb,Pyb 撃ったときの自機の位置
Shot_flg=0
;-----------------------------
*main ; mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
await 16
stick stk,15
if stk&1 : Px-=Pspd
if stk&2 : Py-=Pspd
if stk&4 : Px+=Pspd
if stk&8 : Py+=Pspd
if stk&16 { ; ショットの処理
Tx=Ex : Ty=Ey : Pxb=Px : Pyb=Py : Mx=Px : My=Py : shot_flg=1
Xdst=Tx-Px : Ydst=Ty-Py
if Xdst<0 : Xdst=Xdst*(-1)
if Ydst<0 : Ydst=Ydst*(-1)
kyori=(Xdst+Ydst)/SHOT_SPD +1 ; いい加減な距離の求め方
}
redraw 0
color : boxf : color 255,255,255
pos Ex-OFS,Ey-OFS : mes "E" : pos Px-OFS,Py-OFS : mes "P"
if Shot_flg=1 {
pos Mx-OFS,My-OFS : mes "●"
Mx+=(Tx-Pxb)*M_cnt/kyori+1 : My+=(Ty-Pyb)*M_cnt/kyori+1
M_cnt++
}
if (Mx>XS)|(Mx<0)|(My>YS)|(My<0) : M_cnt=0 : Shot_flg=0

Ex+=Exmov : Ey+=Eymov ; 敵の動き
if (Ex>XS)|(Ex<0) : Exmov=Exmov*(-1)

redraw 1
title " "+kyori
goto *main ; mmmmmmmmmmmmmmmmmmmmmmmmmmm

[19562] Re^9: 狙い撃ち弾 投稿者:加俊 投稿日:05/03/13(日) 10:22
> 昔の自分のソースが解読不能なので全然違う方法で作ってみました。
> 三角関数を使ってませんが、かなり強引な力技なので全くお奨めでき
ませ
> ん。
> エライひとの光臨を待ちましょう(笑
>
> ※現状では敵との角度によって微妙に速度が変わると思います。
> ※敵との距離をX距離+y距離で横着してるのでモジュール等でどう
にかす
> れば…
>
> #define XS 640
> #define YS 480
> #define OFS 4 ; スプライトオフセット量
> #define SHOT_SPD 2 ; 弾速度
> screen 0,XS,YS
> ;-----------------------------
> Exmov=4 : Pspd=4
> Px=XS/2 : Py=YS/8*7 ; 自機の位置
> Ex=XS/2 : Ey=YS/2 ; 敵機の位置
> ; Mx,My ミサイルの位置
> ; Tx,Ty ミサイルの狙い位置
> ; Pxb,Pyb 撃ったときの自機の位置
> Shot_flg=0
> ;-----------------------------
> *main ; mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
> await 16
> stick stk,15
> if stk&1 : Px-=Pspd
> if stk&2 : Py-=Pspd
> if stk&4 : Px+=Pspd
> if stk&8 : Py+=Pspd
> if stk&16 { ; ショットの処理
> Tx=Ex : Ty=Ey : Pxb=Px : Pyb=Py : Mx=Px : My=Py : shot_flg=1
> Xdst=Tx-Px : Ydst=Ty-Py
> if Xdst<0 : Xdst=Xdst*(-1)
> if Ydst<0 : Ydst=Ydst*(-1)
> kyori=(Xdst+Ydst)/SHOT_SPD +1 ; いい加減な距離の求め方
> }
> redraw 0
> color : boxf : color 255,255,255
> pos Ex-OFS,Ey-OFS : mes "E" : pos Px-OFS,Py-OFS : mes "P"
> if Shot_flg=1 {
> pos Mx-OFS,My-OFS : mes "●"
> Mx+=(Tx-Pxb)*M_cnt/kyori+1 : My+=(Ty-Pyb)*M_cnt/kyori+1
> M_cnt++
> }
> if (Mx>XS)|(Mx<0)|(My>YS)|(My<0) : M_cnt=0 : Shot_
flg=0
>
> Ex+=Exmov : Ey+=Eymov ; 敵の動き
> if (Ex>XS)|(Ex<0) : Exmov=Exmov*(-1)
>
> redraw 1
> title " "+kyori
> goto *main ; mmmmmmmmmmmmmmmmmmmmmmmmmmm

ありがとうございました。
昨日の夜、思いついたのですけど、
三角形の相似の定理を使うとうまくいきそうだったのですが、
aの1/2乗という式が出来ません。
aの1/2乗さえ出来れば何とかなりそうです。
どうやればよいのでしょうか?

[19545] Re^5: 狙い撃ち弾 投稿者:こな 投稿日:05/03/12(土) 00:06
まさにそのものを昔作ったんですが
ちょっと自分のソースが解読不能…orz

今日はちょっと寝ます。すみません。
日曜にでも考えてみますが、それまでに素敵なお兄さんが代わりに
応えてくれるかもしれません(笑

二点間の距離を求めてその値で増減値をどうにかしてるようなんですが
1年以上前に書いたソースなもんで…

[19602] Webブラウザ 投稿者:magunesu 投稿日:05/03/16(水) 15:06
こんにちは、magunesuと申します。

今私は、HSPでWebブラウザを作っているのですが、
どうやったらIEのエンジンを使うことができるのか
よく分かりません。
今までHPをあさったりしてサンプルなどを拾ったのですが、
ちゃんと動いてくれません。
Navigateが使えればいいので誰か教えてください。
お願いします。

[19603] Re: Webブラウザ 投稿者:Irisawa 投稿日:05/03/16(水) 16:04
> 今私は、HSPでWebブラウザを作っているのですが、
> どうやったらIEのエンジンを使うことができるのか
> よく分かりません。
> 今までHPをあさったりしてサンプルなどを拾ったのですが、
> ちゃんと動いてくれません。
> Navigateが使えればいいので誰か教えてください。
> お願いします。

IEコンポーネントはCOMオブジェクト(COMコントロール)なのでHSP上から
直接操作できません。
ちょくとさんが開発・公開されている2.61用のLOLLIPOPモジュールを利用
するか標準でCOM操作に対応している次期HSP・HSP3.0を利用すればできます。
どちらもサンプルが付属していますので参考にしてみてください。

http://yokohama.cool.ne.jp/chokuto/

[19456] execから起動したアプリケーションの制御について 投稿者:木綿豆腐 投稿日:05/03/04(金) 16:25
初めまして。
過去ログでうまく見つけられなかったので、既出でしたら申し訳あ
りません。

exec から ftp を起動して止まってしまった場合、条件処理で一定
時間過ぎて
いたら ftp を終了させるということはできるでしょうか。

現在はこんな流れです。

+++++++++++++++++++++++++++++++++++++
FTP へ渡す設定ファイルを作成 (conf.ftp)
exec "ftp -s:conf.ftp",2
作成した設定ファイルを削除
+++++++++++++++++++++++++++++++++++++

セキュリティソフトの設定で許可を与えていれば、問題なくデータ
を送受信して
ftp が終了しますが、許可されていなかったり新規のアプリケーシ
ョンだとセキ
ュリティソフトからのアクセス許可の確認中は ftp が止まってしま
います。
( 自環境のゾーンアラームの場合、フアイアウォール項目のインタ
ーネットゾー
ンセキュリティのスライドスイッチを高から中へすれば通常に送
受信後に ftp
が終了するが、高の位置だと ftp が起動したまま止まる)

設定ファイルには、サーバーへログインするパスワードも記述され
ているので、
exec から ftp を起動した時に、通常にファイルの送受信ができた
場合は ftp の
スクリプト処理が済むまで、ファイルの送受信ができない場合は、
2秒くらいで
強制的に ftp を終了させ、設定ファイルの削除を実行させたいので
すが、方法が
わかりません。

分かりづらい長文ですみません。
うまくいく方法があれば、よろしくお願いします。

[19470] Re: execから起動したアプリケーションの制御について 投稿者:方位記号 投稿日:05/03/05(土) 14:54 <URL>
exec命令ではなくWin32 APIのCreateProcess()でプロセスを起動、
WaitForSingleObject()で一定時間待機、
待機時間中にプロセスが終了せずタイムアウトした場合
TerminateProcess()でプロセスを強制終了。
てな流れで出来ると思います。

[19474] Re^2: execから起動したアプリケーションの制御について 投稿者:木綿豆腐 投稿日:05/03/06(日) 11:28
> exec命令ではなくWin32 APIのCreateProcess()でプロセスを起動、
> WaitForSingleObject()で一定時間待機、
> 待機時間中にプロセスが終了せずタイムアウトした場合
> TerminateProcess()でプロセスを強制終了。
> てな流れで出来ると思います。

ありがとうございます。

CreateProcess(),WaitForSingleObject(),TerminateProcess()
知らない用語がずらりと並んでいたので、一瞬たじろぎましたが、
教えて頂いた用語で検索してみたら、サンプルスクリプトがヒッ
トしたので、明かりが見えてきた感じです。

日曜大工ならぬ日曜 HSP なので、かなり苦労すると思いますが、
実際のスクリプト処理で行き詰ったら、また、よろしくお願い
します。

ところで、教えて頂いた関数で HSP から起動したアプリケーシ
ョンの時間だけでなく、実行状況も監視できるものでしょうか。

例えば、FTP を起動して 200番(PORT command successful) ま
たは 226番(Transfer complete.) が返ってくるまでの時間を
監視し、一定時間のうちに返って来なければ強制終了、といった
具合にしたいと思うのですが、もともと無理なことなのか、やり
ようによっては出来るものなのかだけでも分かると助かります。

[19500] Re^3: execから起動したアプリケーションの制御について 投稿者:方位記号 投稿日:05/03/07(月) 23:31 <URL>
> ところで、教えて頂いた関数で HSP から起動したアプリケーシ
> ョンの時間だけでなく、実行状況も監視できるものでしょうか。
アプリによります。
監視するアプリが所望の情報を出力しない場合無理です。
出力する場合CreateProcess()に渡す
STARTUPINFO構造体のhStdOutputメンバにパイプハンドルを渡し、
内容を取得することで出来ると思います。

[19509] Re^4: execから起動したアプリケーションの制御について 投稿者:木綿豆腐 投稿日:05/03/08(火) 22:29
> アプリによります。
> 監視するアプリが所望の情報を出力しない場合無理です。
> 出力する場合CreateProcess()に渡す
> STARTUPINFO構造体のhStdOutputメンバにパイプハンドルを渡し、
> 内容を取得することで出来ると思います。
ありがとうございます。
自分に関係するアプリのことばかりで申し訳ありませんが、
FTP の場合、起動時にログをとるようにすれば、できそうな
気がしてきました。

[19598] Re^5: execから起動したアプリケーションの制御について 投稿者:木綿豆腐 投稿日:05/03/16(水) 12:24
おかげさまで、とりあえず一定時間で終了させられるようになりました。

ログをとる関係で、直接 FTP を起動せずにバッチファイルから起動する
ようにしたのですが、自環境では確認できないことがあり、ご存知の方が
いましたらよろしくお願いします。

/////////////////////////////
title FTPダウンロード
ftp -s:conf.ftp > ftp.log
exit
/////////////////////////////

上のような内容のバッチファイルを関連付けされているプログラムで
起動するのですが、これを XP 以外でも

aplsel "FTPダウンロード"

でウインドゥの捕獲ができるでしょうか。

検索してみると、NT系と9x系でプログラム(cmd.exe と coomand.com)が
違うそうで、XP と同じ cmd.exe を使っている NT や 2000では大丈夫
なのかなと漠然と思っていますが、95 98 ME でも大丈夫でしょうか。

[19599] Re^6: execから起動したアプリケーションの制御について 投稿者:Irisawa 投稿日:05/03/16(水) 12:39
> 検索してみると、NT系と9x系でプログラム(cmd.exe と coomand.com)

> 違うそうで、XP と同じ cmd.exe を使っている NT や 2000では大丈

> なのかなと漠然と思っていますが、95 98 ME でも大丈夫でしょうか


互換性のため、WinNT系でもcommand.comはあります。
(逆にWin9x系にはcmd.exeはないです)
元々はMS-DOSのシェルなんですけどね。

[19600] Re^7: execから起動したアプリケーションの制御について 投稿者:木綿豆腐 投稿日:05/03/16(水) 14:35
> 互換性のため、WinNT系でもcommand.comはあります。
> (逆にWin9x系にはcmd.exeはないです)
> 元々はMS-DOSのシェルなんですけどね。

素早いお答え有難うございます。
互換性のため、との事ですので XP 以外でも大丈夫と分かり
安心しました。

XP 以外のものの経験がなく、ひょとしてタスクマネージャー
のプロセス欄を開いた時に表示される、バックグランドで動い
ているようなタイプ(タスクバーに表示されないもの)だと、
aplsel でゲットできないのかなと思っていました。

ありがとうございました。

[19588] hgimgで 投稿者:ネモ 投稿日:05/03/15(火) 07:34
3daceで立方体のMXファイルを作って
#include "hgimg.as"
screen 0,640,480,1
cls 4
hgini
onexit *owari
setfont 16,16,12,1
mxload "gx"
regobj mychr,stat
gsel 0
palcopy 3
cammode CAM_MODE_LOOKAT
selcpos
objsetf3 0.0f, -10.0f, 20.0f
selcint
objsetf3 0.0f, -3.0f, 5.0f
*a
hgdraw
getsync t1,0
hgsync 10
selang mychr
objaddf1 1,0.025f

goto *a
上記のように表示してみたのですが、面がいくつか表示されなかっ
たりと、MXファイルがうまく表示されません。
hspのサンプルで付いてきたmxファイルはちゃんと表示されるん
ですが...
ちなみに作ったMXファイルは
http://www6.ocn.ne.jp/~takuwann/gx.mx
↑のようなものです。(1Kと少しあります)
思いつくことは全部やったのですが駄目でした。
どこがいけないのか教えて欲しいです。お願いします。

[19590] Re: hgimgで 投稿者:Rosh 投稿日:05/03/15(火) 14:33 <URL>
> 上記のように表示してみたのですが、面がいくつか表示されなかっ
> たりと、MXファイルがうまく表示されません。
> hspのサンプルで付いてきたmxファイルはちゃんと表示されるん
> ですが...
一部ポリゴンが裏返ってますね。
「3DAce」を使っているとの事なので
「面塗り→法線を統一」や「面塗り→法線を反転」
で面の方向を整えて見てください。

余計なお世話かもしれませんが
両面表示がオンならオフにしてみて下さい。
この方がミスは見つけ易いですよ。

[19595] Re^2: hgimgで 投稿者:ネモ 投稿日:05/03/15(火) 18:04
> 一部ポリゴンが裏返ってますね。
> 「3DAce」を使っているとの事なので
> 「面塗り→法線を統一」や「面塗り→法線を反転」
> で面の方向を整えて見てください。
>
> 余計なお世話かもしれませんが
> 両面表示がオンならオフにしてみて下さい。
> この方がミスは見つけ易いですよ。

ありがとうございます。
表示できるようになりました。

それにしても3-daceってエラー多いですね...(−−;
「名前を付けて保存」を押すと大抵エラーです...

[19591] エディター 投稿者:goal 投稿日:05/03/15(火) 14:40
screen 0,640,480,0 
MSG = ""
sdim HTML,32,32
HTML.0 = "<html lng=jp>\n<head>"
HTML.1 = "<title></title>"
HTML.2 = "<body>"

objmode 1,1 : objsize 100,20
pos 0,0 : button "<HTML>",WRITE
pos 0,20 : button "<TITLE>",WRITE
pos 0,40 : button "<BODY>",WRITE
pos 0,60 : mesbox MSG,640,480,5 ;ID3
stop

*WRITE
ID = STAT; 押されたボタンを取得
MSG = MSG+"\n"+HTML.ID ; メッセージ+命令
objprm 3,MSG
stop

ボタンを押すとテキストボックスに文字が表示されるようにしたい
のですが、これを実行するとバッファオーバーフローが出てしまいま
す。どうすればなおせますか?

[19592] Re: エディター 投稿者:通行人A 投稿日:05/03/15(火) 14:53
> ボタンを押すとテキストボックスに文字が表示されるようにしたい
> のですが、これを実行するとバッファオーバーフローが出てしまいま
> す。どうすればなおせますか?

 何故 sdim MSG,1024 などとしていないのか不明
又はMSGをその都度空にしなければ64文字しか格納できないと思う。

[19593] Re^2: エディター 投稿者:goal 投稿日:05/03/15(火) 14:58
>  何故 sdim MSG,1024 などとしていないのか不明
> 又はMSGをその都度空にしなければ64文字しか格納できないと思う。

解決しました。ありがとうございます。

[19569] ファイルをロードせずに末尾から任意バイト削る 投稿者:tm 投稿日:05/03/13(日) 18:16
前質問したのですが、わかりにくかったと思うのでちゃんと質問します。
ファイルが大きすぎて一度にロードできない時、ファイルをロードせ
ずに末尾から任意バイト削る(その分ファイルサイズは小さくなるよ
うに)にはどうしたらいいでしょうか。教えてください。

[19575] Re: ファイルをロードせずに末尾から任意バイト削る 投稿者:ANTARES 投稿日:05/03/13(日) 21:10 <URL>
>ファイルが大きすぎて一度にロードできない時、ファイルをロードせ
>ずに末尾から任意バイト削る(その分ファイルサイズは小さくなるよ
 「ファイルが大きすぎて一度にロードできない時」を判定するのは
なかなか難しいのと、ぎりぎりでロードできた場合は動作が
おかしくなる可能性が高いので、逆に一度にロードする最大バイト数を
決めて、ファイルサイズがそれより大きければ分割ロードするように
するといいでしょう。

[19574] Re: ファイルをロードせずに末尾から任意バイト削る 投稿者:Irisawa 投稿日:05/03/13(日) 20:58
> 前質問したのですが、わかりにくかったと思うのでちゃんと質問します。
> ファイルが大きすぎて一度にロードできない時、ファイルをロードせ
> ずに末尾から任意バイト削る(その分ファイルサイズは小さくなるよ
> うに)にはどうしたらいいでしょうか。教えてください。

意味がちょっと分からないのですが・・・。
まず、ファイルが大きすぎて・・・ということはありません。
noteloadとか使えば無限に(メモリの許す限り)読み込めますし、
ファイルサイズを調べてからそのサイズ分にバッファを拡張してから
読み込めばいいのでは?
それをしたくないのでしたらbload命令で読み込むバイト数を指定すれば
それ以上は読み込みません。

bload "test.txt", buf, 128

[19577] Re^2: ファイルをロードせずに末尾から任意バイト削る 投稿者:tm 投稿日:05/03/13(日) 21:49
> > 前質問したのですが、わかりにくかったと思うのでちゃんと質問
します。
> > ファイルが大きすぎて一度にロードできない時、ファイルをロ
ードせ
> > ずに末尾から任意バイト削る(その分ファイルサイズは小さくな
るよ
> > うに)にはどうしたらいいでしょうか。教えてください。
>
> 意味がちょっと分からないのですが・・・。
> まず、ファイルが大きすぎて・・・ということはありません。
> noteloadとか使えば無限に(メモリの許す限り)読み込めますし、
> ファイルサイズを調べてからそのサイズ分にバッファを拡張してから
> 読み込めばいいのでは?
> それをしたくないのでしたらbload命令で読み込むバイト数を指定す
れば
> それ以上は読み込みません。
>
> bload "test.txt", buf, 128

えと、例えば1GBのファイルをロードしたりするのはかなりたいへんなん
で、ということです

要はロードせずに削れればいいのですが。
おねがいします。

[19587] Re^3: ファイルをロードせずに末尾から任意バイト削る 投稿者:default 投稿日:05/03/14(月) 23:53
> 要はロードせずに削れればいいのですが。

kernel32.dllにSetEndOfFileという関数があります。
これでEOFの位置を詰めればファイル末尾を削ったことになるようです。

以下はC言語で書いた場合のコードですが、HSPでも出来るかとおもいます。

#include "windows.h"
#include <stdio.h>

#ifndef INVALID_SET_FILE_POINTER
#define INVALID_SET_FILE_POINTER 0xFFFFFFFF
#endif // INVALID_SET_FILE_POINTER

/*
GENERIC_WRITE = 0X40000000
FILE_SHARE_READ = 0X1
OPEN_EXISTING = 3
FILE_ATTRIBUTE_NORMAL = 0X80
INVALID_HANDLE_VALUE = -1
FILE_END = 2
NO_ERROR = 0
*/

void main(){
HANDLE hFile;
DWORD dwPtr;
BOOL blRtn, blSetPointOK;

//ファイル末尾10バイトを削除

hFile = CreateFile("C:\\testfile.txt", //ファイルパス
GENERIC_WRITE, //アクセスモード
FILE_SHARE_READ, //共有モード
NULL, //セキュリティ記述子
OPEN_EXISTING, //既存のファイルを開く
FILE_ATTRIBUTE_NORMAL, //ファイル属性
NULL); //テンプレートファイル
if ( hFile==INVALID_HANDLE_VALUE ){
printf("CreateFile失敗\n");
return;
}

blSetPointOK = TRUE;
dwPtr = SetFilePointer(hFile, //ファイル
-10, //移動するバイト数(下位バイト)
NULL, //移動するバイト数(上位バイト)
FILE_END); //開始点
if ( dwPtr != INVALID_SET_FILE_POINTER ){
if ( GetLastError() != NO_ERROR ){
printf("SetFilePointer失敗\n");
blSetPointOK = FALSE;
}
}

if ( blSetPointOK ){
blRtn = SetEndOfFile(hFile); //EOF設定
if ( blRtn == 0 ){
printf("SetEndOfFile失敗\n");
}
}

blRtn = CloseHandle(hFile); //ファイルを閉じる
if ( blRtn == 0 ){
printf("CloseHandle失敗\n");
}
}

[19585] Re^3: ファイルをロードせずに末尾から任意バイト削る 投稿者:ANTARES 投稿日:05/03/14(月) 21:26 <URL>
>要はロードせずに削れればいいのですが。

 以下のスクリプトを実行するには、カレントドライブに1.1GB以上の
空き領域が必要です。足りない場合は「len=1100100100」を
修正してください。
 なぜか、titleが37くらいまでしか表示されない場合があるようですが、
待っていれば、正常終了します。

#include "hspext.as"
file="test.dat"
len=1100100100
unit=8000000
bsave file,a,1
bsave file,a,1,len-1
mes file+"という大きなファイルができたことを確認してください"
mes "何バイトにしますか?"
byte=len
objsize 128,24
input byte
button "go",*l_go
stop

*l_go
num=byte/unit
tmp="temp.dat"
bsave tmp,a,1
sdim buf,unit
fp=0
repeat num
title ""+cnt+"/"+num
bload file,buf,unit,fp
bsave tmp,buf,unit,fp
fp+=unit
loop
l=byte\unit
if l>0 {
bload file,buf,l,fp
bsave tmp,buf,l,fp
}
delete file
fxren tmp,file
end

[19566] キー送信 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/13(日) 14:51
自分が押しているキーの情報を他のPCに送ることはできますか?

[19584] Re: キー送信 投稿者:Xellos 投稿日:05/03/14(月) 16:55
hspsock等を使ってキーコードを送信し、
向こうのPCでAPIを使いキーを押下してやればできます。
ただ、キーを押し続けている状態をどう表現するかですね。

[19586] Re^2: キー送信 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/14(月) 22:16
なるほど・・・がんばってみます。ありがとうございました。

[19581] フォルダの移動について 投稿者:hiro 投稿日:05/03/14(月) 14:30
大変、御世話になっております。
早速ですが、フォルダの移動について質問がございます。

カレントフォルダをchdirを使って1つ上の階層に移動したい
のですがどうすれば宜しいのでしょうか?
DOSみたいに..で出来ると思っていたのですが・・・
御教示の程、宜しく御願い致します。

[19582] Re: フォルダの移動について 投稿者:Irisawa 投稿日:05/03/14(月) 14:44
> カレントフォルダをchdirを使って1つ上の階層に移動したい
> のですがどうすれば宜しいのでしょうか?
> DOSみたいに..で出来ると思っていたのですが・・・

できますけど・・・?

chdir exedir
mes curdir
chdir ".."
mes curdir
stop

[19583] Re^2: フォルダの移動について 投稿者:hiro 投稿日:05/03/14(月) 16:18
Irisawa様
ありがとうございました。私の勘違いだったみたいです。

[19578] エクスプローラ作成 投稿者:さんだぁ 投稿日:05/03/13(日) 22:38
こんにちは。
今、プログラムにエクスプローラ風のファイル・フォルダビューア
を組み込もうと思っているのですが、次のことがよく分かりません。
・マイコンピュータ・ごみ箱などの仮想フォルダのアイコンの取得
方法
・仮想フォルダの名前の取得
・仮想フォルダの中身の取得(ごみ箱の中身など)
・ツリービューへのアイテムの追加の仕方(一度にすべてのファイ
ルを検索して追加すると、時間がかかるので、どういったタイミング
でファイル検索をすればいいのかが分かりません)。

実装できないようなこともあるかもしれませんが、どなたか分かる
方がおられましたら、ぜひ教えてください。

[19576] マウス操作について 投稿者:VIA 投稿日:05/03/13(日) 21:22
マウスの表示・座標についての質問です。
現在ゲームを作っていて、
「マウスを非表示した状態のままマウスの座標を変更する。」
という操作をメインループの中で行いたいのですが、
mouseだけを使うと、マウスカーソルがちらついたり、動作が遅くな
ります。
ご存知の方、この操作を上手く行う方法を教えていただけないでし
ょうか?

[19572] note系の命令について 投稿者:intel 投稿日:05/03/13(日) 20:34
note系の命令についての質問です

二つ以上の文字型変数をnoteselで
ノートパッドのバッファに設定することはできますか?
noteaddやnotemaxなどでは、
処理対象の変数名を設定することができないので。
noteselでノートパッドに設定できる変数はひとつだけなんですか?
2つ以上使ってプログラムを作りたいと考えているので。

初心者ですみません。
どなたかご教授お願いします。

[19573] Re: note系の命令について 投稿者:Irisawa 投稿日:05/03/13(日) 20:51
> 二つ以上の文字型変数をnoteselで
> ノートパッドのバッファに設定することはできますか?
> noteaddやnotemaxなどでは、
> 処理対象の変数名を設定することができないので。
> noteselでノートパッドに設定できる変数はひとつだけなんですか?
> 2つ以上使ってプログラムを作りたいと考えているので。

noteselは対象のバッファを選択するだけの命令ですよ。
対象バッファを変更しても以前のバッファの内容自体は消えません。

notesel buf1
...
notesel buf2
...
notesel buf1

[19554] HTMLファイルの受信 投稿者:japaso 投稿日:05/03/12(土) 17:27
こんにちは、japasoと申します。

早速ですが質問です。
今私は●chブラウザのような特定の掲示板サイトを見るための
ブラウザを作っているのですが、掲示板のスレッドを取得する段階
でとまってしまっています。
http://yy11.kakiko.com/powerful/
このような掲示板でスレッドのリストは
http://yy11.kakiko.com/powerful/subback.htmlにあるのですが、
HSPのサンプルにあるHTTP.ASをつかって取得しようとしましたが、
どうやってもうまくいきません。

どうやればいいのでしょう。
誰かご教授お願いします。
DLLを使ったものでもかまいません。
よろしくお願いします。

[19559] Re: HTMLファイルの受信 投稿者:my 投稿日:05/03/13(日) 01:10
"URLDownloadToFile"というWinAPIを使ってみてはどうでしょうか?

;HSP2.61用のサンプル
#include "llmod.as"

sdim savefilename,256
sdim downloadurl,256
savefilename = "c:\\test.html"
downloadurl = "http://yy11.kakiko.com/powerful/subback.html"
ll_libload D_URLMON,"urlmon.dll"
pm = 0,0,0,0,0
getptr pm.1,downloadurl
getptr pm.2,savefilename
dllproc "URLDownloadToFileA",pm,5,D_URLMON

[19560] Re^2: HTMLファイルの受信 投稿者:Irisawa 投稿日:05/03/13(日) 02:07
> dllproc "URLDownloadToFileA",pm,5,D_URLMON

最後にll_libfreeでFreeLibraryしないと・・・。

ll_libfree D_URLMON

[19571] Re^3: HTMLファイルの受信 投稿者:japaso 投稿日:05/03/13(日) 20:22
レス遅くなりすみません。
myさん、Irisawaさん、ご教授本当にありがとうございました。

[19532] 自動起動 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/11(金) 19:55
PCの電源をつけると自動で起動するものってつくれますか?

[19544] Re: 自動起動 投稿者:911 投稿日:05/03/11(金) 23:46
> PCの電源をつけると自動で起動するものってつくれますか?

winNT系のサービス登録のことですか?
それとも、win9x系のスタートアップ・レジストリ登録ですか?

[19557] Re^2: 自動起動 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/12(土) 21:51
> > PCの電源をつけると自動で起動するものってつくれますか?
>
> winNT系のサービス登録のことですか?
> それとも、win9x系のスタートアップ・レジストリ登録ですか?

たぶん二番目に言った方だと思います。

[19570] Re^3: 自動起動 投稿者:xxx.xxx.xxx.xxx 投稿日:05/03/13(日) 19:36
> > > PCの電源をつけると自動で起動するものってつくれますか

> >
> > winNT系のサービス登録のことですか?
> > それとも、win9x系のスタートアップ・レジストリ登録ですか?
>
> たぶん二番目に言った方だと思います。

解決しました。ありがとうございました。

[19513] アクティブ制御 投稿者:saka 投稿日:05/03/09(水) 09:27
ウィンドウのアクティブの切り替えを行おうと思うのですが
タスクバーが切り替わるだけでウィンドウ上は変わりません。
昔はうまく行ったんですけどねえ、なぜでしょうか。
環境によるような気がしますがテストしてみたのは2000とXPです

実行中にHSPの画面をクリックするとうまく動いたりします。
反対にアクティブになったウィンドウをクリックすると動かなくな
ります。
どうかよろしくお願いします。

#include "hspext.as"

repeat 3
wait 100
aplsel "hsp30b3" ;アクティブにしたいウィンドウタイトル名
wait 50:aplact
wait 100
aplsel "hsp30b4" ;アクティブにしたいウィンドウタイトル名
wait 50:aplact
loop

[19533] Re: アクティブ制御 投稿者:saka 投稿日:05/03/11(金) 20:04
誰も返答してくれないので勝手に進捗報告すると(笑
「Win95/NT4までは、SetForegroundWindowだけでフォアグラウンドウィン
ドウを
切り替えられましたが、Win98/2000移行では、切り替え可能なプロセスは

システムにより制限されるようになっています。
# メニュー選択や文字の入力中に、勝手にウィンドウが切り替えられてし
まい、
# 作業中の処理が中断してしまうことを防ぐための仕様変更です。」
と言うことらしいです。
これを直すひとつの方法としてはフォアグラウンドロックタイムアウトを
設定すれば良いらしいです。
時間があるときに調べてやってみます。
前の説明の補足をしますとウィンドウはアクティブにならないでタスクバ
ーのとこが点滅します。
仕事のPC(Win2000)でも同様だったのですが他の人は起こらないのでしょ
うか。

> ウィンドウのアクティブの切り替えを行おうと思うのですが
> タスクバーが切り替わるだけでウィンドウ上は変わりません。
> 昔はうまく行ったんですけどねえ、なぜでしょうか。
> 環境によるような気がしますがテストしてみたのは2000とXPです
> 。
> 実行中にHSPの画面をクリックするとうまく動いたりします。
> 反対にアクティブになったウィンドウをクリックすると動かなくな
> ります。
> どうかよろしくお願いします。
>
> #include "hspext.as"
>
> repeat 3
> wait 100
> aplsel "hsp30b3" ;アクティブにしたいウィンドウタイトル名
> wait 50:aplact
> wait 100
> aplsel "hsp30b4" ;アクティブにしたいウィンドウタイトル名
> wait 50:aplact
> loop

[19535] Re^2: アクティブ制御 投稿者:さくら 投稿日:05/03/11(金) 21:04
> 誰も返答してくれないので勝手に進捗報告すると(笑
> 「Win95/NT4までは、SetForegroundWindowだけでフォアグラウンドウィ

> ドウを
> 切り替えられましたが、Win98/2000移行では、切り替え可能なプロセス

> 、
> システムにより制限されるようになっています。
> # メニュー選択や文字の入力中に、勝手にウィンドウが切り替えられて

> まい、
> # 作業中の処理が中断してしまうことを防ぐための仕様変更です。」
> と言うことらしいです。
> これを直すひとつの方法としてはフォアグラウンドロックタイムアウト

> 設定すれば良いらしいです。
> 時間があるときに調べてやってみます。
> 前の説明の補足をしますとウィンドウはアクティブにならないでタスク

> ーのとこが点滅します。

> 仕事のPC(Win2000)でも同様だったのですが他の人は起こらないので
しょ
> うか。
OSの仕様です。同様の現象は以前から確認されており、対処方法も過去ログ
を探せばでてくるはずです(^^;

過去ログ[19319] Re: gselのアクティブ操作を参照して下さい。
aplactの変わりに過去ログにあるモジュール命令を発行すれば、
98以降のOSでも強制的にアクティブにできるはずです。

[19567] Re^3: アクティブ制御 投稿者:saka 投稿日:05/03/13(日) 16:38
さくらさん、どうもありがとうございます。
過去ログ調べてませんでした。
参考にしてみてます。
さくらさんのSrexhspはよく使わせてもらってます。hsp3.0用期待してます


> > 誰も返答してくれないので勝手に進捗報告すると(笑
> > 「Win95/NT4までは、SetForegroundWindowだけでフォアグラウ
ンドウィ
> ン
> > ドウを
> > 切り替えられましたが、Win98/2000移行では、切り替え可能な
プロセス
> は
> > 、
> > システムにより制限されるようになっています。
> > # メニュー選択や文字の入力中に、勝手にウィンドウが切り替
えられて
> し
> > まい、
> > # 作業中の処理が中断してしまうことを防ぐための仕様変更で
す。」
> > と言うことらしいです。
> > これを直すひとつの方法としてはフォアグラウンドロックタイ
ムアウト
> を
> > 設定すれば良いらしいです。
> > 時間があるときに調べてやってみます。
> > 前の説明の補足をしますとウィンドウはアクティブにならない
でタスク
> バ
> > ーのとこが点滅します。
>
> > 仕事のPC(Win2000)でも同様だったのですが他の人は起こらな
いので
> しょ
> > うか。
> OSの仕様です。同様の現象は以前から確認されており、対処方法も過
去ログ
> を探せばでてくるはずです(^^;
>
> 過去ログ[19319] Re: gselのアクティブ操作を参照して下さい。
> aplactの変わりに過去ログにあるモジュール命令を発行すれば、
> 98以降のOSでも強制的にアクティブにできるはずです。

[19556] O2について 投稿者:takuya 投稿日:05/03/12(土) 18:52
はじめまして^^
質問なんですが、つい さっき
O2に登録しました。が・・・
exeの五目以外
パスとIDあってるのに
入れません;;
よかったらお教えください

[19547] HTTP_USER_AGENT 投稿者:sys 投稿日:05/03/12(土) 09:29
CGIをつくっているのですが、HTTP_USER_AGENTの取得方法はどのよう
にやるのでしょうか?
よろしくお願いします。

[19551] Re: HTTP_USER_AGENT 投稿者:Irisawa 投稿日:05/03/12(土) 17:16
> CGIをつくっているのですが、HTTP_USER_AGENTの取得方法はどのよう
> にやるのでしょうか?

こんな感じです。

#packopt runtime "hspcl.hrt"
#include "llmod.as"

#module "_getenv"
; 環境変数を取得します
; getenv
; p1(文字列型変数)
; 環境変数を取得するバッファ(文字列型変数)
; p2(文字列定数)
; 取得する環境変数名
; p3(数値:省略可・省略時=0)
; 環境変数を取得する最大文字数を指定します
; 省略または0を指定した場合はdllretに取得するのに
; 必要なバッファサイズを返します
; バッファサイズはNULLを含めてください
; 指定した数値が環境変数の内容の文字数よりも小さい
; 場合もdllretに環境変数の内容の文字数を返します
#deffunc getenv val, str, int
mref p1, 24 ; 第1パラメータ
mref p2, 33 ; 第2パラメータ
mref p3, 2 ; 第3パラメータ
if p3 > 0 {
size = p3
} else {
size = 0
}
getptr pname, p2
getptr pbuf, p1
prm = pname, pbuf, size
dllproc "GetEnvironmentVariableA", prm, 3, D_KERNEL
return
#global

getenv buf, "HTTP_USER_AGENT" ; 必要な文字数を取得
sdim buf, dllret + 1 ; バッファを確保
getenv buf, "HTTP_USER_AGENT", dllret + 1 ; 環境変数を取得

mes "Content-Type: text/plain\n\n" ; ヘッダ表示
mes "HTTP_USER_AGENT:" + buf ; 環境変数表示
end

バッファは予め必要なサイズ分確保しないと問題が発生するため、
必ず、上記のサンプルのように2回実行してください。

# 本当は指定文字数分だけ取得できるといいのですがやり方が分かり
# ません。(^_^;

[19552] Re^2: HTTP_USER_AGENT 投稿者:Irisawa 投稿日:05/03/12(土) 17:24
> バッファは予め必要なサイズ分確保しないと問題が発生するため、
> 必ず、上記のサンプルのように2回実行してください。

このサンプルではHTTP_USER_AGENTを取得していますがローカル実行だと
この環境変数はないので取得できません。
(文字はNULL=空です)
サーバ経由でテストするか直接実行する場合は環境変数名をwindir
などのWinの環境変数で試してみてください。

getenv buf, "windir" ; 必要な文字数を取得
sdim buf, dllret + 1 ; バッファを確保
getenv buf, "windir", dllret + 1 ; 環境変数を取得

> # 本当は指定文字数分だけ取得できるといいのですがやり方が分かり
> # ません。(^_^;

正確には(無理矢理やろうと思えばできなくはないですが)2.61では
再帰呼び出しなどができないので対応しようとすると大変なことに
なるので対応していません。

3.0ならばもう少し簡単な記述ができるんですが・・・。

[19555] Re^3: HTTP_USER_AGENT 投稿者:Irisawa 投稿日:05/03/12(土) 17:32
間違いがありました。
(動作上にまったく問題はないですが)

> getenv buf, "windir" ; 必要な文字数を取得
> sdim buf, dllret + 1 ; バッファを確保
> getenv buf, "windir", dllret + 1 ; 環境変数を取得

両方共、dllretに返される必要バッファサイズはNULL分も含まれるので
+1する必要はありません。

# サンプルを書いているときに間違えていて削除し忘れです。
# 別に多い分には問題がないのであまり気にする必要はありません。

getenv buf, "windir" ; 必要な文字数を取得
sdim buf, dllret ; バッファを確保
getenv buf, "windir", dllret ; 環境変数を取得

[19517] 質問です 投稿者:DD7 投稿日:05/03/09(水) 19:18
はじめまして。HSPのことで質問です

円周率を毎回書くのは手間なので
#define PAI 3.1415f
と最初に書いておいたのですが、
objsetf3 0.0f , PAI , 0.0f
では正常ですが
objsetf3 0.0f , -PAI , 0.0f
ではおかしくなります。なぜなんでしょうか?

あと"hgimgx.as"をインクルードして画面にPLATEやらBOXやらのモデルをたくさん表示して、
画面をクリックしたらその場所のオブジェクトを消す!みたいなのを作ろうと思い、
dim scan,32
objscan2 scan,mousex,mousey
と書いたのですが、オブジェクトのある場所でもscan.0が-1だったり
別のオブジェクトのIDになったりしてしまいます。
何が悪いんでしょうか?

[19550] 念のため 投稿者:DD7 投稿日:05/03/12(土) 13:49
HSPのバージョンは2.61です

[19531] stickとgetkeyの同時押し 投稿者:MASA77's 投稿日:05/03/11(金) 19:19
こんばんはMASA77'です
stickとgetkeyを使ってゲームをつくっているのですが
なぜか↑+←+getkeyのいずれかの3ボタン同時押しが
反応しません。(stickの変数が3を示す時)
これは機種依存なのでしょうか?

*main
stick ky_M,15
getkey ky_A,88
redraw 0
color 0,0,0 : boxf
color 255,255,255
pos 0,0
mes "十字 =:"+ky_M
mes "Xキー=:"+ky_A
redraw 1
await 5

goto *main

どなたか解説いただければ幸いです

[19537] Re: stickとgetkeyの同時押し 投稿者:MASA77's 投稿日:05/03/11(金) 21:25
追記:

←+→+getkeyのいずれかの3ボタン同時押しも
反応しないようです。(これはゲーム中は使われないですが)
stickは反応するのですが3ボタン同時押し時
getkeyの反応だけないようです。
どなたか解説いただければ幸いです

[19539] Re^2: stickとgetkeyの同時押し 投稿者:こな 投稿日:05/03/11(金) 21:48
「同時押し」でワード検索を探すと素敵なことがあるかもしれません。

[19543] Re^3: stickとgetkeyの同時押し 投稿者:MASA77's 投稿日:05/03/11(金) 22:31
> 「同時押し」でワード検索を探すと素敵なことがあるかもしれません



stickとgetkey
でワード検索していたため
ログ同様なログを見逃していました。
同時押しで検索したら
テンキーでの操作なら出来るものもある
というレスがあったので試しましたが無理で
やはりログにあったように機種依存で無理のようですね・・・
残念です。

ちなみに、
私のテストで使用したキーボードは
A-OPENのKB-835Pでした。
どうも、こなさんレスありがとうございました m--m

[19521] ファイルをロードせずに大きくする 投稿者:tm 投稿日:05/03/10(木) 20:16
いまwav編集ソフトを作っているのですがファイルをbloadなどでロー
ドすると大きすぎてロードできないのですが、それでもちょっとづつ
ロードしたりしてがんばって作っているところです。それで今、ファ
イルをロードせずにファイルのサイズだけ増やしたいんですが(増や
す前のファイルの情報はそのまま残しそのあとに空のスペースをつけ
たす)、どうすればいいのかわかりません。教えてください。

[19526] Re: ファイルをロードせずに大きくする 投稿者:Xellos 投稿日:05/03/11(金) 09:57
existでファイルサイズはかってbsaveのオフセットを指定して
保存すればいいんじゃないですか。
保存内容にスペースいっぱいのバッファ用意しとけばお望みのことが出来
ると思いますよ。

[19529] Re^2: ファイルをロードせずに大きくする 投稿者:tm 投稿日:05/03/11(金) 18:25
ありがとうございます

[19522] Re: ファイルをロードせずに大きくする 投稿者:LonelyWolf 投稿日:05/03/10(木) 21:04 <URL>
> それで今、ファイルをロードせずにファイルのサイズだけ増やし
> たいんですが(増やす前のファイルの情報はそのまま残しそのあと
> に空のスペースをつけたす)、どうすればいいのかわかりません。
> 教えてください。

適当な変数 = 0 ; 左は適当な変数 = ""でも構いません。
bsave ファイル名, 適当な変数, 1, サイズ-1

で、サイズを拡張します。残りのバイトは0で埋められます。

ただし、元のサイズが希望のサイズ以上にならないことが
条件です。
それと、仕様として明記されていることではないので、
バージョンが上がったときに使えなくなるかもしれません…。

[19536] Re^2: ファイルをロードせずに大きくする 投稿者:tm 投稿日:05/03/11(金) 21:14
> > それで今、ファイルをロードせずにファイルのサイズだけ増やし
> > たいんですが(増やす前のファイルの情報はそのまま残しそのあ

> > に空のスペースをつけたす)、どうすればいいのかわかりません

> > 教えてください。

ありがとうございます
ではこれの逆(任意のサイズだけ削る)はどうすればいいでしょう?

[19534] すいません 投稿者:肉球ハンコ 投稿日:05/03/11(金) 20:23
HSPでオンラインゲーム作成は可能ですか?
可能なら、載っている本はなんという本ですか?
教えてください。
お願いしますm(_)m

[19523] HSPDB について 投稿者:うさお 投稿日:05/03/11(金) 00:38
 HSPDBの使い方がイマイチ(というかまったく)わかりません。

 マニュアルから「dbopen」命令でDBに接続を行なうというのはわ
かるのですが、「接続指定文字列についての詳細は、ODBC関連の資料
を参考にしてください。」という記載だけで具体的な使用例がないた
め困っています。

 よって、
#include "HSPDB.as"
dbini
 から先の組み方がわかりません・・・。

 検索エンジンでODBCについて検索してみましたが、参考になる資
料を見つけられませんでした(見つけているけど気づいてないのか?
)。

 どなたか具体的な使用例を御指導ください。
 (または参考資料を入手できるサイトを教えてください)
 よろしくお願いします。
 
 

[19527] Re: HSPDB について 投稿者:eternally 投稿日:05/03/11(金) 16:10 <URL>
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3sql.htm
こんなところでどうでしょうか?

私は実際にこのサイトを見て作りました。
私の場合はAccessファイルを利用してデータベースの作成をしました。

[19487] 座標について^^ 投稿者:初心者君 投稿日:05/03/07(月) 18:31
初めまして^^

HELPを熟読しながら、スクリプトをつくっているのですが、
むずかいしいみたいです;;

今回質問するのは、
もし、指定座標(200,200)が#FF0000だったら
指定座標をクリックしたい
って言うことを実行するためのものを作りたく思ったのですが
自力断念してしまいました;;
(IF文を使うことしか分からないのです;;)

先輩方々、ご教授お願いします^^

[19491] Re: 座標について^^ 投稿者:数英知 投稿日:05/03/07(月) 20:22
ちょっと引っかかる点がありますが、
座標(200,200)が赤の時の条件分岐はこんな感じで。

pget 200,200
if (rval==0xFF)&(gval==0x00)&(bval==0x00):実行させたいこと

これにクリック判定をつけるととらえます。

color 1,1,1
boxf
color 255,0,0
pset 200,200

repeat
getkey a,1
pget 200,200
if (a==1)&(rval==0xFF)&(gval==0x00)&(bval==0x00)&(m
ousex==200)&(mousey==200):dialog "赤を押したの!すごいな〜"
wait 1
loop

こんな感じでどうですか?

[19499] Re^2: 座標について^^ 投稿者:初心者君 投稿日:05/03/07(月) 22:29
有り難うございます^^


大変勉強になります^^

今私の作っている物をUPしますので、
おかしいところをご指摘お願いします^^
(初心者なので見苦しいのはお許しを・・・)

repeat

pget 206,771
if (rval==0xFF)&(gval==0x00)&(bval==0x00){
keybd_event 81,-1,0
}
wait 1
loop

このスクリプトで、
指定座標がFF0000のときキーボードのQを一回押す。
そして、その動作を永遠と繰り返す。
が可能でしょうか?
又、wait 1 は何の為に必要なのでしょうか?

ホントに初歩的ですみません;;

[19501] Re^3: 座標について^^ 投稿者:911 投稿日:05/03/08(火) 00:30 <URL>
> 又、wait 1 は何の為に必要なのでしょうか?

はずしてみてご覧なさい。(実践あるのみ。
そうすると…ウィンドウ操作が困難でしょ?
それは、ループ回避用の待ち時間ですね。

[19504] Re^4: 座標について^^ 投稿者:初心者君 投稿日:05/03/08(火) 11:48
ご教授有り難うございます^^

過去ログで色々しらべたんですが、
HSPで作ったもの以外の色を取得することは無理なんですね;;
(デスクトップ上やアプリ上のある座標の色を判定したかった)
ガックリ凹んでます;;

HSPだとできないのかな?
助けて下さい;;


> > 又、wait 1 は何の為に必要なのでしょうか?
>
> はずしてみてご覧なさい。(実践あるのみ。
> そうすると…ウィンドウ操作が困難でしょ?
> それは、ループ回避用の待ち時間ですね。

[19505] Re^5: 座標について^^ 投稿者:ISHIDA 投稿日:05/03/08(火) 14:22 <URL>
> HSPで作ったもの以外の色を取得することは無理なんですね;;
> (デスクトップ上やアプリ上のある座標の色を判定したかった)
> ガックリ凹んでます;;
こちらのページが役に立つと思います。
http://hp.vector.co.jp/authors/VA020801/lnkpg/sample/disp.htm
http://hp.vector.co.jp/authors/VA020801/lnkpg/sample.htmより)

[19506] Re^6: 座標について^^ 投稿者:初心者君 投稿日:05/03/08(火) 15:30
ご教授有り難うございます^^

試しにインクルードの仕方を調べ、コンパイルに成功しました^^

すごすぎます^^;

そこで改良に手助けをお願い致します^^

#include "llmod.as"

screen 0,260,80,0:gsel 0,2
sdim dv,10
dv="DISPLAY"
getptr prm,dv
dllproc "CreateDCA",prm,4,D_GDI
if dllret=0:dialog "FALSE":end
hdc=dllret
onexit *quit

repeat:wait 5
stick ky
ginfo
prm=hdc,prmx,prmy
dllproc "GetPixel",prm,3,D_GDI
col=dllret
r=col&$FF,col>>8&$FF,col>>16&$FF
color r,r.1,r.2:boxf 0,0,40,40
title ""+r+" "+r.1+" "+r.2

if ky=512:break
loop
*quit
dllproc "DeleteDC",hdc,1,d_gdi

のスクリプトですと、マウスの直下の色を取得しているようですが、
ある決まった指定座標の色(その座標は不定期に変化しています)
を取得させるには、どこを変えればいいのでしょうか?

また、その座標がFF0000になったら
決まったキーを押させるという物をつくりたいのですが、
ご教授のほどよろしくお願い致します^^

[19512] Re^7: 座標について^^ 投稿者:ISHIDA 投稿日:05/03/09(水) 08:07 <URL>
今朝までに書いてあったのは、無視しておいてください(汗
馬鹿なことやってました(汗

#include "llmod.as"
#include "input.as"
screen 0,260,80,0,0,0:gsel 0,2
sdim dv,10
dv="DISPLAY"
getptr prm,dv
dllproc "CreateDCA",prm,4,D_GDI
if dllret=0:dialog "FALSE":end
hdc=dllret
onexit *quit
;dialog ""
repeat
ginfo:x=prmx:y=prmy
prm=hdc,x,y
;dialog ""
dllproc "GetPixel",prm,3,D_GDI
;dialog ""
col=dllret
r=col&$FF,col>>8&$FF,col>>16&$FF
;dialog ""+r.0+","+r.1+","+r.2
if (r.0=255)and(r.1=0)and(r.2=0):goto *key
wait 1
loop
*quit
dllproc "DeleteDC",hdc,1,d_gdi
end
*key
keybd_event 81,-1,0
mes"赤です。"
stop

これで、大丈夫です。マウスを赤いところへ移動してください。

[19525] Re^8: 座標について^^ 投稿者:初心者君 投稿日:05/03/11(金) 09:53
丁寧にご回答して頂き感謝しております

これを機にいっそう勉強してみたいと思います

有り難うございました^^

[19524] むむむ 投稿者:煮魚 投稿日:05/03/11(金) 00:48
独自言語じゃなくてECMAScriptをベースに作ってくれたら神ツールだ
った。
Flashのスタンドアロン版ってな感じで使えたのにな。

[19518] ビットマップ付ボタン 投稿者:Toshi 投稿日:05/03/10(木) 16:00
http://www.kct.ne.jp/~okuda/lab/lab48.html
を見てHSPでボタンに画像を表示しようと思ったのですが、
ソースを見てもまったくどこでどういう処理をしているのかわかり
ません。
例えば「test.bmp」という画像を表示するには、どうすればいいの
でしょうか。
どなたかソースをわかりやすく書き直していただけないでしょうか
・・・m(_ _)m

[19520] Re: ビットマップ付ボタン 投稿者:wolf 投稿日:05/03/10(木) 18:17
> http://www.kct.ne.jp/~okuda/lab/lab48.html
> を見てHSPでボタンに画像を表示しようと思ったのですが、
> ソースを見てもまったくどこでどういう処理をしているのかわかり
> ません。
> 例えば「test.bmp」という画像を表示するには、どうすればいいの
> でしょうか。
> どなたかソースをわかりやすく書き直していただけないでしょうか
> ・・・m(_ _)m

btnimgつかえば簡単ですよ。

#include "llmod.as"
#include "misc.as"
buffer 2
picload "test.bmp"
x=winx:y=winy
gsel 0
objsize x,y
button "",*lab
btnimg 0,2,0,0,x,y
stop
*lab
stop

[19519] Re: ビットマップ付ボタン 投稿者:通行人A 投稿日:05/03/10(木) 16:46
> どなたかソースをわかりやすく書き直していただけないでしょうか
#include "llmod.as"
#define BS_BITMAP $80
#define IMAGE_BITMAP 0
#define BM_SETIMAGE $F7
onexit *fin
//ボタンの作成
objsize 320,200 :pos 5,5:button "",*chg
/*API使用の準備と拡張設定*/ :_hspobjhandle stat:hStatic=stat
prm=hStatic,-16:setwndlong prm,1 :prm=hStatic,-16,dllret|BS_BITMAP:
setwndlong prm
/*画像表示の準備 */ :x="test.bmp" :getptr prm.1,x :prm
.2=IMAGE_BITMAP :prm.5=$10
dllproc "LoadImageA", prm, 6, D_USER :hBmp.0=dllret
/*ボタンに画像を表示 */ :objsend 0, BM_SETIMAGE ,IMAGE_BIT
MAP,hBmp.0,1
stop
//
/*ボタン動作 */ :*chg :stop
/*終了処理 */ :*fin :prm=hBmp.0 :dllproc "Delete
Object",prm,1,D_GDI :end

:無理やり行数を詰めたので醜いですが適切に分割してください。
:原作者には申し訳ないですが演出部分を削除しただけなのでお許し下さ
い。

[19482] HGIMGについて(ゲーム製作について) 投稿者:月ねこ 投稿日:05/03/06(日) 18:35
はじめまして、HSP暦2週間の者です。「HSPでつくる簡単3Dゲーム」を
購入して付属のゲームを少しづつ理解している段階で、サイバテリアを
使って自分でポリゴンを作ったりしています。

ところが、最終章の「スティールランナー」の敵機のMXファイル名
及びMAファイル名を自作のポリゴンに変更すると、コンパイルでは正
常なのですが、いざ実行すると強制終了してしまいます。

いろいろ試してみた結果、ポリゴン数の比較的少ない(ただの立方体程
度)のファイルでしたら実行可能なのですが、私の製作した戦艦(約300K
B)ではまったく実行できません。 思い当たる節としては、ビデオメモ
リが16MBしかないのでそれが原因かと思っているのですが、なにぶん1
台しかPCがないので検証はできていません。
強制終了してしまう原因、どうか皆さまからご指導をいただけました
ら幸いです。

備考(以下は私のPC性能です)
CPU:Athlon1600XP
メモリ:768MB
ビデモメモリ:16MB
OS:WindowsXP HomeEditon

[19488] Re: HGIMGについて(ゲーム製作について) 投稿者:KID 投稿日:05/03/07(月) 18:51 <URL>
初めまして。よろしくお願いします。

> 私の製作した戦艦(約300KB)ではまったく実行できません。
300kbほどあるモデルだと、多分数千ポリゴンはあると思います。
HGIMG2.61では、MXモデルから作成されたオブジェクトの総ポリゴン数
が5000ポリゴンを超えるとエラーが出ます。
多分月、ねこさんの遭遇したエラーはこのエラーだと思います。

たとえば、
1000ポリゴンのMXモデルを5個配置するとエラーが出ます。
5000ポリゴンのMXモデルが1個でも同じくエラーが出ます。
オブジェクトの個数に関係なく
「MXモデルから作られたオブジェクトの総ポリゴン数」
が5000以上はアウトになるようです。

前にパケットサイズを増やす方法でエラーが回避できるのでは?とい
う話もあったのですが、調べたところ、MXモデルから作られたオブジ
ェクトはパケットサイズ増の恩恵を受けていないようです。
パケットサイズの増量で恩恵を受けるポリゴンはaddboxやaddmeshなど
の命令で作られるポリゴンだけのようです。

以上です。参考になれば幸いです。

[19515] HGIMGについて(ゲーム製作について) 投稿者:月ねこ 投稿日:05/03/09(水) 18:27
> HGIMG2.61では、MXモデルから作成されたオブジェクトの総ポリゴン数
> が5000ポリゴンを超えるとエラーが出ます。

とてもいい参考になりました。リアルな3D戦艦シューティングゲームを作り
たかったのですが、総数5000じゃ無理そうです(>_<) 3Dいかだゲーム
になりそうです・・・。
ご返答ありがとうございます。

[19378] マウスカーソル 投稿者:dai 投稿日:05/02/26(土) 17:14
初めまして。

HSPDX.DLLのDirextXの機能を使って
画像を高速提示させようと思っています。
さらに併せてマウスカーソルも表示させようと思っているのですが

なかなかうまくマウスカーソルが表示されません。

どうやったら良いのかご存知の方がいらっしゃれば、
是非ご教授下さればと思います。
宜しくお願い致します。

[19514] Re: マウスカーソル 投稿者:dai 投稿日:05/03/09(水) 09:52
イドさん、こなさん、ご教授下さりありがとうございます。
早速試してみます。

[19463] Re: マウスカーソル 投稿者:イドさん 投稿日:05/03/05(土) 01:59
> さらに併せてマウスカーソルも表示させようと思っているのですが、
> なかなかうまくマウスカーソルが表示されません。

HSPDXFIX.DLL ver0.16 において es_cursor という命令が追加されています。
[http://www.diveto.net/zero/]

[19466] Re^2: マウスカーソル 投稿者:こな 投稿日:05/03/05(土) 07:00
古典的な技としてginfoで座標を拾って
スプライトで擬似的にやるってのがありましたね
es_putとかで

ウィンドウモードのときはちょっと面倒ですけど

[19510] 些細なことです 投稿者:ド初心者 投稿日:05/03/09(水) 01:48
いきなり質問ですが、一番上にINPUTがあって、その内容を読んで
それによっていろいろな文字を表示・更新するという感じなものを
作りたいわけですが、mes を繰り返すとどんどん下に言ってしまうし
かといって、cls をしたらINPUTが消えてしまう。

つまらないことを訊いているのは承知の上ですがどうかご教授願え
ないでしょうか。

[19511] Re: 些細なことです 投稿者:Irisawa 投稿日:05/03/09(水) 02:20
> いきなり質問ですが、一番上にINPUTがあって、その内容を読んで
> それによっていろいろな文字を表示・更新するという感じなものを
> 作りたいわけですが、mes を繰り返すとどんどん下に言ってしまうし
> かといって、cls をしたらINPUTが消えてしまう。

こんな感じでしょうか。

buf = ""
input buf, 100, 25, 8
pos 103, 0
objsize 75
button "押してね", *label
stop

*label
color 255, 255, 255
boxf 0, 25, 100, 45
pos 0, 25
color 0, 0, 0
mes buf
stop

ポイントはcolor命令とboxf命令とpos命令です。

[19472] 短形を詰め込むパズル 投稿者:hira 投稿日:05/03/05(土) 18:08
どうも、いつもお世話になっております。

今回は、可変サイズの複数個の画像を、オフスクリーンバッファになるべく
隙間なく詰め込む方法をお伺いしたいと思い、書き込ませていただきます。

特にゲーム作成ツールなどを作る際には、ユーザーの用意した様々な
サイズの画像を読み込む必要が出てくると思うのですが、皆さんは
どのようにしてそれらの画像をオフスクリーンに配置しているのでしょうか。

[19502] Re: 短形を詰め込むパズル 投稿者:イドさん 投稿日:05/03/08(火) 02:19
> 今回は、可変サイズの複数個の画像を、オフスクリーンバッファになるべく
> 隙間なく詰め込む方法をお伺いしたいと思い、書き込ませていただきます。

直接の解法ではなくて、間接的になりますが。
imgctl.hpiプラグインを用いるのはどうですか?
オフスクリーンバッファに読み込むのではなくて、メモリ上に展開する形になります。

[19507] Re^2: 短形を詰め込むパズル 投稿者:hira 投稿日:05/03/08(火) 15:56
ご返信、ありがとうございます!

imgctl.hpiプラグインは過去ログから検索して発見しておりましたが、
私はこれを、画像をファイルから読み込むものだと勘違いしており、
ファイルアクセスが多くなりそう、という理由で敬遠しておりました。
なるほどそういえば、画像をメモリ上に展開する、ということがよく
言われていますね。便利そうです。

画像を展開する方法をあたってみます。
本当に、ありがとうございました!

> imgctl.hpiプラグインを用いるのはどうですか?
> オフスクリーンバッファに読み込むのではなくて、メモリ上に展開す
る形になります。

[19496] 質問多くてすいません。 投稿者:初心者 投稿日:05/03/07(月) 21:37
画面の1部分を塗りつぶすにはどうすればいいですか?

[19497] Re: 質問多くてすいません。 投稿者:ぼぼぼ 投稿日:05/03/07(月) 21:59
> 画面の1部分を塗りつぶすにはどうすればいいですか?
boxf命令を使えばできると思います。

[19503] Re^2: 質問多くてすいません。 投稿者:初心者 投稿日:05/03/08(火) 09:02
> > 画面の1部分を塗りつぶすにはどうすればいいですか?
> boxf命令を使えばできると思います。
ありがとうございます。

[19483] 音を鳴らす仕組み 投稿者:tm 投稿日:05/03/06(日) 18:38
コンピューターが音を鳴らす仕組みを解説しているサイトがあれば教
えてください。HSPに関係ないのですが、これから必要になると思う
ので、教えてください。

[19498] Re: 音を鳴らす仕組み 投稿者:Yuki 投稿日:05/03/07(月) 22:17
> コンピューターが音を鳴らす仕組みを解説しているサイトがあれば教
> えてください。

コンピュータが→スピーカーが、と言うことでよいですか?
(実際に音を鳴らしてるのはコンピュータじゃなくてスピーカーなので)

どうもまじめに解説すると専門的になってしまうらしくて
わかりやすいサイトはありませんでした。

作り方なら↓のとおりです。
http://www.tohoku-epco.co.jp/new_naze/koubou/html/j_b05.html

1. エナメル線に流れる電気を流すとコイルが電磁石になります。
2. 電流の向きをものすごい速さで切り替えると(一秒間に1000回くらい)
、コイルで出来た電磁石の向きもものすごい速さで切り替わります。
3. すると、その上にのせた磁石がこれまたものすごい速さで引っ張られた
り反発したりしてぶるぶると振動します。
4. その磁石の振動を紙コップが増幅します(糸電話のように)。

本物のスピーカーも同じ仕組みです。

[19492] 色の透明化 投稿者:初心者 投稿日:05/03/07(月) 20:59
画像ファイルを画面に貼り付けるときに、
画像の背景の色を透明化して見えなくなるようにするにはどうすれ
ばいいですか?

[19493] Re: 色の透明化 投稿者: 投稿日:05/03/07(月) 21:13
> 画像ファイルを画面に貼り付けるときに、
> 画像の背景の色を透明化して見えなくなるようにするにはどうすれ
> ばいいですか?

bufferで画像をpicloadして
gmodeを透過モードでgcopy。

[19495] Re^2: 色の透明化 投稿者:初心者 投稿日:05/03/07(月) 21:27
> > 画像ファイルを画面に貼り付けるときに、
> > 画像の背景の色を透明化して見えなくなるようにするにはどう
すれ
> > ばいいですか?
>
> bufferで画像をpicloadして
> gmodeを透過モードでgcopy。
有難うございます。

[19475] 無題 投稿者:初心者 投稿日:05/03/06(日) 11:59
画面の一部分に画像を表示するにはどうすればいいですか?
_____________
| |
| |
| |  こんな感じです
|  画像→ □ |
|_____________|

[19486] Re: 無題 投稿者:Xellos 投稿日:05/03/06(日) 21:45
picloadで読み込むなら
picload "ファイル名",1,x座標,y座標
でできますよ

[19490] Re^2: 無題 投稿者:肉球ハンコ 投稿日:05/03/07(月) 19:21
> picloadで読み込むなら
> picload "ファイル名",1,x座標,y座標
> でできますよ
ありがとうございました^^

[19478] Re: 無題 投稿者:初心者 投稿日:05/03/06(日) 16:46
皆さんありがとうございます

[19477] Re: 無題 投稿者:通行人A 投稿日:05/03/06(日) 14:19
> 画面の一部分に画像を表示するにはどうすればいいですか?

buffer 5 :font msmincho,40 :mes "■" ;picload ".bmp"
gsel 0
gmode 1,40,40 ;or gcopy 5,0,0,40,40
pos 530,360
gcopy 5,0,0
stop

> _____________
> | |
> | |
> | |  こんな感じです
> |  画像→ □ |
> |_____________|

:掲示板に書き込める環境なら本など買わなくても
 ググればこんなサンプルはいくらでもHITすると思うよ。

[19476] Re:画面の一部分に画像を表示するにはどうすれば? 投稿者:MASA77's 投稿日:05/03/06(日) 13:37
こんにちは、MASA77'sです
まず、HSPのヘルプを熟読しましょう。

>画面の一部分に画像を表示
この場合の処理のヒントは

screen
buffer
picload
gsel
pos
gmode
gcopy

これらをヘルプで読めばだいたい解るとおもいます

それでも解らない時は
HSPのリンクで講座をされておられる方のページを見て
まだ解らないときは
最新のHSP26.1入門の本を買いましょう。
本屋で注文もできますがネットショップからの現金引き換え
などでの購入がおすすめです(カードのない学生にお勧め)

面白いし、これ一冊でほぼわかります。
HSP辞書としてかたわらに置くと便利ですし
買って読むのがマスターの一番早道だとおもいます
ダマサレタともって買って読みましょうっ!

[19484] すいません 投稿者:肉球ハンコ 投稿日:05/03/06(日) 20:24
おはつ&質問です
画像をgcopyで表示させてから、その画像の位置はどのように変える
のですか?
教えてください。

[19485] Re: すいません 投稿者:911 投稿日:05/03/06(日) 20:48 <URL>
> おはつ&質問です
> 画像をgcopyで表示させてから、その画像の位置はどのように変える
> のですか?
> 教えてください。

gmode : pos : gcopy の順が楽だと思います。
(例)
color 0,255,0
gmode 4,640,480,128 : pos 20,64 : gcopy 2,0,0,320,480

[19489] Re^2: すいません 投稿者:肉球ハンコ 投稿日:05/03/07(月) 19:21
> > おはつ&質問です
> > 画像をgcopyで表示させてから、その画像の位置はどのように変
える
> > のですか?
> > 教えてください。
>
> gmode : pos : gcopy の順が楽だと思います。
> (例)
> color 0,255,0
> gmode 4,640,480,128 : pos 20,64 : gcopy 2,0,0,320,480
ありがとうございました^^

[19479] 画像拡大しながら、必要ない部分を透過する方法 投稿者:世紀末の鳥 投稿日:05/03/06(日) 17:47
初めまして、世紀末の鳥です。
今回、この掲示板を利用したのは題名に書いたとおり
画像を拡大し、なおかつ透過色を設定する方法です。
もし、あるのでしたら教えてください。お願いします。

[19480] Re: 画像拡大しながら、必要ない部分を透過する方法 投稿者:911 投稿日:05/03/06(日) 18:21 <URL>
> 初めまして、世紀末の鳥です。
> 今回、この掲示板を利用したのは題名に書いたとおり
> 画像を拡大し、なおかつ透過色を設定する方法です。
> もし、あるのでしたら教えてください。お願いします。

// 拡大・透過色設定サンプル
// これで平気かな?
// もし、ギャザが気になるなら…プラグインがおすすめ

dialog "",16,""
if (STAT = 0) {end}

// 仮想画面2~3
buffer 2 : picload REFSTR
ginfo 6
PX = PRMX : PY = PRMY
buffer 3 : boxf
// 実画面(設定)
WINLX = 640
WINLY = 480

repeat
repeat 255
redraw 0
gsel 3
pos 0,0 : gzoom (PX+CNT),(PY+CNT),2,0,0,PX,PY
gsel 0
color 0,0,0 : boxf
// 透過色設定ココ
color 0,255,0
gmode 4,WINLX,WINLY,CNT : pos 0,0 : gcopy 3,0,0,(PX+CNT),(PY+CNT)
redraw 1 : wait 5
redraw 0
loop
loop
stop

[19481] Re^2: 画像拡大しながら、必要ない部分を透過する方法 投稿者:世紀末の鳥 投稿日:05/03/06(日) 18:29
早速の回答、ありがとうございます。
一応これで試してみます。

[19473] インターネットロック 投稿者:G大将 投稿日:05/03/05(土) 22:15
いつもお世話になってます。
またよく分からないことがあったので、質問します。

よくセキュリティソフト等で、インターネットロックというものが
ありますが、あれはHSPで出来ないのでしょうか?
よろしくお願いします。

[19471] hmm 投稿者:shoot 投稿日:05/03/05(土) 15:42
hmm.dllで、動画を拡縮、回転、アルファブレンドを用いて表示可能(
DGBUFFERとして扱うことができる) らしいのでデモ(movie2dgbuffer.
as)を使ってみたのですが、動画にdivxコーデック使っていると、メ
インウィンドゥは真っ黒で別窓が開いてしまい正しく実行できません

これは仕様でしょうか、それとも回避方法はあるでしょうか?

[19469] グループボックス 投稿者:トッポ 投稿日:05/03/05(土) 14:32
objsend命令で作成できるグループボックスは、最小化してまた戻す
と後ろの画面が表示され(焼きつく?)てしまいます。
回避策がありましたら是非教えてください。困っています。

[19438] mp3再生中にwav 投稿者:のじ 投稿日:05/03/03(木) 17:10
sndloadで読み込んだmp3を再生中に
sndloadで読み込んだwavを再生することが出来ないのですが
それを可能にする方法とか無いでしょうか?

[19468] Re: mp3再生中にwav 投稿者:Xellos 投稿日:05/03/05(土) 10:51
自分の環境ではsndloadのバッファ番号が違えば同時に演奏できました。
DirectAudio使えば簡単なんでしょうか。

[19440] Re: mp3再生中にwav 投稿者:英ちゃん 投稿日:05/03/03(木) 17:20
> sndloadで読み込んだmp3を再生中に
> sndloadで読み込んだwavを再生することが出来ないのですが

僕はまだまだ初心者ですが、
確か音声ファイルが違えば、同時に再生できたと思うんですが・・・。

再生番号(バッファ)が同じとか、確かめてみて下さい。

[19442] Re^2: mp3再生中にwav 投稿者:のじ 投稿日:05/03/03(木) 17:48
確かめましたがダメでした。

sndload "1.mp3",0,0
sndload "14.wav",1,1
snd 0
snd 1
stop

とやってもwavが流れず
流す順番を逆にすればmp3が流れません。

[19443] Re^3: mp3再生中にwav 投稿者:MASA77's 投稿日:05/03/03(木) 18:34
こんばんはMASA77'です
確か標準命令ではそのような同時再生は不可能だったと思います。
MCI命令で可能かどうかは解りませんが、
やはりプラグインに頼るしかないと思います
MIAさんのdsoundexとかお勧めです

余談ですが標準命令でもmidiとwavの兼用なら出来ます。

[19444] Re^4: mp3再生中にwav 投稿者:のじ 投稿日:05/03/03(木) 18:58
なるほど。
プラグインのことすっかり忘れていました。
ありがとうございます

[19450] Re^5: mp3再生中にwav 投稿者:こな 投稿日:05/03/03(木) 22:44
自分の場合MCI命令でBGMのMP3を鳴らして
snd命令で効果音鳴らしてます。

[19454] Re^6: mp3再生中にwav 投稿者:のじ 投稿日:05/03/04(金) 14:21
よろしければやり方を教えてもらえないでしょうか

[19455] Re^7: mp3再生中にwav 投稿者:911 投稿日:05/03/04(金) 15:33 <URL>
> よろしければやり方を教えてもらえないでしょうか

http://sprocket.babyblue.jp/html/hsp_mci.htm
を、参考にすると大分MCI使えると思います。

[19460] Re^8: mp3再生中にwav 投稿者:のじ 投稿日:05/03/04(金) 20:25
ありがとうございます。
早速勉強してきます

[19461] Re^9: mp3再生中にwav 投稿者:こな 投稿日:05/03/04(金) 22:24
たぶんこれでいいんだろうと思って自分がやってる方法
(¥はもちろん半角)

;----BGM load--
mci "close all" ; 別にいらないけどなんとなく…
mci "open WAV¥¥LP¥¥DANCERS7.MP3 alias keiiti_kool"
;----SE load--
sndload "WAV¥¥Nageru.wav",0
sndload "WAV¥¥Tataku.wav",1
;--------------

*game_start
mci "play keiiti_kool repeat"
*main ;rrrrrrrrrrrrrrrrrrrrrr
await 16
stick stk
if stk&32 : snd 0 ; Enter key
if stk&16 : snd 1 ; Space key
goto *main ;rrrrrrrrrrrrrrrrr
*game_end
mci "close all"
end

[19392] グローバルIPの取得 投稿者:ぴくみん 投稿日:05/02/28(月) 16:27
こんにちは。ぴくみんと申します^^。早速なのですが、HSPにてグローバルIPアドレスの取得方法のスクリプトを教えていただきたいんですが・・・。
当方の環境はMS-WinXP-SP2で、通信関係はpcbnet.dllを使おうと考えています。失礼ですが、よろしくお願いしますm(__)m

[19464] Re: グローバルIPの取得 投稿者:イドさん 投稿日:05/03/05(土) 02:05
> 早速なのですが、HSPにてグローバルIPアドレスの取得方法のスクリプトを教えていただきたいんですが・・・。

恐らく取得できないと思います。
私は外部サーバーにIPアドレスを返すCGIを設置して対処しましたが、
根本的な解決にはなっていませんね^^;

[19465] Re^2: グローバルIPの取得 投稿者:Irisawa 投稿日:05/03/05(土) 02:27
> 恐らく取得できないと思います。
> 私は外部サーバーにIPアドレスを返すCGIを設置して対処しましたが、
> 根本的な解決にはなっていませんね^^;

これ、取得できると良いのですけどね。
他のプログラムでもルータとか使っている環境ではプライベートIPが
取得されてしまいますね。
DiCEではグローバルIPが取得できているみたいなんですがどうやって
いるんでしょうか?

http://www.hi-ho.ne.jp/yoshihiro_e/dice/

[19467] Re^3: グローバルIPの取得 投稿者:911 投稿日:05/03/05(土) 07:45 <URL>
えとこんなのありますた。

http://www3.ocn.ne.jp/~mtrk/

DNS Do JP [Dynamic DO!.jp用DDNS自動更新ソフト]
私の環境では、グローバルを探して…たような(;
この方に聞けばわかると思います…

HSPはいろんな方が使ってすごいとです。

[19445] @ 投稿者:marisabell 投稿日:05/03/03(木) 20:14
いろんなサンプルのスクリプトみるとたまにD_USERやdllretや
ll_poke等の最後に"@"(アット)がありますが、@の意味は何ですか?
なんで@をつけたりつけなかったりするんですか?
宜しくお願いします

[19448] Re: @ 投稿者:Irisawa 投稿日:05/03/03(木) 21:40
> いろんなサンプルのスクリプトみるとたまにD_USERやdllretや
> ll_poke等の最後に"@"(アット)がありますが、@の意味は何ですか?
> なんで@をつけたりつけなかったりするんですか?
> 宜しくお願いします

@はモジュール空間の区切り文字です。
CやPerlなどのネームスペースに近い概念をHSPに導入したもので
モジュール空間毎に別々の変数領域を設定できます。


#module "_module"
#deffunc testprint
a = 1
b = "1"
mes "・モジュール内"
mes "a=" + a
mes "b=" + b
mes "a@=" + a@
mes "b@=" + b@
return
#global

a = 2
b = "2"
testprint
mes "・グローバル
mes "a=" + a
mes "b=" + b
mes "a@=" + a@
mes "b@=" + b@
mes "a@_module=" + a@_module
mes "b@_module=" + b@_module
stop

グローバル内から特定のモジュール空間変数やモジュール内から他の
モジュール空間変数にアクセスする場合は「変数名@モジュール名」で
アクセスでき、モジュール内からグローバルの変数にアクセスするには
「変数名@」とします。

dllretやD_USERに@をつけているサンプルではモジュール内からグローバルの
変数にアクセスするためにつけてあるか過去のバージョンにて仕様上、
つける必要があったのでそのときの習慣上からそうなっているものが
あります。
dllretはグローバルの変数なのでモジュール内からアクセスするには
@を使用しなければいけませんがD_USERは現在では#defineにglobalが
ついているのでどこからでもアクセスできます。
(つまり、現在はD_USERでは不要になっています)

ちょっと説明が下手でこれ以上うまく説明できませんが分かりました
でしょうか?

[19462] お返事有難うございました 投稿者:marisabell 投稿日:05/03/05(土) 00:44
サンプルスクリプトまで書いて頂いて有難うございます、
とても勉強になりました。

[19446] つまらない質問 投稿者:Bive 投稿日:05/03/03(木) 20:51
つまらない質問ですけど、HSPを利用しているユーザーはどれくらい
いると思いますか?
ダウンロードしたソフトのうち、HSPで作られているというものも、
そこそこ見かけます。
それから、HSPのダウンロード数はどれくらいなんですか?
きっとものすごい数だと思いますけど。

[19449] Re: つまらない質問 投稿者:Irisawa 投稿日:05/03/03(木) 21:58
> つまらない質問ですけど、HSPを利用しているユーザーはどれくらい
> いると思いますか?
> ダウンロードしたソフトのうち、HSPで作られているというものも、
> そこそこ見かけます。
> それから、HSPのダウンロード数はどれくらいなんですか?
> きっとものすごい数だと思いますけど。

統計はとっていないようですね。
(Vectorや窓の杜などのダウンロードサイトからのダウンロード数は
サイト側で統計をとっていると思うので分かると思いますが公式からの
DLはカウントしていない?)
まあ、DL数をカウントしていてもそれは正確な値ではなく(DL失敗や
再インストールのために同じ人が何度もDLする場合もありますし他にも
さまざまな理由によって)完全な数値は割り出せません。

[Hot Soup Processor]を主要なサーチエンジンで検索してみると

Yahoo! JAPAN:120022件
Google(日本語):10400件
Infoseek:1530件
Infoseek(Google):1230件
goo:1240件
Fresheye:30181件
MSN サーチ:30238件
Excite(Google):72700件
BIGLOBEサーチ(Google):1240件

くらいヒットしているので知名度は結構あることになりますね。
海外のサーチエンジンではヒット数が少し少ないです。
(当たり前ですが)

[19459] Re^2: つまらない質問 投稿者:Bive 投稿日:05/03/04(金) 20:11
> > つまらない質問ですけど、HSPを利用しているユーザーはどれく
らい
> > いると思いますか?
> > ダウンロードしたソフトのうち、HSPで作られているというもの
も、
> > そこそこ見かけます。
> > それから、HSPのダウンロード数はどれくらいなんですか?
> > きっとものすごい数だと思いますけど。
>
> 統計はとっていないようですね。
> (Vectorや窓の杜などのダウンロードサイトからのダウンロード数は
> サイト側で統計をとっていると思うので分かると思いますが公式から

> DLはカウントしていない?)
> まあ、DL数をカウントしていてもそれは正確な値ではなく(DL失敗や
> 再インストールのために同じ人が何度もDLする場合もありますし他に

> さまざまな理由によって)完全な数値は割り出せません。
>
> [Hot Soup Processor]を主要なサーチエンジンで検索してみると
>
> Yahoo! JAPAN:120022件
> Google(日本語):10400件
> Infoseek:1530件
> Infoseek(Google):1230件
> goo:1240件
> Fresheye:30181件
> MSN サーチ:30238件
> Excite(Google):72700件
> BIGLOBEサーチ(Google):1240件
>
> くらいヒットしているので知名度は結構あることになりますね。
> 海外のサーチエンジンではヒット数が少し少ないです。
> (当たり前ですが)

候補が万単位ってことは、かなり凄いですね。
やっぱりHSPは便利で使いやすいから人気がでるんでしょうね。
それにフリーですし。

[19458] 画像のコピー 投稿者:lalze 投稿日:05/03/04(金) 20:09
現在、壁紙の画像をクリップボードにコピーさせるということに
挑戦しているのですが、どうしてもできません。
何かいい方法はあるのでしょうか?
ちなみに自分が試した方法は、bufferに壁紙の画像を読み込み、
そこからサイズを取得して・・・とやる方法だったのですが
サイズ取得からが出来ませんでした。

[19457] 宣伝 投稿者:Toshi 投稿日:05/03/04(金) 19:55 <URL>
HPを公開いたしました。
お暇なときにお立ち寄りください。
Toshi's Recess Room
http://www.geocities.jp/toshi21313/

[19429] EXECの命令について 投稿者:refstr 投稿日:05/03/02(水) 22:06
HSPの標準命令で"exec"があります…。
その命令で1つお教えしてもらいたいことがあります…。

exec "C:\\Program Files\\xxxx\\yyyy.exe" /s,0

見てわかるようにエラーがでます。
パス{"C:\Program Files\xxxx\yyyy.exe" /s}のEXEを開く
にはどうしたらよいのでしょうか?
どなたかご存知の方教えてください。

国語力低の質問の仕方をお許しください。

[19431] Re: EXECの命令について 投稿者:Irisawa 投稿日:05/03/02(水) 22:35
> exec "C:\\Program Files\\xxxx\\yyyy.exe" /s,0

> 見てわかるようにエラーがでます。
> パス{"C:\Program Files\xxxx\yyyy.exe" /s}のEXEを開く
> にはどうしたらよいのでしょうか?
> どなたかご存知の方教えてください。

スペースを含むパスなどWin32以降の長いファイル名(LFN:Long File Name)は
パスと実行ファイルなどの引数とを区別するためにダブルクォーテーションで
囲む必要があります。
あと、書式が間違えています。

exec "\"C:\\Program Files\\xxxx\\yyyy.exe\" /s", 0

[19437] Re^2: EXECの命令について 投稿者:refstr 投稿日:05/03/03(木) 16:49
LonelyWolf Irisawaさん返信ありがとうございます
無事成功しました。
ダブルクォーテーションの使い方がよくわかりました。
ところでですが、/sなどの記号は何の意味で、その機能はHSPでも使用
できるのでしょうか?
いわゆるメリットとはなんでしょうか?

[19441] Re^3: EXECの命令について 投稿者:Xellos 投稿日:05/03/03(木) 17:36
こんにちは。
/s 等の意味ですが、これはコマンドラインパラメータです。
HSP製のソフトに対してこれを行うと、システム変数cmdlineに代入されます。
よってcmdline変数を参照してやれば扱うことは可能ですよ。

[19453] Re^4: EXECの命令について 投稿者:refstr 投稿日:05/03/04(金) 12:42
なるほど〜
アリガトウございます。
参考になりました。

[19430] Re: EXECの命令について 投稿者:LonelyWolf 投稿日:05/03/02(水) 22:31
> HSPの標準命令で"exec"があります…。
> その命令で1つお教えしてもらいたいことがあります…。
>
> exec "C:\\Program Files\\xxxx\\yyyy.exe" /s,0
>
> 見てわかるようにエラーがでます。
> パス{"C:\Program Files\xxxx\yyyy.exe" /s}のEXEを開く
> にはどうしたらよいのでしょうか?
> どなたかご存知の方教えてください。
>
> 国語力低の質問の仕方をお許しください。
exec "\"C:\\…省略…\\yyyy.exe\" /s", 0
こういうことでしょうか。

ダブルクオーテーション(")に囲まれた中で、
ダブルクオーテーションを使うには、
\" を使います。

[19452] 質問です>< 投稿者:ルアン 投稿日:05/03/04(金) 03:24
初めまして。
実行ファイル(アプリケーションファイル)にバージョン情報など
の情報を書き込むには、
どうしたらよいのでしょうか??C言語とかでは記述できるようです
が、HSPでは分かりません><

[19413] 加俊 投稿者:加俊 投稿日:05/03/01(火) 22:29
今ゲームを作っているのですが、
txtファイルなどのデータを一定のタイミングで一行ずつ
読み出したいのですが、データを扱うことのやり方がわかっていま
せん。
そういうことを解説しているサイトなどがありましたら、
教えていただけないでしょうか?
よろしくお願いします。

[19419] Re: 加俊 投稿者:Ben 投稿日:05/03/02(水) 04:18
> 今ゲームを作っているのですが、
> txtファイルなどのデータを一定のタイミングで一行ずつ
> 読み出したいのですが、データを扱うことのやり方がわかっていま
> せん。
> そういうことを解説しているサイトなどがありましたら、
> 教えていただけないでしょうか?
> よろしくお願いします。

サイトは知らないですけど
12歳からのHSPのRPGの製作コーナーで紹介
されているんではないでしょうか?
間違っていたらすいません。

[19447] Re^2:テキストファイル 投稿者:加俊 投稿日:05/03/03(木) 21:25
> > 今ゲームを作っているのですが、
> > txtファイルなどのデータを一定のタイミングで一行ずつ
> > 読み出したいのですが、データを扱うことのやり方がわかって
いま
> > せん。
> > そういうことを解説しているサイトなどがありましたら、
> > 教えていただけないでしょうか?
> > よろしくお願いします。
>
> サイトは知らないですけど
> 12歳からのHSPのRPGの製作コーナーで紹介
> されているんではないでしょうか?
> 間違っていたらすいません。

忠告を受けましたので、もう一度お礼を言っておきます。
ありがとうございました。

[19414] Re: 加俊 投稿者:911 投稿日:05/03/01(火) 23:03 <URL>
> txtファイルなどのデータを一定のタイミングで一行ずつ

単純にアクセスする程度なら。

notesel BUF ; 扱う変数をBUFに指定
noteload "ファイル名" ; 変数BUFにファイル内容を読み込む

notemax MAX ; Ver3.0からはnoteinfo関数です
repeat MAX
noteget A,CNT ; BUFのCNT行目をAに取得
mes A
loop
stop

紹介サイトですが…あまりnote関連が見つからないです。
ただ、HSP付属のヘルパで【note】と検索してみると分かるかもです。

[19435] 指定した文字列の削除 投稿者:英ちゃん 投稿日:05/03/03(木) 11:21
はじめまして、英ちゃんです。

早速質問なのですが、
指定した文字から、指定した文字までを削除する方法は
どうすればいいのでしょうか?

文字列の資料を見ましたがよく理解できてません。

よろしくお願いします。

[19436] Re: 指定した文字列の削除 投稿者:数英知 投稿日:05/03/03(木) 15:01
こんな感じでどうですか?

a="あいうえお"
e=""
f=""
h=""
print a
input e
input f
button "実行",*label
stop
*label
strlen d,a
repeat d/2
strmid b,a,c,2
if b==e:g=1
if g!=1:h+=b
if (g==1)&(b==f):g=0
if c==d:break
c+=2
wait 1
loop
print h
stop

ごまかしたところがあったりしてソース汚いと思いますが…。

[19439] Re^2: 指定した文字列の削除 投稿者:英ちゃん 投稿日:05/03/03(木) 17:17
ありがとうございます。

削除できました!

[19424] HSPHP、プラグインの検索 投稿者: 投稿日:05/03/02(水) 16:46
はじめまして!最近HSPを始めました。
やっと、プラグインが使えたりするようになったのですが、
プラグインやHSPのホームページの検索サイトはありませんか?
もしよかったら、教えてください!!

[19425] Re: HSPHP、プラグインの検索 投稿者:911 投稿日:05/03/02(水) 16:53 <URL>
> はじめまして!最近HSPを始めました。
> やっと、プラグインが使えたりするようになったのですが、
> プラグインやHSPのホームページの検索サイトはありませんか?
> もしよかったら、教えてください!!

http://www.vector.co.jp/vpack/filearea/win/prog/hsp/
http://download.goo.ne.jp/software/category/win/prog/hsp/
http://null.cun.jp/hsp_search/yomi.cgi

などがいいでしょう。
あとは、【目的】+【hsp】+【プラグイン】で結構出てきます。
HSPユーザーリンク先にもたくさんのプラグインが公開されてるので見てみるといいす。

[19434] Re^2: HSPHP、プラグインの検索 投稿者:GENKI 投稿日:05/03/02(水) 23:33
他にも
http://www.freeprice.jp/soup/
http://quasiquote.org/hspwiki/HSP%a5%d7%a5%e9%a5%b0%a5%a4%a5%f3%a1%a6%a5%e2%a5%b8%a5%e5%a1%bc%a5%eb%a4%ce%a5%ea%a5%b9%a5%c8
ってのもあります。

[19428] 加俊 投稿者:加俊 投稿日:05/03/02(水) 21:51
911さん、Benさん。
ありがとうございました。

[19432] Re: 加俊 投稿者:Irisawa 投稿日:05/03/02(水) 22:38
> 911さん、Benさん。
> ありがとうございました。

返信は流れが分からなくなるので新規スレを起てずにレスで返して
ください。
(返信を新規で起てていたらツリー型掲示板の意味がありません)
あと、タイトルは内容の分かるものにしてください。

[19405] HSP 3.0のリリース時期 投稿者:AAA 投稿日:05/03/01(火) 14:32
みなさんこんにちは。
早速質問なのですが。
HSP 3.0 の正式なリリース時期は
一体いつごろでしょうか。
お時間が空いている人がいたら
お答えください。
お願いします。

[19407] Re: HSP 3.0のリリース時期 投稿者:通行人A 投稿日:05/03/01(火) 15:14
> HSP 3.0 の正式なリリース時期は
> 一体いつごろでしょうか。

 当初予定の4月から大幅に遅れて7月ごろと言う書き込みがβ版
掲示板にありましたが
β2からの動向から推測するに年内に安定するかどうか疑問。

:β掲示板の方が適切かと。

[19423] Re^2: HSP 3.0のリリース時期 投稿者:AAA 投稿日:05/03/02(水) 16:32
>  当初予定の4月から大幅に遅れて7月ごろと言う書き込みがβ版
> 掲示板にありましたが
> β2からの動向から推測するに年内に安定するかどうか疑問。
そうですか。
何時 HSP 3.0 に手を出すか迷っていたのですが、
当分は今のバージョンを使うことにします。
ありがとうございました。

> :β掲示板の方が適切かと。
すみませんでした。
そちらへ行かせていただきます。

どうも返信してくださってありがとうございました

[19367] hmm(directmusic)使用時のMIDI音源 投稿者:tm 投稿日:05/02/26(土) 10:49
今、hmm.dllver1.4(DirectXのバージョンは9.0b)を使用してゲームを
作っているのですが、MIDIが意図した音で再生されません。
具体的に言うとMIDI音源はMicrosoftGSを使用しているのですが、Di
rectmusicを使用して再生するときには、この音源では再現できない
コーラスや音響がかかっていたり、楽器がピアノになったりします(M
IDIの楽器はGMに準じたものを使っています)。ちなみにver1.3でも同
じでした。
これはhmmのバグでしょうか。それともDirectmusicにはMIDI音源が
別に用意されているのでしょうか。また、その音源はGMに準じたもの
なんでしょうか。長い質問ですがよろしくお願いします。

[19403] Re: hmm(directmusic)使用時のMIDI音源 投稿者:masa77's 投稿日:05/03/01(火) 12:44
はじめましてmasa77'Sです
> 今、hmm.dllver1.4(DirectXのバージョンは9.0b)を使用してゲームを
> 作っているのですが、MIDIが意図した音で再生されません。

自分も同じような症状(ピアノになっている)
が起きていて色々調べたところ
どうもMIDIファイルのシステムリセットが影響しているようです
・GMリセット
・GSリセット
XGに関しては試してないので解りませんが、
とにかく、システムリセットが入っているとピアノ化してしまう
ようです。詳しい原因はわかりませんが、シーケンサー等で
リセット系のエクスクルーシヴを削除すると問題解決するかも...

とりあえずmidiの曲自作が出来るならシステムリセットを入れない
ほうが賢明だとおもいます。何もいれなかったら鳴りました。
環境はほぼ一緒のhmm.dll1.4(DirectXのバージョンは9.0c)
です。

[19422] Re^2: hmm(directmusic)使用時のMIDI音源 投稿者:tm 投稿日:05/03/02(水) 13:38
> 自分も同じような症状(ピアノになっている)
> が起きていて色々調べたところ
> どうもMIDIファイルのシステムリセットが影響しているようです
> ・GMリセット
> ・GSリセット
> XGに関しては試してないので解りませんが、
> とにかく、システムリセットが入っているとピアノ化してしまう
> ようです。詳しい原因はわかりませんが、シーケンサー等で
> リセット系のエクスクルーシヴを削除すると問題解決するかも...
どうもありがとうございました。

[19415] NumericUpDown 投稿者:774さん 投稿日:05/03/01(火) 23:12
VBみたいなNumericUpDownをHSPで使うにはどうすれば良いでしょうか

ボタンだとでか過ぎますし、

現在のやり方は
自作画像を置いてクリック座標を調べ、合っていたらinput内の変数
を++や--して調べてます。
もっと効率のよい方法があれば教えていただきたいです。

[19418] Re: NumericUpDown 投稿者:911 投稿日:05/03/02(水) 04:10 <URL>
> VBみたいなNumericUpDownをHSPで使うにはどうすれば良いでしょうか
> ?

#include "llmod.as"
#include "udbtn.as"

で、呼び出してモジュールを使用してはどうですか?
詳細はヘルプ【udbtn】で出て来ますので…

udbtn アップダウンボタンの作成
sel_udbtn 操作するアップダウンボタンの選択
udset アップダウンボタンの設定
udget アップダウンボタンの各種情報の取得

参考になれば嬉しいです。

[19421] Re^2: NumericUpDown 投稿者:774さん 投稿日:05/03/02(水) 13:10
>>お二人様
やりたい事が上手く行きました。
アドバイス有難う御座います。

[19416] Re: NumericUpDown 投稿者:Mogu 投稿日:05/03/02(水) 02:28
API呼び出せば楽に実現できるのでしょうが
僕には触れられない領域なので以前に強引に作ったものが
参考になれば幸いです。

a=100
input a,100,20,0
font "",3 : objmode 2 : objsize 20,10
pos 100,0 : button "▲",*purasu
pos 100,10 : button "▼",*mainasu
stop
*purasu
a++ : objprm 0,a
stop
*mainasu
a-- : objprm 0,a
stop

[19401] プロジェクタを接続するとbgscrが有効になりません 投稿者:ボブ 投稿日:05/03/01(火) 08:33
プロジェクタを接続した状態で、画面いっぱいに表示したいのですが
、なぜか下の方法では、画面が中央に小さく(640×480)表示
されてしまいます。プロジェクタをパソコンからはずすと画面いっぱ
いに表示されます。
chgdisp 1
bgscr 2,640,480,0
cls 4
color 255,255,255
mes "TEST SCREEN..."
mes "[ALT]+[F4]で終了します"
stop
 これを回避する方法はありますか?教えてください。

[19402] Re: プロジェクタを接続するとbgscrが有効になりません 投稿者:911 投稿日:05/03/01(火) 11:07 <URL>
> プロジェクタを接続した状態で、画面いっぱいに表示したいのですが
ドライバ関連ですかね…
OSとプロジェクタは何製かをとか書くと詳しく調べられそうですが…

> chgdisp 1
あんまり変わりませんが、chgdisp 3は試しましたか?

[19420] Re^2: プロジェクタを接続するとbgscrが有効になりません 投稿者:ボブ 投稿日:05/03/02(水) 08:05
911さん、ありがとうございます。
 
> あんまり変わりませんが、chgdisp 3は試しましたか?
 ためして見ましたが、変わりませんでした。
 プロジェクタはパナソニック TH-L759J、パソコンは富士通FMV-BIBLO 
MG12Cです。

[19409] hgimg ・回転順序は常にZ->Y->Xとなります 投稿者:pp7 投稿日:05/03/01(火) 18:45
hgimg,hgimgxのリファレンスマニュアルに

・回転順序は常にZ->Y->Xとなります

とかかれていますが、どういう意味ですか?
だれか教えてください。

[19411] Re: hgimg ・回転順序は常にZ->Y->Xとなります 投稿者:huruku 投稿日:05/03/01(火) 19:10
> hgimg,hgimgxのリファレンスマニュアルに
>
> ・回転順序は常にZ->Y->Xとなります
>
> とかかれていますが、どういう意味ですか?
> だれか教えてください。
これは3D空間を考えるとわかります。
画面の垂直方向をY軸、水平方向をX軸、奥行き方向をZ軸となります。
そして、回転はこの3軸のどれを基準に回転させるかということです。
よって、Z->Y->XはZ軸で回転し、回転後さらにY軸で回転、回転後さ
らにX軸で回転となります。

[19412] Re^2: hgimg ・回転順序は常にZ->Y->Xとなります 投稿者:911 投稿日:05/03/01(火) 19:13 <URL>
> これは3D空間を考えるとわかります。
> 画面の垂直方向をY軸、水平方向をX軸、奥行き方向をZ軸となります。
> そして、回転はこの3軸のどれを基準に回転させるかということです。
> よって、Z->Y->XはZ軸で回転し、回転後さらにY軸で回転、回転後さ
> らにX軸で回転となります。

つまり、こゆことではないでしょうか。
http://www.c3.club.kyutech.ac.jp/~sukiyaki/3dt/afin.html#world

上記に書いてありますが…
回転させたりする順序によっては、位置が全く変わるからだそうです。

[19404] dialogのファイル選択のパス 投稿者:とりす 投稿日:05/03/01(火) 14:19
こんにちは。

chdir パス
dialog "",16

とやっても、ファイル選択画面の初期バスが
chdirで指定したパスにならないのですが
どうしたらいいですか?

[19406] Re: dialogのファイル選択のパス 投稿者:takafm 投稿日:05/03/01(火) 14:52 <URL>
chdirでカレントディレクトリを変えても、初期パスはchdirで指定したパス
にはならないようです。multiopen命令を使えば、初期パスを指定できます
よ。

[19408] Re^2: dialogのファイル選択のパス 投稿者:とりす 投稿日:05/03/01(火) 15:20
> chdirでカレントディレクトリを変えても、初期パスはchdirで指定し
たパス
> にはならないようです。multiopen命令を使えば、初期パスを指定で
きます
> よ。

わかりました。
どうもありがとうございます。

[19393] ウインドウ色 投稿者:pule 投稿日:05/02/28(月) 17:29
質問です。
ディスプレイの16bitと32bitとでは描画したときの色が違うのです
が、
(color 192,192,192としても16bitだと微妙に色が変わる)
boxfでウインドウの背景を↑にして標準ウインドウの色にしている
のですが、
16bitであると色が微妙に変わり、ボタンを配置したときにウインド
ウとボタンの色が異なるため違和感が出てしまいます。
16bitでもウインドウの背景をボタンと同じ色にするにはどうすれば
いいのでしょうか。

当方Win98SEです。

[19400] Re: ウインドウ色 投稿者:ANTARES 投稿日:05/02/28(月) 23:43 <URL>
>16bitでもウインドウの背景をボタンと同じ色にするにはどうすれば
>いいのでしょうか。
>
>当方Win98SEです。
 とりあえず、color 191,191,191とすればOKですが、
WinXP等でも同じにするためにはhurukuさんが
言うようにGetSysColorを使う必要があります。
しかし、Win95・Win98では192,192,192が取得されるので
元の木阿弥です。
 GetSysColorで取得したRGB値をそれぞれ
r,g,bとすると、次のようにするといいでしょう

if r: if r&7==0: r--
if g: if g&7==0: g--
if b: if b&7==0: b--

もっとも、実用上は
if r: r--
if g: g--
if b: b--
で十分かも。

[19399] Re: ウインドウ色 投稿者:huruku 投稿日:05/02/28(月) 20:15
> 16bitでもウインドウの背景をボタンと同じ色にするにはどうすれば
> いいのでしょうか。
>
> 当方Win98SEです。

APIのGetSysColorを使うといいかもしれません。
ちょくとさんのページですが、参考になるかと。
ttp://yokohama.cool.ne.jp/chokuto/urawaza/api/GetSysColor.html

[19384] テキストの暗号化 投稿者:Shunite 投稿日:05/02/27(日) 12:23
質問です。(かなり長いですが)
alloc mem,5000
sdim filename,35000
title"特別テキスト"
onexit *owari
*main
cls 1
mesbox filename,600,430,5
pos 330,430
button"NEW",*shinki
pos 394,430
button"SAVE",*sav
pos 460,430
button"LOAD",*lod
pos 526,430
button"END",*owari
stop
*shinki
filename=""
goto *main
*sav
dialog"mcs",17,"暗号テキスト"
if stat=0 : goto *main
exist filename
key=key+57&255
repeat strsize
peek scr,mem,cnt
dst=src^key
poke filename,cnt,dst
loop
strsize=filesize
bsave refstr+".mcs",filename,filesize
dialog"セーブ完了"
goto *main
*lod
dialog"txt;*dat;*sav",16,"暗号テキスト"
if stat=0 : goto *main
strlen buf,filename
bload refstr,filename,buf
objprm 0,filename
goto *main
*owari
end
この中に↑

dialog"",16
if stat=0 : end
filename=refstr
exist filename
filesize=strsize
alloc mem,filesize
bload filename,mem,filesize
key=key+57&255
repeat filesize
peek src,mem,cnt
dst=src^key
poke mem,cnt,dst
loop
bsave filename+"_",mem,filesize
dialog"完了"
end

これを混ぜて、
テキストを保存するときに暗号化したいのですが、
どうすればいいですか?
長文失礼しました。

[19395] Re: テキストの暗号化 投稿者:textarea 投稿日:05/02/28(月) 18:08
わざわざ*loadを、*lodにしたり、*saveを、*savにしたりするのは、やめて
もらえませんかね。
自分が作ったプログラムのソースをそのまんま使われたくない気持ちは、
わかります。
だからといってちょっと変更して、自分が作る時は*load、*saveを使おう
とか考えているんでしょうが、
そういう馬鹿げた事はやらないでもらえませんかね。
貴方の思考回路は一体どうなってるんですか?ほんと障害児の見本と言っ
ても、過言では無いですよね。
答える側としても、プログラムがよくわからなくなってしまったりするの
でやめて頂けませんか?
とりあえずREMOTE_HOSTを記録させて頂きましたので、これ以上続くような
ら「おにたま」とかいう引き篭もりキモヲタに、通報して、
アクセス制限という厳重な処置を取らせて頂きますので。では。

[19394] ラジオボタン 投稿者:ナマズ 投稿日:05/02/28(月) 17:41
ラジオボタンが変な風になるんですがちゃんと表示する方法教えてく
ださい

font "MS ゴシック",15
objmode 2
button "1",*btn
id=0:objsend id,$f4,$09,a,1
button "2",*btn
id=1:objsend id,$f4,$09,a,1
button "3",*btn
id=2:objsend id,$f4,$09,a,1
button "OK",*chk
stop
*btn
id=stat
stop
*chk
if id=0 : dialog "1を選びましたね" : stop
if id=1 : dialog "2を選びましたね" : stop
if id=2 : dialog "3を選びましたね" : stop

[19396] Re: ラジオボタン 投稿者:SHI 投稿日:05/02/28(月) 18:12
> ラジオボタンが変な風になるんですがちゃんと表示する方法教えてく
> ださい

font "MS ゴシック",15
objmode 2 : a=-1 //aに-1を代入しておく
button "1",*btn
id=0:objsend id,$f4,$09,a,1

[19369] 綺麗に印刷 投稿者:pod 投稿日:05/02/26(土) 12:26
大きな画像を印刷する際、そのままの大きさで印刷すると用紙からは
み出してしまい、gzoom等で縮小してから印刷すると、ジャギーが目
立ってしまいます。
画像の品質を維持したまま小さく印刷することはできませんか?

[19391] Re: 綺麗に印刷 投稿者:くに 投稿日:05/02/28(月) 00:26 <URL>
はじめまして、podさん。くにと申します。

僕の調べたところによると、

さくらの機能拡張プラグイン
http://www.silkroad.ne.jp/sakura/web/main/plugin/srextent.htm#anchor04

K-K's Software page
http://www.chichibu.ne.jp/~kawahira/soft/forhsp.htm

HSPの部屋
http://www3.ocn.ne.jp/~julius/mizuki/hsp/hsp.htm

http://www3.ocn.ne.jp/~julius/mizuki/hsp/souce1.txt

など、いろいろ印刷関係のものはありました。

役立ちそうなものがあったら、使ってみると良いかもしれません。

[19390] 白黒画像のbmpsaveについて 投稿者:こな 投稿日:05/02/27(日) 23:02
はじめまして。
簡単な作画ソフトを作っているのですが
screen命令で8bitカラーで初期化すると8bitカラーでbmpsaveを使っ

保存できるようなのですが、1bitカラー(白黒)やグレースケール
で保存をする
方法ってないものでしょうか?
dpiも固定な様ですので弄ってみたいです。

HSPセンターで
http://www.hspcenter.com/hspdt/hspdt6.html
BMPファイルのフォーマットをみつけたのですが
これをどう活かしたものやら…
mrefのID66をpeek,pokeとかで直接弄えるかと思ったのですが
どうもrgb値を拾うだけのようですし…

[19349] MCIでAVIムービー再生について 投稿者:Advance 投稿日:05/02/24(木) 20:27
mref bmscr,67
hWnd = bmscr,13;親ウィンドウハンドル取得
mci "open test.avi alias avimov parent "+ hWnd +" style child
"
mci "play avimov"

こうすればウインドウ内の再生もできないですが…なぜか全くだめ
なんですorz(OSは98SEです)

[19385] Re: MCIでAVIムービー再生について 投稿者:ryu-jin 投稿日:05/02/27(日) 14:53
> mci "open test.avi alias avimov parent "+ hWnd +" style child "
mci "open test.avi alias avimov style child arent " + hWnd;

こうでは?

[19386] Re^2: MCIでAVIムービー再生について 投稿者:Advance 投稿日:05/02/27(日) 15:30
> > mci "open test.avi alias avimov parent "+ hWnd +" style ch
ild "
> mci "open test.avi alias avimov style child arent " + hWnd;
>
> こうでは?

やはりダメですorz

[19387] Re^3: MCIでAVIムービー再生について 投稿者:SHI 投稿日:05/02/27(日) 17:54
> > > mci "open test.avi alias avimov parent "+ hWnd +" sty
le ch
> ild "
> > mci "open test.avi alias avimov style child arent " + hWn
d;
> >
> > こうでは?
>
> やはりダメですorz

mci "open test.avi alias avimov style child parent " + hWnd;
の打ち間違いですね。

参考(http://www.bekkoame.ne.jp/i/mr.manri/hsp.html

[19389] Re^4: MCIでAVIムービー再生について 投稿者:Advance 投稿日:05/02/27(日) 22:25
> > > > mci "open test.avi alias avimov parent "+ hWnd +
" sty
> le ch
> > ild "
> > > mci "open test.avi alias avimov style child arent "
+ hWn
> d;
> > >
> > > こうでは?
> >
> > やはりダメですorz
>
> mci "open test.avi alias avimov style child parent " + hWnd;
> の打ち間違いですね。
>
> 参考(http://www.bekkoame.ne.jp/i/mr.manri/hsp.html


ご参考ありがとうございます
やっとできました。

mref bmscr,67 : hWnd=bmscr.13
mci "open test.avi alias avimov"
mci "window avimov handle " + hWnd
mci "put avimov destination at 0 0 " + winx + " " + winy
mci "play media"

[19375] ダブルクリック取得 投稿者:R2D2 投稿日:05/02/26(土) 14:41
右ダブルクリックなんですけど、HSPのウィンドウが非アクティブの
時或いはHSP以外のウィンドウ(デスクトップ、メモ帳、ウェッブブ
ラウザー等)がアクティブの時にユーザーが右ダブルクリックをした
かどうか調べるにはどうすればいいですか?
右ダブルクリックで起動するランチャーを作りたいです
よろしくお願いします

[19376] Re: ダブルクリック取得 投稿者:こな 投稿日:05/02/26(土) 14:47
getkeyはデフォルトでは非アクティブでも拾うので
適当な間隔で右クリックがあれば動くようにするのはどうでしょう

[19388] Re^2: ダブルクリック取得 投稿者:R2D2 投稿日:05/02/27(日) 19:43
> getkeyはデフォルトでは非アクティブでも拾うので
> 適当な間隔で右クリックがあれば動くようにするのはどうでしょう

こなさん、アドバイスを有難うございます
getkeyで出来ました(時間がすごくかかったんですが)
今日、過去ログ(18)のさくらさんのサンプルスクリプトとちょくとさんの
裏技??での「ウィンドウメッセージ取得してみる」読んでみたんですけどHS
Pのウィンドウがアクティブじゃないと利かないのでgetkey
でやります
もしプラグインやAPIなどで出来る方法があれば宜しくお願いします

[19383] 音の合成について 投稿者:tm 投稿日:05/02/26(土) 23:04
2つのwavファイルを読み込みそれを合成したい場合
最初から数値を読み込んでいって合成するんだと思うんですが
2つの音声の数値をどのように処理すれば合成できるんですか?

[19382] Re: Windowsのスタートアップディレクトリについて 投稿者:G.Murao 投稿日:05/02/26(土) 21:06
 Irisawaさん、Biveさん、アドバイスありがとうございます。
fxdir命令なら、Windowsの種類に応じて適切なディレクトリを指定
できるから、わざわざシステムバージョンを読み込まなくてもできま
すね。

[19368] Windowsのスタートアップディレクトリについて 投稿者:G.Murao 投稿日:05/02/26(土) 12:21
 HSPで作ったプログラムをスタートアップに登録できるようにプロ
グラムを作成しています。登録はレジストリを変更するのではなく、
作成したショートカットをスタートメニューのスタートアップフォル
ダ(ユーザーに関係なく登録できるよう「All User」)に直接送り込
むように設定します。
 そこで、Windowsの種類によってディレクトリを違うよう指定した
いのですが、私は「Windows XP」を使っているため「Windows Me」な
ど98系のディレクトリが分かりません。
誰か教えてくれますか?
 また、NT系のスタートアップフォルダのディレクトリはWindows X
Pと同じでしょうか?

Windows XPのスタートアップフォルダのディレクトリ:
C:\Documents and Settings\All Users\スタート メニュー\プログ
ラム\スタートアップ

[19381] Re: Windowsのスタートアップディレクトリについて 投稿者:Bive 投稿日:05/02/26(土) 20:06
>  HSPで作ったプログラムをスタートアップに登録できるようにプロ
> グラムを作成しています。登録はレジストリを変更するのではなく、
> 作成したショートカットをスタートメニューのスタートアップフォル
> ダ(ユーザーに関係なく登録できるよう「All User」)に直接送り込
> むように設定します。
>  そこで、Windowsの種類によってディレクトリを違うよう指定した
> いのですが、私は「Windows XP」を使っているため「Windows Me」な
> ど98系のディレクトリが分かりません。
> 誰か教えてくれますか?
>  また、NT系のスタートアップフォルダのディレクトリはWindows X
> Pと同じでしょうか?
>
> Windows XPのスタートアップフォルダのディレクトリ:
> C:\Documents and Settings\All Users\スタート メニュー\プログ
> ラム\スタートアップ

拡張プラグインhspext.dllのfxdir命令を使えば、
スタートアップのディレクトリを取得することができます。

[19380] Re: Windowsのスタートアップディレクトリについて 投稿者:Irisawa 投稿日:05/02/26(土) 19:08
>  そこで、Windowsの種類によってディレクトリを違うよう指定した
> いのですが、私は「Windows XP」を使っているため「Windows Me」な
> ど98系のディレクトリが分かりません。
> 誰か教えてくれますか?
>  また、NT系のスタートアップフォルダのディレクトリはWindows X
> Pと同じでしょうか?

Win9x系は確か

%WINDIR%\スタート メニュー\プログラム\スタートアップ\

だったと思いますが詳しく覚えていません。
(カナの部分は正確には半カナになっています)

WinXPではレジストリキー

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Startup

を参照すれば場所が分かります。
(他のWindowsのことは分かりません)

[19371] フルスクリーンの背景 投稿者:yu_higaoka 投稿日:05/02/26(土) 13:29
初めまして皆さんにご質問があります。
hgimgxの機能を使ってフルスクリーン画面での
ゲーム製作の勉強をしています。
参考書籍で「HSPでつくる3Dゲーム」というものを購入しています

以下のコーディングのようにフルスクリーン画面にして
背景をtexloadbg命令で貼り付けようとしているのですが、
真っ黒の背景だけで、貼り付けようとしているbmpファイルが
表示されません。
それ以外の床やブロックなどは表示されるのですが、
何故、背景画像が表示されないか御指導頂けないでしょうか?


#include "hgimgx.as"
#include "dsoundex.as"

; メイン画面作成
;

chgdisp 1
bgscr 2,640,480,0
cls 4
hgsetreq SYSREQ_DXMODE,1 ; フルスクリーンモードを指定
hgsetreq SYSREQ_DXWIDTH,640 ; フルスクリーン解像度X
hgsetreq SYSREQ_DXHEIGHT,480 ; フルスクリーン解像度Y
hgini ; HGIMGの初期化
onexit *owari

ds_init
ds_load "69.wav",0

     ; 背景画像
texloadbg "sky.bmp"

sndload "bgm_100.mid",100,1 ; BGMのテスト

; 床のモデル作成
;
setsizef 256.0f,256.0f ; モデルのXYサイズ
setuv 0,0,511,511 ; テクスチャの面範囲
addmesh mdpl,32,32 ; プレート(MESH型)モデル登録
texload "course_map.bmp" ; テクスチャ画像の読込

; ブロックのモデル作成
;
setsizef 8.0f,8.0f ; モデルのXYサイズ
setuv 0,0,127,127 ; テクスチャの面範囲
addbox mdbx ; 立方体モデル登録
texload "boxtex.bmp" ; テクスチャ画像の読込

; 弾のモデル作成
;
setsizef 4.0f,4.0f ; モデルのXYサイズ
setuv 0,0,79,79 ; テクスチャの面範囲
addplate mdsh,1 ; プレートモデル登録
texload "shot.bmp"

; マップデータ(32×32)を初期クリア
;
sdim map,1024
repeat 1024
poke map,cnt,0
loop

; 床を置く
;
regobj obpl,mdpl ; 床のオブジェクト作成
selang obpl :objset1r 0,192 ; 角度を水平にする
selpos obpl :objset3 4,0,4 ; 座標セット

; ブロックを床の上に配置
;
randomize
repeat 48
regobj obbx,mdbx ; ブロックのオブジェクト作成
rnd x,32 :rnd z,32 ; 座標値を乱数で決める
selpos obbx ; 座標セット
objset3 x-16*8+4,-4,z-16*8+4 ;
poke map,32*z+x,1 ; マップデータにブロック属性を書き込む
loop

; カメラ(自分)の角度と座標をセット
;
selcang :objset1r 1,128
selcpos :objset3 0,-6,0

setborder 256.0f, 32.0f, 256.0f

gsel 0,1 ; メイン画面をアクティブにする
snd 100
wait 400

不躾な質問ですが、ぜひ皆さんの指導を仰ぎたいと思います。
お願いします。

[19372] Re: フルスクリーンの背景 投稿者:tm 投稿日:05/02/26(土) 13:57
> hgimgxの機能を使ってフルスクリーン画面での
> 背景をtexloadbg命令で貼り付けようとしているのですが、
> 真っ黒の背景だけで、貼り付けようとしているbmpファイルが
> 表示されません。
DirectXモードでは背景は使用出来ないと思います。
hgimgのマニュアルに書かれています。

[19379] Re^2: フルスクリーンの背景 投稿者:yu_higaoka 投稿日:05/02/26(土) 17:59
> > hgimgxの機能を使ってフルスクリーン画面での
> > 背景をtexloadbg命令で貼り付けようとしているのですが、
> > 真っ黒の背景だけで、貼り付けようとしているbmpファイルが
> > 表示されません。
> DirectXモードでは背景は使用出来ないと思います。
> hgimgのマニュアルに書かれています。
そうなんですか、調査不足でした。
DirectXモードを使用し、フルスクリーンにし背景を貼り付けることができ
るプラグインは存在しますか?
ご存知でしたら教えて下さい。
甘えてばかりですいません。

[19373] キー取得 投稿者:Bive 投稿日:05/02/26(土) 14:31
押されているキーが何のキーかを取得する方法ってありますか?
キーコードが代入されるシステム変数もないようですし・・・。
他に方法が思い浮かびません。過去ログ探しても、該当する書き込
みはないようですし・・・・。

[19374] Re: キー取得 投稿者:ヒモノ 投稿日:05/02/26(土) 14:35
> 押されているキーが何のキーかを取得する方法ってありますか?
> キーコードが代入されるシステム変数もないようですし・・・。
> 他に方法が思い浮かびません。過去ログ探しても、該当する書き込
> みはないようですし・・・・。

onkeyでのiparamじゃダメですか?

[19377] Re^2: キー取得 投稿者:332 投稿日:05/02/26(土) 16:08
> > 押されているキーが何のキーかを取得する方法ってありますか?
> > キーコードが代入されるシステム変数もないようですし・・・

> > 他に方法が思い浮かびません。過去ログ探しても、該当する書
き込
> > みはないようですし・・・・。
>
> onkeyでのiparamじゃダメですか?

iparamだと小文字か大文字かが判定できません(多分…)
getkeyを配列でやっってみてはどうでしょうか?
(この場合、無いキーコードまで取得してしまうので、他の
方法を考えたほうがいいかと思います)
それにonkeyだと一文字分(1byte)だけ情報が遅れます(多分。。。)

[19359] メモリ解放について 投稿者:lalze 投稿日:05/02/25(金) 22:44
メモリ解放を行う一つの手段として、
sdimなどを使ってする、というのを聞いたのですが。
具体的にはどのようにすればいいのですか?

[19361] Re: メモリ解放について 投稿者:911 投稿日:05/02/25(金) 23:00 <URL>
> メモリ解放を行う一つの手段として、
> sdimなどを使ってする、というのを聞いたのですが。
> 具体的にはどのようにすればいいのですか?

拡大→縮小です。

sdim MEM,10*1024*1024
sdim MEM,64

で、おけです。

[19370] Re^2: メモリ解放について 投稿者:lalze 投稿日:05/02/26(土) 12:43
> > メモリ解放を行う一つの手段として、
> > sdimなどを使ってする、というのを聞いたのですが。
> > 具体的にはどのようにすればいいのですか?
>
> 拡大→縮小です。
>
> sdim MEM,10*1024*1024
> sdim MEM,64
>
> で、おけです。

返答ありがとうございます。
でも値が大きすぎるとヤバくなるということを聞きましたが、
どうなのでしょうか?

[19365] Re^2: メモリ解放について 投稿者:トホホッティー 投稿日:05/02/26(土) 08:45
> > メモリ解放を行う一つの手段として、
> > sdimなどを使ってする、というのを聞いたのですが。
> > 具体的にはどのようにすればいいのですか?
>
> 拡大→縮小です。
>
> sdim MEM,10*1024*1024
> sdim MEM,64
>
> で、おけです。

http://hspcenter.com/bbs/hspbbs.cgi?page=5&bl=0

で議論されてます。

[19366] listbox後のginfo 投稿者:MIZU 投稿日:05/02/26(土) 10:23
ウィンドウを非アクティブにしているときにlistboxなどを作った後
「ginfo 1」でアクティブウィンドウを取得しようとするとprmxの値
がlistboxを作ったウィンドウのIDになってしまうみたいなのですが
・・・。
しかもそのウィンドウは非アクティブのまま・・・。
一度ウィンドウをアクティブにすると元には戻るようです。
これは仕方ないのでしょうか。
これのせいでソフトを作る都合上困ったことになっているのですが

どうにかちゃんとprmx=-1と検出できるようにならないでしょうか。
(そのウィンドウをアクティブにしたくはないのです。)

[19364] 無題 投稿者:332 投稿日:05/02/26(土) 07:02
HSPだけで色付け表示機能などがあるソースコード主体の
エディタを作れますかね?

[19356] Windowsキー 投稿者:Bive 投稿日:05/02/25(金) 20:09
Windowsキーが押されたという情報を取得することはできますか?
stickやgetkeyだと取得できず、拡張プラグインも探してみたのです
が見つかりません。

[19357] Re: Windowsキー 投稿者:LonelyWolf 投稿日:05/02/25(金) 20:40 <URL>
> Windowsキーが押されたという情報を取得することはできますか?
> stickやgetkeyだと取得できず、拡張プラグインも探してみたのです
> が見つかりません。

getkey 任意の変数, 91で左のWindowsキーが、
getkey 任意の変数, 92で右のWindowsキーが押されているか、
調べることができます。

[19358] Re^2: Windowsキー 投稿者:Bive 投稿日:05/02/25(金) 22:00
> > Windowsキーが押されたという情報を取得することはできますか

> > stickやgetkeyだと取得できず、拡張プラグインも探してみたの
です
> > が見つかりません。
>
> getkey 任意の変数, 91で左のWindowsキーが、
> getkey 任意の変数, 92で右のWindowsキーが押されているか、
> 調べることができます。

調べることができました、ありがとうございます。
でも、マニュアルにはそのような記述はありませんでしたが。

[19363] Re^3: Windowsキー 投稿者:くに 投稿日:05/02/25(金) 23:49 <URL>
こんにちは、Biveさん、LonelyWolfさん。くにです。

> でも、マニュアルにはそのような記述はありませんでしたが。

HSPWikiには、載ってましたよ。

HSPのTips:HSPキーコード表
http://quasiquote.org/hspwiki/HSP%a4%ceTips%3aHSP%a5%ad%a1%bc%a5%b3%a1%bc%a5%c9%c9%bd

[19336] 長いパス 投稿者:初心 投稿日:05/02/23(水) 19:11
HSPで作ったプログラム本体を深い階層に置いたときに
実行できないのは回避不可能ですか?
(3.0βではどうなっているのでしょうか?)

また、ツールなどを作成した場合、読み書きするデータが深い階層に
置かれたときにも、同様にエラー回避不可能でしょうか?

[19345] Re: 長いパス 投稿者:woodfields 投稿日:05/02/24(木) 12:35
> HSPで作ったプログラム本体を深い階層に置いたときに
> 実行できないのは回避不可能ですか?
> (3.0βではどうなっているのでしょうか?)
>
> また、ツールなどを作成した場合、読み書きするデータが深い階層に
> 置かれたときにも、同様にエラー回避不可能でしょうか?

chdir exedir と移動してみれば?

[19355] Re^2: 長いパス 投稿者:初心 投稿日:05/02/25(金) 05:56
お二方ともありがとうございます。
参考にして試してみます。

[19338] Re: 長いパス 投稿者:911 投稿日:05/02/23(水) 21:08 <URL>
> HSPで作ったプログラム本体を深い階層に置いたときに
> 実行できないのは回避不可能ですか?
> (3.0βではどうなっているのでしょうか?)
>
> また、ツールなどを作成した場合、読み書きするデータが深い階層に
> 置かれたときにも、同様にエラー回避不可能でしょうか?

ディレクトリパス名が長いのが原因なら…

sdim DIR,256 // 多分256もあれば平気かと…
dialog "",16,""
if (STAT ! 0) {DIR = REFSTR}

みたくすればいいと言うわけじゃなくて?
(なんか、聞いてること違うかも)

[19353] bgscrでID0を使う 投稿者:Taka 投稿日:05/02/24(木) 23:46
お久しぶりです。
訳あって、ウインドウID0をBGSCR命令で使う必要があるのですが、
正常に機能せずに、ちっちゃく細長いウインドウになってしまいます
。  ヘルプにはID0には無効だとないので、最初にgsel 0,-1してみ
たり、コンパイルするときにメインウインドウを非表示にしてみたり
したのですが効果がありませんでした。 どなたか、どうすればプラ
グインや追加の外部ファイルに頼らずに縁なしウインドウをID0で作
れるかお教え頂けないでしょうか。

[19354] Re: bgscrでID0を使う 投稿者:NGND001 投稿日:05/02/25(金) 00:48
ID0をscreen以外で初期化することは基本的に出来ないはずです。
他のウィンドウIDが開いているのならそちらで代用するべきです。
以下のようにすれば出来なくは無いですが推奨はしません。

ll_libload hDll,"user32"
ll_getproc SetWndLong,"SetWindowLongA",hDll
mref bmscr,67
prm=bmscr.13,-16,0
ll_callfunc prm,3,SetWndLong
prm=bmscr.13,-20,0
ll_callfunc prm,3,SetWndLong
bmscr.17=2
gsel 0,1
width winx,winy
cls 4
stop

[19342] HTML解析 投稿者:勉強 投稿日:05/02/24(木) 01:05
ネットからHTMLを取得して解析するプログラムを作ってますが、
instrなどで、殆どは中身をチェックできるんですけど、
「・」このようなマークが改行部分などについてしまうケースだと

instr命令がちゃんと機能しません。

そのソースの改行部分の「・」(peekでチェックすると10?)
それを無理やり「\n」に変換しても、instrで読めなかったりします

何が問題か分かる方はいますか?

[19346] Re: HTML解析 投稿者:eternally 投稿日:05/02/24(木) 15:42 <URL>
多分文字のコードが違うせいだと思います。
シフト JIS、EUCのどちらかが大抵使われていますが
EUCで作られているとHSPでは直接読むことが出来ません。

http://quasiquote.org/hspwiki/HspJcode:HSP%A4%C7Jcode
探してみたところ上のようなプラグインが見つかりました。
試していないので分かりませんがとりあえずSJISに変換すれば
読めるようになると思います。

[19352] Re^2: HTML解析 投稿者:勉強 投稿日:05/02/24(木) 22:09
感謝です。
こんなプラグインがあるとは知りませんでした。
さっそく試してみます。

[19347] HSPDXFIX 投稿者:あたち 投稿日:05/02/24(木) 19:40
HSPDXFIXを使ってes_setpriという命令を利用したいのですが、
HSPDX.ASをcommonディレクトリに置いて、
HSPDX.DLLをHSED2.EXEとHSP2.EXEのある
ディレクトリと同じ場所に置いて、
スクリプトの先頭で#include "hspdx.as"と入力しても
es_setpriの所でエラーが出ます。

どうしてでしょうか?

[19348] Re: HSPDXFIX 投稿者:tm 投稿日:05/02/24(木) 20:16
> HSPDXFIXを使ってes_setpriという命令を利用したいのですが、
> HSPDX.ASをcommonディレクトリに置いて、
> HSPDX.DLLをHSED2.EXEとHSP2.EXEのある
> ディレクトリと同じ場所に置いて、
> スクリプトの先頭で#include "hspdx.as"と入力しても
> es_setpriの所でエラーが出ます。
>
> どうしてでしょうか?
ちゃんと説明書を読みましたか?現在のHSPに標準で入っているhspdxはHSP
DXFIXの旧バージョンです。バージョンが違えば命令の定義も違うわけです

つまり、インクルードするファイルは<hspdxfix.as>です。

[19351] Re^2: HSPDXFIX 投稿者:あたち 投稿日:05/02/24(木) 21:40
> ちゃんと説明書を読みましたか?現在のHSPに標準で入っているhspdx
はHSP
> DXFIXの旧バージョンです。バージョンが違えば命令の定義も違うわ
けです
> 。
> つまり、インクルードするファイルは<hspdxfix.as>です。

すいません。できました。
説明書にもhspdxと書いてありましたが、
hspdxfixにしたらできました。

もうひとつお聞きしたいのですが、
ヘルプ機能を対応させるには、
どうすればいいのでしょうか?
移動させても更新エラーがでます。

[19339] EXEフアイルが出来ない 投稿者:啓太 投稿日:05/02/23(水) 21:35
失礼します、手短に書きますと、

EXEフアイルを作る手順

START asフアイル作成

コンパイル

EXEフアイ作成となると思うんですが、

なぜか、削除したはずのフアイルが
EXEフアイルを作るときに「○○フアイルがありません」
というエラーが出てしまいます。
プログラム自体はちやんと動くし、エラーも無い
欠けているフアイルもありません。

でもEXEフアイルを作る時に、削除したフアイル
が無いと言うエラーが出てしまいます。
なぜ削除したフアイルが要るのかわかりません。
フアイル名を変えてもダメで、途方に暮れてます。

プログラムは単純なボタンを押すと
ビツトマツプイメージ画像を出すだけですが。

[19341] Re: EXEフアイルが出来ない 投稿者:ちょっと通りがかった人 投稿日:05/02/24(木) 00:45
ソース準備完了!!

start.ax作成

packfile作成で、start.axと画像とかをつっこむ

EXE作成

いらなそうなゴミ削除

start.axはファイル名変更は×

[19340] Re: EXEフアイルが出来ない 投稿者:Irisawa 投稿日:05/02/23(水) 23:01
> EXEフアイルを作る手順

> START asフアイル作成

> コンパイル

> EXEフアイ作成となると思うんですが、

コンパイルは必要ありません。
EXEを作成したい本元のファイルを開いた状態で、

1.[HSP] - [START.AXファイル作成]
2.[ツール] - [PACKFILE編集]-> start.axをpackfileに追加
3.[ツール] - [EXEファイル作成]

という手順です。
[Ctrl] + [F9]([HSP] - [実行ファイル自動作成])で作成した方が
簡単かも知れません。

> なぜか、削除したはずのフアイルが
> EXEフアイルを作るときに「○○フアイルがありません」
> というエラーが出てしまいます。
> プログラム自体はちやんと動くし、エラーも無い
> 欠けているフアイルもありません。

> でもEXEフアイルを作る時に、削除したフアイル
> が無いと言うエラーが出てしまいます。
> なぜ削除したフアイルが要るのかわかりません。
> フアイル名を変えてもダメで、途方に暮れてます。

ちょっと意味が分からないのですが「削除したファイル」とは何を
指しているのでしょうか?
それと「フアイル」ではなく「ファイル」なんですが・・・。
(なぜ小文字を大文字で書いているのでしょうか)

[19343] Re^2: EXEフアイルが出来ない 投稿者:啓太 投稿日:05/02/24(木) 07:06
どうもすいません。


> ちょっと意味が分からないのですが「削除したファイル」とは何を
> 指しているのでしょうか?

画像フアイルですね、必要ないから作業フオルダー
から削除しますと、その削除した画像フアイルが無い
というエラー表示が出るのです。

picload "af07.bmp",1,90,5
のaf07.bmpをフオルダーから消すと
exeフアイルを作ると
af07.bmpのフアイルがありませんというエラー
がでます。

勿論、プログラムではちやんとその削除した
画像フアイルの項目は修正してあるので
エラーは出ませんが、

EXEフアイルを作る段階になると
その削除しフアイルが無いというエラーになるのです。

[19350] Re^3: EXEフアイルが出来ない 投稿者:HunterD 投稿日:05/02/24(木) 21:24
> 勿論、プログラムではちやんとその削除した
> 画像フアイルの項目は修正してあるので
> エラーは出ませんが、
>
> EXEフアイルを作る段階になると
> その削除しフアイルが無いというエラーになるのです。

プログラムを修正してから、start.axの作成をしなおしてないのでは?

1.プログラム修正
2.コンパイル+実行
3.start.axの作成
4.packfile編集(先ほど作成したstart.axをpackfileに入れる)
5.EXEファイル作成

上記1〜5を通してやりなおしてみてください。

[19344] Re^3: EXEフアイルが出来ない 投稿者:911 投稿日:05/02/24(木) 09:07 <URL>
> EXEフアイルを作る段階になると
> その削除しフアイルが無いというエラーになるのです。

PACKFile時に
HSP内部に画像ファイルを読み込む場合は、削除してはダメです。
HSP外部(カレントDIR)から読み込む場合は…あれ、てか使う場合は削除
しちゃだめですよ。

で、私が昔やってしまった例で…
PACKFileはやるのですが、START.AXやDPMファイルを以前生成したものを使
ってしまいエラーで続けてました。

[19328] フォント 投稿者:Bive 投稿日:05/02/22(火) 23:13
インストールされているフォントの一覧を取得することはできません
か?

[19333] Re: フォント 投稿者:Xellos 投稿日:05/02/23(水) 18:09
求めているものとは違うかもしれませんが、dirlist命令でwindir+"\\fonts"を
参照すると取得できます。
フォントダイアログのように名前を取得するのであれば、APIでしょうが。

[19335] Re^2: フォント 投稿者: 投稿日:05/02/23(水) 19:07
過去ログにありますが・・・
"フォント 取得" などでワード検索してみて下さい

[19283] フルスクリーンだと逆に遅くなる 投稿者:hira 投稿日:05/02/18(金) 15:27
HSPDX.dllを利用してDirectXでゲームを作っているのですが、
ウィンドウモードでの動作時よりも、フルスクリーンモードでの
動作時の方が、FPSの値が半分ほどに減ってしまいます。

昔少し聞いたところによると、フルスクリーンモード時には
リソースを占有できるのだとか何とかで描画処理を高速・安定化
させることができるのだという話だったと思うのですが、
逆にウィンドウモード時よりも処理が遅くなってしまうという
原因には、どんなものが考えられるのでしょうか。

[19292] Re: フルスクリーンだと逆に遅くなる 投稿者:MASA77's 投稿日:05/02/18(金) 22:13
どうも、こんばんはMASA77'です

> 逆にウィンドウモード時よりも処理が遅くなってしまうという
> 原因には、どんなものが考えられるのでしょうか。

原因はわかりませんが、

es_sync 16

とかなってたりするのを

es_sync 16,1

のようにしてみたらどうですか?

es_sync p1,p2
p1=ウェイト時間(ms)
p2=V-BLANK待ちフラグ(0=待つ、1=待たない)

[19334] Re^2: フルスクリーンだと逆に遅くなる 投稿者:hira 投稿日:05/02/23(水) 18:11
ご返信、ありがとうございます。
返信が遅れまして、大変申し訳ありませんでした。

> es_sync 16,1
> のようにしてみたらどうですか?

おっしゃる通りにしてみたところ、ウィンドウモードと
同程度のFPS値が出るようになりました。

なるほど、フルスクリーンモードではV-BLANK(よく分かり
ませんが)を待っていたから遅かったのですね。
よく見るとヘルプのes_syncのところにも、「ウィンドウ
モードではV-BLANKを待ちません。」と書いてありますね。

これはきっと、画面を書き換える前に複数回処理を行って
しまってムダだ、ということなのでしょうね…そうすると、
「V-BLANK」は待っておいた方が良い気がしてきました。

丁寧なご返信、ありがとうございました。

[19332] 12歳からはじめるHSPで 投稿者:Ben 投稿日:05/02/23(水) 15:58
チョット教えてください
12歳からはじめるHSPで P−123ページあたりで
ECが6より減っていくはずなのに
爆発が表示されないのは何故でしょうか?

***if EC<6 {
;EC=EC-1
;pos EX,EY :gcopy 1,160,0,32,32

*********
この部分別に必要でも無いと思うし
あるのに何故爆発まで表示されないのでしょうか?

〜中略〜

if EC>7 {
EC=EC-1
pos EX,EY :gcopy 1,64,0,32,32
return
}
if EC=7 {
EC=EC-1 :EDX=0 :EDY=0
if (MX>EX) and (MX-EX>32) :EDX=4
if (MX<EX) and (MX-EX<-32) :EDX=-4
if (MY>EY) and (MY-EY>32) :EDY=4
if (MY<EY) and (MY-EY<-32) :EDY=-4
if (EDX=0) and (EDY=0) {
rnd A,2
if A=1 :EDX=-4 :else :EDY=-4
}
}
if EC=6 {
EX=EX+EDX :EY=EY+EDY
pos EX,EY :gcopy 1,96,0,32,32
if (EX<0) or (EX>448) or (EY<0) or (EY>288) {EC=0
:return}
}
if EC<6 {
;EC=EC-1
;pos EX,EY :gcopy 1,160,0,32,32
}
return

[19331] 教えてください 投稿者:k-y 投稿日:05/02/23(水) 12:03
新しい、機能拡張ソフトが出ていましたが
KLAUSさんの、ページに接続できません。
どのようにしたら良いですか?
MP3の再生DILLの件です。

[19323] 「msgdlg」についての質問 投稿者:G.Murao 投稿日:05/02/21(月) 22:44
 拡張ダイアログ命令「msgdlg」について質問しますが、ダイアログ
が開くときに鳴るシステムサウンドが2重に聞こえます。
アイコンを無しにするとこの問題はなくなるのですが、それ以外で
はアイコンとタイプに関係なく2重に聞こえます。
これは解決できない問題なのでしょうか?
OSには関係ないとは思いますが、私は「WindowsXP Home Edition SP
2」を使っています。

[19327] Re: 「msgdlg」についての質問 投稿者:ANTARES 投稿日:05/02/22(火) 22:31 <URL>
> 拡張ダイアログ命令「msgdlg」について質問しますが、ダイアログ
>が開くときに鳴るシステムサウンドが2重に聞こえます。
 WinXP Proですが、再現しません。
G.Muraoさんの環境の問題と思われます。

#しかし、ほんっとうにWinXPって遅いなあ。バグだらけだし。
#どこかにWin95売ってないかしらん。

[19329] Re^2: 「msgdlg」についての質問 投稿者:G.Murao 投稿日:05/02/22(火) 23:32
 ANTARESさん、応答ありがとうございます。
それにしても、なぜだろう・・・。

> #しかし、ほんっとうにWinXPって遅いなあ。バグだらけだし。
> #どこかにWin95売ってないかしらん。
確かにWindows95よりは遅いですね。
残念ながらWindows95を販売している中古店も、最近あまり見かけません。
ちなみに前に、私は田舎の家の古い倉庫で埃をかぶったWindows95を見つけ
ました。
(昔のDOS/Vパソコンでしか動きませんが・・・)

[19330] Re^3: 「msgdlg」についての質問 投稿者:911 投稿日:05/02/23(水) 00:20 <URL>
> #どこかにWin95売ってないかしらん。

正規Win95アキバなら大量に50~100円位で買えます。
正規Win98は200円とかWin98SEは500円ぐらいです。
Win2kから1000〜3000円ぐらいで、WinXP-SP2は5000円・…。(違法ぽいですが…

とまぁ、それだけです。orz

[19318] gselのアクティブ操作 投稿者:LEE 投稿日:05/02/21(月) 18:53
input inp,100
wait 500
gsel 0,2:gsel 0,1
objsel 0
stop

以上のスプリクトを実行し、wait中に他ウィンドウを
アクティブにするとwaitが終了したとき、gselによって
最前面表示されますが、完全にアクティブにはならず、
キー操作をしてもあらかじめアクティブにしておいた
他ウィンドウの方に反映されます。
マウスなどで再度メインウィンドウをアクティブにする以外で
キー操作を受け付けるようにするにはどうすればよいでしょうか、
どなたかご教授願います。

OSはwinXPです。

[19319] Re: gselのアクティブ操作 投稿者:ANTARES 投稿日:05/02/21(月) 21:37 <URL>
>マウスなどで再度メインウィンドウをアクティブにする以外で
>キー操作を受け付けるようにするにはどうすればよいでしょうか、
 以前、誰かが投稿したスクリプトです。

#include "llmod.as"
#module "setact"
;ウィンドウをアクティブにする
#deffunc setact int ;ウィンドウID -1なら現在のウィンドウ
mref wndnum,0
mref hspflag,1
if wndnum=-1 { wnum2=67 }
else { wnum2=wndnum+96 }
mref bmscr,wnum2
hWnd = BMSCR.13
dllproc "GetForegroundWindow",prm,0,D_USER@
prm.0 = dllret@
getptr prm.1, PID
dllproc "GetWindowThreadProcessId",prm,2,D_USER@
ThreadId1 = dllret@
dllproc "GetCurrentThreadId",prm,0,D_KERNEL@
ThreadId2 = dllret@
prm.0 = ThreadId2
prm.1 = ThreadId1
prm.2 = 1
dllproc "AttachThreadInput",prm,3,D_USER@
prm = hWnd
dllproc "SetForegroundWindow",prm,1,D_USER@
prm.0 = ThreadId2
prm.1 = ThreadId1
prm.2 = 0
dllproc "AttachThreadInput",prm,3,D_USER@
return
#global

exec "notepad.exe"
wait 300
setact -1
mes "このウィンドウがアクティブになったよね?"
stop

[19321] Re^2: gselのアクティブ操作 投稿者:LEE 投稿日:05/02/21(月) 21:59
ANTARESさんありがとうございます。出来ました。
>以前、誰かが投稿したスクリプトです。
ということは以前も同じ質問があったのですね。一応過去ログは
調べたのですが、「gsel 」「アクティブ」といったキーワードで
たくさん出てきたので見落としていたようです。(言い訳)
申し訳ありません。

この問題は仕様なんでしょうか…。hsp3.0でも動作は同じでしたし。

[19326] Re^3: gselのアクティブ操作 投稿者:ANTARES 投稿日:05/02/22(火) 22:29 <URL>
>一応過去ログは調べたのですが、
 私も少し探ってみましたが、見つけられませんでした。

>この問題は仕様なんでしょうか…。hsp3.0でも動作は同じでしたし。
 Windowsの仕様なんでしょう。私はバグだと思っていますが。
Win95ではgsel 0,1で何の問題もありませんし、
Win98で有効だった別のスクリプトはWinXPでは無効に
なってしまいました。

[19279] サブルーチンのネスト 投稿者:ヘルペン 投稿日:05/02/17(木) 23:17
今までまったく問題なかったのですが、
少し書き足すと、サブルーチンのネストが深すぎますと出ます。
しかも、まったく関係のないところ(マップ表示・当たり判定など
)のrepeatすべてで。
なぜでしょうか?
gotoなどは使っていません。
DirectXなので、Debugモードでうまく動かない

[19282] Re: サブルーチンのネスト 投稿者:脱力 投稿日:05/02/18(金) 11:22 <URL>
> 少し書き足すと、サブルーチンのネストが深すぎますと出ます。
> しかも、まったく関係のないところ(マップ表示・当たり判定など
> )のrepeatすべてで。
> なぜでしょうか?
> gotoなどは使っていません。

純粋に深くなってるのではないでしょうか?
サブルーチンからサブルーチンの読み出しを次々にしているのでは?

[19325] Re^2: サブルーチンのネスト 投稿者:カズキング 投稿日:05/02/22(火) 19:43
> > 少し書き足すと、サブルーチンのネストが深すぎますと出ます。
> > しかも、まったく関係のないところ(マップ表示・当たり判定
など
> > )のrepeatすべてで。
> > なぜでしょうか?
> > gotoなどは使っていません。
>
> 純粋に深くなってるのではないでしょうか?
> サブルーチンからサブルーチンの読み出しを次々にしているのでは?

ちゃんと"break"してる?

[19320] はじめまして 投稿者:森谷 投稿日:05/02/21(月) 21:46
はじめまして。
さっそくですが、2桁くらいの数字などをテキストから読み込みたい
のですが、64バイトに足りません。
他に1〜2桁の少ない数字を外部のファイルに読み込んだり、書き込
んだりする方法はないですか?

[19324] Re: はじめまして 投稿者:通行人A 投稿日:05/02/22(火) 02:00
> 2桁くらいの数字などをテキストから読み込みたい
> のですが、64バイトに足りません。

notesel a
a="12"
notesave "n.txt"

bload "n.txt",b
mes b

noteload "n.txt"
mes a
mes 0+a+9

stop

こんな意味でしょうか?。

[19313] スクリプトエディタを作りたいのですが… 投稿者:vvat 投稿日:05/02/20(日) 20:09
おにたまさん。HSPユーザの皆さん。はじめまして。
3年前、HSPでプログラミングの楽しさを知って、次にVBA、今はASP
、Perlとweb系のプログラミングの勉強をしているのですが、自分の
思うようなエディタがないので作りたいと思います。

質問なのですが、VBなどのエディタのような入力支援(書く文字を
予測してカーソルの下にセレクトボックスが表示されるもの)はHSP
で出来ますか?
出来るとしたら、命令文を教えてほしいので、よろしくお願いしま
す。

[19315] Re: スクリプトエディタを作りたいのですが… 投稿者:911 投稿日:05/02/21(月) 00:00 <URL>
> 質問なのですが、VBなどのエディタのような入力支援(書く文字を
> 予測してカーソルの下にセレクトボックスが表示されるもの)はHSP
> で出来ますか?
> 出来るとしたら、命令文を教えてほしいので、よろしくお願いしま
> す。

修正・修正。(間違えて不可能と書いてしまいました)
実現は不可能ではないと思います。
ただし、その為の固有命令は無いと思います。
たとえば、キー取得→比較→(表示)else(入力続ける)→オブジェクトに更新とか。
あくまでも、基本命令でも擬似的なものなら作れますよ。

[19322] Re^2: スクリプトエディタを作りたいのですが… 投稿者:vvat 投稿日:05/02/21(月) 22:32
911さん。お答えありがとうございます。
やはりそれ専用の命令文はないですか。
知恵を絞って擬似オブジェクトを作ってみます。

[19310] 読み込めない○| ̄|_ 投稿者:ペリー 投稿日:05/02/20(日) 15:40
昔作ったスクリプトをバージョンが変わったスクリプトエディターで
開こうとすると、読み込めないというダイアログが表示されてスクリ
プトが読み込めません。
どうすれば読み込めるようになりますか?
OSはWindows XPです。
読み込めないスクリプトを作ったのが、Windows 98だったと思いま
す。

[19312] Re: 読み込めない○| ̄|_ 投稿者:HaGU 投稿日:05/02/20(日) 19:49
> 昔作ったスクリプトをバージョンが変わったスクリプトエディターで
> 開こうとすると、読み込めないというダイアログが表示されてスクリ
> プトが読み込めません。
> どうすれば読み込めるようになりますか?
> OSはWindows XPです。
> 読み込めないスクリプトを作ったのが、Windows 98だったと思いま
> す。

メモ帳から開いてコピペすればよいのでは?

[19309] 実数って 投稿者:Q 投稿日:05/02/20(日) 15:12
HSP ver 3となると、実数が使えるとか何とか・・・・実数って言う
のは小数の事ですよね? どうやってあつかうのでしょうか。普通に
計算しただけでは小数出ません。何か命令が・・・・どなたかおしえ
てください

[19311] Re: 実数って 投稿者:通行人A 投稿日:05/02/20(日) 17:17
> HSP ver 3となると、実数が使えるとか何とか・・・・実数って言う
> のは小数の事ですよね? どうやってあつかうのでしょうか。普通に
> 計算しただけでは小数出ません。何か命令が・・・・どなたかおしえ
> てください

mes 1+1
mes 1.00+1.00
mes double(1+1)

:スレ違いだと思うのでβ版の掲示板で質問したほうがいいと思う。

[19288] おしえて 投稿者:S・F 投稿日:05/02/18(金) 21:50
こんにちは。
入力された数字が1ケタか2ケタかを調べるにはどうすればいいです
か?

[19308] Re: おしえて 投稿者:S・F 投稿日:05/02/19(土) 20:25
おしえてくれた人ありがとう。
何とかなりました。

[19297] Re: おしえて 投稿者:no name 投稿日:05/02/19(土) 00:17
> こんにちは。
> 入力された数字が1ケタか2ケタかを調べるにはどうすればいいです
> か?
int命令で数字化した後に10で割ってみてください。
その結果が1以上なら2桁です。

[19291] Re: おしえて 投稿者:無人機動兵器 投稿日:05/02/18(金) 22:11 <URL>
> こんにちは。
> 入力された数字が1ケタか2ケタかを調べるにはどうすればいいです
> か?

ifで判断できると思いますよスペースとかが入って足りすると無理ですけ

単純な数値判断でしたらifで0〜9以内なら1桁それ以外は2桁ってなると思
いますよ

[19289] Re: おしえて 投稿者:Bive 投稿日:05/02/18(金) 22:09
> こんにちは。
> 入力された数字が1ケタか2ケタかを調べるにはどうすればいいです
> か?

strlen命令を使えばいいと思います。半角で一文字、全角で二文字として
文字数が取得できます。