[8887] ファイルのコピーを速くしたい 投稿者:バックアップしたい 投稿日:12/02/01(水) 16:05
ほとんど素人なのですが、画像ファイルを取り扱う自作ソフトを作っています。
1枚あたり1Mバイトほどの画像が1日数百枚程度増えていきます。
この画像を毎日バックアップさせようと思ったのですが、
bcopy, fxcopy いずれの命令を使ってもコピーするのに数分程度
かかってしまいます。
10秒以内程度ですむような命令はないでしょうか。
もしあるなら使い方もできましたら教えていただきたいのですが、
よろしくお願いします。

[8974] Re: ファイルのコピーを速くしたい 投稿者:EA 投稿日:12/05/03(木) 15:45
> 10秒以内程度ですむような命令はないでしょうか。
HDDの性能や転送速度はわかりますか?
SATA2:300MB/s
SATA:150MB/s
PATA:133MB/s
USB2.0:60MB/s
上記転送速度は最大理論値なので、実際にはその半分程度あるかないかで
しょう。
仮に1GB(1000MB)の1つのファイルをUSB2.0で接続した外付HDDにコピーす
るのにかかる時間は、1000(MB)÷30(MB/s)=33(秒)。
ファイルが多ければ多いほど遅くなるので、実際にはもっと時間がかかり
ます。
HSPのbcopy,fxcopyでかかる時間と、同じファイルを手動で(あるいはコマ
ンドバッチファイル)でコピーしたときの時間を比較計測してみましたか?

[8677] 決まった値を得たいのですが 投稿者:USER 投稿日:10/12/18(土) 14:19
stick kyでkyに返る値1、2、4、8からそれぞれ0、50、100、150という値を得られるようにしたいのですが方法ないでしょうか?
if文を使わずにコーディングしたいと思いまして・・

[8682] Re: 決まった値を得たいのですが 投稿者:ANTARES 投稿日:10/12/19(日) 00:01 <URL>
> stick kyでkyに返る値1、2、4、8からそれぞれ0、50、100、150
>という値を得られるようにしたいのですが方法ないでしょうか?
> if文を使わずにコーディングしたいと思いまして・・
c=1
repeat 4
ky=c<<cnt
mes "ky="+ky
mes int(logf(ky)/logf(2)*50) ;「logf(ky)/logf(2)」は2を底とする対数を求める
loop

[8683] Re^2: 決まった値を得たいのですが 投稿者:USER 投稿日:10/12/19(日) 11:07
ANTARESさんありがとうございます。
対数の命令を使うわけですね。
それぞれに0、1、2、3の値が欲しかったわけですが...
ここまでしないとできないのならif文を使うほうがいいのかなと思いました。

[8545] 無題 投稿者:超初心者 投稿日:10/06/14(月) 21:56
キーで画像を動くようにできたんですが、動かしている画像がブルブルと揺れます。それを修正するには どうすればいいのでしょうか。
アドバイスお願いします。

[8546] Re: 無題 投稿者:29100614 投稿日:10/06/14(月) 23:16
/*[redraw 2]を外した状態が不具合と同じなら再描画の問題でしょうか(←→↑↓)*/

sw = 0 ;(0 != gcopy)
if (sw) {picload dirinfo(1)+"/sample/demo/jp6girl.bmp",1
xx = 0 :yy = 200
color 255,255,255 :boxf 0,200,280,480
} else {xx = 100 :yy = 100}
repeat
redraw 2
if (sw) {color 255,255,255 :boxf xx(0),yy(0),xx(0)+280,yy(0)+200
} else {color 255,255,255 :boxf xx(0),yy(0),xx(0)+100,yy(0)+100}
getkey kk,37 :if kk {xx(0)-=2}
getkey kk,39 :if kk {xx(0)+=2}
getkey kk,38 :if kk {yy(0)-=2}
getkey kk,40 :if kk {yy(0)+=2}

if (xx(0) <= 0) {xx(0) = 0}
if (xx(0) >= 540) {xx(0) = 540}
if (sw) {if (yy(0) <= 200) {yy(0) = 200}
} else {if (yy(0) <= 0) {yy(0) = 0}
if (yy(0) >= 380) {yy(0) = 380}
if (sw) {pos xx(0),yy(0) :gcopy 0,0,0,280,200
} else {color 128, 64,128 :boxf xx(0),yy(0),xx(0)+100,yy(0)+100}
redraw 1
await
loop

[8756] マウスホイールの取得について 投稿者:とりのめ 投稿日:11/06/22(水) 16:35

初めてHSPをインストールさせて頂きました。
マウスホイールの取得について調べていて、こちらの
HSPを知りました。以下の事が出来るかを教えて
頂けると大変有り難いです。

下のコードを動かしてみました。

// ホイール移動量の取得
// Windows 98〜

; WM_MOUSEWHEEL (ホイールが回転した時)
oncmd gosub *mousewheel, $20A

stop

*mousewheel
; wparamの上位ワードに移動量が返る
mes ""+(wparam >> 16 & $FFFF)

return

やりたいのは、
1)ウインドウは表示しなくてよい。(ウインドウがアクティブでないときでも取得出来るのか?グローバール取得可か?)
2)ホイールが前方向に回転した時に、右クリック信号をWindowsに
  送信する。
  出来ない場合は、他のプログラムを起動する事でもOKです。
  C:\TMP\TEST1.EXE
3)後ろ方法 同じく左クリック または C:\TMP\TEST2.EXE
その他には、本機能の停止操作、プログラム終了操作等が
必要になりますが、取りあえず、1〜3が可能であるかを
教えて頂けると有り難いです。
宜しく処理お願いいたします。

[8758] Re: マウスホイールの取得について 投稿者:GENKI 投稿日:11/06/28(火) 21:50
> 1)ウインドウは表示しなくてよい。(ウインドウがアクティブでないときでも取得出来るのか?グローバール取得可か?)

ウィンドウの非表示は簡単です。タスクトレイへの常駐も可能です。別途モジュールやdllを使えば簡単。

oncmdはHSPのウィンドウがアクティブでなければ使用できません。
つーさのくーかん -再誕-
http://tu3.jp/0524
で配布のdllでキーフックするか、mousewをループして監視するかといった方法が考えられます。


> 2)ホイールが前方向に回転した時に、右クリック信号をWindowsに
> 3)後ろ方法 同じく左クリック または C:\TMP\TEST2.EXE

自動クリックはmouse_eventとかAPIとか方法はあります。
任意のプログラムの起動もexecで出来ます。


こっちで回答するの久しぶりだ。
メインの掲示板で質問したほうが見る人が多い分、回答得やすいですよ。ここはサブ掲示板です。
http://hsp.tv/play/pforum.php

[8708] \演算子? 投稿者:mio 投稿日:11/02/13(日) 12:51
初心者ですが、以下の疑問が出てきました。

\演算子は「割り算の余り」を表示しますよね。
ところが、以下のように3\5では3が表示されます。

a=5\3 ; 余りの2が表示される
mes a
b=3\5 ; 3が表示される?
mes b

これは割られる数<割る数の場合は、割れれる数が代入されるという仕様なのでしょうか?

ご教授よろしくお願いします。

[8709] Re: \演算子? 投稿者:矢野 投稿日:11/02/13(日) 15:49
5÷3=1・・・2(余り)
3÷5=0・・・3(余り)
ということで、下の場合も問題ないのではないですか。

[8710] Re^2: \演算子? 投稿者:mio 投稿日:11/02/13(日) 22:50
早速のご教授ありがとうございます。

> 3÷5=0・・・3(余り)

これが分かっていませんでした。
恥ずかしい!

[8623] 無題 投稿者:にゃんちゃん 投稿日:10/09/12(日) 10:48
こんにちは。
HSPで、漢字仮名混じり分をひらがなにへんかんしたいのですが、調べてみてもどんなものをつかえばいいのかわかりません。
なんとなく、IMEの再変換でもつかえばできるかなあとか思っているのですが、なにか方法があったら教えてくださいませんか?

[8882] スケールの反転 投稿者:USER 投稿日:12/01/27(金) 20:49
hgimg3でモデル表示すると左右逆になりますが
スケールの反転をすることで対処してほしいとなっています。
これはどうやってやればいいのでしょうか?

[8883] Re: スケールの反転 投稿者:締め出された人 投稿日:12/01/27(金) 21:31
> スケールの反転をすることで対処してほしいとなっています。

多分
setscale objid,-1,1,-1
こう

[8750] hspcmp.dll 投稿者:にゃんちゃん 投稿日:11/06/05(日) 14:04
こんにちは。hspcmp.dllを使おうとしているのですが、使うためにはdll以外になにかファイルを配布しなければならないのでしょうか?
HSPが入ってない環境でも、axファイルを直接実行させたいのですが。

[8530] デスクトップ上でマウスカーソルを追いかけるキャラを作りたいんですが・ 投稿者:メルカバ 投稿日:10/05/21(金) 02:34

> http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200511/05110007
>
> ここを参考にデスクトップにアニメーションする画像を表示させることはできたのですが、左クリックで移動させるのではなく、自動でマウスを追うにはどこをどう変更すればいいのかわからないので教えてください><

[8532] Re: デスクトップ上でマウスカーソルを追いかけるキャラを作りたいんですが・ 投稿者:20100527 投稿日:10/05/27(木) 15:56
/* ご参考 */
#include "user32.as"
dim np,2
dim op,2
dim dd,2
picload dirinfo(1)+"/sample/demo/jp6girl.bmp",0
repeat
op(0) = np(0),np(1)
GetCursorPos varptr(np)
stick kk,0 :if (kk & 128) or (kk & 256) {end}
if (op(0) != np(0)) or (op(1) != np(1)) {gosub *MoveF}
await
loop

*MoveF
dd(0) = (np(0)-op(0))/10
dd(1) = (np(1)-op(1))/10
repeat 10,1
SetWindowPos hwnd,0,op(0)+(dd(0)*cnt),op(1)+(dd(1)*cnt),0,0,$1
wait 1
loop
return

[8533] Re^2: デスクトップ上でマウスカーソルを追いかけるキャラを作りたいんですが・ 投稿者:20100528 投稿日:10/05/28(金) 00:26
/* 標準命令でOKなのね */
gsel 0,-1
bgscr 1
dim np,2
dim op,2
dim dd,2
dim sz,2
dim kk,1
picload dirinfo(1)+"/sample/demo/onibtn.gif",0
sz(0) = ginfo(10)/2,ginfo(11)/2
mouse ginfo(4)+sz(0),ginfo(5)+sz(1)
repeat
op(0) = np(0),np(1)
np(0) = ginfo(0)-sz(0),ginfo(1)-sz(1)
stick kk,0
if (kk & 128) or (kk & 256) {end}
if (op(0) != np(0)) or (op(1) != np(1)) {gosub *MoveF}
await
loop

*MoveF
dd(0) = (np(0)-op(0))/10
dd(1) = (np(1)-op(1))/10
repeat 10,1
width ,,op(0)+(dd(0)*cnt),op(1)+(dd(1)*cnt)
wait 1
loop
return

[8512] ちょっとわからないことが 投稿者:いむら 投稿日:10/04/17(土) 02:20 <URL>
質問します<(_ _)>
 
I絵文字みたいなソフトが作りたくていろいろ試行錯誤してますがまったくわからないので教えてもらえないでしょうか?
 
このソフトの仕組みは使いたい絵文字をクリックするとその絵文字をクリップボードに送って、自動でテキストエリアに貼り付けている・・という具合になっているとおもうのですが
どうも貼り付けるところの指定?がよくわからないです><。
便利ツールを作りたいですが・・どうがわかる人いらっしゃいませんか?
よろしくお願いします。
 
URLはっておきました。

[8514] Re: ちょっとわからないことが 投稿者:Kpan 投稿日:10/04/19(月) 22:28 <URL>
そのソフトは入れてチェックしてないのでどういう
挙動なのかは確認してないです。

テキストエリアにフォーカスがあるという前提だと
・キー送信(Ctrl+V)してる?
・WM_PASTEメッセージを送信してる?

[8582] 外部DLLの戻り値について 投稿者:にゃんちゃん 投稿日:10/07/23(金) 15:35
こんにちは。
HSP用に作られていないDLL(CPP用)のものをHSPのヘッダ作って使用した時、戻り値はstatに帰ってくるのでしょうか?
特に戻り先を指定するパラメータがなくて、statにファイルを操作するためのハンドルが入るはずなのですが、無効なハンドルだといわれてしまいます。
分かる方、教えてください。

[8586] Re: 外部DLLの戻り値について 投稿者:ANTARES 投稿日:10/07/24(土) 04:59 <URL>
>特に戻り先を指定するパラメータがなくて、
>statにファイルを操作するためのハンドルが入るはずなのですが、
>無効なハンドルだといわれてしまいます。
 何か使い方を間違えているのでしょう。

#include "user32.as"
mes hwnd
GetForegroundWindow
mes stat

[8588] Re^2: 外部DLLの戻り値について 投稿者:にゃんちゃん 投稿日:10/07/24(土) 10:55
こんにちは。
ってことは、戻り値はかならずstatに返ってくるのですね。
ありがとうございました。

[8510] エディットコントロール? 投稿者:peg 投稿日:10/04/14(水) 22:54
こんにちは。前回はとても助かりました。今回も質問したいと思います。

HSP3でのmesbox命令はフォントの種類とサイズの変更が出来ますが、多分すごく難しいと分かっていながら聴きますが…
mesboxの行間を広げられますか?(1px〜)

APIとかが関わってくすんですよね...(-公-、)ムムム

[8513] Re: エディットコントロール? 投稿者:Kpan 投稿日:10/04/19(月) 22:21 <URL>
文字の高さはリッチエディトコントロールとか
外部コントロール(たとえばFooty2)を利用
しないとだめだなはずです。

[8517] Re^2: エディットコントロール? 投稿者:peg 投稿日:10/04/21(水) 15:54
> 外部コントロール(たとえばFooty2)を利用
> しないとだめだなはずです。

ヒントありがとうございます!!

あと、返信遅れてすみません;

[8580] 理解できない計算結果を出力して困っています。 投稿者:石松 投稿日:10/07/23(金) 10:18
HSP 3.2.1をWindows7の64bit版で使用しています。

下記2つのプログラムを作りましたが、計算値に誤差があるようです。

for i,0,8,1
atai=powf(2,i)
mes "2の " + i + " 乗は " + atai + " です。"
next

上記のプログラムの値は下記になります。

2の 0 乗は 1.000000 です。
2の 1 乗は 2.000000 です。
2の 2 乗は 4.000000 です。
2の 3 乗は 8.000000 です。
2の 4 乗は 16.000000 です。
2の 5 乗は 32.000000 です。
2の 6 乗は 64.000000 です。
2の 7 乗は 128.000000 です。

この値は正しいのですが、整数にすると理解できない値を出力します。
そのプログラムは、下記になります。

for i,0,8,1
atai=int(powf(2,i))
mes "2の " + i + " 乗は " + atai + " です。"
next

上記のプログラムの値は下記になります。

2の 0 乗は 1 です。
2の 1 乗は 2 です。
2の 2 乗は 4 です。
2の 3 乗は 7 です。
2の 4 乗は 16 です。
2の 5 乗は 32 です。
2の 6 乗は 63 です。
2の 7 乗は 128 です。

なぜ、2の3乗の値が7で、2の6乗が63になるのかが理解できません。

解決策を教えてください。

[8587] Re: 理解できない計算結果を出力して困っています。 投稿者:ANTARES 投稿日:10/07/24(土) 05:10 <URL>
別法

for i,0,8,1
atai=int(powf(2,i)+0.1) ;八捨九入(もちろん四捨五入でも可)
mes strf("2の %d 乗は %d です。",i, atai)
next

前のスクリプトの「2.0」は「2」でいいです。

[8591] Re^2: 理解できない計算結果を出力して困っています。 投稿者:石松 投稿日:10/07/26(月) 09:39
ANTARESさん、教えていただきありがとうございました。

教えていただいた方法で解決はするのですが、これってHSPのバグのような気がしませんか。

> for i,0,8,1
> atai=int(powf(2,i)+0.1);八捨九入(もちろん四捨五入でも可)
> mes strf("2の %d 乗は %d です。",i, atai)
> next

[8598] Re^3: 理解できない計算結果を出力して困っています。 投稿者:ANTARES 投稿日:10/07/27(火) 00:31 <URL>
>教えていただいた方法で解決はするのですが、
>これってHSPのバグのような気がしませんか。
 C++で同じことをやって、どうなるか試してみようかと思いましたが、
仮に私がバグだと思っても開発担当者がバグだと思わなければ
意味がないのでやめました。

[8602] Re^4: 理解できない計算結果を出力して困っています。 投稿者:ANTARES 投稿日:10/07/27(火) 02:00 <URL>
 結局、バグと言えば、まあバグなのでしょうが、
HSPのバグかAPIのバグかは調べてみないとわからないということです。

[8604] Re^5: 理解できない計算結果を出力して困っています。 投稿者:石松 投稿日:10/07/27(火) 09:18
ANTARESさんのおっしゃるとおりだと思います。

しかし、プログラミング初心者マークの者としては、算数で習ったとおりの答えがほしいものですね。

>  結局、バグと言えば、まあバグなのでしょうが、
> HSPのバグかAPIのバグかは調べてみないとわからないということです。

[8609] Re^6: 理解できない計算結果を出力して困っています。 投稿者:20100730 投稿日:10/07/30(金) 18:16
/*ご参考 /common/hspdef.as のマクロをその場しのぎで改造してみる */

;#define global ctype powf(%1,%2) expf(logf(%1)*(%2))
#define global ctype powf2(%1,%2) expf(logf(%1)*(%2))*1.00000000000001


repeat 35
mes strf("2の %2d 乗は %20f %20f %12d %12d です。",cnt,powf(2,cnt),powf2(2,cnt),int(powf(2,cnt)),int(powf2(2,cnt)))
loop

[8585] Re: 理解できない計算結果を出力して困っています。 投稿者:ANTARES 投稿日:10/07/24(土) 04:58 <URL>
for i,0,8,1
atai=powf(2.0,i)
mes strf("2の %d 乗は %g です。",i, atai)
next

[8437] 無題 投稿者:カン 投稿日:10/01/17(日) 18:20
初めまして。質問です。
現在、クイズを作っているのですが、一度解いた問題の非表示と正解の設定の仕方が解りません。

notesel buf
noteload "クイズゲーム.txt"

*mondai
repeat
frame = frame +1
mes ""+frame+""
noteget a,frame*4
noteget kotae(0) , frame*4+1
noteget kotae(1) , frame*4+2
noteget kotae(2) , frame*4+3
mes ""+a+"\n"
wait 50
button ""+kotae(0)+"\n", *mondai
button ""+kotae(1)+"\n", *hazure
button ""+kotae(2)+"\n", *hazure
stop
loop

*go
mes "正解"
goto *mondai
stop

*hazure
mes "不正解"
stop


・最初の問題文と回答が表示されたまま次の問題に移ってしまう
・このままだと常に同じところに正解があることになるので、問題ごとに正解の位置を変えたい

それからもう一つあるのですが(申し訳ないです)、自分は、txtは上から問答1答2答3の順で並んでいて常に正解は答1、hspを使い答1の位置をランダムにすると解釈しているのですが、だいたいそんな感じの解釈で良いのでしょうか?txtに問答以外に記述するものはありませんよね?

初歩的な質問ばかりですみません。よろしくお願いします。

[8439] Re: 無題 投稿者:ANTARES 投稿日:10/01/18(月) 02:47 <URL>
>・最初の問題文と回答が表示されたまま次の問題に移ってしまう
clsで消しましょう

>・このままだと常に同じところに正解があることになるので、問題ごとに正解の位置を変えたい
rndとposを使います。

>hspを使い答1の位置をランダムにすると解釈しているのですが、
>だいたいそんな感じの解釈で良いのでしょうか?txtに問答以外に
>記述するものはありませんよね?
 そうであっていけない理由はありませんが、
そうでなければならない理由もありません。
あなたが決めることですし、足りない情報があれば、
作っていく内に気がつくでしょう。

 この構造ではrepeatとloopは不要です。
また、stopの後にラベル定義以外の命令を書いても無意味です。

 「強制改行」にするか、適当に改行を入れてください。

[8440] Re^2: 無題 投稿者:カン 投稿日:10/01/18(月) 20:00
ありがとうございます!何とかうまくいきそうです!

[8616] チェックボックス 投稿者:fanky 投稿日:10/09/05(日) 10:05
そろそろポケモン新作がでるので
自分で努力値カウンターを作っているのですが

一度チェックボックスにチェックをいれると
チェックをはずしたときにもとの値にもどらないのですが
どうしたらいいでしょうか
お願いします
------------------------------------------------------------
;努力値カウンター
q=1
hp=0
attack=0
defence=0
tdefence=0
tattack=0
speed=0
*start
cls
chkbox "ポケルス",pokerusu
chkbox "パワー系",pw
button "HP",*h
button "攻撃",*a
button "防御",*d
button "特攻",*ta
button "特防",*td
button "素早さ",*s

mes "HP値"+hp
mes "攻撃値"+attack
mes "防御値"+defence
mes "特攻値"+tattack
mes "特防値"+tdefence
mes "素早さ値"+speed

stop
*h
if pokerusu=1:q=2
if pw=1:w=4
hp+=(1+w)*q
if hp>255:hp=255
goto*start
*a
if pokerusu=1:q=2
if pw=1:w=4
attack+=(1+w)*q
if attack>255:attack=255
goto*start
*d
if pokerusu=1:q=2
if pw=1:w=4
defence+=(1+w)*q
if defence>255:defence=255
goto*start
*ta
if pokerusu=1:q=2
if pw=1:w=4
tattack+=(1+w)*q
if tattack>255:tattack=255
goto*start
*td
if pokerusu=1:q=2
if pw=1:w=4
tdefence+=(1+w)*q
if tdefence>255:tdefence=255
goto*start
*s
if pokerusu=1:q=2
if pw=1:w=4
speed+=(1+w)*q
if speed>255:speed=255
goto*start
----------------------------------------------------------

[8619] Re: チェックボックス 投稿者:20100906 投稿日:10/09/06(月) 15:26
/*ご参考*/

*h
q = pokerusu +1
w = pw *4
hp = limit(hp+(1+w)*q,0,255)
goto*start

[8617] Re: チェックボックス 投稿者:矢野 投稿日:10/09/05(日) 23:04
元に戻らないのは、チェックを外した時、つまり
pokerusu=0  の時と pw=0 の時
の設定をしていないからです。たとえば、
button "HP" だけについて修正すると次のようになります。

*h
if pokerusu=0:q=1
if pokerusu=1:q=2
if pw=0:w=0
if pw=1:w=4
hp+=(1+w)*q
if hp>255:hp=255
goto*start

[8700] 電卓 投稿者:シーリー 投稿日:11/01/29(土) 19:29
電卓の計算をしてつまづいてしまいました。

comboxを使わなければできたのですがcomboxを使うと
きちんと計算ができなくなってしまいます;

width 250,70
title "電卓しようよ"

;pos 左側は横の座標 右側は縦の座標
;a,bを初期化

a=""
b=""

pos 20,12 : input a,50,20,2
pos 170,12 : input b,50,20,2
pos 88,12 : combox c,70,"+\n−\n×\n÷\n"
pos 20,40 : objsize 200,20 : button "計算する",*keisan
stop

*keisan

if cb = 0 { dialog a+b}
if cb = 1 { dialog a-b}
if cb = 2 { dialog a*b}
if cb = 3 { dialog a/b}
stop

ソースです、よろしくおねがいします。

[8701] Re: 電卓 投稿者:シーリー 投稿日:11/01/29(土) 19:32
すみません間違えました

> if cb = 0 { dialog a+b}
> if cb = 1 { dialog a-b}
> if cb = 2 { dialog a*b}
> if cb = 3 { dialog a/b}

ここの部分のcbはすべてcにしています。

[8702] Re^2: 電卓 投稿者:20110129 投稿日:11/01/29(土) 23:29
/* 文字列の計算に成ってるからですね */

; if c = 0 { dialog (0+a)+(0+b)}
if c = 0 { dialog int(a)+int(b)}
if c = 1 { dialog int(a)-int(b)}
if c = 2 { dialog int(a)*int(b)}
if c = 3 { dialog int(a)/int(b)}

[8634] 「COMODO」の誤認報告。 投稿者:20101009 投稿日:10/10/09(土) 04:02
今日からCOMODOにhsp3.exeがトロイとして誤認されるようになりました。

[8637] Re: 「COMODO」の誤認報告。 投稿者:gunbird 投稿日:10/10/18(月) 11:26
Avast!でもおなじく

[8635] Re: 「COMODO」の誤認報告。 投稿者:字がキタナイ 投稿日:10/10/11(月) 14:23
> 今日からCOMODOにhsp3.exeがトロイとして誤認されるようになりました。

私の場合、ファイルダイアログの不具合に対応した、HSP3.21a2で
上書きしたhsp3.exeおよび、hsp321a2.zipに含まれているhsp3.exeが、

AVG Aniti-Virus Free 8.5.448、ウイルスデータベース
271.1.1/3189で、トロイの木馬Agent2.BOWFに感染しているとして、
起動がブロックされているようで、"実行用ランタイムファイルが見
つかりません”とでて、正常に動作しなくなりました。

なお、hsp3.21aのhsp321.zipの(ままの)ほうは、感染していると
はでてこず、正常に動作しました。

[8639] Re^2: 「COMODO」の誤認報告。 投稿者:Noname 投稿日:10/10/18(月) 17:41
> 私の場合、ファイルダイアログの不具合に対応した、HSP3.21a2で
> 上書きしたhsp3.exeおよび、hsp321a2.zipに含まれているhsp3.exeが、
>
> AVG Aniti-Virus Free 8.5.448、ウイルスデータベース
> 271.1.1/3189で、トロイの木馬Agent2.BOWFに感染しているとして、
> 起動がブロックされているようで、"実行用ランタイムファイルが見
> つかりません”とでて、正常に動作しなくなりました。

同上で、
Aviraでもhsp3.exeが
トロイの木馬(TR/Agent.fnoe)として検出されてしまいました

[8626] 関数内のstrmid()が働かない 投稿者:ヒロシ 投稿日:10/09/16(木) 21:25
自作関数内でstrmid()を使うとエラーし、
”#error23--> 変数が指定されていません”となります。

strlen()など、他の関数では問題ないのですが。

strmid()も関数test()の外に出すと正常に働きます。

超初心者ですので、宜しくお願いします。

//******************************

#module
#defcfunc test str t
a=strmid(t,1,1)
//a=strlen(t)
return a
#global

x=test("abcd")
mes x

//*******************

[8627] Re: 関数内のstrmid()が働かない 投稿者:20100917 投稿日:10/09/17(金) 00:12
/*引数を変数に代入する必要があります*/

#module hoge
#defcfunc test str t
x0 = t
a = strmid(x0,1,1)
return a
#defcfunc test1 str t,local x1
x1 = t
a = strmid(x1,1,1)
return a
#defcfunc test2 array t
a = strmid(t,1,1)
return a
#global

x = test("abcd") :mes x :mes x0@hoge
x = test1("abcd") :mes x :mes x1@hoge
z = "abcd"
x = test2(z) :mes x

[8629] Re^2: 関数内のstrmid()が働かない 投稿者:ヒロシ 投稿日:10/09/17(金) 11:58
早速の解答 有難うございます。
指摘の通りで、動きました。
これで、プログラムを続けられます。
助かりました。

[8753] アイコンの絵って 投稿者:初心者 投稿日:11/06/11(土) 19:51
HSPの実行ファイルのアイコンの絵を変えたいんですけどどうすればいいのか教えてください

[8782] Re: アイコンの絵って 投稿者:k5342 投稿日:11/07/27(水) 14:15
> HSPの実行ファイルのアイコンの絵を変えたいんですけどどうすればいいのか教えてください
KpanさんのLet's HSP ic!で変更可能です。
なにかのソフトで*.icoファイルを作り、
Kpanさんのソフトに実行ファイルでかきだした*exeをD&Dし、
アイコンを変更できます。

ここから。
http://lhsp.s206.xrea.com/works/hsp.html

[8759] Re: アイコンの絵って 投稿者:GENKI 投稿日:11/06/28(火) 21:52
> HSPの実行ファイルのアイコンの絵を変えたいんですけどどうすればいいのか教えてください

別途、HSP対応のツールが必要です。
Googleで「HSP アイコン」で検索すれば詳しい回答がすぐ見つかりますので詳細解説は省きます。

[8539] 無題 投稿者:たろう 投稿日:10/06/11(金) 18:15
初歩的な質問ですみません。ちょっと確認したいことがあるのですが、
例えば、
a="あいうえおかきくけこ"
b="さしすせそたちつてと"
al=strlen(a)
bl=strlen(b)
c=""+al+","+bl
とやるのと、
a="あいうえおかきくけこ"
b="さしすせそたちつてと"
c=""+strlen(a)+","+strlen(b)
とやるのでは、後者のほうが速いのですよね?
それとも速度は変わらないのでしょうか。

[8541] Re: 無題 投稿者:Kpan 投稿日:10/06/11(金) 21:21 <URL>
おっしゃるように、後者の方が処理量が少ないので
コード上では速いです。
この程度の文字量ではほとんど差はでないでしょうが。

[8540] Re: 無題 投稿者:20100611 投稿日:10/06/11(金) 21:11
/*winmmのタイマーの方が制度が高いけど単純にこんな感じかしら?*/

#include "kernel32.as"
gettickcount :ii = stat
repeat 1000000
;await
a = "あいうえおかきくけこ"
b = "さしすせそたちつてと"
al = strlen(a)
bl = strlen(b)
c = ""+al+","+bl
loop
gettickcount :t1 = stat-ii

gettickcount :ii = stat
repeat 1000000
;await
a = "あいうえおかきくけこ"
b = "さしすせそたちつてと"
c = ""+strlen(a)+","+strlen(b)
loop
gettickcount :t2 = stat-ii

mes strf("CASE1 = %d CASE2 = %d DEF = %d /1,000,000回",t1,t2,t1-t2)

[8543] Re^2: 無題 投稿者:Kpan 投稿日:10/06/11(金) 21:34 <URL>
20100611さんのサンプルは、同じ変数名の宣言が
すでに行なわれてる後者の方が有利に処理されて
しまいます。あくまでコード上での話ですが。(^^;

変数名を別のものにするか、別個でコンパイルするか

[8544] Re^3: 無題 投稿者:たろう 投稿日:10/06/11(金) 23:20
ありがとうございました。解決致しました。
>20100611さん
サンプルコードありがとうございます。
これだけの文字量でも意外と差が出るんですね。
>Kpanさん
20100611さんのコードを前者・後者別々で実行してみましたが、やはりコード量が少ない後者のほうが早い結果が出ました。
コード組んでて気になったので、助かりました。

[8659] picload命令が・・・・・ 投稿者:ピカくら@ 投稿日:10/11/08(月) 18:08
何かの不具合だと思うんですけれど、
picload命令で、ある画像を表示させたいんですけど、
昨日から、その画像ファイルがあるのに、画像ファイルがありませんと、エラーがでてしまいます。
いままでのpicload命令は、正常に、機能するんです。
PCの再起動を行っても、HSPの再インストールもやっているのですが、それでもエラーがでてしまいます。
僕のHSPがおかしいのでしょうか?それとも、僕の書き方がおかしいのでしょうか?
教えてください! お願いします!

[8661] Re: picload命令が・・・・・ 投稿者:VGM 投稿日:10/11/09(火) 01:49
picload の前に dialog "",16,"" などのカレントフォルダが変更される命令はありませんか?

[8663] Re^2: picload命令が・・・・・ 投稿者:ピカくら@ 投稿日:10/11/09(火) 19:38
うーんまだできん…

[8669] Re^3: picload命令が・・・・・ 投稿者:ピカくら@ 投稿日:10/11/21(日) 19:26
ふう。
なんとかできた・・・

[8660] Re: picload命令が・・・・・ 投稿者:ANTARES 投稿日:10/11/08(月) 23:35 <URL>
 そのファイルのフルパスがわかれば何かわかるかもしれません。

[8662] Re^2: picload命令が・・・・・ 投稿者:ピカくら@ 投稿日:10/11/09(火) 19:36
ありがとうございます!
でも、また失敗しました。
いいアイデアをありがとうございます!

[8791] 無題 投稿者:ヨッシー 投稿日:11/09/29(木) 23:12
なぜか、HSPで、画像を表示させようとすると、
エラーが出ます。HPSに対応形式に対応している画像です。

同じフォルダに入れています。
画像もおかしくなっていません。

なぜでしょうか><皆さんの意見よろしくお願いします!

[8800] Re: 無題 投稿者:あざざ 投稿日:11/11/07(月) 21:41
jpgかbmpだよ?

[8792] Re: 無題 投稿者:ARA 投稿日:11/10/18(火) 16:26
> なぜか、HSPで、画像を表示させようとすると、
> エラーが出ます。HPSに対応形式に対応している画像です。
>
> 同じフォルダに入れています。
> 画像もおかしくなっていません。
>
> なぜでしょうか><皆さんの意見よろしくお願いします!



簡単なスクリプトをお願いします。
私に分かる範囲ならお教えします。

[8640] マウスの左クリックのキー送信 投稿者:ヒロ 投稿日:10/10/19(火) 20:56
HSP以外のアプリケーションに「マウスの左クリック」のキー送信をしたいのですが、aplkeyだと「3ボタンマウスのまん中のボタン」しか送れないので何か手段はないでしょうか。

[8641] Re: マウスの左クリックのキー送信 投稿者:ANTARES 投稿日:10/10/20(水) 00:02 <URL>
keybd_event
 ヘルプで検索するとllmod3しか出てきませんが、
Win32APIにもあり、機能的には同じです。
http://msdn.microsoft.com/ja-jp/library/cc364822.aspx

[8642] Re^2: マウスの左クリックのキー送信 投稿者:ヒロ 投稿日:10/10/20(水) 01:15
> keybd_event
>  ヘルプで検索するとllmod3しか出てきませんが、
> Win32APIにもあり、機能的には同じです。
> http://msdn.microsoft.com/ja-jp/library/cc364822.aspx

ご返信ありがとうございました。
Win32APIについて知識不足なのでいろいろ調べてがんばってみようと思い
ます。

[8787] エラーメッセージが分かりませぬ。 投稿者:ちこ。 投稿日:11/08/14(日) 23:55
初めて投稿します、3Dゲームを作成しているのですが、なぜか突然、「Invalid ObjID#-1」と書かれたダイアログボックスが出現し、
その次に、「問題が発生したため、hsp3hg.exe を終了します。 ご不便をおかけして申し訳ありません。」などというダイアログボックスが登場し、ゲームが強制終了してしまいます。
この「Invalid ObjID#-1」というエラーの意味、もしどなたか分かる方いらっしゃればご教授お願います。

使用しているのはつい最近公開されたHSP3.3RC1です。でも、それまで使用していたHSP3.2でも、なぜか突然強制終了してしまうことが頻繁にありました。(でも今までは「Invalid〜」のダイアログボックスは登場せず、いきなり「問題が〜」というダイアログボックスでした。)
ソースを提示できればと思うのですが、ちょっと膨大で、ソースのどこが問題なのかさっぱり分かりません。せめてエラーの意味だけでも分かれば・・・と思い投稿させていただきました。

[8789] Re: エラーメッセージが分かりませぬ。 投稿者:ちこ。 投稿日:11/08/15(月) 00:07
ちこです。
すいません、誤ってこのサブ掲示板に投稿してしまいました。
さきほどメインの掲示板に同じモノを投稿しました。以下の通りです。
ご迷惑おかけしてすいません。自分の不注意です。

http://hsp.tv/play/pforum.php?mode=all&num=40574

[8462] 2次元配列の複製 投稿者:にゃんちゃん 投稿日:10/02/15(月) 16:56
2次元配列を、別の2次元配列にコピーしたいのですが、どうやってもできません。
配列の要素数は、全く同じで、予め定義してあり、一つには色んな数字が入っています。
どう使いたいかというと、自分が歩いていくゲームを作っていてマップを広くしたくて排列の幅を広げたら、中味が全部消えてしまうことを思い出し、できないでいます。
もし良ければ、モジュールなどを提供してはいただけませんでしょうか?ちなみに、ググったら、1次元ならあったけど、2次元は見つけられませんでした

[8463] Re: 2次元配列の複製 投稿者:20100215 投稿日:10/02/15(月) 22:14
dim x,2,2
x(0,0)=1,2
x(0,1)=3,4

mes x(0,0)
mes x(1,0)
mes x(0,1)
mes x(1,1)

dim y,2,2
memcpy y,x,(2*2*4);次元x次元x4Byte

mes y(0,0)
mes y(1,0)
mes y(0,1)
mes y(1,1)

[8810] ispinet系命令とhspdx系命令の食べ合わせの悪さ? 投稿者:hkr 投稿日:11/12/08(木) 00:33
現在hspinetのjson系命令のバグ(?)で苦しんでいます。

具体的にはhspdx系のDirectX画面処理を実行すると、
jsongeti命令で取得した数値型の値が不安定になるというものです。

今手元のプログラムでは、バッファに読み込んだ数値に対して、
jsongetiで数値を取り出すと-5 〜 +5の範囲で値が増減します。
jsongets系の命令は全く問題ありませんし、DirectXの使用をやめると
この現象は起きないようです。

これは、ライブラリ内部で何かメモリが競合しているのでしょうか?
それとも、単純なプログラムミス?(;´ω⊂)

[8839] Re: ispinet系命令とhspdx系命令の食べ合わせの悪さ? 投稿者:締め出された人 投稿日:11/12/21(水) 22:48
その組み合わせで使ってる人は少ないと思うので
誰でも確認できるようなサンプルを投稿してみて
まず環境依存で起こってるのか使い方かバグかを
はっきりさせる

で、こっちはサブ掲示板に格下げされてるから反応は鈍いと思う

[8806] どなたか教えてください 投稿者:ぴ12345 投稿日:11/12/05(月) 21:11
 心理学実験で心的ローテーションをしようと思っています。
HSP使用のプログラミングをやろうと思っていますが
エクセルやワードしか普段使ったことがありません。
本や、インターネットでのやり方を参照していますが
なかなか用語が難しくできません。
やりたいことが簡単にできないでしょうか?
(1)個人情報(名前、年齢、性別)
(2)練習、
(3)画像提示、
(4)反応時間計測、
(5)誤答率、
(6)試行数の確保(必ず10試行取る)、
(7)エクセル上へデータ集計をしたい
・・・のですが、用語が難しくて途方に暮れています。

どなたか、よろしくお願いします。

[8834] Re: どなたか教えてください 投稿者:通りがかり 投稿日:11/12/16(金) 03:42
>  心理学実験で心的ローテーションをしようと思っています。
> HSP使用のプログラミングをやろうと思っていますが
> エクセルやワードしか普段使ったことがありません。
> 本や、インターネットでのやり方を参照していますが
> なかなか用語が難しくできません。
> やりたいことが簡単にできないでしょうか?
> (1)個人情報(名前、年齢、性別)
> (2)練習、
> (3)画像提示、
> (4)反応時間計測、
> (5)誤答率、
> (6)試行数の確保(必ず10試行取る)、
> (7)エクセル上へデータ集計をしたい
> ・・・のですが、用語が難しくて途方に暮れています。
>
> どなたか、よろしくお願いします。
この掲示板では不適切な回答かもですが・・・
やりたいことをざーとみるとなでしこを使った方がよいのでは?

[8704] オブジェクト種類の判別 投稿者:初心者 投稿日:11/02/08(火) 16:17
そのオブジェクトがボタンであるのかメッセージボックスであるのか、判別する方法はありますか?
objinfo命令で出来そうな気もしますが、さっぱりわかりません。
宜しくお願いします。

[8705] Re: オブジェクト種類の判別 投稿者:20110209 投稿日:11/02/09(水) 00:25
/* APIで良ければ */

#include "user32.as"
button gosub "BUTTON",*Label

sdim ss,256
GetClassNameA objinfo(0,2),varptr(ss),256
mes ss

*Label

[8707] Re^2: オブジェクト種類の判別 投稿者:初心者 投稿日:11/02/09(水) 14:43
> /* APIで良ければ */
>
> #include "user32.as"
> button gosub "BUTTON",*Label
>
> sdim ss,256
> GetClassNameA objinfo(0,2),varptr(ss),256
> mes ss
>
> *Label

早速の回答ありがとうございます。
APIはわかりませんが、使うことは出来ますのでそのまま使わせていただきます。
助かりました。

[8801] 3Dマップ 投稿者:ありりりあ 投稿日:11/11/17(木) 16:15
HSPでマップに高低をつけるにはどうしたらいいんですか?

よかったら教えてください。

[8799] pack命令での悩み 投稿者:高速世界対 投稿日:11/10/30(日) 12:57
pack命令でそろそろexeとして作ろうとしたのですが、なぜかわかり
ませんが、#ファイルがありません。[ベテーヘ.jpg]
と言う表示になりました。

んで自分も探していたのですが、まったく、ベテーヘ.jpgというも
のはなく、またそんなファイル名などは一切ありませんでした。
これはバグでしょうか?
もちろんもう一度確認をしましたがベテーヘ.jpgはやはりありませ
んでした。

理由をしっている方教えてください。

[8794] notegetについて 投稿者:aaa 投稿日:11/10/23(日) 00:31
noetegetを使い
2行の文字列をテキストファイルから取得したいのですが
やりかたがわかりません
教えてください

[8798] Re: notegetについて 投稿者:ANTARES 投稿日:11/10/28(金) 17:33 <URL>
> noetegetを使い
> 2行の文字列をテキストファイルから取得したいのですが
file="test.txt"
notesel buf
noteload file
sdim linebuf,81
repeat 2
noteget linebuf,cnt
mes ""+cnt+" "+linebuf
loop

[8749] 3Dのシューティング 投稿者:小鳥遊 一 投稿日:11/06/04(土) 22:41
3Dのシューティングを作ろうとしているのですが、何がなんだかわかりません。
何か、3Dのゲーム作成の手助けをしてくれるようなサイトはありませんか?誰か教えてください<m(_ _)m>

[8788] Re: 3Dのシューティング 投稿者:ちこ。 投稿日:11/08/14(日) 23:58
> 3Dのシューティングを作ろうとしているのですが、何がなんだかわかりません。
> 何か、3Dのゲーム作成の手助けをしてくれるようなサイトはありませんか?誰か教えてください<m(_ _)m>

「HSPでつくる簡単3Dゲーム」という本が出ているので、まずはそれを買って読んでみるというのはどうでしょう。
かくいう自分もそれを読んで勉強しました。

[8762] Re: 3Dのシューティング 投稿者:GENKI 投稿日:11/06/28(火) 21:57
> 3Dのシューティングを作ろうとしているのですが、何がなんだかわかりません。
> 何か、3Dのゲーム作成の手助けをしてくれるようなサイトはありませんか?誰か教えてください<m(_ _)m>

ORZさんの言ってたとおりこっちは放置プレイになっちゃいましたね。
微妙に文面が違いますがマルチポストですね。
メインのほうのHSP3掲示板で回答がたくさん付いています。
誰か間違ってレスしないようにあっちへ誘導。
http://hsp.tv/play/pforum.php?mode=all&num=39550

[8783] ファイルオープンダイアログのディレクトリ指定を任意に行いたい 投稿者:白岩 投稿日:11/08/08(月) 21:51
 hspスクリプトを実行し、ファイルオープンダイアログを表示させると、カレントディレクトリが最初に指定されます。
 一方、exeファイルを生成し実行すると、初回起動時は多くの場合マイドキュメントを、2回目からは、前回起動時にアクセスしたディレクトリが指定されます。
 ユーザーが任意に指定することはできないのでしょうか。

[8785] Re: ファイルオープンダイアログのディレクトリ指定を任意に行いたい 投稿者:ANTARES 投稿日:11/08/09(火) 20:30 <URL>
> hspスクリプトを実行し、ファイルオープンダイアログを表示させると、
>カレントディレクトリが最初に指定されます。
> 一方、exeファイルを生成し実行すると、初回起動時は多くの場合
>マイドキュメントを、2回目からは、前回起動時にアクセスした
>ディレクトリが指定されます。
 私の環境(WinXP, hsp3.21)では逆ですが、
OSによって違うのでしょうか?

 拙作anthspex.dllのselfilesなら、どちらもカレントディレクトリに
なりますが、これもOSによって違うかもしれません。

 念のために書いておきますが、カレントディレクトリは
chdirによって変更できます。

[8786] Re^2: ファイルオープンダイアログのディレクトリ指定を任意に行いたい 投稿者:白岩 投稿日:11/08/12(金) 15:37
 ANTARESさんと環境はあまり変わりないので、違う動作をするとは考えにくいのですが。
 初期動作はあまり再現性がないので、今わかっていることをいうならば、chdir命令では、私の環境で、dialog命令のアクセスフォルダをコントロールできないということです。
 anthspex.dllのサンプルのselfiles命令のスクリプトにchdir命令を付け加えたら、コントロールでき、なんとなく見通しがついてきた感じがします。
 ありがとうございます。もう一息がんばってみます。

[8784] Re: ファイルオープンダイアログのディレクトリ指定を任意に行いたい 投稿者:20110809 投稿日:11/08/09(火) 16:02
chdir "C:\\"
で予め移動して置くのは駄目なのでしょうか?

[8760] 過疎地 投稿者:通りすがり 投稿日:11/06/28(火) 21:53
無回答のままの質問がチラホラありますが
この掲示板は過疎っている様なので、
回答のつかなかった人や新たに質問する人は今後
もう一つの方のHSP掲示板を利用するようにした方がいいかもしれません。
http://hsp.tv/play/pforum.php

[8761] Re: 過疎地 投稿者:通りすがり 投稿日:11/06/28(火) 21:57
あうあう かぶっちゃった(ーー

[8735] スタートボタン 投稿者:hyt 投稿日:11/05/01(日) 22:05
スタートボタンのサイズをどうやって変えれますか?
sendmsg の$Cはサイズが変わらんし・・・

[8724] hgimg3でアニメさせるとおちる 投稿者:USER 投稿日:11/04/15(金) 14:07
addxanimでxファイルの追加を行いobiactで切り替えをすると
プログラムがおちてしまいます。
0から1へ移行しただけでこうなります。
当方Windows7 64bitですが同じ体験された方いませんか?

[8719] HSPLet 投稿者:halfmoon 投稿日:11/04/05(火) 12:47
HSPLetで、「Java.io.FileNotFoundException(ここにファイル名)(アクセスが拒否されました)」とでるのですが、どうすればいいのでしょうか?(Javaはちゃんと入っています。)

[8689] WEBの取り込みについて 投稿者:nama 投稿日:11/01/17(月) 08:14
HSPで、WEB上のサイトの情報(ソース)を取り込むことは可能でしょうか?

試しにbloadでやってみたのですがダメでした。

よろしくお願いします。

[8690] Re: WEBの取り込みについて 投稿者:ANTARES 投稿日:11/01/18(火) 08:04 <URL>
sample\hspinet\test1.hspなど

[8692] Re^2: WEBの取り込みについて 投稿者:nama 投稿日:11/01/18(火) 13:23
> sample\hspinet\test1.hspなど

ありがとうございます!
うまくいきました。

[8684] windowsムービーメーカーで作った動画が再生しません 投稿者:(・∀・)イイ! 投稿日:10/12/25(土) 11:48
なぜか
windows ムービー メーカー プロジェクトで作った動画が再生されません
こんな感じです
どこか間違っているでしょうか?
mmload "ファイル名.wmv"
mmplay

[8686] Re: windowsムービーメーカーで作った動画が再生しません 投稿者:ANTARES 投稿日:10/12/26(日) 05:11 <URL>
 インターネットから落としたファイルなら
普通に再生できます。
メディア・プレイヤーで再生できますか?

>exec "wplayer ファイル名.wmv"
 WinXP以降では動かないと思います。

[8687] Re^2: windowsムービーメーカーで作った動画が再生しません 投稿者:(・∀・)イイ! 投稿日:10/12/27(月) 11:01
>  インターネットから落としたファイルなら
> 普通に再生できます。
> メディア・プレイヤーで再生できますか?
>
> >exec "wplayer ファイル名.wmv"
>  WinXP以降では動かないと思います。

ありがとうございます!
無事に再生できました!

[8685] Re: windowsムービーメーカーで作った動画が再生しません 投稿者:(・∀・)イイ! 投稿日:10/12/25(土) 12:12
すいませんあと
exec "wplayer ファイル名.wmv"
でもエラー14
外部ファイル呼び出し中のエラーですと表示されます

[8650] 少数の計算について 投稿者:にゃんちゃん 投稿日:10/11/03(水) 18:58
こんにちは。
HSPで少数の計算を行ったとき、たとえば8.5であっても「8.5000」のように表示されてしまいます。
このいらない000を消したいときはどうすればいいのか、調べているのですが分かりません。
どなたか教えてください。
よろしくお願いいたします。

[8653] Re: 少数の計算について 投稿者:ANTARES 投稿日:10/11/03(水) 23:46 <URL>
> HSPで少数の計算を行ったとき、たとえば8.5であっても「8.5000」のように表示されてしまいます。
> このいらない000を消したいときはどうすればいいのか、調べているのですが分かりません。
a=8.5
mes a
mes strf("%g",a)

[8615] packfile機能で埋め込んだファイルを呼び出すには? 投稿者:ミガリオ 投稿日:10/09/05(日) 01:53
packfile機能で埋め込んだファイルを呼び出す方法が分かりません。

(例)
#pack "画像.jpg"

picload "〜〜〜〜"
〜〜〜〜に埋め込んだファイルを呼び出すにはなんと入れればよいのでしょうか?
画像の参照場所をそのまま入れると、ファイルの場所が変わったときに実行ファイルが動かなくなります。

調べても、よくわからなかったです。ご回答よろしくお願いします。

[8618] Re: packfile機能で埋め込んだファイルを呼び出すには? 投稿者:ANTARES 投稿日:10/09/06(月) 03:23 <URL>
>ファイルを呼び出すにはなんと入れればよいのでしょうか?
 ファイル名のみです。ただし、ファイル名に全角文字は不可です。

[8590] 無題 投稿者:にゃんちゃん 投稿日:10/07/26(月) 06:21
おはようございます。
また質問です。
#funcで定義する型(strとかvarとか)についてです。
1:varとは、変数の中身を刺すのでしょうか?それとも変数名を刺すのでしょうか?
2:デコーダーのDLLを使いたいのですが、デコードしたものを保存する変数を指定したい場合はどの型を設定すればいいのでしょうか?
3:デコードする前にデコードしたものが返ってくる変数は文字列型にしておくべきでしょうか?
以上、よろしくおねがいします。

[8600] Re: 無題 投稿者:ANTARES 投稿日:10/07/27(火) 01:02 <URL>
>1:varとは、変数の中身を刺すのでしょうか?それとも変数名を刺すのでしょうか?
 よくわかりません。

>2:デコーダーのDLLを使いたいのですが、デコードしたものを保存する変数を
>指定したい場合はどの型を設定すればいいのでしょうか?
 使いたい関数の仕様によります。

>3:デコードする前にデコードしたものが返ってくる変数は
>文字列型にしておくべきでしょうか?
 使いたい関数の仕様によります。

 一般論で訊かれると、一般論で答えなければなりませんが、
一般論では正確性に自信が持てなかったり、誤解を与える可能性が残ったりして
推敲する度に書き直した挙げ句、結局、意味のあることは何も書けなくなって
しまったりします。
質問は個別的、具体的にお願いします。
そうしないと、「レスしない」か「無意味なレスを返す」以外に
選択肢がない場合があります。

[8595] Re^2: 無題 投稿者:にゃんちゃん 投稿日:10/07/26(月) 17:15
あれから調べたのですが、varptrで変数のアドレスを渡せることが分かって何も考えずにやってみたら使えないみたいでした。
varptrと同じことをするにはどうしたらいいのですか?
変数の中身ではなくて、変数の名前を渡したいんです。

[8596] Re^3: 無題 投稿者:にゃんちゃん 投稿日:10/07/26(月) 17:21
すみません。勘違いしてました。
varptrはちがうみたいですね。
しかし、相変わらず変数アドレスを渡すやりかたがまったくわかりません。
どなたか教えてください。

[8603] Re^4: 無題 投稿者:ANTARES 投稿日:10/07/27(火) 02:18 <URL>
>varptrはちがうみたいですね。
>しかし、相変わらず変数アドレスを渡すやりかたがまったくわかりません。
 引数の型をintにして引数に「varptr(変数名)」を渡してもダメですか?

[8589] 投稿者: 投稿日:10/07/24(土) 13:57
画面の動画の作り方を教えてください。

[8548] 表示方法について。 投稿者:超初心者 投稿日:10/06/21(月) 10:39
こんにちは、前回も質問させて頂いた者なんですが、今回は文字の表示についてです。文字を一文字ずつ表示させたいのですが、どうすればいいでしょうか アドバスお願いします。

[8549] Re: 表示方法について。 投稿者:20100621 投稿日:10/06/21(月) 16:33
/*ご参考*/

#include "hsp3util.as"
sdim ss
sdim dd
text 1
emes dirinfo(1)+"\\common\\hsp3util.as
notesel dd :noteload dirinfo(1)+"\\common\\hsp3util.as
noteget ss,86 :mes ss
noteget ss,88 :mes ss
noteget ss,59 :mes ss
noteget ss,61 :mes ss

[8536] 無題 投稿者:k,m 投稿日:10/06/06(日) 21:39
システム時計に連動する時計を作りたいのですけれど、
どうすればいいでしょう。

[8538] Re: 無題 投稿者:Kpan 投稿日:10/06/06(日) 22:35 <URL>
付属サンプルをチェックしてください。
> hsp321\sample\basic\clock.hsp
> hsp321\sample\basic\clock2.hsp

あと、Googleで「時計 hsp」という感じで
検索すれば講座サイトがたくさんヒットします。

[8531] 質問です 投稿者:terrty 投稿日:10/05/27(木) 15:13
タングラムパズルを作りたいのですが、命令の仕方がいまいちわかりません。
だれか教えてください。

初心者ですいません。

[8521] 教えてください 投稿者:maru 投稿日:10/05/09(日) 03:32
今日、HSPを始めようと思い、hsp32exeフルインストーラをWindows7にダウンロードしました。デフォルトのインストーラ先はC¥Program Files¥hsp32です。
デスクトップのエディタを開き、タブキーで右寄せしてから、命令文picload "HSP3TTL.JPG"と入力してコンパイラ実行してもエラーがでます。入門講座だとマイドキュメントに"hsp3ttl.jpg"のファイルをコピーしてとなっていましたが、コピーしてもエディタの作業フォルダがマイドキュメントでなく、デスクトップのためかエラーとなってしまいます。どうすれば、うまくいくのかご回答よろしくお願いいたします。

[8522] Re: 教えてください 投稿者:Kpan 投稿日:10/05/09(日) 09:17 <URL>
1.エディタのメニュー[ツール]→[設定]を選択
2.ツリーの[全般]→[ディレクトリ]を選択
3.[起動時の〜]を「指定なし」に選択

これで、HSP本体の「Program files\hsp32\」に
画像ファイルを置いてください。

[8515] ファイル振分けの事で。 投稿者:ILLMA 投稿日:10/04/20(火) 20:37
HSP初心者です。
目標は自分好みのファイル管理ソフトの作成です。
主に画像、動画、音楽ファイルなのですが、ファイルをプレビューを見ながら、
ファイルまたは、そのフォルダごと管理フォルダへ振り分けたいのです。

10〜15個のボタンを使い、各フォルダ(保存場所を指定可)へ振り分け、削除等を行うようにしたいです。


このようなソフトを作るのに、お勧めの入門書、サイト等、アドバイスをよろしくお願いします。

[8516] Re: ファイル振分けの事で。 投稿者:あり 投稿日:10/04/21(水) 15:23
HSPを勉強するのなら以下のサイトが判り易く情報量も多いと思いますし
目的のソフトを作るのに必要な情報もありますよ。
【基礎】
http://www.rinku.zaq.ne.jp/ultimate/
http://masudahp.web.fc2.com/hsp3/
【応用】
http://hspdev-wiki.net/
(※必見) http://lhsp.s206.xrea.com/
(※必見) http://hspnext.com/

>主に画像、動画、音楽ファイルなのですが、ファイルをプレビューを見ながら、
>ファイルまたは、そのフォルダごと管理フォルダへ振り分けたいのです。
HSPのサンプルにもファイルや画像を扱うサンプルがあるので
まずはそれらと命令ヘルプを見ながらどのように命令を使うのかを覚えていくと良いですよ。
おそらくHSPの基礎以外の知識が必要となる部分も出てくると思われますが
上に挙げたHPに必ずヒントがあるはずですので
悩んだら使えそうな情報が無いか探してみて下さい。

[8518] Re^2: ファイル振分けの事で。 投稿者:ILLMA 投稿日:10/04/22(木) 10:06
ありがとうございます。
HPを参考に、さっそく勉強してみようと思います。

[8503] mac版HSPについて質問 投稿者:まかー 投稿日:10/03/28(日) 17:47
先日、友人よりHSPというものを知ったものなのですが、mac版は2003年公開のものより開発が行われていないのでしょうか?
Windows版を先程試してみましたが、とても魅力的だと感じました。
私はWindowsも使っているのですが、開発は主にmacでの作業です。
Win/Macがどちらも同じソースで動かせたら、とても素晴らしいことだと思います。
Mac版はいまどうなっているのか、教えていただけると嬉しいです。

[8506] Re: mac版HSPについて質問 投稿者:ANTARES 投稿日:10/03/29(月) 02:26 <URL>
>mac版は2003年公開のものより開発が行われていないのでしょうか?
 そのようです。

[8501] 問題のヒントについて教えてください 投稿者:J.Z 投稿日:10/03/21(日) 16:32
for文の問題で1から10までの和を求める問題と、
横幅と縦幅を認識して縦横に*を並べて長方形を表示させる問題があります。
それのプログラムのヒントを教えてください

[8502] Re: 問題のヒントについて教えてください 投稿者:20100322 投稿日:10/03/22(月) 04:30
1・forで廻るループの回数を任意の変数に順番に足すだけですよ。
2・forの入れ子でそれぞれのループカウンターで水平・垂直方向に
 *を描画すればいいだけですよ。

BASIC:

FOR i = 1 to 10

NEXT
PRINT ○


FOR i = 1 to 10
FOR j = 1 to 10
CURSOR ○○
PRINT "*"
NEXT j
NEXT i

[8495] 無題 投稿者:にゃんちゃん 投稿日:10/03/14(日) 17:57
こんにちは。
mkpack.hspで、dpmファイルに暗号化を施したのですが、それをどうやってスクリプト側から指定するのか分かりません。
ようするに、ファイルにアクセスするときの、暗号化キーをどうやって指定すればいいのか分かりません。
暗号化するときは、ちゃんとキーを設定したのですが、いざ中身を使うときに、どこからパスワードを指定して鍵をはずせばいいのか分かりません。
よかったら教えてください。

[8497] Re: 暗号化DPMの読み込み 投稿者:あり 投稿日:10/03/15(月) 10:35
面倒でも質問のタイトルはちゃんとつけておいて下さいね。

本題ですが
mkpack.hspを解読していけば解決にはたどり着くのですが
意外とわかりにくいですね。

pack_make命令で作成した暗号化DPMファイルを読み込むためには
chdpm命令を使います。
詳しい使い方は命令ヘルプを参照のこと。
あとHSP3プログラミングマニュアルの『PACKFILEと暗号化』の項も
読んでおいて下さい。

[8499] 解決: 暗号化DPMの読み込み 投稿者:にゃんちゃん 投稿日:10/03/15(月) 17:34
こんにちは。
chdpm命令を使ったところ、うまくいきました。
どうもありがとうございました。
それから、質問のタイトルはこれから必ずつけるようにします。

[8500] Re: 解決: 暗号化DPMの読み込み 投稿者:ANTARES 投稿日:10/03/16(火) 00:17 <URL>
 あらら、大嘘書いてしまったのね(^_^;;
ありさん、フォローありがとうございます。

[8496] Re: 無題 投稿者:ANTARES 投稿日:10/03/15(月) 01:01 <URL>
>暗号化キーをどうやって指定すればいいのか分かりません。
 現在、事情があって確認できませんが、
その必要はなかったと思います。
つまり、暗号化されていないファイルを読むスクリプトと
同じでいいはずということです。

[8492] パズルゲーム 投稿者:Revy 投稿日:10/03/09(火) 19:12
現在ピースを移動させるタイプのパズルゲームを作成しているのですが、悩んでいる箇所がいくつかあります。

@ピースをドラッグしての移動で、(px,pyはピースの座標)
stick key,256
if key = 256 {
mx = mousex
my = mousey
await 1

px += (mousex-mx)
py += (mousey-my)
}
のように、1ms間のマウスの移動距離を加算すればいいのではないか?と思ったのですが、どうしても不自然になります。
マウスの動きと上手く一致させる方法はないでしょうか?


Aプレイ中の時間の計測の為に、全体のループの中の
awaitの数だけmsecに+し、msecが1000毎に1秒・・・としたのですが、マニュアルでは常にawait 1は1msだと書いていましたが、
明らかにそうではないんですよね・・・。恐らく、ループの処理が多くなった分遅くなっているのだと思いますが、
これは自分の感覚で調整するしかないのでしょうか?

[8493] Re: パズルゲーム 投稿者:ANTARES 投稿日:10/03/10(水) 02:13 <URL>
>1ms間のマウスの移動距離を加算すればいいのではないか?
>と思ったのですが、どうしても不自然になります。
 私ならマウス座標の取得は1個所にして前回と今回の差を
座標に加えますが、Revyさんの処理でもそれほど不自然には
感じません。他の処理がまずいのでは?

>await 1は1msだと書いていましたが、
>明らかにそうではないんですよね
 Windowsの時間計測誤差は数十ミリ秒程度です。

repeat
stick key,256
if key = 256 {
if f {
f=0
ox=mousex
oy=mousey
px=ox
py=oy
} else {
mx = mousex
my = mousey
await 1
redraw 0
color 255,255,255
line px,py,ox,oy
px += (mousex-mx)
py += (mousey-my)
color
line px,py,ox,oy
redraw
}
} else {
wait 1
f=1
}
loop

[8484] タスクバーにウィンドウ非表示 投稿者:argfb 投稿日:10/03/06(土) 21:12
はじめまして。argfbです。

ウィンドウを表示しながら、タスクバーに自分のプロセスのものを一つも表示しないことはできますか?

screen命令で第4パラメータに8を足すとメインウィンドウのツールウィンドウとして、
タスクバーにウィンドウ名は表示されません。
しかし8を足してもメインウィンドウがなければタスクバーに表示されてしまいます。

あと、他のウィンドウの子ウィンドウになるのはなしでお願いします。

分かりにくくてすいません。お願いします。

[8487] Re: タスクバーにウィンドウ非表示 投稿者:ANTARES 投稿日:10/03/07(日) 00:28 <URL>
>しかし8を足してもメインウィンドウがなければタスクバーに表示されてしまいます。
 私の環境ではそんなことはないようですが……

screen 0,640,480,8

[8489] Re^2: タスクバーにウィンドウ非表示 投稿者:argfb 投稿日:10/03/08(月) 18:01
> >しかし8を足してもメインウィンドウがなければタスクバーに表示されてしまいます。
>  私の環境ではそんなことはないようですが……

そうですか。
環境によっても違うんですね。
ありがとうございました。

[8483] #define中にifがある場合の挙動。 投稿者:20100306 投稿日:10/03/06(土) 13:24
/*
 この挙動に苦しむのですが・・・
*/
#define tes(%1="") if (1) {mes "?"} mes %1

if (0) :tes "::"
if (0) {tes "{}"}

[8486] Re: #define中にifがある場合の挙動。 投稿者:ANTARES 投稿日:10/03/07(日) 00:27 <URL>
 こんな気持ちの悪いスクリプトを書く方が悪いと思う。

if (0): if (1) { mes "?" } mes "::"

[8488] Re^2: #define中にifがある場合の挙動。 投稿者:20100307 投稿日:10/03/07(日) 01:21
 ですよね。
私は if () {}が普通なんですけどHSP使いの方は
if () :(マルチステートメント)が多いので
そこにマクロ(複雑な)が入って条件が真でもないのに
:以降が実行されるのに苦しんだんでもので・・・。

[8472] 二重(多重)起動 防止 投稿者:peg 投稿日:10/02/27(土) 17:19
はじめまして、pegと申します。よろしくお願いします。

質問させて頂きます。
二重(多重)起動の事なんですが、KpanさんのHPなども参考にしてみまさたが、Mutex…を使うと二つ目が起動して、すぐ強制終了させるというやり方ですよね?

二つ目すら起動させないで、むしろ最初の一つ目に起動したウィンドウをアクティブにすると言うやり方って有るんですか?

分かりずらい質問すみません<(_ _)>

[8474] Re: 二重(多重)起動 防止 投稿者:20100228 投稿日:10/02/28(日) 01:33
/*
 ご参考:2度目の起動は仕方ないとして抽出した
hwndからクラス名でHSPを特定しPropの設定・取得でプログラム
を制御する方法も便利かも。(起動個数の制御とか)
*/

#include "user32.as"
ss = ""
GetClassName hwnd,varptr(ss),256
mes ss

SetProp hwnd,"起動回数",123
Getprop hwnd,"起動回数"
mes stat

RemoveProp hwnd,"起動回数"
Getprop hwnd,"起動回数"
mes stat

[8475] Re^2: 二重(多重)起動 防止 投稿者:20100228 投稿日:10/02/28(日) 06:02
/*
 SCREEN1にPropを設定して試して見た。

*/

#include "user32.as"
screen 0
screen 1
repeat
FindWindowExA 0,ii,"hspwnd0",0 :ii = stat
if (ii == 0) {break}
GetProp ii,"回数" :jj = stat
if (jj != 0) and (ii != hwnd) {nn++ }
await
loop

mes strf("回数 = %2d 回目",nn+1)
if (nn < 2) {SetProp hwnd,"回数",1} else {dialog "強制終了" :end}


onexit *Close
stop
*close :RemoveProp hwnd,"回数" :end

[8473] Re: 二重(多重)起動 防止 投稿者:Kpan 投稿日:10/02/27(土) 21:04 <URL>
手抜きですがこんな感じで。タイトルバーの文字で同じもの
があったら終了させます。

>二つ目すら起動させないで
これは無理です。非表示ウィンドウで実行ファイル自動作成
しとけば、それっぽく見えます。

/////
#packopt hide 1//非表示ウィンドウ

#include "user32.as"

FindWindow 0, "hogehoge"
if stat != 0 {// 同じタイトルがあるならアクティブして終了
SetForegroundWindow stat
end
}

title "hogehoge"
mes "1つめ"

gsel , 1
///

[8479] 二重(多重)起動 防止 投稿者:peg 投稿日:10/03/03(水) 16:29
お二人ともご回答ありがとうございます!
サンプルも有りがたいです。

参考にさせて頂きます<(_ _)>

[8480] 二重(多重)起動 防止2 投稿者:peg 投稿日:10/03/03(水) 20:28
もう一つ聞きたい事が有りまして
自分で調べたんですが、見つけきらず…質問します。

Mutexを使った二重起動防止の場合で、一つ目のウィンドウをアクティブにする方法って有るんでしょうか?

[8481] Re: 二重(多重)起動 防止2 投稿者:20100304 投稿日:10/03/04(木) 02:21
/*
 ご参考:相手からメッセージを送って終了させる(Mutexでも同じ)
*/

#include "user32.as"

repeat
FindWindowExA 0,ii,"hspwnd0",0 :ii = stat
if (ii == 0) {break}
GetProp ii,"回数" :jj = stat
if (jj != 0) and (ii != hwnd) {nn++ }
await
kk = ii
loop

mes strf("回数 = %2d 回目 [Handle] = %d",nn+1,hwnd)
if (nn < 1) {SetProp hwnd,"回数",1} else {sendmsg kk,$8000,hwnd}

oncmd gosub *Close,$8000 ;WM_APP

stop

*Close : dialog wparam :sendmsg wparam,$10 :return ;WM_CLOSE

[8482] 二重(多重)起動 防止2 投稿者:peg 投稿日:10/03/05(金) 13:50
20100304さん有難うございます<(_ _)>

大分レベル高いですね…このサンプル;
頑張って理解して参考にさせて頂きます!

[8476] テキストファイルへの追記の方法 投稿者:coke 投稿日:10/02/28(日) 15:24
すでに存在しているテキストファイルへ追記する方法はありますでしょうか。

bsaveを使うと、上書きしてしまい、元のテキストデータが維持されません。
一度読み込んでメモリにため込むにしても、元のテキストファイルの行数が固定ではありませんし、仮にできたとしてもいちいち読み込むのもスマートではないなと思います。

Perl言語等ですと、追記か上書きか選ぶオプションがあったりしたのですが、HSPのbsaveにはそれがないようです。
他の命令でもいいのですが、何か方法がありましたら教えてください。

[8477] Re: テキストファイルへの追記の方法 投稿者:20100228 投稿日:10/02/28(日) 18:12
/*
 Bsaveのオプションでファイルポインターを調整すれば
Appendと同等に扱えると思う。
*/

ss = "A\nB\nC\n"
bsave "test",ss,strlen(ss)

exist "test"
ii = strsize
ss = "1\n2\n3\n"
bsave "test",ss,strlen(ss),ii

bload "test",ss
mes ss

[8469] テキストデータの比較置換 投稿者:ぬこ 投稿日:10/02/19(金) 21:54
2つのテキストファイルを読込んで
置換+結合を行うツールを作りたいですが
2つのテキストの比較をどのように行えばよいか解りません。

例えば、
[1.txt]
00001 000001
00003 000003

[2.txt]
00001 00001
00002 000002

とあった場合、1.txtを優先とした場合、
[完了後.txt]
00001 000001
00002 000002
00003 000003
となるようにしたいのです。
先頭5つの数字を判断して内容を書き換える物を考えています。
処理はnoteadd等で1行ずつ上書きする等と考えていますが
1000行単位でも非常に時間がかかってしまい、非効率となっています。

宜しければこのようなソフトを作る場合の処理についてアドバイスをいただけないでしょうか?

[8471] Re: テキストデータの比較置換 投稿者:Kpan 投稿日:10/02/20(土) 21:02 <URL>
どういうコードを組んだのか具体的に分からんですが、

扱う量が多いと、バッファ確保を明示的にしてなかったり、
noteaddとか+結合はパフォーマンスに響きます。

ぷまさんのカキコを参照。
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200601/06020038.txt

[8470] Re: テキストデータの比較置換 投稿者:20100219 投稿日:10/02/19(金) 23:29
/*先頭5数字とスペースをキーとしてDat1の不足キーを補うだけなら
 こんな感じかしら?(キーでソートされてる前提でポインター補正した)
 注意:検索終了はDat1の文字数-5(キー数)
*/
dat1 = "00001 A\n00003 C\n00004 D\n"
dat2 = "00001 C\n00002 B\n00005 E\n"
dat3 = ""
ii = 0
jj = 0
kk = 0
ll = 0
mm = 0
repeat
ii = instr(Dat1,kk,strf("%05d ",cnt))
if (ii != -1) {kk+=ii :mm = instr(Dat1,kk,"\n")
Dat3+= strmid(Dat1,kk,mm)+"\n" :kk+=mm}
if (ii == -1) {jj = instr(Dat2,ll,strf("%05d ",cnt))
if (jj != -1) {ll+=jj :mm = instr(Dat2,ll,"\n")
Dat3+= strmid(Dat2,jj,mm)+"\n" :ll+=mm}}

if (kk >= strlen(Dat1)-5){break}
loop
mes Dat3

[8465] 株価シミュレーション 投稿者: 投稿日:10/02/16(火) 17:38
こんにちは、プログラミング未経験のものです。
タイトルのように、株式投資で一銘柄の過去の株価データを
使って色々な条件で売買したらどのような結果になるかの
プログラムをつくりたく、プログラム言語を探しています。
そこでネットで見つけたHSPという言語を知りました。

具体的には、一銘柄について
日付、株価(始値、高値、安値、終値)をデータとし
何年何日に何円で株を何単位買い、買値より10円高い売り注文
株価が10円下がるごとに買い増し、買値より10円高い売り注文
と、詳細は更に検討しています。
それで結果、どのような売買記録でどのぐらいの収益になるか
の様なものです。

こんなこともできますでしょうか?
データについては、オープンオフィスのCALCにインプット
済みです。

些細なことでも何でも構いませんので、アドバイスよろしく
お願いいたします。

[8468] Re: 株価シミュレーション 投稿者:20100217 投稿日:10/02/17(水) 15:47
/*面白そうなのでやってみたがFX向きなのかも知れない
 基準単価の変動とかダウ先・先物・為替・とかやりだすときりが無い
 Excelで出来るとも思うが
 簡単なアルゴリズム売買でも利益が出せるのかも知れない・・・
*/
kk = 100,101,70,102,110,120,109,102,99,91,90,85,90,105,130,132,135,90,100
bb = 100.0
nn = 1
ss = bb
tt = 0.0
uu = bb*0.05
dd = -bb*0.05
cc = -bb*0.3
ff = 0.0
oo = 0
mm = ""
font msmincho,14
mes strf(" 利確 = %5f 買増 = %5f 損切 = %5f\n",uu,dd,cc)
mes strf("%5s %5s %5s %5s %5s %5s %5s"," 基準","枚数","金額","利益","指数","株価","回数")
repeat length(kk)
ff = (kk(cnt)-bb)
if (ff == 0) {} else { :color 0
if (ff <= dd) {
if (ff <= cc) {tt += (nn*kk(cnt))-(ss) :nn = 0 :ss = 0 :oo++
:color 255,,255 :mm = "損切"}
else {ss += kk(cnt) :nn++ :color 0,,255 :oo++}}
if (ff >= uu) {
if (nn == 0) { :color 128,128,128 :mm = "機会"}
if (nn != 0) {tt += (nn*kk(cnt))-(ss) :nn = 0 :ss = 0 :color 255 :oo++}}
mes strf("%5d %5d %5d %5d %5d %5d %5d %3s",bb,nn,ss,tt,ff,kk(cnt),oo,mm)
mm = ""
loop

[8464] notegetのp2で0を指定した時の動作 投稿者: 投稿日:10/02/16(火) 17:24
こんにちは、初めまして質問をさせて頂きます。

読み込んだテキスト(notetest.txt)の行に書かれた文字をランダムに表示しようと思って適当なプログラムを作ったのですが、ちょっと分からない事があるので質問させて頂きます。

notegetのp2に0を指定した時、F1の仕様書にはインデックスは0から始まると書いてありましたので、
0を指定してnotetest.txtの1行目を表示させようとしましたが、notetest.txtの文字列全てが表示されてしまいました。

HSPは短いので、記述ミスなのか仕様なのか判断が付かないのでここに質問させて頂だきます。
何らかの記述ミスでありましたら、指南して頂けるとありがたいです。
下記は実際のプログラムです。

randomize

sdim data
notesel data
noteload"notetest.txt"
最大行=notemax
サイコロ=rnd(notemax)
noteget data,サイコロ

mes""+data+""

mes"対象行"+サイコロ+""
mes"行数"+最大行+""
stop

[8466] Re: notegetのp2で0を指定した時の動作 投稿者:Kpan 投稿日:10/02/16(火) 21:22 <URL>
変数dataがnoteselとnotegetで被ってるのが原因です。

[8467] Re^2: notegetのp2で0を指定した時の動作 投稿者: 投稿日:10/02/17(水) 05:00
> 変数dataがnoteselとnotegetで被ってるのが原因です。
なるほど、notegetのp1に読み出し先の変数名と書いてあったので、
てっきり呼び出すのに変数指定が必要なのかと勘違いしてました。
解決しました、ありがとうございます。

[8461] ディレクトリ・ドライブが存在しているかを確認する 投稿者:20100209 投稿日:10/02/09(火) 23:24
向こうに書けないからココに失礼しますね。

エクスプローラー作るなら・こんなのでもいいと思うな。
(パスは/が便利だと思うな)


ii = 0
ss = "C:/*.*"
listbox ii,,""

;sendmsg objinfo(0,2),$18D,$4000 | $8000,varptr(ss)
sendmsg objinfo(0,2),$18D,$10 | $8000,varptr(ss)

[8460] ネットタイセンゲーム 投稿者:にゃんちゃん 投稿日:10/02/09(火) 18:25
こんにちは。
最近、ネット対戦ゲームのすごろくとかを作りたいと思うのですが

O2ネットワークがとても理解できず、困っています。
あまりリアルタイムな物でなければ、O2を使わなくてもできるもの
なのでしょうか?
もしできるなら、大体どういう風にしたらいいかを教えてください

一応、サーバーはあります。TCPを使うのかな?

[8429] (削除) 投稿者:(削除) 投稿日:10/01/10(日) 14:33
(削除されました)

[8455] Re: 誰かが作った「ballroad」について 投稿者:KA 投稿日:10/02/02(火) 19:03
”誰かが作った”の時点でアウトです。
直接作者に連絡して下さい、連絡先が判らないとはいいませんよね。

[8446] パスワードを入力した時に***にする方法 投稿者:息子 投稿日:10/01/30(土) 13:00
こんにちは、息子です。
ぼくは、パスワードソフトを作っていて
パスワード(input)を入力した時に、***にする
方法を教えてください。

[8447] Re: パスワードを入力した時に***にする方法 投稿者:Kpan 投稿日:10/01/30(土) 22:21 <URL>
>「HSP input パスワード」
Google検索してください

[8450] 無題 投稿者:息子 投稿日:10/01/30(土) 22:54
解決しました。
ありがとうございます。

[8449] Re^2: パスワードを入力した時に***にする方法 投稿者:Kpan 投稿日:10/01/30(土) 22:46 <URL>
おっと、解決済みですかい (^^;

>「マルチポスト」
Google検索してください

[8444] スクリーンを斜めにする方法を教えてください。 投稿者:息子 投稿日:10/01/26(火) 18:27
こんにちは
ぼくは、小学5年生で、HSPを始めたばかりです。
まったくの初心者です。
スクリーンを斜め傾ける方法があれば教えてください。

[8434] strsizeの上限 投稿者:kk 投稿日:10/01/16(土) 18:51
はじめて質問をさせて頂きます。

対象ファイル(C:\\data)のファイルサイズを取得するため、
以下のようなコードでファイルサイズを取得してみました。

ファイルサイズが1GB程度までならば取得できるのですが、
ファイルサイズが2GB程度になると、取得できなくなって
しまいます。(strsizeの値が、0や-1になってしまいます。)

strsizeで取得できるファイルサイズには上限があるのでしょうか?
もし上限があるとしたら、大容量ファイルのファイルサイズを取得する別の方法があるのでしょうか?
ご存知の方、ご教授頂ければ幸いです。

exist "C:\\data"
if strsize = -1 {
mes "ファイルが存在しません。"
mes "strsize="+strsize
stop
}
mes "対象ファイルのサイズは、"+strsize+"バイトです。"
stop

[8435] Re: strsizeの上限 投稿者:Kpan 投稿日:10/01/16(土) 21:05 <URL>
HSPが扱える整数値の限界です(2147483647)

文字列として取得するなら
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200907/09120023.txt

[8436] Re^2: strsizeの上限 投稿者:kk 投稿日:10/01/16(土) 23:30
Kpan 様

早速のご教授、ありがとうございます。
HSPの整数型の限界だったのですね。。。

提示頂いた掲示板の情報で、ファイルサイズを取得する
ことも出来ました。本当に感謝です。

[8425] HSP3のエディターについて 投稿者:UNGA 投稿日:10/01/04(月) 19:44 <URL>
お初にお目にかかります。UNGAと申します。
HSPの使いやすさに魅了されてから早5年が経ちました。
素人プログラマに、素晴らしい開発環境を与えてくださった
おにたま様には感謝の気持ちでいっぱいです。

ところで、毎日のように使っている専用エディタですが、
大変使いやすい反面、不満も多少あります。
そこで要望なのですが、以下の何点かの実装を考えていた
だけないでしょうか。

@エラー行にワンクリックでに飛ぶ機能
Agotoやgosubの後ろに書いたラベルにワンクリックで飛ぶ機能
B特定のサブルーチンを別窓に表示しながら編集できる機能

まことに勝手な要望ながら、以上の機能があったら幸せだろう
なぁと思う今日この頃です。
(また、素人がそれこそHSPでプラグインなんかが作れると
 それはそれで幸せだろうなあと・・・)

[8412] 無題 投稿者:K 投稿日:09/12/20(日) 22:31
はじめましてKです。
RPGの戦闘システムってどうやったら
作れますか?

[8413] Re: 無題 投稿者:tsuka 投稿日:09/12/21(月) 16:56
> はじめましてKです。
> RPGの戦闘システムってどうやったら
> 作れますか?

コードを打てば作れます。
もっと具体的な質問を心がけましょう。

[8417] Re^2: 無題 投稿者:K 投稿日:09/12/21(月) 20:57
> コードを打てば作れます。
> もっと具体的な質問を心がけましょう。

すみません。気をつけます。
また質問で申し訳ありませんが、
コードって何ですか?

[8419] Re^3: 無題 投稿者:あり 投稿日:09/12/22(火) 13:22
> コードって何ですか?
ソースコードの略、簡単に言うとプログラム(HSPスクリプト)の事です。

RPGの戦闘システムといっても基本はジャンケンのような物です。
プレイヤーとモンスターのパラメーターを比較して数値が上回っていたら
攻撃命中、ダメージの計算・・・の様な流れを繰り返しているだけです。
もっともそれだけでは単純すぎるので装備やスキル等で数値を変動させたり
ランダム要素で緊張感を持たせたりしている訳です。

あとは結果に応じてメッセージを表示したり画面を揺らしたりの効果を
付ければ一般的なRPGの戦闘システム風が出来るはずです。

Kさんが作りたい戦闘システムがどのような物かはわかりませんが
HSPの基礎さえ理解できていればRPGの戦闘システム自体はそれほど難しくはないので
HSPを勉強すると共に自分の作りたいシステムのRPGがどのように
パラメータを扱ってどのように画面を表示させているかを考えてみると
自分の作りたいRPGを作るために必要な事が分かってくるのではないでしょうか?

[8421] Re^4: 無題 投稿者:K 投稿日:09/12/22(火) 21:28
丁寧なご回答ありがとうございました。
HSPをもう少し勉強します。

[8402] 画像をクリック 投稿者:tomoki 投稿日:09/11/25(水) 21:54
引き続き質問です。連続ですいません。

画像をクリックしてその反応をキャッチすることってできるのですか?大体のゲームはwindowsのボタンではなくて違うボタンなので、ぼくもそれをやってみようと思ったのですが、どうがんばってもできませんでした…。

[8414] Re: 画像をクリック 投稿者:tsuka 投稿日:09/12/21(月) 17:01
> 引き続き質問です。連続ですいません。
>
> 画像をクリックしてその反応をキャッチすることってできるのですか?大体のゲームはwindowsのボタンではなくて違うボタンなので、ぼくもそれをやってみようと思ったのですが、どうがんばってもできませんでした…。

通常のボタンと同じ動作で、見た目だけ違う、というので大丈夫なら、HSP3.2から追加されたobjimage命令について調べてみてください。
また、他にも、getkeyやstick命令、onclick命令を使っても作ることができます。

[8403] Re: 画像をクリック 投稿者:tomoki 投稿日:09/11/25(水) 21:56
↓読みづらくてすいません。改行し忘れてました。

[8407] 無題 投稿者:しょうせい 投稿日:09/12/10(木) 14:45
初めましてしょうせいです。

大学の授業でアプリケーション(言語は自由)を製作する事になったのですが、
HSPでアナログ時計を作ろうという事になったのですが、まず何をしなければならないのかを教えてください。

ちなみにHSPは初心者です

[8409] Re: 無題 投稿者:あり 投稿日:09/12/13(日) 11:46
質問から時間が経ってしまったのでもう解決しているかもしれませんが・・・

どんな言語であれまずは基本を覚えないと応用も出来ないので
マニュアルや命令ヘルプを読み、サンプルを触るなどして
最低限の基礎は身につけておいて下さい。
(特に画像の表示と変数・ループの扱い等は必須です)

アナログ時計を作るのには
・現在時刻の取得
・時間に応じた角度で針を表示
が最低限必要になります。

作業に必要な命令はHSPに揃っていて
現在時刻はgettime関数で取得できますし
針の表示は画像を回転表示(grotateやcelput等)させたり
line命令で線を描くなどの方法があります。
画像を使う方法は取得した時間を回転させる角度に換算させれば良いだけですが
線を描く場合は三角関数を使った回転座標変換の知識が必要になります。

どちらの方法もヘルプやネットで検索すれば情報が簡単に見つかる
のでそれほど難しい作業ではないと思いますので色々と試してみてください。

[8396] 曲等の読み込み 投稿者:tomoki 投稿日:09/11/23(月) 19:14
曲等の読み込みはそのプログラムと同じフォルダに入っていないとだめなのでしょうか。
以前に実行プログラムとは別のフォルダに入っていても曲が再生できていたので自分もやってみましたが、できませんでした。
やり方がある場合はお教えいただけるとありがたいです。

[8397] Re: 曲等の読み込み 投稿者:Kpan 投稿日:09/11/23(月) 22:20 <URL>
普通にできますよ。できなかったのなら、パス指定を記述をミスってるか、
カレントフォルダが移動してるか(絶対パスを指定しとく)

///
mmload dir_exe + "\\sample\\demo\\se_tyuiin.wav"

button "", *play
stop

*play
mmplay

[8399] Re^2: 曲等の読み込み 投稿者:tomoki 投稿日:09/11/24(火) 18:42
もしかして、これってwav限定なんですか?
mp3だとできないとかありますか?

mmload dir_exe + "\\test\\test.MP3"
mmplay
stop

testというフォルダの中のtestというmp3の曲を再生しようとしたのですがだめでした。

[8400] Re^3: 曲等の読み込み 投稿者:Kpan 投稿日:09/11/24(火) 20:07 <URL>
こういう風に書けばわかるかと。
//
mes dir_exe
mes dir_exe + "\\test\\test.MP3"
//

>だめでした。
だけでは、情報が少なすぎて分からんです。HSPエラー(エラー番号)が
でるのか、うんともすんとも言わないのか・・・。

mmload命令が対応してる音楽形式なら問題なく再生できるはずです。
ためしに直でファイルを選択してみてください。

//
dialog "mp3;*.wav;*.mid", 16
if stat = 0 : stop

mes "選択したパス: "+refstr

mmload refstr
mmplay
//

[8401] Re^4: 曲等の読み込み 投稿者:tomoki 投稿日:09/11/25(水) 21:50
ありがとうございました。無事?解決いたしました。
なぜかプログラムからコンパイル+実行をやるとだめなのですが、一回実行ファイルを作り、それをやると曲が再生されました。
でもやりたいことはできたので良かったです。

質問に答えていただきありがとうございました。

[8398] Re^2: 曲等の読み込み 投稿者:tomoki 投稿日:09/11/24(火) 18:24
なんとなくやり方がわかったのですが、mmloadの後の
dir_exe +の部分がよくわからないです。

すいません。ぼくかなりの初心者なんです。

[8394] HSPについて 投稿者:けん 投稿日:09/11/21(土) 15:48
HSPは、数年前にいじったことがあるのですが、
バージョンアップしたことによって、VBなどの言語に
近づいたような気がします。
それだけ難しくなったように思うのですが、
そう思うのは私だけ?

[8395] Re: HSPについて 投稿者:あり 投稿日:09/11/22(日) 10:33
難しいかどうかは個人差があるので何とも言い難いのですが
最初に覚える事が多少増えたという意味ではほんの少しハードルが高くなったともいえますね。

もっとも、HSPの本質的な部分は今も変わっていないので
初めてプログラムを経験されるような人が画像や音楽を扱おうとした場合の
簡便さは現在でもトップクラスでしょう。

少なくともHSPの基本機能の枠内で使うのであれば
特別難しい事は無いと私は思いますよ。
API等を使おうとするとまた違った苦労があるのは
HSPに限った話ではないですしね。

[8386] 配列で画像表示 投稿者:けん 投稿日:09/11/19(木) 19:38
HSP始めて間もないのですがよろしくお願いします。
同じ画像を20こ同時に表示させるときには
下記のようなコードを書かずに、配列を使って書くことが
できると思うのですが、
下記の場合はどのようなコードになるのでしょうか?
buffer 1
picload "gazou.jpg"
screen 0, 640, 480
gmode 2
pos 100,100
gcopy 1,0,0,32,32
pos 100,200
gcopy 1,0,0,32,32
pos 200,300
gcopy 1,0,0,32,32


stop

[8387] Re: 配列で画像表示 投稿者:Kpan 投稿日:09/11/19(木) 20:14 <URL>
似たような処理はrepeat-loopで繰り返します。
表示位置の情報は、あらかじめ配列変数で用意しとく
なりしてください。(「HSP 配列変数」でググる

[8391] Re^2: 配列で画像表示 投稿者:けん 投稿日:09/11/20(金) 15:54
> 似たような処理はrepeat-loopで繰り返します。
> 表示位置の情報は、あらかじめ配列変数で用意しとく
> なりしてください。(「HSP 配列変数」でググる

ボウリングの玉とピンを配置ボタンを押すことで
表示させることができました。
ところで読み込む画像のことですが、ピンと玉を画像処理ソフトで
合体させて新しい画像を作ることで解決できたのですが
HSPは、このような方法でしか、1つ以上の画像を読み込むことは
できないのですか?

dim x,10
x(0)=200,200,200,200,230,230,230,260,260,290
dim y,10
y(0)=100,150,200,250,130,180,230,150,200,180

buffer 1
picload "bo.gif"
screen 0, 640, 480
gmode 2
color 0, 255, 0
boxf

repeat 10
redraw 0
pos x(n), y(n)
gcopy 1,1,0,27,58
n=n+1
loop


pos 500,200
gcopy 1,32,0,32,32

pos 10,10
button"配置",*click

[8392] Re^3: 配列で画像表示 投稿者:Kpan 投稿日:09/11/20(金) 20:09 <URL>
repeat命令はシステム変数のcntにカウント値が
代入されてます。

すっかり忘れてましたが、3.2からの新規対応で
cel〜命令(celloadとか)がありますな。

[8389] Re^2: 配列で画像表示 投稿者:けん 投稿日:09/11/20(金) 10:05
> 似たような処理はrepeat-loopで繰り返します。
> 表示位置の情報は、あらかじめ配列変数で用意しとく
> なりしてください。(「HSP 配列変数」でググる
コードを訂正します。


dim x,10
x(0)=200,200,200,200,230,230,230,260,260,290
dim y,10
y(0)=100,150,200,250,130,180,230,150,200,180
buffer 1
picload "kpin.gif"
screen 0, 640, 480
color 0, 255, 0
boxf
gmode 2
repeat 10
pos x(n), y(n)
gcopy 1,0,0,32,58
n=n+1
loop

pos 10,10
button"ころがす",*click
stop
*click

buffer 2
picload "xtama.jpg"
screen 0, 640, 480
color 0, 255, 0
boxf

gmode 2
pos 300,200
gcopy 2,0,0,32,32

stop

[8388] Re^2: 配列で画像表示 投稿者:けん 投稿日:09/11/20(金) 09:54
> 似たような処理はrepeat-loopで繰り返します。
> 表示位置の情報は、あらかじめ配列変数で用意しとく
> なりしてください。(「HSP 配列変数」でググる

配列わかりました。有り難うございます。
ところで引き続きの質問で申し訳ないのですがよろしく
お願いします。

ボウリングのピンを10本並べて、ボタンをクリックすると
弾がころがるようなアニメを作ってますが、
まだ製作の途中なのですが、ボタンを押すとボウリングの
ピンが消えてしまうのですが、どこかに間違いがあるのでしょうか?

dim x,10
x(0)=200,200,200,200,230,230,230,260,260,290
dim y,10
y(0)=100,150,200,250,130,180,230,150,200,180
buffer 1
picload "kpin.gif"
screen 0, 640, 480
color 0, 255, 0
boxf
gmode 2
repeat 10
pos x(n), y(n)
gcopy 1,0,0,32,58
n=n+1
loop

pos 10,10
button"ころがす",*clcki
stop
*clcki
repeat
buffer 2
picload "xtama.jpg"
screen 0, 640, 480
color 0, 255, 0 ;緑色設定
boxf
gmode 2

[8382] 画像の読み込みについて 投稿者:けん 投稿日:09/11/18(水) 19:36
これまでVB.netを勉強してきましたが、VBでゲームを作るのはなかなか難しいのでHSPに取り組んでみることにしました。
そこで質問なのですが、画像を取り込む場合に解像度が800×800の
画像を自動的に32×32に縮小して表示することは
HSPではできないのでしょうか?

[8383] Re: 画像の読み込みについて 投稿者:Kpan 投稿日:09/11/18(水) 20:02 <URL>
エディタでF1キーを押すとヘルプが表示されるので「縮小」で
検索してください。buffer画面にpicloadしておいて、メイン
画面にgzoomする流れになるかと思います。

[8384] Re^2: 画像の読み込みについて 投稿者:けん 投稿日:09/11/19(木) 09:30
> エディタでF1キーを押すとヘルプが表示されるので「縮小」で
> 検索してください。buffer画面にpicloadしておいて、メイン
> 画面にgzoomする流れになるかと思います。
ありがとうございます。
まだ試しておりませんが、土日にかけてやって見ようと思ってます。

おかしな質問かもしれませんが、HSPでは、画像処理ソフト等で画像のサイズを変えて使用するのが一般的なのでしょうか

[8377] 質問2 投稿者:帝国学園 投稿日:09/11/15(日) 12:32
すみません。
下の間違いです。
正しくは、

repeat
stick a
if a = 8 : goto *aa
if a = 16 : goto *ab
wait 10
loop
stop
*aa
picload "aac.jpg"
stop
*ab
picload "abc.jpg"
stop

です。

[8380] Re: 質問2 投稿者:ANTARES 投稿日:09/11/16(月) 11:47 <URL>
>これで、やってみると、*aaや*abに飛びません。
 私の環境では再現しません。

 なお、repeat〜loopの中からgotoで飛び出してはいけません。
何度も繰り返すとエラーが起きます。

[8378] Re: 質問2 投稿者:矢野 投稿日:09/11/15(日) 21:14
stick 命令の演算子は、「=」ではなくて「&」を使います。
「=」を「&」に変えると、うまく動きます。

[8376] 質問2 投稿者:帝国学園 投稿日:09/11/15(日) 12:28
質問の返信、ありがとうございます。
もう一つ分からないことがあるのでお答えお願いします。

repeat
stick a
if a = 8 : goto *aa
if a = 16 : goto *ab
wait 10
loop
stop
*aa
picload "aac.jpg"
stop
*ab
picload "abc.jpg"
stop

これで、やってみると、*aaや*abに飛びません。
どうしても、分からないので、お願いします。

[8370] 質問 投稿者:帝国学園 投稿日:09/11/13(金) 19:18
HSP3初心者です。
変数を保存したいのですが、命令が分かりません。
詳しく、やり方を教えてもらえないでしょうか?

[8372] Re: 質問 投稿者:ANTARES 投稿日:09/11/13(金) 23:53 <URL>
> 変数を保存したいのですが、命令が分かりません。
http://antares.cn/hsp/sample/index.html#variable

[8375] Re^2: 質問 投稿者:ANTARES 投稿日:09/11/15(日) 07:03 <URL>
> > 変数を保存したいのですが、命令が分かりません。
> http://antares.cn/hsp/sample/index.html#variable
 ローカルしか更新してなかったのに気づいて、
今、更新しました(^_^;;

[8371] Re: 質問 投稿者:Kpan 投稿日:09/11/13(金) 20:56 <URL>
テキスト形式で読み書きするなら、メモリノートパッド
(note〜命令)

バイナリ形式で読み書きするなら、poke命令系で書き込ん
だり、下のように代入処理したり。逆の取得はpeek関数系。

//
buf = 100, 10, 1000

bsave "hoge.dat", buf
mes "done. "+strsize
//

[8373] GIF 投稿者:KuReo 投稿日:09/11/14(土) 14:59
HSP初心者です
アニメーションGIFを表示させるスクリプトってありますか?
誰か教えてください;;

[8374] Re: GIF 投稿者:Kpan 投稿日:09/11/14(土) 18:09 <URL>
Googleで検索してください。「HSP アニメーションGIF」

[8362] アプリケーションキャプチャ 投稿者:hehe 投稿日:09/11/02(月) 15:53
はじめまして。HSP初心者です。
HSPを使ってWordなどの文章を保存することは可能でしょうか?

ファイルボタンをクリックさせ、
名前をつけて保存をクリックさせ・・・と順番に行いたいのですが。

どなたか回答お願いします。

[8363] Re: アプリケーションキャプチャ 投稿者:Kpan 投稿日:09/11/02(月) 19:50 <URL>
HSP外の知識が必要ですが、COM経由でWordオブジェクトを。
http://geocities.yahoo.co.jp/gl/gbmogiki/view/20090801/1249121986

[8365] Re^2: アプリケーションキャプチャ 投稿者:hehe 投稿日:09/11/04(水) 19:30
Kpanさん返信ありがとうございます。

Wordの場合については分かりました。
このようなことをほかのアプリケーションでもできるのでしょうか?

アプリケーションを自動で制御したいのですが。。。

[8366] Re^3: アプリケーションキャプチャ 投稿者:Kpan 投稿日:09/11/04(水) 20:21 <URL>
できるのもあるし、できないのもあるし・・・それはアプリ
ケーションの対応次第です。

あとGoogleで「HSP アプリケーションキャプチャー」とかで
調べてください。拡張プラグインのhspext.dllがサポート
してます。

[8359] 文字列参照 投稿者:よちよち 投稿日:09/10/25(日) 14:37
HSP 初心者です
文字列をindexで参照するにはどのようにするのでしょうか
例えば
st="abc_def_g"
if(st(3)="_" and st(7)="_"){
mes " yes !! "
}else{
mes " no !! "
}
のように簡単に出来ないのでしょうか?
やはり、strmidでそれぞれ抜き出して
検査するしかないのでしょうか
どなたかご教授お願いします。

[8360] Re: 文字列参照 投稿者:kotetsu 投稿日:09/10/25(日) 20:09
> 文字列をindexで参照するにはどのようにするのでしょうか

peek関数で文字コードを読み出せます。
poke命令で文字コードを書き込むこともできます。
wpeek、wpoke、lpeek、lpoke というのもあります。
詳しくはF1キーを押してヘルプを参照してください。

st="abc_def_g"
if peek(st,3)='_' & peek(st,7)='_'{
mes " yes !! "
}else{
mes " no !! "
}

poke st, 3, '?'
poke st, 7, '!'
input st

[8361] Re^2: 文字列参照 投稿者:よちよち 投稿日:09/10/25(日) 21:09
kotetsuさん 早速のご回答有難う御座いました。
peek関数、poke関数で処理できる事、
' 'で文字コードになる事を知りました。
その他の事までお知らせして頂き有難うございます。
もう少しじっくりと、ヘルプを読みたいと思います。

[8319] ANDの不具合? 投稿者:9 投稿日:09/08/10(月) 16:41
以下のスクリプトで mes 1 のところが実行されるはずなのに、実行されません。
バージョンは3.2正式版です。よろしくお願いします。

x = 0 : y = 6
if (x == 0) && (y & 4) : mes 1
if (x == 0) {
if (y & 4) : mes 2
}

[8320] Re: ANDの不具合? 投稿者:ANTAES 投稿日:09/08/10(月) 23:30 <URL>
http://hsp.tv/play/pforum.php?mode=all&num=26038

それから、&&は使えそうで使えません。
正しく動く場合と動かない場合があります。

[8326] Re^2: ANDの不具合? 投稿者:ttoc 投稿日:09/08/28(金) 02:58
> http://hsp.tv/play/pforum.php?mode=all&num=26038
>
> それから、&&は使えそうで使えません。
> 正しく動く場合と動かない場合があります。

どんな場合でも正しく動作します。
正しく動作しない場合をお聞かせ願えますか?

[8328] Re^3: ANDの不具合? 投稿者:ANTAES 投稿日:09/08/28(金) 06:41 <URL>
 おにたまさんが「&&」と「||」は正式仕様ではないのでサポートしない
ようなことを言っていたので、3になっても同じだと思っていましたが、
直っていましたか。
失礼。

[8329] Re^4: ANDの不具合? 投稿者:ANTARES 投稿日:09/08/29(土) 03:08 <URL>
 ハンドルがANTAESになってたので直しときます。

[8331] Re^5: ANDの不具合? 投稿者:おにたま(管理人) 投稿日:09/08/29(土) 03:38 <URL>
ちょっと発言の意図がわかりませんが、現在のHSPでは「&&」と「||」は「&」「|」と等価でありC言語等の記号とは動作が異なります。
その意味では、ANTARESさんの指摘は正しいかと思います。

[8332] Re^6: ANDの不具合? 投稿者:ttoc 投稿日:09/08/29(土) 05:12
> ちょっと発言の意図がわかりませんが、現在のHSPでは「&&」と「||」は「&」「|」と等価でありC言語等の記号とは動作が異なります。
> その意味では、ANTARESさんの指摘は正しいかと思います。

違います。
HSPとしての&と&&が等価であるとか、
C言語のそれとHSPのそれが等価でないとか、
そういうことについて言及しているのではありません。

ANTARESさんは、
HSPにおいて「&&が正しく動作しないときがある」とおっしゃられていますが、
1)ANTARESさんが&と&&をC言語と等価であると考えていた場合
その場合、&&は&&の動作を行いますから、
「&&の動作が正しくない」ということはありません。

2)ANTARESさんが&と&&を等価であると知っていた場合
その場合でも、&&は&&の動作を行いますから、
「&&の動作が正しくない」ということはありません。

&&演算子の動作はいずれの場合も「正しい動作」をしています。
「正しく動作しない場合がある」というのは、
「プログラマの意図したとおりに動かない」ではないですか?

「プログラマの意図したとおりに動かない」と「演算子が正しく動作しない」
は全く別です。

おそらくANTARESさんが「演算子が正しく動作しない」と思われたのは、
HSPの仕様を把握していなかったからなのでしょう。

[8348] 自作関数・命令の可変個引数の取得方法 投稿者:deffunc 投稿日:09/09/25(金) 10:08
strfのような可変個引数を自作することができますか?
またそれは どのような方法でしょうか?
ドキュメントがあればドキュメント先を教えてください。

[8351] Re: 自作関数・命令の可変個引数の取得方法 投稿者:20091002 投稿日:09/10/02(金) 06:05
> strfのような可変個引数を自作することができますか?
> またそれは どのような方法でしょうか?
> ドキュメントがあればドキュメント先を教えてください。

;こんな感じで誤魔化したらどうですか?

#module
#deffunc Ftes int p1,int p2,str p3
mes p1
if (p2 == -1) {mes 999} else {mes p2}
mes p3
return p1
#global

#define Dtes(%1=0,%2=-1,%3="ABC") Ftes %1,%2,%3
Dtes 10
mes stat

[8355] Re^2: 自作関数・命令の可変個引数の取得方法 投稿者:deffunc 投稿日:09/10/06(火) 09:46
そういった擬似的・妥協的手法ではなく、
たとえば、自作のモジュール関数の可変個引数を、
内部でstrf関数に渡したいときにどうするか、などの問題を提示したかったのですが。

本家できいてみます。

[8352] タスクトレイ 投稿者:にゃんちゃん 投稿日:09/10/02(金) 19:36
こんにちは。HSPのソフトを、タスクトレイに常駐させるにはどうすればいいのでしょうか?

[8354] Re: タスクトレイ 投稿者:GENKI 投稿日:09/10/02(金) 22:24
> こんにちは。HSPのソフトを、タスクトレイに常駐させるにはどうすればいいのでしょうか?

少し難しいかもしれませんが、「hsp タスクトレイ」でググれば出来るようになると思います。

[8350] 画像の余白の処理について 投稿者:足軽 投稿日:09/09/30(水) 22:04
はじめまして。足軽です。

今、横スクロールアクションゲームをHSPで作っているのですが、
そのゲームに使う画像の余白が邪魔で、キャラクターの描いてある
部分だけを表示したいのですが・・・。

グラフィック上の問題ですか?
それとも、プログラムでどうにかなるのでしょうか?
教えてください。

[8353] Re: 画像の余白の処理について 投稿者:GENKI 投稿日:09/10/02(金) 22:22
> 画像の余白が邪魔で、

四角の画像になってしまっていて、キャラクターの背景が透明になっていない。
ということでしょうか?

gmodeは使っていますか?

[8349] マルチスレッドランタイムの使い道 投稿者:deffunc 投稿日:09/09/25(金) 23:35
連続投稿失礼します。(過疎故にレスが遅いもので)
マルチスレッドが、
ある複数のスレッドにタイムスライスを割り当て、
交互にスレッドを切り替えることにより、
擬似的に並列処理を実現する仕組み、
ということは知識としてもっています。

HSPが通常のラインタイムではシングルスレッドであり、
スレッドレベルでの並列処理には対応していない、
ということもわかります。(そもそもHSPにスレッドの概念はない)
例えば、
「▲を表示するルーチン」と「●を表示するルーチン」があり、
「▲を表示し、●を表示する」という処理は
必ず「▲を表示し終えてから●が表示される」という結果になります。
そもそもここでの説明に「ルーチン」を使わざるを得ないことが
スレッドの概念が無いことの証でもあります。

では、マルチスレッドランタイムを使用した場合、
具体的に何がどう通常ランタイムと変わるのでしょうか?
最適化されていることで実行速度が上がる程度なのでしょうか?
それともプラグイン等のスレッドを生成する類のもので
真価が発揮されるのでしょうか?
つまり、
「マルチスレッドランタイムはプラグインで新たにスレッドを生成し、
 スクリプトの実行スレッドと平行して処理させたい場合に限り、
 真価が発揮される。」
という理解で正しいのでしょうか?

よろしくお願いします。

[8343] hsp let 投稿者:Mr.女王の髪 投稿日:09/09/16(水) 21:41
hsp letでどうしても、html化することができません。エラーメッセージを見ると、対応していない命令を使ってしまったようです。(notesave)ここからhtml化するには、命令をかえなければならないのでしょうか?

[8347] Re: hsp let 投稿者:あり 投稿日:09/09/19(土) 12:34
HSPLetではセキュリティ上の問題でデータを保存する命令(bsaveやnotesave等)は使用できませんので
作成中のソフトの仕様を変更するしかないですね。

どの命令が利用可能なのかはHSPLetマニュアル内の命令表を参考にして下さい。

[8337] hsp3demo.exeで内部エラー 投稿者:かの 投稿日:09/08/31(月) 21:43
今頃指摘?という感じもあり大変恐縮ですが、
hsp3demo.exeを実行しようとすると、
「内部エラーが発生しました(38)」のエラーメッセージが出て
実行することが出来ません。

HSP3.2, HSP3.1で発生します。3.0では発生しません。
いずれもzipから解凍して使用しています。

DLLが見つからないような時に出るエラーのようですが、
何か足りないファイルでもあるのでしょうか?

ちなみにOSはWindows 98です。

[8341] Re: hsp3demo.exeで内部エラー 投稿者:Kpan 投稿日:09/09/02(水) 19:55 <URL>
こちらでは確認できません。
そのデモは音楽再生に「hspogg.dll」を使ってるので、それを
わざと開発環境から取っ払えば再現できますが・・・。

デモのソースコードも付いてるので、そっちをコンパイル実行
してみては?
> sample\demo\demo.hsp

[8342] Re^2: hsp3demo.exeで内部エラー 投稿者:かの 投稿日:09/09/06(日) 15:02
あぅ。デモのソースコードがついていたのですね。

確認しました。
HSPOGGが原因でした。
HSPOGG(の元となるHSPIMG3)がDirectX8以降を対象としているので、
Windows98+DirectX7aでは動きませんでした。

デモのソースコードを動くように修正している過程で気付きましたが、
#deffunc sndfade
に対応するreturn命令の位置が少しおかしいですね。

スッキリしました。ありがとうございます。

[8333] HSP3.2製ソフトの配布 投稿者:アビゲイン 投稿日:09/08/30(日) 19:06
こんばんわ、前回は大変助かりました!

今回、聞きたい事は
HSPで作ったソフトの配布をする為に、Readme.txtを書いているのですが"動作環境"には何て書けば良いのでしょうか…。
HSP本体と同じ"動作環境"を書けばいいのかとも迷いました。

一応、私の開発環境を書いときます。(どうでも良いかもですけど…)
Vista / HSP3.2 / 100%内蔵命令 です。

よろしくお願いします。

[8335] Re: HSP3.2製ソフトの配布 投稿者:Kpan 投稿日:09/08/30(日) 21:05 <URL>
標準命令なら、「Windows 98以降」とかで別に問題ないです。

# 実際のところ、WindowsユーザーはXP+Vistaで9割ぐらい
# いってるんじゃないですかね。

[8336] Re^2: HSP3.2製ソフトの配布 投稿者:あり 投稿日:09/08/31(月) 10:22
細かく書くのなら
必須動作環境:HSPの動作環境
推奨動作環境:自分の開発環境(OS・CPU・メモリ)又は理想とする処理速度が期待できる環境
を書き、どの環境で開発・動作確認をしたか書いておけば良いと思います。

[8340] Re^3: HSP3.2製ソフトの配布 投稿者:アビゲイン 投稿日:09/08/31(月) 23:01
丁寧な回答ありがとうごいざいます。

お二人の貴重な意見を参考にさして頂きます^^

[8327] HSPTV掲示板 投稿者:ttoc 投稿日:09/08/28(金) 03:00
TVの方でアドバイスを投稿したいのですが、
ホストが許可されていないと言われて弾かれてしまいます。
何とかなりませんか?

[8330] Re: HSPTV掲示板 投稿者:おにたま(管理人) 投稿日:09/08/29(土) 03:38 <URL>
申し訳ありません。
HSPTV掲示板では、一部のホストに対してアクセス制限を行なっています。
制限についてのご質問は、お手数ですが管理人(info@hsp.tv)までメールにてお問い合わせ頂くようお願い致します。

[8323] モジュールの置き場所? 投稿者:アビゲイン 投稿日:09/08/19(水) 18:33
はじめまして。早速質問ですが…
私は人様の作られたモジュールをDLして使用さして頂いてますが
、このDLした、もしくは自分で作ったモジュールはどこに置いて置
くべきでしょうか?
HSP3.2を使っていますが、付属のモジュールはcommonフォルダに入
ってますよね?もしかして、DLした又は自前モジュールはcommonフ
ォルダに移動しなければいけないんでしょうか…?

最近モジュールを使えるようになりまして拙い文集ですが
ご回答よろしくお願いします。

[8324] Re: モジュールの置き場所? 投稿者:ANTAES 投稿日:09/08/20(木) 00:15 <URL>
>もしかして、DLした又は自前モジュールはcommonフ
>ォルダに移動しなければいけないんでしょうか…?
 #includeでファイル名のみ指定する場合は
スクリプトと同じフォルダかcommonフォルダになければ
なりません。
 他のフォルダに置いている場合は、相対パスまたは絶対パスで
指定する必要があります。

[8325] Re^2: モジュールの置き場所? 投稿者:アビゲイン 投稿日:09/08/20(木) 16:53
迅速なご回答ありがとうございます。

些細な事ですが、助かりました。
また、大した事のないことを質問してしまうかもしれませんが、その時はよろしくお願いします。

[8321] ファイル選択ダイアログとファイルの保存 投稿者:にゃんちゃん 投稿日:09/08/11(火) 11:05
こんにちは。
いま、ゲームの音をカスタマイズするソフトを作っています。それで、ファイルをdialog命令で選んでもらって、それを、ballmove=refstrみたいにしてどんどん変数に記憶させ、
最後にvsave命令で保存しようとしているのですが、何度試してもうまくいきません。
最初は、ファイルを選択したフォルダ内に保存したファイルがあったので、chdir命令を使って、chdir dir_exeとして、カレントディレクトリを戻そうとしたら、
それがまったく効かず考えに考えた挙句に、vsave dir_exe+"gamesound.dat"と改良したのですが、
こんどはそのdir_exeがHSPのフォルダになってしまうことが分かったのですが、
どうせexeにするんだから問題ないかと思い、
exeにして実行させてみたら、HSPのフォルダにも、作業フォルダにも、どこにも保存されなくなってしまいました。
これだとややこしいので、簡単に質問します。
色々なフォルダからファイルを選んだあと、vsaveをすると選んだファイルがあるフォルダに保存されてしまうのはなぜでしょうか?また、対処するにはどうすればよいでしょうか?教えてください。

[8322] Re: ファイル選択ダイアログとファイルの保存 投稿者:inovia 投稿日:09/08/11(火) 17:06 <URL>
dialog 命令を使った後はカレントディレクトリが選択したファイルのあるフォルダに移動します。

#include "hspda.as"

savefile="gamesound.dat"//保存するファイル名
cd=dir_cur//現在のカレントディレクトリを保存
ballmove=""

repeat
dialog "*",16,
if stat=0:break
ballmove+=refstr+"\n"
loop

vsave cd+"\\"+savefile

[8315] sortval命令の不具合 v3.2 投稿者:さかき 投稿日:09/07/29(水) 20:10
HSPv3.2rc1のsortval命令では大きい順に並ばないみたいです。
v3.1のhspda.asとhspda.dllを入れると正常になるようです。
普段使用している自分のフォルダにはdllファイルなどは入ってないので、多分新バージョンでの不具合じゃないかと思うんですが、正常に動く方がいらっしゃったら教えてください。

[8316] Re: sortval命令の不具合 v3.2 投稿者:さかき 投稿日:09/07/29(水) 20:26
不慣れでスミマセン。
以下のようにすると、
どちらでやっても小さい順に並べられます。

// **************************

#include "hspda.as"
ddim SortTest, 5

SortTest(0) = 1.0
SortTest(1) = 3.0
SortTest(2) = 5.0
SortTest(3) = 4.0
SortTest(4) = 2.0

sortval SortTest, 1

repeat 5
mes SortTest(cnt)
loop
stop

// **************************

[8318] Re^2: sortval命令の不具合 v3.2 投稿者:おにたま(管理人) 投稿日:09/07/30(木) 22:42 <URL>
ご報告ありがとうございました。
sortval命令については、リリース版で修正します。

[8314] エディタv3.2について 投稿者:SErr 投稿日:09/07/29(水) 19:54
HSPスクリプトエディタ3.2を使って
▼==============
*a
*b
s="宮"
*c
*d
▲==============
上記プログラムを打って「ラベル一覧(L) [F11]」を表示させると,
*a,*b はリストに表示されますが
s="宮"の行以降の
*c,*d がリストにありません.

エディタ3.1だと *a~*d がちゃんとリストに表示されました.

この現象はエディタのバグでしょうか?

[8317] Re: エディタv3.2について 投稿者:おにたま(管理人) 投稿日:09/07/30(木) 22:42 <URL>
HSP3.2RC1についてのご報告ありがとうございます。
エディタの不具合について、リリース版では修正したいと思います。

[8312] セーブについて 投稿者:tomoki 投稿日:09/07/28(火) 15:38
とても馬鹿な質問なんですが、セーブをする命令文を教えてください。
テキストを使うのでしょうか。答えていただかなくても結構です…。

[8313] Re: セーブについて 投稿者:Kpan 投稿日:09/07/28(火) 20:17 <URL>

どんなデータのセーブなんか分かりませんが、ファイル出力命令には
notesave命令とbsave命令があります。

note〜命令は、付属のサンプルをチェックしてください。
> sample\basic\noteadd.hsp

あとは、「hsp notesave」「hsp bsave」のようなキーワードでググれば
情報が出てくるので、調べてみてください。

[8296] 実行ファイルの作成 投稿者:こう 投稿日:09/07/19(日) 16:01
みなさんこんにちは。
ファイルを一つにまとめて、実行ファイルにするにはどうしたらいいのですか?下記のやり方でしてみました。
@HSP→START.AXの作成
Aツール→PACKFILE編集→全ファイル追加
Bツール→EXEファイル作成

といった流れでしてみたのですが、ライブラリが見つかりませんって言ってエラーがでてしまいます。
ライブラリは一緒にPACKFILE編集で追加してあります。

すみませんがよろしくお願いします。

[8311] Re: 実行ファイルの作成 投稿者:こう 投稿日:09/07/24(金) 17:36
こんにちは。ライブラリなどはパックできないみたいですね。
ありがとうございました。

[8300] Re: 実行ファイルの作成 投稿者:ANTARES 投稿日:09/07/20(月) 01:24 <URL>
>ライブラリは一緒にPACKFILE編集で追加してあります。
 ライブラリはpackしても使えません。
dllをexeファイルと同じフォルダに置いてください。

[8298] Re: 実行ファイルの作成 投稿者:Kpan 投稿日:09/07/19(日) 20:40 <URL>
それは昔の旧式です。「全ファイル追加」というのもちょっと
状況的におかしいです。(^^;

たとえば、BMPファイルを埋め込むなら↓のように書いておいて、
エディタの[HSP]→[実行ファイル自動作成]してください。
//
#packopt name "出力名"

#epack "hoge.bmp" ; パックするファイル

picload "hoge.bmp"
mes "あいうえお"
//

[8306] 画像をクリック 投稿者:majemaje 投稿日:09/07/22(水) 10:38
初めまして。majemajeです。

脱出ゲームを作ってみたく、昨日ダウンロードして見よう見まねで
プログラム書いてみてるのですが、まったくの初心者で分からないこと
だらけです。

buttonキーでラベルへジャンプするのは分かったのですが、今表示されている画像のある座標をクリックすると違うラベルへジャンプするようなコマンドはありますか?

一応マニュアルは見ながらやっているのですが、分からなかったです。
よろしくお願い致します。

[8307] Re: 画像をクリック 投稿者:木村 投稿日:09/07/22(水) 14:53
 一例として以下のスクリプトを挙げます。button命令を使わずに、
リアルタイムでスクリーンが更新され、クリックの情報等を
取得するスクリプトです。

*変数定義
//クリックした際に反応する領域を最初に定義します

dim 左上,2
dim 右下,2
左上=280,210
右下=359,269
//この場合(280-359,210-269)の長方形の範囲を表します
//ちなみに、この数値を変えれば長方形の形が変わります
goto *メインループ



*メインループ
//HSPでは常にクリック情報を取得できる手段は
//[button]命令等一部しかありません……
//ですのでボタン以外へのクリック情報を取得する際には
//『画面更新』→『情報取得』→『条件分岐』→『時間待ち』→『画面(以下略)……
//の無限ループを作る必要があります
//このラベルの部分ではそれを作っています

//★画面更新
//画面の更新、つまり状況に応じて絵が変わるように絵を描き直す行程です
redraw 0
gosub *描画内容
redraw 1

//★情報取得
//右クリックしているかの情報を取得する行程です
getkey クリック判定,1

//★条件分岐
//赤い領域内でクリックしたかを判断する行程です
if (mousex>=左上.0)&(mousex<=右下.0)&(mousey>=左上.1)&(mousey<=右下.1)&(クリック判定=1) : goto *赤を押す
//[if]命令の条件分岐ですが、かなり複雑なので少し説明を
//[mousex]は現時点でのマウスカーソルのX座標を表す変数
//同じく[mousey]は現時点でのY座標のそれ
//1番目から4番目までの条件は
//『マウスカーソルが設定した赤い領域内にあるか』を確認する意味
//5番目のみ『右クリックがなされたか』の是非を問うています
//[&]は論理演算子、つまり
//『この5つの条件全てを満たした時のみ*赤を押すに進める』という意味になります

//★時間待ち
//Windowsに時間を渡す行程です、ループにこれを入れないと“バク”ります
await 17

goto *メインループ
//全ての工程が終わったらまた最初に戻ります



*描画内容
color 255,255,255
boxf
//絵を描き直すために一旦スクリーンをまっさらにします
//[color]命令で色を白に設定、255,255,255はそれぞれRGBを表しています
//続いて[boxf]命令で全域を塗りつぶします

color 255,0,0
boxf 左上.0,左上.1,右下.0,右下.1
//クリックして欲しい部分を示す赤色を塗ります
//ちなみに、ある画像を代わりに置きたい時は以下のようにどうぞ
;pos 左上.0,左上.1
;picload 画像名,1

color 0,0,0
pos 0,0
mes "("+左上.0+"―"+右下.0+","+左上.1+"―"+右下.1+")"
mes "赤を押した回数="+赤を押した回数+"回"
mes "mousex="+mousex+" : mousey="+mousey
return



*赤を押す
//★赤を押した時の反応となる行程です

赤を押した回数+=1
//変数『赤を押した回数』を1回増やします

dialog "あなたは赤の領域を\n"+赤を押した回数+"回だけ押しました",0
//自分が押した事が分かるように[dialog]命令でダイアログを召喚

goto *メインループ
//最後に、またメインループへと戻ります

[8309] Re^2: 画像をクリック 投稿者:majemaje 投稿日:09/07/22(水) 15:08
>  一例として以下のスクリプトを挙げます。button命令を使わずに、
> リアルタイムでスクリーンが更新され、クリックの情報等を
> 取得するスクリプトです。
>
御丁寧にありがとうございます。
少しづつ噛み砕きながら理解していきます。

また何かお聞きするかもしれません。
よろしくお願い致します。

[8302] if命令のネストについての質問 投稿者:木村 投稿日:09/07/20(月) 16:32
 if命令の条件分岐枠(『{』〜『}』までの部分)はgoto命令によるラベルジャンプで解消されるのでしょうか? つまり、

ax=3
*a
if ax=3 {
mes ax
await 2
goto *a
}

 このような命令があった場合、ifネストは増えるのでしょうか? また、増えないのだとしたら全てのgoto命令でifネストは断ち切られるのでしょうか?

[8305] Re: if命令のネストについての質問 投稿者:zzp 投稿日:09/07/21(火) 21:45
>  if命令の条件分岐枠(『{』〜『}』までの部分)はgoto命令によるラベルジャンプで解消されるのでしょうか? つまり、
>
> ax=3
> *a
> if ax=3 {
> mes ax
> await 2
> goto *a
> }
>
>  このような命令があった場合、ifネストは増えるのでしょうか? また、増えないのだとしたら全てのgoto命令でifネストは断ち切られるのでしょうか?

goto命令を使うと、それまでのネストを全てbreakしてジャンプします。
HSPではループのネストの深さが一定以上になるとエラーが出力されるので、命令を実行してエラーが出なければ大丈夫です。

[8308] Re^2: if命令のネストについての質問 投稿者:木村 投稿日:09/07/22(水) 14:57
> goto命令を使うと、それまでのネストを全てbreakしてジャンプします。
> HSPではループのネストの深さが一定以上になるとエラーが出力されるので、命令を実行してエラーが出なければ大丈夫です。

 回答ありがとうございます。軽く走らせた段階でバクがでなくても、数百行単位の実際のスクリプトで基礎命令への無理解から来る根本的バクに当たられるのが嫌だったので質問させていただきました。

 これで無理にifの条件分岐にgoto命令を入れずに組んでいたスクリプトが少し簡略化しそうです。重ね重ねありがとうございます。

[8297] stick命令以外でのキーのトリガータイプ指定 投稿者:zzp 投稿日:09/07/19(日) 16:44
みなさんこんにちは。
現在私はゲームを作ろうと日夜奮闘しております。
しかし、どうしても自分ひとりでは解決できなかったことがあるので皆さんのお力を少しお借りしたいのです。

stick命令で非トリガータイプキー指定ができるのに対し、
getkey命令では、どうやっても「最初にキーが押された後キーが離れるまでに1回のみキーが入力された」ということが出来ないのです。

どうすればよいのでしょうか?

[8299] Re: stick命令以外でのキーのトリガータイプ指定 投稿者:eller 投稿日:09/07/20(月) 00:23 <URL>
こんばんは、ellerと申します。

> stick命令で非トリガータイプキー指定ができるのに対し、
> getkey命令では、どうやっても「最初にキーが押された後キーが離れるまでに1回のみキーが入力された」ということが出来ないのです。
>
> どうすればよいのでしょうか?
getkey命令では「今押されているかどうか」しかわからないので、変数や条件分岐などを使ったロジックを考える必要があります。

stick命令と同じ動作ならば、「前回チェックしていたときに押されていたかどうか」を変数などで覚えておいて「前回押されていなかった かつ 今回押されている」ときを押された瞬間として処理すれば実現できます。
stickっぽいことをgetkeyで実現するサンプルコードを掲載していますので、よろしければURLも参考にしてください。

[8301] Re^2: stick命令以外でのキーのトリガータイプ指定 投稿者:zzp 投稿日:09/07/20(月) 11:51
> こんばんは、ellerと申します。
>
> > stick命令で非トリガータイプキー指定ができるのに対し、
> > getkey命令では、どうやっても「最初にキーが押された後キーが離れるまでに1回のみキーが入力された」ということが出来ないのです。
> >
> > どうすればよいのでしょうか?
> getkey命令では「今押されているかどうか」しかわからないので、変数や条件分岐などを使ったロジックを考える必要があります。
>
> stick命令と同じ動作ならば、「前回チェックしていたときに押されていたかどうか」を変数などで覚えておいて「前回押されていなかった かつ 今回押されている」ときを押された瞬間として処理すれば実現できます。
> stickっぽいことをgetkeyで実現するサンプルコードを掲載していますので、よろしければURLも参考にしてください。

どうもありがとうございます。
「前回おされていなかった かつ 今回押されている」ときは考慮していたのですが、「前回チェックしていたときにおされていたかどうか」ということは考えていませんでした。
サンプルコードのような記述方法は今まで全く知らなかったので、これを機にそういう記述方法も学んでいきたいと思います。

[8292] exec 投稿者:ルッキンググラス 投稿日:09/07/15(水) 17:47
はじめまして。
abc.txtというテキストファイルをwordで開きたいのですが

exec "Word abc.txt"
end



exec "Microsoft Office Word.exe abc.txt"
end


等としましたが動きません。
どうすればよいでしょうか?


又、ノートパッドを開くときは
exec "notepad"
という事なので

exec "Excel"

として、Excel単体で起動させようと思いましたが
起動しなかったので、

exec "Excel",16

とすれば単体で起動しましたが
これを単純に

exec "Word",16

としても単体でWordが開く事はありませんでした。
Wordはプログラム名の記述方法が違うのでしょうか?

そもそもExcelやWordを単体で開くときの書き方自体
合っているのかも謎です。

[8293] Re: exec 投稿者:Kpan 投稿日:09/07/15(水) 20:40 <URL>
Microsoftのページに書いてありますが「winword」です。
http://office.microsoft.com/ja-jp/word/HP101640101041.aspx

読み込むファイルも指定したいなら、Program Filesのフルパス
指定じゃないとだめだと思います。

[8295] Re^2: exec 投稿者:Kpan 投稿日:09/07/15(水) 21:08 <URL>
追記。
COM経由でもOK。
http://hsp.tv/play/pforum.php?mode=pastwch&num=23797

[8288] なんど見直してもわからないので・・・ 投稿者:d-day 投稿日:09/07/05(日) 10:58
こんばんは、HSP初心者のD-dayと申します。
このたびは質問があってまいりました。
おちゃっこさんの本を買って今勉強してるんですが。
3Dモデルデータ表示するだけプログラムをやってるんですが。
どうしてもエラーが出てしまい表示ができません。
#include "e3dhsp3.as"


dim keybuf, 256

screenw = 640 : screenh = 480
screen 0, screenw, screenh, 1
title "test"

E3DEnableDbgFile
E3DInit 0, -1, 0, 16, 0, scid1


pathbuf = dir_cur + "\\g\\da\\da.sig"
E3DSigLoad pathbuf, hsid1
posx1 = 0.0 : posy1 = 0.0 : posz1 = 0.0
E3DsetPos hsid1, posx1, posy1, posz1

camposx = 0.0 :camposy = 800.0 :camposz = -2000.0
E3DSetCameraPos camposx, camposy, camposz
E3DSetCameraTarget posx1, posy1 +800.0, posz1, 0.0, 1.0, 0.0

proj_near = 1000.0 :proj_far = 30000.0 : proj_fov = 60.0
E3DSetprojection proj_near, proj_far, proj_fov

lightdirx1 = 0.0 : lightdiry1 = 0.0 : lightdirz1 = 1.0
lightr1 = 255 : lightg1 = 255 : lightb1 = 255
E3DCreateLight lid1
E3DSetDirectionalLight lid1,lightdirx1,lightdiry1,lightdirz1,lightr1,lightg1,lightb1

*main
E3DGetKeyboardCnt keybuf
if keybuf( VK_ESCAPE ) != 0 :goto *bye

E3DBeginScene scid1
E3DChkInView scid1, hsid1

E3DRender scid1, hsid1, 0, 0, 0

E3DRender scid1, hsid1, 1, 0, 0, 0, 0, 1
E3DEndScene
E3DPresent scid1

E3DWaitbyFPS 60, chkfps1
await 0
goto *main

*bye
E3DBye
end
このような感じで書いてみたのですが、sigファイルはデスクトップのgファイルの中のdaファイルの中にda.sigを入れてあります。
エラー内容は外部DLLの呼び出しに失敗しました。と言われます。
打ち間違えはないと思うんですけどどこかおかしい所があったら教えてもらますか?

[8289] Re: なんど見直してもわからないので・・・ 投稿者:D-n 投稿日:09/07/05(日) 15:21
スクリプトを試してみましたが問題なく動きました。
なのでDLLが古かったり、sigファイルの作り方もチェック。
これでだめならおちゃっこさんに聞くといいです。

[8290] Re^2: なんど見直してもわからないので・・・ 投稿者:d-day 投稿日:09/07/05(日) 20:08
返信ありがとうございます。もう一度最初から試して見ます。

[8287] HPC2009 投稿者:xxxz 投稿日:09/07/03(金) 22:31
今年もそろそろ始まるかな?
http://hsp.tv/contest2009/

どんな作品がくるか楽しみですねぇ〜。
3Dゲームがよりいっそう増えてくるのかなぁ〜?

[8284] API "GetMenuItemInfo"の使用方法 投稿者:suginoki 投稿日:09/06/28(日) 12:03
はじめまして。

GetMenuItemInfoを使いたいのですが、構造体へのアクセスがうまくいきません。

具体的には、MENUITEMINFO 構造体として"mii"をsdim命令で13個確保し、GetMenuItemInfoの第四パラメータに指定したのですが、デバッグウインドウを確認しても情報を取得した形跡がありません。

以下問題部分のソースです。
sdim mii,1024,13

GetMenuItemInfo hMenu.1,1,0,mii
if mii.3 = $8 {
mii.3 = $0
SetMenuItemInfo hMenu.1,1,0,mii
}

よろしくお願いします

[8285] Re: API 投稿者:Kpan 投稿日:09/06/28(日) 16:15 <URL>
「MENUITEMINFO HSP」とかでググってください。
まんま実例がヒットします。

[8279] HSP 3Dモデルの表示されない 投稿者:yun 投稿日:09/06/22(月) 13:46
HSP 3Dモデルの表示されない

これで3Dモデル表示されるはずなのですが

自分で作った3Dモデルを表示できません


メタセコ mqoファイルに

RokDeBoneMotionKit_ver23でsigファイルに

表示されない


どうしたら表示されますか?



//3Dモデルを表示するだけのサンプルです。(最小構成)

;e3dhsp.dll test script

#include "e3dhsp3.as"


#module
#deffunc waitbyfps int p1, var fps
E3DWaitbyFPS@ p1, fps
await 0
return
#global



dim keybuf, 256


;file のpath 用のバッファーの作成
pathlen = 2048
sdim mediadir, pathlen
mediadir = dir_cur + "\\Media"
sdim pathbuf, pathlen, 2


screenw = 640 : screenh = 480
screen 0, screenw, screenh, 1

title "Easy3D for HSP3 sample"

;初期化
E3DEnableDbgFile
E3DInit 0, -1, 0, 16, 0, scid1

;カメラの初期化
camposx = 0.0 : camposy = 800.0 : camposz = -2000.0
E3DSetCameraPos camposx, camposy, camposz
camdegxz = 180.0 : camdegy = 0.0
E3DSetCameraDeg camdegxz, camdegy

;projectionの変更をしたいときは、以下の2行を有効にしてください。
proj_near = 100.0 : proj_far = 30000.0 : proj_fov = 60.0
E3DSetProjection proj_near, proj_far, proj_fov


//猫データ読み込み
pathbuf.0 = mediadir + "\\arm6_bone.sig"
E3DSigLoad pathbuf.0, hsid1
E3DSetPos hsid1, 0.0, 0.0, 0.0


//ライトの作成
lightdirx1 = 0.0
lightdiry1 = 0.0
lightdirz1 = 1.0
lightr1 = 255
lightg1 = 255
lightb1 = 255

E3DCreateLight lid1
E3DSetDirectionalLight lid1, lightdirx1, lightdiry1, lightdirz1, lightr1, lightg1, lightb1

chkfps1 = 0

*main
; keybuf変数は、メインループの外で、dim keybuf, 256 として、確保しておいてください。
E3DGetKeyboardState keybuf

if keybuf.VK_ESCAPE = 1 : goto *bye ; [ESC]で終了

E3DBeginScene scid1
E3DChkInView scid1, hsid1

;不透明部分の描画をする
E3DRender scid1, hsid1, 0, 0, 0

;半透明部分の描画をする
E3DRender scid1, hsid1, 1, 0, 0, 0, 0, 1
E3DEndScene
E3DPresent scid1

waitbyfps 60, chkfps1

goto *main


*bye
E3DBye
end





サンプルはこれで表示されるのですが

自分で作ったのだと

#Error 38 inline 31(hsptmp)
-->外部DLLの呼び出しに失敗しました

と出ます。

[8280] Re: HSP 3Dモデルの表示されない 投稿者:GENKI 投稿日:09/06/24(水) 23:14
> RokDeBoneMotionKit_ver23でsigファイルに

RokDEBoneのバージョンがものすごく古いようです。
もしかしたらその辺が原因かもしれませんので、こちらでDLできる最新のRDBを使ってみてください。
http://www5d.biglobe.ne.jp/~ochikko/rokdebone.htm

また最新のRDBを使う場合、Easy3Dプラグインも最新のバージョンにする必要があります。
こちらから入手ください。
http://www5d.biglobe.ne.jp/~ochikko/e3dhsp.htm


ちなみに、プラグインへの質問はそれぞれの作者に問い合わせたほうが回答が得やすいですよ。
Easy3DとRokDeBone2の開発元はこちらです。
おちゃっこLAB:http://www5d.biglobe.ne.jp/~ochikko/

よかったらこちらもご利用ください。
Easy3Dサンプルwiki:http://easy3d.wikiwiki.jp/

[8281] Re^2: HSP 3Dモデルの表示されない 投稿者:D-n 投稿日:09/06/25(木) 12:41
RokDEBone2とEasy3Dのバージョンが古いのが原因かもしれ
ません。そのほかとして、メタセコで作ったテクスチャファイル等が
無かったりするとエラーになります。

[8262] listboxについて質問です 投稿者:ZZ 投稿日:09/05/31(日) 14:55
初めまして。hspを始めて、今日で14日目のZZといいます。
早速ですが、2つのlistboxを作って、
a「1つ目のリストボックスの項目を選択すると、2つ目のリストボ
ックスに表示される」 という方法を考えています。
そこで、aのやり方は分かったのですが、「同じ項目を2回選択さ
せない」方法が分からなくて、困っています。
まだhspのことをよく分かっていない者なので、できるだけ詳しい説
明で教えていただけると助かります。お手数ですが、よろしくお願い
します。

listboxtext="北海道\n青森\n宮城"
listbox kenmei,100,listboxtext
listboxtext2=""
listbox ken,100,listboxtext2

pos 230,440
button "選択",*sentaku
stop

*sentaku
notesel listboxtext
noteget s,kenmei
listboxtext2=listboxtext2+s+"\n"
objprm 1,listboxtext2
stop

[8271] Re: listboxについて質問です 投稿者:矢野 投稿日:09/06/04(木) 22:03
 ZZさんへ、
返事がないので、スクリプトを貼っておきます。
検索は、次のように repeat cnt loop
を使用し、1行ずつ取り出して比較してみました。
同じ都道府県の場合は、dialog 命令で既に選択済みであることを
伝えるスタイルにしました。

listboxtext="北海道\n青森\n宮城"
listbox kenmei,100,listboxtext
listboxtext2=""
listbox ken,100,listboxtext2

pos 230,440
button "選択",*sentaku
stop

*sentaku
notesel listboxtext
noteget s,kenmei
notesel listboxtext2

repeat notemax
noteget t,cnt
if s=t:goto *baibai
loop

listboxtext2=listboxtext2+s+"\n"
objprm 1,listboxtext2
stop

*baibai
dialog "その都道府県は既に選択しています。",0
if stat=1:stop

[8274] ありがとうございます 投稿者:ZZ 投稿日:09/06/06(土) 21:31
矢野さん、スクリプトまで載せていただいて
本当にありがとうございました。

実は、しばらく考えても分からず、その上
この掲示板を開こうにも、開けず困っていました。

listboxについて、もう一つ分からないことがあるのですが、
もう少し考えて、それでも自己解決できなければ、
また質問させていただきます。

その際には、またご指導をよろしくお願いします。

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

[8276] Re: ありがとうございます 投稿者:矢野 投稿日:09/06/07(日) 00:49
ZZさんにお伝えします。

 私が正解を予告しておきながら回答を出すのが遅かったせいかもしれませんが、
HSPラウンジにTAKEというペンネームで全く同じ内容の質問を投稿していますね。

 これはマルチポストといって、してはいけない行為とされています。
もちろん、ぶまさんは私とは比べものにならない技術と知識の持ち主ですので、
すぐに適切な回答が得られると思いますが、一度掲示した質問は
何らかの仕舞いをした上で、また、そのことをことわったうえで
他の掲示板に移るようにしましょう。

[8277] Re^2: ありがとうございます 投稿者:ZZ 投稿日:09/06/07(日) 10:08
大変申し訳ありませんでした。

悪意があって行ったわけではないのですが、このページが
ドメイン切れで開くことができずにいましたので、
他のサイトに行って、質問をしてしまったのです。

親切にご指導していただいた矢野さん・ぷまさんには、大変失礼なことをしてしまいました。

普段掲示板等利用したことがないため、「マルチポスト」という行為がマナー違反になるということも知りませんでした。

今後、マナーの勉強もしっかりしたいと思います。

HSPのことのみでなく、マナーのことについても教えていただき、
本当にありがとうございました。

[8275] Re: ありがとうございます 投稿者:矢野 投稿日:09/06/06(土) 21:55
どういたしまして、私もお役に立てて嬉しいです。
今回は、たまたまひらめいたのでお答えしたのですが、
それほど技術がありませんので、次回もお答えできるかどうか分かりませんが、
質問があれば、解決に向けて取り組んでみたいと思いますので、
よろしくお願いします。

[8263] Re: listboxについて質問です 投稿者:矢野 投稿日:09/06/01(月) 23:46
選択した都道府県名と既に選択している都道府県名を比較して
別名ならリストボックスに書き込み、同じなら書き込まない
ようにすればできましたよ。
チャレンジしてみてください。分からないときは再度質問して
ください。

[8264] hsp.tv 投稿者:Β 投稿日:09/06/03(水) 18:45
hsp.tvに接続できませんが・・
ドメイン更新切れ?みたいなかんじで・・

[8267] Re: hsp.tv 投稿者:Kpan 投稿日:09/06/03(水) 21:00 <URL>
前にもあったけど、ひとまずサーバー本体のURLアドレス。

> hsptv.sakura.ne.jp

[8269] Re^2: hsp.tv 投稿者:ロケットナマコ 投稿日:09/06/03(水) 21:44
あ。本体は存在してるんだね。あーよかった。
うすあじさんのブログとか見に行って
「この人知り合いなんだよなあ。
この人の文章はいつもどうりって感じだし、
特に重大な問題は発生してないみたいだけど、、、」
とか思ってました。
ドメイン更新忘れ→更新したけど反映に時間がかかるって感じなのかな?
ふー一安心。

[8273] Re^3: hsp.tv 投稿者:ロケットナマコ 投稿日:09/06/05(金) 07:22
うすあじさんのブログで「おにたまさんが更新手続き中です。
もうちょっと待ってね」と言うアナウンスがありました。
あーよかった。
実はずーっとドキドキハラハラしてました。

ps. hsp.tvってプレミアムネームと言われる特に高いドメインだそうですね。43万3485円だとか。ヒー!
外貨を獲得する為に公開していると聞いた事はありましたが、ここまで高いとは。私なんか\980の.comドメインなのに、、、
一ユーザーとしては「無理のないやり方で結構でございますよ!」と言いたくなります

[8265] Re: hsp.tv 投稿者:rom1 投稿日:09/06/03(水) 19:51
> hsp.tvに接続できませんが・・
> ドメイン更新切れ?みたいなかんじで・・

見れませんね。 genoウィルスじゃなきゃ良いですが。。

[8266] Re^2: hsp.tv 投稿者:g 投稿日:09/06/03(水) 20:47
あのオバハンだれなんですか?w
他のドメイン切れのときも出現するんでイライラしてしまいます。(あの人のせいじゃないですが)

[8261] オブジェクトの透過 投稿者:ヒロ 投稿日:09/05/28(木) 11:51
ウインドウ全体を透過させずにリストボックスやボタン等のオブジェ
クトのみを透過表示させる方法はありますか?

ネットで検索してもウィンドウの透過についてばかりで見つからな
かったので。

[8259] これ書くとエラーが出る 投稿者:D.J.Sin 投稿日:09/05/25(月) 19:38
数取機のプログラムをこのように書いたらエラーが出ました。
どうやら4行目あたりにバグがあるようです。どう改良すればいいですか?(HSP3.1)

width 320,240
dim count
print count
button gosub + , *plus
button gosub - , *minus
*plus
dim count=+1
*minus
dim count=-1

[8260] Re: これ書くとエラーが出る 投稿者:Kpan 投稿日:09/05/25(月) 20:25 <URL>
改良というか、文法の間違いがイロイロと・・・。(^^;

付属する↓ドキュメントはチェックしましたか?
(該当するのはStep5〜)
> 初心者のためのHSP入門 (beginner/start.htm)

[8255] ウエイト 投稿者:流浪 投稿日:09/05/22(金) 22:21
毎度すみません。
現在、時間を使ったソフトを考えている最中です。
HSPにはシステムから時間の情報を取得する手段があるのですが、
コレにウエイトを掛ける手段に悩んでいます。
ある条件と一致したら、それ以降は指定したウエイトで時間を進行
させたいのです。
例えば、
tW(Time Weight)=0.5 なら、実時間2秒で1秒の時間進行、
tW(Time Weight)=2 なら実時間1秒で2秒の時間進行
です。
実時間の経過と共に過去に遡るような”−ウエイト”は考えて
いません。
これを実現するテクニックはあるのでしょうか?
よろしくお願いします。

[8257] Re: ウエイト 投稿者:20090523 投稿日:09/05/23(土) 17:34
これで何とかして下さい。

#uselib "user32.dll"
#func SetTimer "SetTimer" sptr,sptr,sptr,sptr

ddim tW,1
oncmd gosub *Count,$113

tW = 2
tW = 0.5

SetTimer hwnd,1000,int(1000.0*tW),0
stop

*Count
mes ""+gettime(6)+" "+gettime(7)
return

[8258] Re^2: ウエイト 投稿者:流浪 投稿日:09/05/24(日) 19:37
20090523さんへ

さっそくありがとうございます。
なんとなく難題のような感じがしていたのですが、やっぱり・・・
きっかけを頂いたんで、自分でもいろいろと考えて試してみます。

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

[8256] 動画を中断させない手法? 投稿者:だるま 投稿日:09/05/23(土) 08:34
素人な質問ですいませんがどなたか教えてください。
動画を表示させながら(例えば画像を回転)同時に定期的に
USBにアクセスするソフトを作成していますが、動画の動きを
中断(USBにアクセスするフローの間は動画の動きが瞬断する)
させずに、なめらかに動画を表示し続ける手法はあるのでしょうか?
別個のソフトとしてマルチタスクで動かすのは当然問題ないの
ですが、ひとつのプログラムの中で動画を滑らかに動かしながら
一方で定期的に仕事をさせたいのです。
プログラムの原理からは無理なんでしょうか??

[8254] 音量の取得 投稿者:山富 投稿日:09/05/14(木) 18:59
バーグラフの音量計(VUメータ)を表示したいのですが瞬時値
又は適当な時間間隔内の平均値等でも良いのですが取得する方法をどなたか御教示頂ければ嬉しいのですが。

[8247] input命令での処理の方法 投稿者:流浪 投稿日:09/04/30(木) 23:58
困っています、ご指南を頂ければと思っています。

a=0.0
*IBT
mes "aを入力して下さい。(小数点も入力)"
input a
id=stat : objsel id
if a>0 : goto *toAKC
wait100
goto *IBT
stop
*toAKC
button gosub "OK", *AKC
stop
*AKC
mes "座標を選択して下さい。"
combox b,,"X座標\nY座標\nZ座標"

@変数aには0より大きい実数を入力させたい。
A変数aに0より大きい実数が入力されるまで待機する。
B変数aが0より大きい実数の場合、OKボタンで入力数値を確定する。C次の処理に移る。

上記@〜Cの処理をさせたいのですが、上手くできません。
”5.0”と入力しても、代入された数値を表示させてみると、
”50.000000”となっている場合があります。またボックス内の表示も”.50.000000”となっていたりしています。
”wait”で設定するパラメーターである程度解決できるとは思うのですが、入力したい数値とボックス内の表示と代入された値を確実に一致させたいのですが、どうやってもできません。

理想としては、
@入力ボックス内の表示を空白にして入力を待つ。
A0より大きい実数が入力されるまで待機する。
B変数aが0より大きい実数の場合、OKボタンで入力数値を確定する。
C次の処理に移る。
です。

何か方法はないものでしょうか?
よろしくお願いします。




[8248] Re: input命令での処理の方法 投稿者:20090501 投稿日:09/05/01(金) 15:44
 a=0.0
*IBT
mes "aを入力して下さい。(小数点も入力)"
input a
id=stat : objsel id

objprm 0,""
repeat
if a>0 : goto *toAKC
await
loop
/*条件を満たせば無限ループから出る処理*/
;wait 100
goto *IBT
stop
*toAKC
button gosub "OK", *AKC
stop
*AKC
mes "座標を選択して下さい。"
combox b,,"X座標\nY座標\nZ座標"
mes a

/*
;ご参考
onkey gosub *Mesg

ddim a,1
input a
objprm stat,""

stop

*Mesg
if (wparam == 13) and (a > 0) {dialog a} ;13 = Enter(CR)
return
*/

[8249] Re^2: input命令での処理の方法 投稿者:流浪 投稿日:09/05/01(金) 23:02
20090501 さんへ

ありがとうございました。
早速実行してみましたが、書き換えて頂いたスプリクトには大変満足
しています。
参考に頂いた方は、思い立って勉強を始めてまだ2週間ほど、入門書
片手の今の自分には訳が解かりませんが、これから役に立つと思って
います。

やってたらこうなっちゃった→まあいいや

ではなく、狙った処理を実現させるのがプログラミングだと理解して
いますので、自分でも勉強をして行くつもりですが、困った時は今回
のようにアドバイスを頂ければ幸いです。

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

PS.
手動改行モードなのに改行を忘れてしまっていた部分があり、
見づらいと思われたと感じています。
すみませんでした。







> a=0.0
> *IBT
> mes "aを入力して下さい。(小数点も入力)"
> input a
> id=stat : objsel id
>
> objprm 0,""
> repeat
> if a>0 : goto *toAKC
> await
> loop
> /*条件を満たせば無限ループから出る処理*/
> ;wait 100
> goto *IBT
> stop
> *toAKC
> button gosub "OK", *AKC
> stop
> *AKC
> mes "座標を選択して下さい。"
> combox b,,"X座標\nY座標\nZ座標"
> mes a
>
> /*
> ;ご参考
> onkey gosub *Mesg
>
> ddim a,1
> input a
> objprm stat,""
>
> stop
>
> *Mesg
> if (wparam == 13) and (a > 0) {dialog a} ;13 = Enter(CR)
> return
> */

[8251] Re^3: input命令での処理の方法 投稿者:A.C 投稿日:09/05/02(土) 02:32
横から失礼、こんにちは、A.Cです。
No.8248はできるだけオリジナルのスクリプトを残して
改良されたと思うのですが
少し気になった部分がありますので報告。

> repeat
> if a>0 : goto *toAKC
> await
> loop

この部分、repeat〜loop内をgotoで抜けると
ネストレベルが上がり続けるのでbreakで一旦ループを抜けてから
gotoをされたほうが良いと思います。
つまりこういうことですね

repeat
if a>0 : break
await
loop
goto *toAKC

ネストレベルを無視し続けたらどうなるかは下を実行させるとわかります。

*a
repeat
goto *a
await
loop

[8252] Re^4: input命令での処理の方法 投稿者:流浪 投稿日:09/05/02(土) 19:59
A.Cさんへ

スプリクトの流れでの、”入り”と”出”を明確にすると言う事で
いいのでしょうか。訳の分からない出入りを繰り返さずに、出る所
で出る、そうでなければ”はい!ココまで!”と言って出る。

確かに、スプリクトの流れを後で追い易くなりますし、今後長い
スプリクトが組めるようになった時に、エラーを起こさないように
組める事にもなると思います。

20090501さんのご意見ともども参考にさせていただきます。

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

[8243] 平均値 算出 投稿者: 投稿日:09/04/25(土) 13:46
HSP3.1の入門本を参考にしながら読み進めていたのですが、
あるページで、「次のスクリプトを入力してみよう」と
書かれていたので早速以下のスクリプトを入力し、
実行してみました。

hen(0)=30
hen(1)=90
hen(2)=65
hen(3)=45
hen(4)=25
hen(5)=20
hen(6)=10
a=0
total=0
*kuri
mes "No."+a+"="+hen(a)
total=total+hen(a)
a=a+1
if a<7 : goto *kuri
mes "合計="+total
heikin=total1/7
mes "平均="+heikin
stop

すると、合計は算出されるんですが、平均だけが何故か0のまま何です。

入門本では 平均=40 と表示されたのに対し、僕が全く同じスクリプ
トで実行した場合は 平均=0 。

何度も見直し、実行してみているんですけど、一度も平均が0から40に変化しません。

本に登載されているスクリプト自体が間違っているのでしょうか。

ご教示の程宜しくお願い致します。

[8244] Re: 平均値 算出 投稿者:20090425 投稿日:09/04/25(土) 17:22
heikin=total1/7
heikin=total/7

[8245] Re^2: 平均値 算出 投稿者: 投稿日:09/04/25(土) 18:03

> heikin=total1/7
> heikin=total/7
ありがとうございます。
平均が表示されました。
ご指摘して頂いた箇所を何となく本で確認してみたらtotal1/7では無く、total/7でした(笑)
完全に自分の見落としでしたので、これ以降は更に気を引き締めて
プログラミングに取り組んでいきたいと思います。
お答えいただき本当にありがとうございました。

[8238] HSP3.2β2について 投稿者:ぼーぼー 投稿日:09/04/19(日) 02:01
報告です。
scree命令で、パレットモードを指定すると、システムエラーになってしまいます。

[8239] Re: HSP3.2β2について 投稿者:Kpan 投稿日:09/04/19(日) 10:02 <URL>
ウィンドウIDが0以外の時に、ということでいいんですかね?
自分の場合は下のような感じ。

//
;問題なし
screen 0, 200, 200, 1
//

//
;システムエラー(Error 1)
screen 1, 200, 200, 1
//

[8240] Re^2: HSP3.2β2について 投稿者:ぼーぼー 投稿日:09/04/19(日) 22:13
> ウィンドウIDが0以外の時に、ということでいいんですかね?

はい。そうです。
というか、ウィンドウID0のときは大丈夫だとは気が付いていませんでした^^;

[8242] Re^3: HSP3.2β2について 投稿者:Kpan 投稿日:09/04/23(木) 20:51 <URL>
ソースコード上(OpenHSP)での話ですが修正が行われたようです。

[8233] ランキングのソート 投稿者:にゃんちゃん 投稿日:09/04/03(金) 17:06
こんにちは。
hspda.dllを使って、ランキングをソートするプログラムを作っているのですが、どうしてもうまくいきません。
動きとしては、テキストファイルを読み込み、スコアの情報を書いて閉じるという流れです。
テキストには、
準位 名前-スコア
という形式で書いてあり、そこに自分のスコアを追加します。
ただ、うまく準位があわないのです。
たとえば、1位が100で、2位が50で、入れようとしてるのが75だったとき、うまく2位にあったデータを3位にもっていき、2位に新しいデータを入れるという動きが分かりません。
またそのときにデータを何らかの形でソートして判断しないといけないと思うのですが、それも分かりません。
もしかしたら、名前とスコアは別のファイルに書かないといけないのかなあ?
分かる方、教えてください。分かりにくくてすいません。
ちなみに、そのテキストファイルをそのあとにどうするかというと、FTPの自分のサーバにアップロードしてPHPを使ってランキングにします。PHP刃ファイルの内容を表示するだけなので、数値だけをだぁぁっと書くわけにもいかないんです。こんなわがままは無理でしょうか?

[8234] Re: ランキングのソート 投稿者:A.C 投稿日:09/04/09(木) 19:23
にゃんちゃんさんこんにちは、A.Cです。
もう1週間経つので解決しているかもしれませんが
簡単な方法としては、内容とスコアを別の変数に入れるということですかねー。
ちょっと長いですけどこんな感じでどうでしょう。

#include "hspda.as"
sdim text:sdim list:sdim tmp:dim score
text="1位 太郎-100\n2位 さくら-50\n3位 修造-12\n4位 鎌田-9\n"
mes "元のスコア\n"+text+"\n"

addScore=75
addName="おにおん"

mes "追加する情報\n名前\t"+addName+"\nスコア\t"+addScore+"\n\n"

;↓変数textから順位を取り出す
i=0
repeat strlen(text)
if i>=strlen(text):break
;↓まずtextから1行ずつ順位部分のみ省いて読み取る
;(全角で区切るとめんどくさいので「順位 名前-スコア」という形式として考える)
getstr tmp,text,i,' ':i+=strsize;(このtmpは使わない)
getstr list(cnt),text,i:i+=strsize
;↓読み取った内容から"-"までの文字数を取得し(このtmpは使わない)
getstr tmp,list(cnt),0,'-'
;↓スコアを取得する
getstr tmp,list(cnt),strsize
;↓それを数値型に変換して変数scoreに代入
score(cnt)=int(tmp)
loop
;↓配列の最後に今回追加するスコアを代入
score(length(score))=addScore
;↓配列変数を並び替え(大きい順)
sortval score,1
;↓変数textに結果を入れなおす
text=""
repeat length(score)
;↓ソート前の配列番号を取得
sortget i,cnt
;↓もし番号が最後(=今回追加したデータ)ならデータを書き加え、
if i=length(score)-1{
text+=""+(cnt+1)+"位 "+addName+"-"+addScore+"\n"
}else{
;それ以外なら一時的に代入した変数listの内容を書き込む
text+=""+(cnt+1)+"位 "+list(i)+"\n"
}
loop
mes "並び替え後のスコア\n"+text
stop

ちなみに全角スペースで区切るとgetstrの性質上めんどくさいので
「順位 名前-スコア」と、半角スペースに置きなおしています

[8235] Re^2: ランキングのソート 投稿者:にゃんちゃん 投稿日:09/04/10(金) 20:54
こんにちは。
わざわざこんな長いスクリプトサンプルまで書いていただいてありがとうございました。
昨日だったか、2次元配列に名前とスコアをいれてソートすればいいじゃんって言われたのですが、こちらのほうが分かりやすいので使わせていただきます。本当にありがとうございました。これがうまくいけば、FTPでアップロードしてあとはPHPがやってくれそうです。