トップページ⇒tech
984コメント244KB

【まだ】HSP初質P57【いる?】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/11/23(月) 20:06:18
もう、そんなに需要があるようには思えないけど…
HSP初心者向けの質問専用スレッドです。

 ■とりあえずこれを嫁。
  http://www.geocities.jp/hsp_summary/law.html

 ■ 前スレ
  【2.61】HSP初質P56【3.2β2】
  http://pc12.2ch.net/test/read.cgi/tech/1242898352/

 ■HSPの入手はここから(HSP3.2)
  □HSPTV
    http://hsp.tv/

 ■HSPの各種情報
  □HSP Wiki
    http://quasiquote.org/hspwiki/

 ■HSPLetの入手はここから(ブラウザ上でHSPを動かす)
  □HSP BIGINNER'S CLUB
    http://www.rinku.zaq.ne.jp/ultimate/

 ■HSPスレまとめページ
  □Hot Soup Processor@2ch
    http://hsp2ch.hp.infoseek.co.jp/
    http://www.geocities.jp/hsp_summary/
0153デフォルトの名無しさん2010/02/09(火) 19:38:35
>>152
1バイトで足りるデータが何千もあって、それが4倍になるととても無駄なサイズになると思いました。
0154デフォルトの名無しさん2010/02/09(火) 19:42:08
そんなに無駄でもないか…
0155デフォルトの名無しさん2010/02/09(火) 20:57:24
1KBが4KBなるだけじゃん
0156デフォルトの名無しさん2010/02/09(火) 21:18:56
だよね。
普通にコピーすることにします。ありがとうございました。
0157デフォルトの名無しさん2010/02/10(水) 00:00:52
#include "hspdxfix.as"
screenmode=1
es_ini 256,320,360
es_screen 640,480,16,0,screenmode,0

中略

buffer 1,240,480
picload "./pic/sp_1.gif"
es_buffer 0,0

repeat 50
es_cls 0,0,255
pos 0,0
gmode 2,48,48:es_copy 0,0,0
await 0
es_sync 16,0
loop
es_bye:end

というプログラムを作ったのですが、画像が透明色抜きで表示されません。
環境はWindows7の32bitです
0158デフォルトの名無しさん2010/02/10(水) 00:42:28
gmodeどうなってんの?
0159デフォルトの名無しさん2010/02/10(水) 19:16:10
すいません解決しました。
gmode命令をbuffer命令の前においたら透明色抜きで表示されました。
0160デフォルトの名無しさん2010/02/16(火) 09:24:57
なんのこっちゃ
0161デフォルトの名無しさん2010/02/16(火) 11:39:17
ゲーム製作にも強みを持つと言われるHSPが、3になった現在でも
入力周りがgetkeyやstickみたいな中途半端な標準命令しかついてないのは、笑いどころですか?
0162デフォルトの名無しさん2010/02/16(火) 11:41:05
WMで処理するだけだからどうでもいい
0163デフォルトの名無しさん2010/02/16(火) 13:20:35
キーボードからの入力はonkeyが最強のコマンド。
0164デフォルトの名無しさん2010/02/16(火) 22:01:34
"ゲーム"にもいろいろあるが
STGでもメッセージ処理するつもりか…

>>161
ゲーム製作"にも"って自分で言ってるやん。
完璧に対応してくれなきゃイヤ?

パッドぐらい標準対応しろとは思うけどそこはそれ。
プラグインやモジュールも豊富だしね。それもまた強みだ。

つーか、あたま固くて笑えるw
0165デフォルトの名無しさん2010/02/17(水) 01:08:08
明らかなネタに嘲笑しながらマジレスする人って、
はたから見て相当残念な人に映るのが分かった
0166デフォルトの名無しさん2010/02/17(水) 20:09:19
ネタにマジレスもまたネタである。

すべては予定調和なのだよ。
傍観者を装って最初の犯人>>161,165がノコノコ出てくるのもなw
0167デフォルトの名無しさん2010/02/17(水) 21:44:49
HSPはAPI関係のマクロが充実してるのがいいな。
ちょっとした何かを作るには最適だ。
凝った物を作ろうとしたら途端に面倒臭くなるけどなw
0168デフォルトの名無しさん2010/02/17(水) 21:52:57
kwsk
0169デフォルトの名無しさん2010/02/17(水) 22:06:50
Disagreeable!!
0170デフォルトの名無しさん2010/02/17(水) 23:00:41
unko?
0171デフォルトの名無しさん2010/02/19(金) 15:07:20
APIがらみの定数がデフォで定義されてたら最強なんだけどな
0172デフォルトの名無しさん2010/02/19(金) 22:28:25
dialog命令でたまに原因不明のシステムエラーが出るんだけど、
どうやって原因究明したらいいですか
0173デフォルトの名無しさん2010/02/19(金) 22:39:06
HSPでエラーをフックする。
Win32APIでエラーをフックする。

ドッチでも好きな方で。
0174デフォルトの名無しさん2010/02/19(金) 22:40:55
>>172
3.2になってからファイルを開く/保存のときに拡張子を
「\n」で区切れる仕様にしたせいで出てきたバグだから
自前でAPI呼び出してdialogを再現するしか回避法無いと思う
0175デフォルトの名無しさん2010/02/19(金) 23:23:56
>>173-174
ありがとうございます
では自前で作ります

なんかもう手軽なHSPじゃ無くなってるなぁ
0176デフォルトの名無しさん2010/02/27(土) 20:00:12
モジュール変数を使って、モジュール変数宣言のたびに#modinitで画像をcelloadする処理をしています。
長い間プログラムを動かしているとエラー13がでるので不審に思い、
以下のソースを書いて実験したところ、
ID1987のバッファを初期化すると必ずエラーになるようです。

repeat
celload "pic..bmp"
a=stat
cls 0
mes a
await 1
loop

おそらくウィンドウIDの制限数に引っかかっているのだと思い、
delmodした際に#modtermで使っていたウィンドウIDのバッファを破棄するコードを書こうと思ったのですが、
そのようなことをする命令が見つかりませんでした。
指定したたウィンドウIDのバッファを破棄してcelloadが「未使用」と判定する状態にするには
どのようにすればいいのでしょうか。

よろしくお願いいたします。
0177デフォルトの名無しさん2010/03/01(月) 11:57:27
自前でDC作って管理すれば?
0178デフォルトの名無しさん2010/03/03(水) 06:21:42
>>177
横レスですがDCって何のことですか?
0179デフォルトの名無しさん2010/03/03(水) 07:55:52
>>178
ドリームキャスト
0180デフォルトの名無しさん2010/03/03(水) 09:00:48
デバイスコンテキスト
0181デフォルトの名無しさん2010/03/03(水) 14:10:16
ダ・カーポ
0182デフォルトの名無しさん2010/03/03(水) 14:35:03
今日の朝からOpenHSPのTracサイトもSubevrsionレポジトリも
アクセスできないね。どうしたんだろ。
0183デフォルトの名無しさん2010/03/03(水) 15:19:32
HSPLETでjavaに変換したプログラムのソースコードって
みれないの?
0184デフォルトの名無しさん2010/03/04(木) 00:07:08
逆コンパイラかければそれっぽい物は出力されるが、
コンパイル可能な普通のJavaのソースにはならない。

javapにかけるかHSPLetのコード読むかすれば分かるんだが
各種制御構造がジャンプに変換されてたり
ローカル変数アクセスが独特だったりする。
あくまでJavaバイトコードへの変換と捉えるといい。
0185デフォルトの名無しさん2010/03/04(木) 00:49:15
>>184
サンクス
やっぱりバイトコードで変換しているのか。
Javaの勉強にHSPLet使えるかと思ったけど無理だな。
0186デフォルトの名無しさん2010/03/04(木) 22:19:30
hspのホームページからサンプルコードをダウンロードしたんだが、このazファイルというのはどうやって使えばいいの?
ググってみたけどよく分かりませんでした
0187デフォルトの名無しさん2010/03/04(木) 22:23:01
すいません。asファイルのまちがいでした
0188デフォルトの名無しさん2010/03/04(木) 22:34:36
とりあえず、初心者のためのHSP入門読め
0189デフォルトの名無しさん2010/03/15(月) 15:32:19
ソースファイルの .as と .hsp ってなんか使い分けあるの?
昔触った時は .as しかなかったような
0190デフォルトの名無しさん2010/03/15(月) 15:41:43
将来的にx64化とかすんのかね。
0191デフォルトの名無しさん2010/03/15(月) 15:51:59
>>189
asだったのがhspに変わった
0192デフォルトの名無しさん2010/03/15(月) 18:23:29
HSPで入力ボックスに文字を書き、その内容をメールの本文として送りたいのですが、そんなことできますか?
OSはVistaで、HSP3.2使ってます
0193デフォルトの名無しさん2010/03/15(月) 18:28:21
できる
0194デフォルトの名無しさん2010/03/15(月) 18:35:01
>>193
やり方教えていただけませんか?
AXHMP というプラグインを見つけたのですがよくわかりません
0195デフォルトの名無しさん2010/03/15(月) 18:51:34
そのプラグインは知らんから俺には答えられん
0196デフォルトの名無しさん2010/03/15(月) 18:56:54
>>195
他にどのような方法があるのでしょう?
0197デフォルトの名無しさん2010/03/15(月) 19:43:01
標準機能の場合はHSPSOCKを使う
手間はかかるが…
0198デフォルトの名無しさん2010/03/16(火) 04:21:07
プラグインを自作すればいい
0199デフォルトの名無しさん2010/03/16(火) 10:40:17
>>192
3.21RC3でメールの送受信に関するサンプルスクリプトが同梱されていたのでそれ見たらわかりやすくあるかもしれないが
http://www.onionsoft.net/wp/

ところで俺も質問。
右クリックすると「送る」というのがあるが、
そこにHSPで作ったプログラムのショートカットを登録しておいて、
任意のファイルやフォルダをそのプログラムに送ると
そのフルパスが取得されるというものをつくりたい。
dd_accept関数でできることかと思ったんだがそんなことはなかったぜ

どなたか「送る」から送られたファイルのフルパスをゲットする方法ご存じですか?
0200デフォルトの名無しさん2010/03/16(火) 11:00:31
あああああああああああああああああさっきの自己解決しましたorzorzorz
dirinfo(4)でかんたんにでけるじゃないのほんとすみませんでしたちくしょおおおおおおおおおおおお
0201デフォルトの名無しさん2010/03/16(火) 11:42:21
質問した直後に発見する法則w
0202デフォルトの名無しさん2010/03/16(火) 16:46:18
>>199
まったくわかねぇ・・・
ためしに実行できないのはデフォ?
0203デフォルトの名無しさん2010/03/17(水) 18:16:33
例えばif使って入力された数字の場合分けをしたいときに
a=10だとして
if(a>5):d=a+15
if(a>=5)&(a<10):d=a+20
if(a>10)&(a<15):d=a+30

mes d

で数字が毎回0になるのって何が悪いの?
0204デフォルトの名無しさん2010/03/17(水) 18:17:29
最後の
if(a>10)&(a<15):d=a+30
は
if(a>=10)&(a<15):d=a+30
に訂正
0205デフォルトの名無しさん2010/03/17(水) 18:39:15
mesのとこでdの数値をそのまま文字コードとして扱ってんじゃね?
mes "" + d
とかにしたらいけんじゃね?知らんけど
02062032010/03/17(水) 18:56:59
無事出来たよありがとう
mes""+
でやらないと数字でないとは知らなかった
0207デフォルトの名無しさん2010/03/17(水) 20:24:38
f=b*(he1+2)+c*(he2+2)
この式って使い方正しい?
これだけ上手く反応してくれないんだが
0208デフォルトの名無しさん2010/03/17(水) 20:33:52
反応しないとは?
0209デフォルトの名無しさん2010/03/17(水) 20:34:31
>>207
その変数の型は?
全部数値型になってる?
0210デフォルトの名無しさん2010/03/17(水) 20:42:46
he1、he2は定数を代入
b,cはそれぞれ数値入力で任意の数を入れさせる

e=b*(gi+2)
の式では計算通りになるが上の式では計算が上手いこと反映されないので式の組み方が間違えてるのかなって思って

式じゃなくて他の部分に問題有るのかな?
0211デフォルトの名無しさん2010/03/17(水) 21:43:41
定数って#constとかを使ってんの?
そっちの文法に問題ないか?
0212デフォルトの名無しさん2010/03/17(水) 22:01:57
んー、これだけだと考えられることありすぎるよなー。
he1,he2に実数代入してるのに丸められる→bとcも実数にする
b,cにinputで与えた数字を入力しても0扱いされる→bとcを数値型に変換する
まあでもe=b*(gi+2)のとき問題ないってくらいだしほかの原因がありそう。

b,c,he1,he2にそれぞれ何が代入されているときにfがどうなるのか教えてほしい
0213デフォルトの名無しさん2010/03/17(水) 22:22:59
he1=15
とかを入れてる

b,cはinput b, 50, 22, 2って感じで数字を入れさせてそれからfを求めたいんだが

これはソースの関係ありそうな部分うpした方わかりやすいかな?
まだ始めたてなんで無駄が多いから長くなってるけど
0214デフォルトの名無しさん2010/03/18(木) 02:19:39
>>213
#define he1 15
#define he2 20

input b, 50, 22, 2
input c, 50, 22, 2

button gosub "check",*Check

stop

*check
f=b*(he1+2)+c*(he2+2)
title ""+f
return

これだと普通に動いたけど。
0215デフォルトの名無しさん2010/03/18(木) 12:01:23
3.0以降じゃないので()の中以外は左から順に計算されてるとか?
0216デフォルトの名無しさん2010/03/18(木) 13:46:39
基本ガイドすら読んで無いと言うのか
0217デフォルトの名無しさん2010/03/18(木) 20:56:08
最近プログラムを習い始めた厨房です。
まずは簡単なじゃんけんのゲームを作ろうと思い、以下のプログラムを作ってみました。
x=rnd(3)
randomize
y=50
z=50
mes "じゃんけん・・・"
pos y,z
button "グー",*gue
pos y,z*2
button "チョキ",*choki
pos y,z*3
button "パー",*par
stop
*gue
if x=0 : mes "あいこです"
if x=1 : mes "あなたの勝ち!"
if x=2 : mes "あなたの負け・・・"
stop
*choki
if x=0 : mes "あなたの負け・・・"
if x=1 : mes "あいこです"
if x=2 : mes "あなたの勝ち!"
stop
*par
if x=0 : mes "あなたの負け・・・"
if x=1 : mes "あなたの勝ち!"
if x=2 : mes "あいこです"
stop
これでやってみたのですが
乱数が3で固定されているようなのですがどこの書き方がいけないのでしょうか?
0218デフォルトの名無しさん2010/03/18(木) 21:03:09
× 乱数が3
○ Xが2
間違えました・・・すいません
0219デフォルトの名無しさん2010/03/18(木) 21:16:32
randomizeは乱数出す前に書かないとダメだと思われ
0220デフォルトの名無しさん2010/03/18(木) 22:21:47
ありがとうございます!
何とか出来ました!
0221デフォルトの名無しさん2010/03/22(月) 08:01:06
#deffuncのパラメータタイプの指定って var, array が参照渡しで int, str が値渡し?
いや、値渡しというか int, str は #deffunc 呼び出し中はリテラル扱いっぽい感じがするんだけど、そういう認識であってる……?
0222デフォルトの名無しさん2010/03/22(月) 11:02:20
あってる
0223デフォルトの名無しさん2010/03/22(月) 20:56:25
asって何の意味がありますか
0224デフォルトの名無しさん2010/03/22(月) 21:15:40
へ?
0225デフォルトの名無しさん2010/03/22(月) 21:28:09
〜〜.as
ってついてるやつです。
0226デフォルトの名無しさん2010/03/22(月) 21:31:56
説明書読んだのか
0227デフォルトの名無しさん2010/03/22(月) 21:32:43
とりあいず言った地点で答えいってくれ
0228デフォルトの名無しさん2010/03/22(月) 21:42:06
>>226
答えまだ?
0229デフォルトの名無しさん2010/03/22(月) 22:01:19
>>228
答え:説明書読め
0230デフォルトの名無しさん2010/03/23(火) 01:24:38
ActionScript
0231デフォルトの名無しさん2010/03/23(火) 21:06:04
答えは説明書の文字がはいらないように
0232デフォルトの名無しさん2010/03/23(火) 22:49:13
読め
0233デフォルトの名無しさん2010/03/23(火) 23:04:42
プログラミングガイド
0234デフォルトの名無しさん2010/03/24(水) 07:33:07
プログラミングガイドなしでな
0235デフォルトの名無しさん2010/03/24(水) 11:16:38
テメェに教える回答は無ぇ!!!
0236デフォルトの名無しさん2010/03/24(水) 11:58:44
言い方吹いたwwww
とくにぇがwwwww!!!もつけすぎwwwwwww
バカみたいだwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0237デフォルトの名無しさん2010/03/24(水) 12:13:21
アンタも「w」付けすぎだし、質問や反応も幼稚すぎる。
ここよりHSPTVの掲示板で聞いたほうがお前みたいな赤ちゃんの質問に答えてくれる物好きが居るかもしれないな。
0238デフォルトの名無しさん2010/03/24(水) 14:31:57
説明書内のプログラミングガイドに載ってると言ってるのに…
0239デフォルトの名無しさん2010/03/24(水) 14:56:09
>>238
236みたいな手の施しようの無いクレクレ君がそんな物を読むと思ってるのかい?
0240デフォルトの名無しさん2010/03/24(水) 14:57:17
>>237それの何がわるい?wつけちゃいけないの?
>>238だからその載ってる答えを言えと
0241デフォルトの名無しさん2010/03/24(水) 20:10:30
>>240
お前のような馬鹿には言っても無駄さwwww
0242デフォルトの名無しさん2010/03/25(木) 11:12:38
自分のバカさ加減を晒してることに気付きすらしないバカ
ってどうしようもないね
0243デフォルトの名無しさん2010/03/25(木) 17:25:20
>>242
なるほど君のことか
0244デフォルトの名無しさん2010/03/25(木) 18:10:07
ここに質問していいのかわからんけど、
Classを作ってnewしてオブジェクト、ドン!みたいなのってできへんの?
もしくはその代わりになりそうな技術とかないん?
0245デフォルトの名無しさん2010/03/25(木) 19:12:14
モジュールの中級者向け機能でモジュール変数というのがある。ただし、構造体にデータ操作用の
手続きをくっつけただけのようなもの。継承はできない。それでもモジュールを「単なる手続きと固定の
変数の集まり」ではなく「ひな型」にすることはできるよ。
0246デフォルトの名無しさん2010/03/25(木) 20:01:45
>>243
成歩堂君に見えた
0247デフォルトの名無しさん2010/03/25(木) 22:14:18
>>245
うーん、やりたい事にはちょっと足りないかな
情報の小出しになってすまんが、実はゲームのキャラのデータ管理に使おうかと思ったんだ
で、配列変数を用意して、同一クラスからのインスタンスを入れて、配列変数の要素をfor文で回して一人ずつ処理みたいな事がしたかったんだ

今、HSP3.2を一応インストしてマニュアル読んでみたけど
変数名@モジュール名みたいな形で呼び出せるのはいいけど、for文で回したりはできないっぽいな
モジュール名を文字列変数で指定して呼び出す(PHPとかの可変変数、可変関数みたいな)とかは
やっぱり無理かしら・・・?
0248デフォルトの名無しさん2010/03/25(木) 23:46:25
断片的な文章になっちゃうけど、以下モジュール変数についての説明。

モジュール変数ていうのは、複数の変数を抱え込んでいる構造体みたいな何か(インスタンス)への
参照(識別番号みたいなもの?)を入れておくためのもの。

マニュアルを読んだだけでは紛らわしいかもしれないけど、モジュール変数はnewmod命令でしか
初期化できない(newmodで初期化した変数がモジュール変数になる)

単にモジュール内の命令・関数定義に含まれている変数はモジュール変数とは関係ないし、
モジュール変数(が指しているもの)が抱えている変数(インスタンスのメンバ)は
変数名@モジュール名では参照できない(どのインスタンスかの情報がないよね?)。モジュール内に
#modfunc/#modcfunc命令で定義した命令・関数からしかアクセスできない。

インスタンスのメンバになるのは、#module命令でモジュール名につづけて名前を記述した変数のみ。
#module hoge x, y, z
みたいに。この場合xとyとzがメンバ。インスタンスごとに別のものが用意されるのはこれらの変数だけ。

newmodで同じ変数を複数回初期化すると、その変数は自動的に配列に変わる。作ったインスタンス
は上書きされたりせずに、別々の要素にちゃんと入れてくれる(基本的には作った順に0番目から)。

モジュール変数配列に対しては、foreachという命令を使うことができ、インスタンスが入っている要素
のみに対して繰り返し同じ処理を行うことができる。

長々とスマソ
0249デフォルトの名無しさん2010/03/26(金) 14:47:36
>>248の文章とnewmodというキーワードから検索して、目的達成のだいたいの目処が出来た、ありがとう

>>マニュアルを読んだだけでは紛らわしいかもしれないけど、モジュール変数はnewmod命令でしか
>>初期化できない(newmodで初期化した変数がモジュール変数になる)
ここは超勘違いしてた

>>インスタンスのメンバになるのは、#module命令でモジュール名につづけて名前を記述した変数のみ。
>>#module hoge x, y, z
メンバ変数を大量に使おうと思ったら大変な事になりそうだ

>>長々とスマソ
それだけしっかり教えて頂けたという事で
0250デフォルトの名無しさん2010/03/26(金) 23:56:39
HSP触りたてで簡単なツール作ったから次は何かゲーム作ろうとしたんだが画像表示が出来ない
今D:\プログラミング\自作サンプルに.ASファイルと表示したい画像置いてるけど画像がないですって言われる
ソースはコピーしてきた奴だから間違ってないと思うし

誰かアドバイスか詳しいやり方書いてるサイト教えてください
色々ググッてみたけどよくわかんないんで
0251デフォルトの名無しさん2010/03/27(土) 00:00:59
>>250
ソースの状態だとHSP本体のあるフォルダがカレントフォルダになるみたい
俺の場合、テストの時だけソースフォルダを最初に指定するか、素材をフルパス指定してる
他にもっといい方法があるのかも知れんが判らん
0252デフォルトの名無しさん2010/03/27(土) 00:43:28
dir_cur使ってフルパスで指定してみるとか
■ このスレッドは過去ログ倉庫に格納されています