【じゃ】HSP初質P52【自己解決ゥ!】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん

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

 ■ 前スレ
  【厨房満開】HSP初質P51【ビラビラ満開】
  http://pc11.2ch.net/test/read.cgi/tech/1142529119/

 ■HSPの入手はここから(HSP2.61/HSP3.1)
  □Hot Soup Processor Page
    http://www.onionsoft.net/hsp/

 ■HSPの各種情報
  □HSP Wiki
    http://quasiquote.org/hspwiki/
    http://quasiquote.org/hspwiki/2%a4%c1%a4%e3%a4%f3%a4%cd%a4%eb%a4%ce%a5%b9%a5%ec%a5%c3%a5%c9

 ■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/
2デフォルトの名無しさん:2007/10/16(火) 19:41:20
じゃ、自己解決ゥ!
3デフォルトの名無しさん:2007/10/16(火) 19:55:47
>>1
4デフォルトの名無しさん:2007/10/16(火) 23:46:26
クソスレタテンナ...
5デフォルトの名無しさん:2007/10/16(火) 23:56:30
クソスレで、自己解決ゥ!
6デフォルトの名無しさん:2007/10/17(水) 07:43:07
基地外でもスレ建てれんだなぁ

↓ はいどうぞ
7デフォルトの名無しさん:2007/10/17(水) 10:48:06
HSPってインタプリタだけど
コンパイラも作ればいいのに
8デフォルトの名無しさん:2007/10/17(水) 19:16:42
>>7
9デフォルトの名無しさん:2007/10/17(水) 19:20:52
逆コンパイラならあった気がする
10デフォルトの名無しさん:2007/10/17(水) 21:05:05
誰だよw
ニコニコにHSPネタ上げてる奴w
11デフォルトの名無しさん:2007/10/17(水) 21:32:17
>>10
おぉ 以外にいいアイデアかもな
一曲終わるまで・・と 音声認識でソース書くやつは、うける
12デフォルトの名無しさん:2007/10/18(木) 00:31:14
×以外に

○意外に
13デフォルトの名無しさん:2007/10/18(木) 00:50:20
HSPってRADないのか?
14デフォルトの名無しさん:2007/10/18(木) 01:11:34
>>13
ないから作れ
15デフォルトの名無しさん:2007/10/18(木) 01:38:21
プラグインは豊富なのにRADツールが未だに無いってのもなー
16デフォルトの名無しさん:2007/10/18(木) 01:39:26
>>15
作れ
17デフォルトの名無しさん:2007/10/18(木) 02:06:11
オマエガナ
18デフォルトの名無しさん:2007/10/18(木) 19:55:58
ペヤング、値上げだってさ
最近食ってないな〜
俺様はジャムぱんと一緒食べるのが定番だったな
19デフォルトの名無しさん:2007/10/18(木) 23:13:24
がーーん!

ショック!

ペヤング!
20デフォルトの名無しさん:2007/10/19(金) 02:45:46
HSPでwin32apiをふんだんに使ったアプリとかあんの?
21デフォルトの名無しさん:2007/10/19(金) 03:49:49
win32apiをふんだんに?
何を求めているか知らないが、抽象的すぎ
とりあえずあるといっておくか
22デフォルトの名無しさん:2007/10/19(金) 04:46:35
じゃ、自己解決ゥ!
23デフォルトの名無しさん:2007/10/19(金) 04:50:28
HSPでapiなんか使っても遅いから実用的じゃないよ
24デフォルトの名無しさん:2007/10/19(金) 08:07:14
HSP舐めんな
25デフォルトの名無しさん:2007/10/19(金) 21:48:27
HSPでウィンドウ作ってそのウィンドウの位置を変更する場合、
ウィンドウ作ってから変更するの?
糞アプリが多くて困る
あほの仲間どもに言っとけ
26デフォルトの名無しさん:2007/10/19(金) 23:08:33
じゃ、自己解決ゥ!
27デフォルトの名無しさん:2007/10/19(金) 23:11:28
もひとつ、自己解決ゥ!
28デフォルトの名無しさん:2007/10/19(金) 23:12:28
>>22>>26>>27
つまんねーから失せろ
29デフォルトの名無しさん:2007/10/19(金) 23:13:31
ああん、自己解決ゥ!
30デフォルトの名無しさん:2007/10/19(金) 23:19:47
YES! 自己解決ゥ!
31デフォルトの名無しさん:2007/10/19(金) 23:21:21
数々の愚行申し訳自己解決ゥ!
32デフォルトの名無しさん:2007/10/19(金) 23:21:45
今日は自己解決君一人でかんばってるな
33デフォルトの名無しさん:2007/10/19(金) 23:22:32
YES! 自己解決ゥ!
34デフォルトの名無しさん:2007/10/19(金) 23:31:16
がんばってます! 自己解決ゥ!
35 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄:2007/10/19(金) 23:34:22
       // ̄ ̄ ̄ ̄ ̄\
      彳丿; \,,,,,,,,/ u lヽ
      入丿 -◎─◎- ヽミ   
       | u:.::(●:.:.●)u:.::|   
       | :∴) 3 (∴.::|   
       ヽ、  ,___,. u .ノ
       ⌒ヽ:.___;;;;;;;;;;___.ノ⌒
36 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄:2007/10/19(金) 23:35:31
       // ̄ ̄ ̄ ̄ ̄\
      彳丿; \,,,,,,,,/ u lヽ
      入丿 -◎─◎- ヽミ   
       | u:.::(●:.:.●)u:.::|   
       | :∴) 3 (∴.::|   
       ヽ、  ,___,. u .ノ
       ⌒ヽ:.___;;;;;;;;;;___.ノ⌒
37 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄:2007/10/19(金) 23:36:48
       // ̄ ̄ ̄ ̄ ̄\
      彳丿; \,,,,,,,,/ u lヽ
      入丿 -◎─◎- ヽミ    がんばってます! 自己解決ゥ!
       | u:.::(●:.:.●)u:.::|   
       | :∴) 3 (∴.::|   
       ヽ、  ,___,. u .ノ
       ⌒ヽ:.___;;;;;;;;;;___.ノ⌒
38デフォルトの名無しさん:2007/10/19(金) 23:38:17
Hot Soup Processor
39デフォルトの名無しさん:2007/10/19(金) 23:38:30
>>37
必死だな
40デフォルトの名無しさん:2007/10/19(金) 23:39:04
スクリプトのくせにバリエーションが色々あるんだなw
41デフォルトの名無しさん:2007/10/19(金) 23:40:30
スクリプトです! 自己解決ゥ!
42デフォルトの名無しさん:2007/10/19(金) 23:41:01
どうみても手動だろww失せろって言われた途端ファビョって連投wwww
43デフォルトの名無しさん:2007/10/19(金) 23:41:11
AA張るようになったら負け
44デフォルトの名無しさん:2007/10/19(金) 23:41:53
じゃ、初心に戻ります! 自己解決ゥ!
45 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄:2007/10/19(金) 23:42:52
       // ̄ ̄ ̄ ̄ ̄\
      彳丿; \,,,,,,,,/ u lヽ
      入丿 -◎─◎- ヽミ   
       | u:.::(●:.:.●)u:.::|   
       | :∴) 3 (∴.::|   
       ヽ、  ,___,. u .ノ
       ⌒ヽ:.___;;;;;;;;;;___.ノ⌒
46デフォルトの名無しさん:2007/10/19(金) 23:43:26
wwwwwww
47デフォルトの名無しさん:2007/10/19(金) 23:45:10
wwwwwwwwwwwwww
48デフォルトの名無しさん:2007/10/19(金) 23:45:49
なんだ手動かよw
49デフォルトの名無しさん:2007/10/19(金) 23:46:54
手動です! 自己解決ゥ!
50デフォルトの名無しさん:2007/10/19(金) 23:58:49
中途半端なAA厨だな
51デフォルトの名無しさん:2007/10/20(土) 00:01:07
飽きたんだろ
52デフォルトの名無しさん:2007/10/20(土) 00:01:16
中途半端なAA厨で、自己解決ゥ!
53デフォルトの名無しさん:2007/10/20(土) 00:04:01
自己解決ゥを連呼するスクリプト
オレもつくってみっかなw
54デフォルトの名無しさん:2007/10/20(土) 00:05:40
調子こいてると運用に通報するぞ
マジで
55デフォルトの名無しさん:2007/10/20(土) 00:10:17
>>54
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
56デフォルトの名無しさん:2007/10/20(土) 00:13:53
なんだ?してほしいのか?
57デフォルトの名無しさん:2007/10/20(土) 00:15:12
>>56
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
58デフォルトの名無しさん:2007/10/20(土) 00:16:30
好きに荒らさせておけばいいんじゃね
ログ掘りさせる為にも荒らしのレスは多ければ多いほどいい
59デフォルトの名無しさん:2007/10/20(土) 00:17:19
自演乙
60デフォルトの名無しさん:2007/10/20(土) 00:21:48
急に止まったなwwww
へたれの分際で荒らすからwwwwwww
61デフォルトの名無しさん:2007/10/20(土) 00:22:37
じゃ、自己解決ゥ!
62デフォルトの名無しさん:2007/10/20(土) 00:23:49
ログ掘りなんか待ってられるか
とりあえず規制議論に報告してくるわ
63デフォルトの名無しさん:2007/10/20(土) 00:24:52
>>62
ヘタレ乙
64デフォルトの名無しさん:2007/10/20(土) 00:29:26
ビビるなよ!いつものように自己解決ゥ!ってレスしろよ!www
65デフォルトの名無しさん:2007/10/20(土) 00:31:41
64=自己解決ゥ!
66デフォルトの名無しさん:2007/10/20(土) 00:32:40
>>64
自演乙wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
67デフォルトの名無しさん:2007/10/20(土) 00:33:55
荒らしと思われたくないから普通にレスすることに決めたようですwwwwwww
ヘタレすぎwwwwwww糞つまんねえから帰るわwwwwwwww
68デフォルトの名無しさん:2007/10/20(土) 00:34:45
帰るわ宣言の後、500回はリロード乙
69デフォルトの名無しさん:2007/10/20(土) 00:42:52
運用って名が出た途端に自己解決って書かなくなったのは見苦しいな。
あ、一度勇気を振り絞って書いたか。
70デフォルトの名無しさん:2007/10/20(土) 00:43:17
結局、報告君がヘタレってことで。
解散です。
ご苦労様でした。
71デフォルトの名無しさん:2007/10/20(土) 00:44:10
sageて書くなよ。自己解決君。
72デフォルトの名無しさん:2007/10/20(土) 00:44:39
>>69
途中から「あ、」とかwwwww
73デフォルトの名無しさん:2007/10/20(土) 00:46:36
じゃ、自己解決ゥ!
74デフォルトの名無しさん:2007/10/20(土) 00:47:57
ペース落ちてるぞ自己解決君。
言われてから反抗するように自己解決と書くのは見苦しいぞ自己解決君。
75自己解決君:2007/10/20(土) 00:49:06
イェーイ!

オレ人気者!!

自己解決ゥー!
76デフォルトの名無しさん:2007/10/20(土) 00:49:48
馬鹿だなぁ
相手すればするほど喜ばすだけなのに・・・
77デフォルトの名無しさん:2007/10/20(土) 00:50:20
おいおい、連続投稿制限助けてやってるのにおせーぞ。
78デフォルトの名無しさん:2007/10/20(土) 00:53:52
HSP厨のスレはどこも底辺
79デフォルトの名無しさん:2007/10/20(土) 00:57:47
>>21
アプリの名前は?
80デフォルトの名無しさん:2007/10/20(土) 01:15:15
まあ一通りのAPIは使えるから、
自分で作ったほうがどんなものか身に付く。
81デフォルトの名無しさん:2007/10/20(土) 03:45:37
じゃ、自己解決ゥ!
82デフォルトの名無しさん:2007/10/20(土) 06:22:44
>>80
doubleが受け取れないそうで・・
ランタイムの方で修正してくれればいいのにな

↓はいどうぞ 基地外君
83デフォルトの名無しさん:2007/10/20(土) 12:41:54
基地外で、自己解決!
84デフォルトの名無しさん:2007/10/20(土) 17:53:04
また、dion か・・

あそこに、書き込んでる時点で、下の下の基地外太郎
85デフォルトの名無しさん:2007/10/20(土) 19:50:10
基地害御一行様で終了
86デフォルトの名無しさん:2007/10/20(土) 23:06:03
じゃ、自己解決ゥ!
87デフォルトの名無しさん:2007/10/21(日) 00:34:48
↑基地外乙
あそこの掲示板で
「#」 使う椰子はそう居ないはずw
dion と 「#」 で大体見当がついたよwww
88デフォルトの名無しさん:2007/10/21(日) 00:37:51
>>87
天才!
89デフォルトの名無しさん:2007/10/21(日) 00:46:17
天才で自己解決ゥ!
90デフォルトの名無しさん:2007/10/21(日) 11:59:30
nってアスペルガーかなんかだろ。
友達にいるからなんとなく分かる。
あれが彼なりの精一杯な口調なんだよ
91デフォルトの名無しさん:2007/10/21(日) 23:04:32
じゃ、自己解決ゥ!
92デフォルトの名無しさん:2007/10/22(月) 19:51:27
本家板の住人は、耐性が無さすぎだな。
93あみじ房:2007/10/23(火) 00:51:11
よし。質問しよう。
東方projectみたいに、背景だけ3Dにしたい場合、何をどうしたらいいかおすえてください。おながいします。
ちなみにおいらは、昔HSPでクソゲー作ってたのと、DirectXのラッパーライブラリを使って、
2Dのクソゲーを作ったぐらいのしょぼいパワーしか無いです。おながいしまう。
94デフォルトの名無しさん:2007/10/23(火) 01:00:13
ポリゴン+スプライトで自己解けちゅ
95デフォルトの名無しさん:2007/10/23(火) 01:01:43
じゃッッッ、ソレでッッッッ、……自己解決ゥ〜ゥ!
96あみじ房:2007/10/23(火) 01:21:41
あと、学生時代みたいに、時間がウンコの様に無いのが困る。
このスレに張り付いてたあの頃の俺は一体何だったんだろう。
日曜だけでも、HSP3をガチでやってみようかな・・・。うーむ。
97デフォルトの名無しさん:2007/10/23(火) 01:22:47
知らんがな
98あみじ房:2007/10/23(火) 02:03:24
と。まぁ中二病まっしぐらな感じの俺みたいなウンコを、
構ってくれる鬱で神な人も居ないのね。うんこだね。
ポリゴンとスプライトで事故解決しました。もういいやがおー。がーおー。
99デフォルトの名無しさん:2007/10/23(火) 02:06:39
知らんがな
100デフォルトの名無しさん:2007/10/23(火) 02:23:24
100ゲット!
101デフォルトの名無しさん:2007/10/23(火) 03:24:00
>>100
スゲェ!!!
102デフォルトの名無しさん:2007/10/23(火) 08:17:42
>>100
やったな!
103デフォルトの名無しさん:2007/10/23(火) 19:05:57
あみぢはたしか、コンテストで受賞したことあるよね?
それだけでも凄いんじゃないの。
104デフォルトの名無しさん:2007/10/23(火) 23:36:12
おにたま氏を、神格化していた時代が懐かしいな。
今は、本家ですら「誰それ?あぁ管理人ね!」的なんだもん。w
105デフォルトの名無しさん:2007/10/23(火) 23:47:01
A「あるがーまんってさ」

B「何、そのヒーロー」
106デフォルトの名無しさん:2007/10/24(水) 00:37:11
A「垂れ餡ってさ」

B「え? また何か和菓子で問題発生?」
107自己解決ゥ!:2007/10/25(木) 04:46:25
自己解決ゥ!
108デフォルトの名無しさん:2007/10/25(木) 21:49:58
「n」ってさぁ、自分の事 「ボク」って言うんだなww

もう、確定w
109デフォルトの名無しさん:2007/10/25(木) 23:17:06
というか、やたらここで「w」ばっかり書いてる人も
確定じゃないの?
110デフォルトの名無しさん:2007/10/26(金) 04:10:59
じゃ、自己解決ゥ!
111デフォルトの名無しさん:2007/10/28(日) 14:38:06
だって、ここには俺様しか居ねーしwww
112デフォルトの名無しさん:2007/10/28(日) 23:20:52
俺様で、自己解決ゥ!
113デフォルトの名無しさん:2007/10/28(日) 23:43:04
すいません
2の3乗を整数出力するコードを教えてください
114デフォルトの名無しさん:2007/10/29(月) 00:49:11
b=text
a=strmid(b,0,2)

とすると正常に動作するのですが、

a=strmid(text,0,2)

とすると

変数名が指定されていません

と出ます。
何が原因なのでしょうか?

#deffunc echo str text, int size, int max_width, int max_height
for y, 0, max_height, size
for x, 0, max_width, size
b=text
a=strmid(text,0,2)
pos x, y
mes a
next
next
return

echo "初めまして", 30, 640, 480
115デフォルトの名無しさん:2007/10/29(月) 05:39:11
>>113
ごめん、聞きたいのは「mes 2*2*2」とか?
「整数出力」の意味が不明瞭。

>>114
「str text」としているので、textは変数ではなく文字列になってます。そのためです。
あとユーザ定義命令全体を#module〜#globalで囲む方がいいと思う。
116デフォルトの名無しさん:2007/10/29(月) 22:26:45
>>115
#include "hspmath.as"
x=2:y=3:mes int(pow(x,y))
stop
y=3だと値がちゃんとでないんです
117デフォルトの名無しさん:2007/10/29(月) 22:50:56
hmmのDirectSoundでwaveファイルの重ね再生ができないのは自分の環境の問題?
118デフォルトの名無しさん:2007/10/29(月) 22:53:19
ふむ
119デフォルトの名無しさん:2007/10/29(月) 23:35:42
垂れ餡掲示板に乗り込んでるな
120デフォルトの名無しさん:2007/10/29(月) 23:58:16
誰か、ここにnを連れてこいよ。
121デフォルトの名無しさん:2007/10/30(火) 00:00:36
自分で
122デフォルトの名無しさん:2007/10/30(火) 00:33:23
>>121
お前が呼べや!
ワシが連れてきたら、自己解決になってまうやろ!
123デフォルトの名無しさん:2007/10/30(火) 00:34:01

言い出しっぺが出来ないってことは
ヘタレで終了か
ご苦労さん
124デフォルトの名無しさん:2007/10/30(火) 00:34:21
>>116
ここを見ると幸せになれるかも。
ttp://hsp.tv/play/pforum.php?mode=pastwch&num=9058

浮動点小数の仕様みたいなものだから仕方ない。四捨五入すれば充分だと思いますが。
125デフォルトの名無しさん:2007/10/30(火) 01:22:51
2の3乗って言ってんじゃん
mes 8
とか
dialog "8"
でいいじゃん。何が幸せだバカにしているのか
126デフォルトの名無しさん:2007/10/30(火) 14:20:50
>>117
仕様を誤解している可能性 大
127デフォルトの名無しさん:2007/10/30(火) 22:08:06
>>113
それは何が解らないんだ。
・2の3乗を計算する方法が解らない
・整数を出力する方法が解らない
128デフォルトの名無しさん:2007/10/30(火) 22:51:48
HSPってDLL作れる?
129デフォルトの名無しさん:2007/10/30(火) 23:55:47
すげぇぜ…
書き込みさらりと消してる…

ゴクリ…
130デフォルトの名無しさん:2007/10/31(水) 02:25:41
ゴクリ…

書き込みさらりと消してる…
すげぇぜ…
131デフォルトの名無しさん:2007/10/31(水) 17:15:21
>>126
重ね再生じゃなかった
「ピューン」と鳴るwaveファイルを「ピュピュピュピューン」って鳴らしたいんだけど
「ピューンピューンピューン」ってなってしまう
Directx9.0cは入ってるんだけどなんでだろう
132デフォルトの名無しさん:2007/10/31(水) 18:49:02
>>131
そんな症状、自分で起きたこともないうえ、聞くのも今回が初めてだ。
説明が抽象的で、状況をつかみにくいんで、
使用したwaveファイルと、検証用のスクリプトを晒して頂きたい所。
133デフォルトの名無しさん:2007/10/31(水) 20:41:21
>>132

これで分かるかな…
ttp://gamdev.org/up/img/10422.zip
134デフォルトの名無しさん:2007/10/31(水) 22:28:48
思うんだが、HSPでウイルスチェックって意味あるのかな・・・?

あと、#includeファイルも付けろよ
135デフォルトの名無しさん:2007/10/31(水) 22:49:42
http://elgo.hp.infoseek.co.jp/hsp/hmm/dsound.html
の一番下

>DSDUPLICATE
(ry
> 機能
> コピー元バッファー番号と同じ状態のものを、コピー先バッファー番号につくります。
> DIRECTSOUNDの仕様上、同じ音でも重ね合わせる場合は2個バッファーを作成しなければならないのです。
> しかし、それはメモリの無駄なので1つのメモリで共有させることができます。

って書いてあるが
136デフォルトの名無しさん:2007/10/31(水) 23:34:42
>>135
それは同じ音をエコーのように重ね合わせる場合に使うものだと思ってた
一応やってみたけど変わらなかった
hmm.asを付けて再度

ttp://gamdev.org/up/img/10425.zip
137デフォルトの名無しさん:2007/11/01(木) 00:12:29
マルバツゲームの勝敗判定を作りたいのですが…。
盤面はMap(X,Y)という変数で定義しています。
たて、横、斜めの並びを判定するにはどのようなスクリプトを組めばいいのでしょう?
138デフォルトの名無しさん:2007/11/01(木) 00:14:29
139デフォルトの名無しさん:2007/11/01(木) 00:17:36
>>137
マルバツって9マスのアレか?
だったら、勝ちのケースが8パターンしかないんだから
毎回、全通りチェックすれば良いんじゃない?
140デフォルトの名無しさん:2007/11/01(木) 00:23:27
#include "hmm.as"
#enum WAV_1
#enum WAV_2
#enum MAX_WAV //wavバッファの個数
#const WAV_COPY MAX_WAV //コピー用バッファ(MAX_WAVのバッファは使われない)
#const MAX_WAV_COPY 128 //コピー用バッファの個数
*main
onexit goto *exit
HMMInit : DSInit : if stat == DS_ERR : dialog "DirectSoundの初期化に失敗",0 : end
DSLoadFname "1.wav", WAV_1 : if stat == DS_ERR : dialog "waveファイルの読み込みに失敗",0 : end
DSLoadFname "2.wav", WAV_2 : if stat == DS_ERR : dialog "waveファイルの読み込みに失敗",0 : end
dim FlagCommitWav, MAX_WAV //再生予約フラグ
repeat
getkey key, 90 : if key : FlagCommitWav(WAV_1) = 1 //再生を予約
getkey key, 88 : if key : FlagCommitWav(WAV_2) = 1
repeat MAX_WAV
if FlagCommitWav(cnt) == 1 {
DSCHECKPLAY cnt //wavが再生中か確認
PlayingCheck = stat
PlayTgt = cnt
if PlayingCheck == DS_OK { //再生中ならバッファ複製して鳴らす
141デフォルトの名無しさん:2007/11/01(木) 00:24:02
b = 0
repeat MAX_WAV_COPY
DSCHECKPLAY WAV_COPY + b
PlayingCheck = stat
if PlayingCheck == DS_OK { //空きコピー用バッファを探す
b++
} else {
PlayTgt = WAV_COPY + b
DSDUPLICATE PlayTgt, cnt
break
}
loop
}
DSPLAY PlayTgt //再生されてない元バッファか複製したコピーバッファを再生
FlagCommitWav(cnt) = 0 //予約を元に戻す
}
loop
await 16
loop
*exit
HMMEnd
end

//こんな感じ?
142132:2007/11/01(木) 16:19:15
>>133
こちらの環境では、連射に合わせて再生されたから、
そちらPC環境の問題である可能性が高くなってきたな。
詳しいことは分からないが、
DirectSoundに対応してないサウンドボードもあるっつーから
dxdiagで、DirectSoundのテスト項目が通るか確認したほうが良さそうだな。

その他。コントロールパネルの、サウンドとオーディオデバイスのプロパティ内の
どれかにある「オーディオの詳細プロパティ」で
「ハードウェア アクセラレータ」の設定も。

参考までに、こちらの環境では、アクセラレータ設定が
「最大」の時に、「ドドドドドドゥーン」だったものが、
「なし」にすると「ドゥドゥドゥドゥドゥドゥーン」くらいになった。
(「ドゥーンドゥーンドゥーン」に少しだけ近づいた。)
143デフォルトの名無しさん:2007/11/02(金) 16:25:11
nって暇なのかな
144デフォルトの名無しさん:2007/11/02(金) 20:50:25
data = "012ABC"
test = peek(data,3)
mes ""+test+""
ってやったときにAを出力したいんでけど数値が出力されてしまいます。
この数値を文字列に変換したいのですが、どうしたらいいでしょうか。
調べてみてstr命令を見つけましたが、うまくいきません。ver3では使えないんですか?
145デフォルトの名無しさん:2007/11/02(金) 20:56:03
mes strf("%c", test)
146デフォルトの名無しさん:2007/11/03(土) 00:25:25
常に描き換わるタイプの画面(320*240)を2倍表示したいのですが、
かなり動作が重くなってしまい、思うように動きません

バッファ1と2にそれぞれ別種の画像を描画し、重ねて表示します
gmode 2
gsel 9 : gzoom 640,480,2,0,0,320,240
gsel 0
redraw 0
 gzoom 640,480,1,0,0,320,240
 gcopy 9,0,0,640,480
redraw 1
バッファ2には透過させたい部分があるため、
事前にgzoomで別のバッファにコピーしていますが、
これが処理落ちの一因となっているのでしょうか

等倍表示の描画は↓です。これは普通に動きます
gmode 2
gsel 0
redraw 0
 gcopy 1,0,0,320,240 : gcopy 2,0,0,320,240
redraw 1

どうかご教示お願いいたします
OSはXP(SP2)、メモリ256MBです
147デフォルトの名無しさん:2007/11/03(土) 12:12:49
ただ思いだけなのか処理落ちなのかどっちなんだ
148デフォルトの名無しさん:2007/11/03(土) 14:29:22
HSPの実行画面が処理落ちしているだけでOS自体は普通に動きます
149デフォルトの名無しさん:2007/11/03(土) 14:36:08
最低限のエラーが出るソースうp
150146:2007/11/03(土) 15:20:48
描画が遅いだけでエラーが出るわけではないのですが
描画のソースは

*men
 gsel 8 : gzoom 640,480,2,0,0,320,240
 gsel 0
 gmode 2
 redraw 0
  gzoom 640,480,1,0,0,320,240
  gcopy 8,0,0,640,480
 redraw 1
 ----<仮想画面にいろいろ描画>----
 wait 1
goto *men

という感じです(マイナーチェンジしてますがご了承を)
151デフォルトの名無しさん:2007/11/03(土) 16:43:22
*men
 gsel 8 : gzoom 640,480,2,0,0,320,240
 gsel 0
 gmode 2
  gzoom 640,480,1,0,0,320,240
 redraw 0
  gcopy 8,0,0,640,480
 redraw 1
 ----<仮想画面にいろいろ描画>----
 wait 1
goto *men
152デフォルトの名無しさん:2007/11/03(土) 17:33:22
試してみましたが、これといって動作は改善されず、
また画面がちらついて見えるようになってしまいます

ところで、言いにくいのですが
wait 1 を await 1 に変えたら自己解決してしまいました
(等倍表示も2倍表示も同じように描画されます)
これは単純なメモリ不足ということでしょうか・・
何はともあれお騒がせして申し訳ございません
153デフォルトの名無しさん:2007/11/03(土) 17:50:18
真・自己解決ゥ!か・・・
しかし何故そこからメモリ不足という推論がでてくるのか分からん。
154デフォルトの名無しさん:2007/11/03(土) 17:54:48
await 15〜17くらいにしとけ。await 1はそもそも無理がある
155デフォルトの名無しさん:2007/11/03(土) 23:19:10
じゃ、自己解決ゥ!
156デフォルトの名無しさん:2007/11/03(土) 23:39:14
>>155
遅いよw
157デフォルトの名無しさん:2007/11/04(日) 13:55:27
ご教授おねがいします!!自己解決しました!!
158デフォルトの名無しさん:2007/11/04(日) 15:05:46
自己解決してしまいました
どうかご教示お願いいたします
159デフォルトの名無しさん:2007/11/04(日) 18:49:09
>>142
遅れて悪いけど、丁寧にどうも。
でも、どれも問題はなさそうだった。
DirectSoundのテストは全部パス、ハードウェアアクセラレータも最大。

原因は分からずとも、一応自身の環境の問題みたいなので、これ以上はスレ違いだね…
ともあれ本当にありがとう。
160デフォルトの名無しさん:2007/11/04(日) 23:14:13
どうしたら自己解決出来ます自己解決しました!
161デフォルトの名無しさん:2007/11/04(日) 23:24:09
自己解決お願いします!!
162デフォルトの名無しさん:2007/11/04(日) 23:31:31
>>161
してやってもいいぞ!
163デフォルトの名無しさん:2007/11/04(日) 23:34:49
じゃ、自己解決ゥ!
164デフォルトの名無しさん:2007/11/06(火) 21:53:31
ねがいします!!
165デフォルトの名無しさん:2007/11/06(火) 23:11:00
ごわさんにねがいまするのか?
166デフォルトの名無しさん:2007/11/06(火) 23:24:04
そもさん!
167デフォルトの名無しさん:2007/11/06(火) 23:24:40
せっぱ!
168デフォルトの名無しさん:2007/11/06(火) 23:36:54
みんなの疑問、みんなで解決!
教えて厨掲示板
ttp://oshiete.goo.ne.jp/

てめぇの疑問、てめぇで解決。
自己解決掲示板
ttp://pc11.2ch.net/test/read.cgi/tech/1192531041/
169デフォルトの名無しさん:2007/11/07(水) 00:06:52
掲示板なんかこの世からなくなってしまえ。
170デフォルトの名無しさん:2007/11/07(水) 23:27:10

セパハン 1-1 浦和レッズ
171デフォルトの名無しさん:2007/11/08(木) 00:17:23
じっ・・・ じっ・・・、自己解決ゥ!
172デフォルトの名無しさん:2007/11/08(木) 18:55:23
HSPからDirectX使えるの?
173デフォルトの名無しさん:2007/11/08(木) 19:06:03
HSP3.1のダウンロードが糞重い
うちの環境だけ?
174デフォルトの名無しさん:2007/11/08(木) 19:09:01
http://elgo.hp.infoseek.co.jp/hsp/hmm/index.html
こんなところがあったのね
COMだから使えるわけだ
っと自己解決ぅぅぅぅぅ
175デフォルトの名無しさん:2007/11/08(木) 21:49:20
事故か池つ
176デフォルトの名無しさん:2007/11/08(木) 22:44:47
telnetライブラリってありますか?
177デフォルトの名無しさん:2007/11/14(水) 23:44:03
kaso
178デフォルトの名無しさん:2007/11/15(木) 22:44:22
C言語は経験ありますがHSPは超初心者です。
質問です。
boxfなどで矩形を描画し、その上にmesで文字を描画できますが
boxfなどは背景ととらえて良いのでしょうか?
それともmes命令が文字描画として特化した命令なんでしょうか?
稚拙な質問で申し訳ないですが教えてください。
179デフォルトの名無しさん:2007/11/15(木) 22:48:13
Win32APIのFillRectをboxf、DrawTextをmesだと思えばいい
180デフォルトの名無しさん:2007/11/15(木) 23:18:32
HSPで円グラフを作ろうと思っているのだけれどもなかなかうまくいかない
データ入力をしたら円を書いて区切ってくれるという簡単なプログラムでいいのだけど
誰かヒントください
181デフォルトの名無しさん:2007/11/15(木) 23:21:46
>データ入力をしたら円を書いて区切ってくれるという簡単なプログラム
この仕様だと果てしなく難しいな
182デフォルトの名無しさん:2007/11/15(木) 23:31:38
矩形って、何て読むの?
183デフォルトの名無しさん:2007/11/15(木) 23:34:47
た… ゲフンゲフン 何でもない。
184デフォルトの名無しさん:2007/11/15(木) 23:37:13
クケケケケケケケケケケケ
185デフォルトの名無しさん:2007/11/15(木) 23:47:37
コナミ矩形波倶楽部
186178:2007/11/16(金) 00:03:36
>>179
分かりやすい例えありがとうございます。
187デフォルトの名無しさん:2007/11/16(金) 00:39:02
何て読むの?
188デフォルトの名無しさん:2007/11/16(金) 01:07:26
>>181
果てしなくはないだろうけど、円を書くのはちと面倒だな。
後は大して難しくないだろ。
189あみじ房:2007/11/17(土) 00:34:38
トリップ無くしたけど、要らないので、事故解決しました。
190デフォルトの名無しさん:2007/11/17(土) 00:36:58
じゃぁ! じっ…、 じっ…、自己解決ゥゥウウゥ〜〜〜!!
191デフォルトの名無しさん:2007/11/18(日) 01:18:04
すみません。
以下のようにしてチェックボックスの背景色と文字色を変更しようとしたのですが、
OSがMeだと文字色も変わるのですがXPだと背景色しか変わりませんでした。
オーナードローを使えばなんとかなることは分かりましたがチェック状態まで自分で管理するのは
ちょっと面倒なので他の方法はないでしょうか?

#uselib "gdi32"
#func SetBkMode "SetBkMode" int,int
#cfunc GetStockObject "GetStockObject" int
#func SetTextColor "SetTextColor" int,int
#define ctype RGB(%1,%2,%3)(%1|%2<<8|%3<<16)

 oncmd gosub *ctlcoloredit,$138

 hBrush=GetStockObject(4)
 a=0
 screen 0,320,240,4
 cls 4
 objsize 100,20
 pos 5,5 : chkbox "チェックボックス",a
 chkhwnd=objinfo(stat,2)
 stop

*ctlcoloredit
 if chkhwnd == lparam{
  SetBkMode wparam,1
  SetTextColor wparam,RGB($FF,$FF,$FF)
  return hBrush
 }
 return
192デフォルトの名無しさん:2007/11/18(日) 03:33:38
よくよく考えたらこうすればよかったんですね。

 font "MS P ゴシック",12
 objmode 2
 color 255,255,255
 objsize 10,20
 pos 5,5 : chkbox "",a
 chkhwnd=objinfo(stat,2)
 pos 17,5 : mes "チェックボックス"
 stop
193デフォルトの名無しさん:2007/11/18(日) 11:11:27
お約束の一言をどうぞ
194デフォルトの名無しさん:2007/11/18(日) 12:11:31
じゃ、自己満足ゥ!
195あみじ房:2007/11/18(日) 17:37:21
じゃあ俺てゐ使うわ
196デフォルトの名無しさん:2007/11/18(日) 23:27:18
あん♥ 自己解決ぅん♥
197デフォルトの名無しさん:2007/11/22(木) 19:33:57
質問です3.0と3.1の変化など教えてください。
3.0ではできないような事やここは3.0のがよかったなみたいな事をお願いします
198デフォルトの名無しさん:2007/11/22(木) 19:35:24
>>197
めんどくせー
199197:2007/11/22(木) 19:39:06
そこをお願いします
200デフォルトの名無しさん:2007/11/22(木) 19:47:40
>>199
だが断る
201デフォルトの名無しさん:2007/11/22(木) 20:25:05
202デフォルトの名無しさん:2007/11/22(木) 22:10:29
シューティングなどでの弾を撃ちながら移動するのルーチンですが、

ttp://www.hspdx.net/hspyarou/0003.html
ここのサンプルをコピペしても、
スペースキーで弾の発射になりません。
カーソル←で弾の発射になってしまいます。
hspが3.1なのがいけないのでしょうか?
203デフォルトの名無しさん:2007/11/22(木) 22:35:36
if(S&16=16)&(T=0) : T=1:A=X:B=Y ;・・・(1)

if S&16 : if T = 0 : T=1:A=X:B=Y ;・・・(1)
に変える.これはHSPがおかしい
204デフォルトの名無しさん:2007/11/22(木) 22:48:12
>>203
ありがとうございます。
何がおかしかったのかはよく分かりませんが、一応解決しました。
205デフォルトの名無しさん:2007/11/22(木) 22:51:51
論理演算がビット演算になってる罠
206あみじ房:2007/11/23(金) 15:01:00
Cとかで、プロでも = と == について 「ifの時は==」 とかいう、
意味不明な覚え方してる人が居ると
ソフト屋さんの知り合いから聞いたことあるよん。
こんなんで、世の中よく動いてるね・・・・。
207デフォルトの名無しさん:2007/11/23(金) 17:20:54
>>203
解決策はあってるけどHSPがおかしいわけじゃないだろ
Cを含む大抵の言語で論理和より比較演算子の方が優先度高いぞ

>>204
HSP3.0以降だと
if(S&16=16)&(T=0) : T=1:A=X:B=Y ;

if(S&(16=16))&(T=0) : T=1:A=X:B=Y ;
こう解釈される。&より=の方が先に計算されちゃう。
208デフォルトの名無しさん:2007/11/23(金) 17:30:59
ビット演算子と論理演算子が両方ちゃんとあれば,(S&16)=16なんて書く必要ないわけだが
209デフォルトの名無しさん:2007/11/23(金) 17:47:10
そういう意味か
確かに論理演算子は欲しい
210デフォルトの名無しさん:2007/11/23(金) 23:19:11
じゃあッ! 自己解決ャーッ!
211デフォルトの名無しさん:2007/11/23(金) 23:20:08
HSPの本はどれがオススメですか?
212デフォルトの名無しさん:2007/11/23(金) 23:30:29
自己解決で学ぶHSP入門
213デフォルトの名無しさん:2007/11/24(土) 09:40:27
HSP史(上・下巻)
214あみぢ厨:2007/11/24(土) 15:44:26
AMmidi手に入りましたアッー!
ありがとうございましたアッー!
215デフォルトの名無しさん:2007/11/26(月) 01:01:29

*start
 screen
 dim word,512

 repeat 1024 : wpoke word,cnt*2,(12345)+cnt : loop

 bsave "bin.aaa",word,-1
 end

これで作ったbin.aaaの中見てみたら、どうやら最初の値(12345)がちゃんと保存されないみたいなんだけど
バイナリエディタで見ると「39 30 3A 30 3B…」ってなってる
なんでだっぜ
216デフォルトの名無しさん:2007/11/26(月) 01:22:23
ヒント:リトルエンディアン
217デフォルトの名無しさん:2007/11/26(月) 12:00:26
エンディアン 嘘 つかない
218デフォルトの名無しさん:2007/11/26(月) 12:16:24
( ゚д゚)ポカーン
219デフォルトの名無しさん:2007/11/26(月) 15:22:25
(3*16+9) + (3*16+0)*256 = 12345
220デフォルトの名無しさん:2007/11/26(月) 21:31:53
>>216
助かったっぜ
221デフォルトの名無しさん:2007/11/27(火) 00:08:24
>>220
その言葉だけで意味が分かるんなら、
初めから聞かなくても分かったんじゃねーの?
222デフォルトの名無しさん:2007/11/27(火) 00:09:20
マジレスで自己解決ゥ!
223デフォルトの名無しさん:2007/11/27(火) 01:31:37
>>217
輪ロス
224デフォルトの名無しさん:2007/11/27(火) 02:15:15
ttp://www.uploda.org/uporg1131780.zip.html
こういうのをhspでやるとすると
225デフォルトの名無しさん:2007/11/27(火) 23:28:37
早いよ
226ふかわりょう:2007/11/27(火) 23:39:31
サンプル提示させといて「出来ました!」は違うよね

       サンプル提示させといて「出来ました!」は違うよね
227あみぢ厨:2007/11/28(水) 00:09:10
hsp久しぶりにつかった。ゲームに付属する予定のコンフィグ。
VB.NETとかで作ると、.netフレームワークが居るからウンコすぎる。
228デフォルトの名無しさん:2007/11/28(水) 00:12:00
VB.NET(笑)
229あみぢ厨:2007/11/28(水) 00:30:56
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |  VB.NET(笑)
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
230デフォルトの名無しさん:2007/11/28(水) 01:02:44




























ミラバケッソ
231あみぢ厨:2007/11/28(水) 01:10:28
要するに俺が頭悪すぎるのが問題なんだけど、
回転した長方形(極端に縦横比の大きいレーザーとか)
と、点(とりあえず自機中心座標でおk)の、当たり判定をやりたくなったけど、
一体何から調べればいいのかが分かりませんえんまんえんおくえん。
昔は単純な■判定を重ねていただけだったが、格好悪いし、縦横比がデカいとツラい。
座標の回転とか要るのかな?

 敵
 ■
 .■
  ■
  ■
  .■
   ■
   ■
   .■
    ■

bool unko(double mx,double my,double ex,double ey,
      ang/*(敵発射角度rag)*/,double b /* レーザーの太さ */);

こんな少ない情報で何とかしてくれる関数が売ってたら5000円まで払うぜ。
232デフォルトの名無しさん:2007/11/28(水) 19:32:13
俺だったら
・点と直線の距離を求める式
・点と点の距離を求める式
を組み合わせる。
233デフォルトの名無しさん:2007/11/28(水) 22:31:52
長方形の各辺が座標軸と平行になるように座標変換すればいいよ
234あみぢ厨:2007/11/29(木) 00:04:03
マジでありがとうございます。
頑張れそうです。
235デフォルトの名無しさん:2007/11/29(木) 09:38:15
最近始めたから覗きにきたが
レベル高すぎてついていけないぜ…。
半年後tに出直そう
236デフォルトの名無しさん:2007/11/30(金) 23:31:26
( ´-`).。oO(あのマカーは本気なのか単に荒らしたいのか…)
237デフォルトの名無しさん:2007/12/01(土) 13:40:41
ftpopenのstatが、接続の成功/失敗にかかわらず、0を返すんですが、
他の方もそんなかんじですか?
238デフォルトの名無しさん:2007/12/02(日) 14:06:54
質問させていただきます。WindosxXPでHSP3.1を使用しています。

KERNEL32.DLLのAllocConsoleで作成したコンソール画面を使用しているのですが、
右上のx(閉じる)ボタンを押すと、コンソール画面だけでなくプログラム本体も閉じてしまいます。
この際、本体で設定したonexitが実行されず、終了処理ができないでいます。
コンソール画面の閉じるボタンを本体の終了処理に連動させる方法はあるでしょうか?
239デフォルトの名無しさん:2007/12/02(日) 15:55:31
今開いているウィンドウの大きさを変えるのはどうしたらいい?
ginfo_sizex=300
ginfo_sizey=200
とやっても変わらないんですが
240デフォルトの名無しさん:2007/12/02(日) 15:58:42
width 300,200,,,
241239:2007/12/02(日) 16:01:29
>>240
ウィズ! ありがとう!
242デフォルトの名無しさん:2007/12/02(日) 16:27:09
mesboxにログを表示してるんだけど
文字列を足したときについでに最終行にスクロールさせたいんだけど
どうしたらいい?
243242:2007/12/02(日) 17:46:24
自己解決ゥ!
sendmsg で $B6 だった
244デフォルトの名無しさん:2007/12/02(日) 18:14:53
>>238
コンソールウィンドウのウィンドウプロシージャをカスタマイズ(サブクラス化?)
しなきゃいけないんじゃないの? あるいはコンソールウィンドウのスタイルを
変更してクローズボタンを無効化するとか。

できるかどうか知らんけど。
245デフォルトの名無しさん:2007/12/02(日) 18:37:15
>>244
レスありがとうございます。
サブクラス化の方がかっこいいですが、とりあえずスタイル送ってクローズ無効化してみます。
246デフォルトの名無しさん:2007/12/03(月) 00:35:52
HSP 2.61 か HSP 2.61a を使っている人に聞きたいのですが、
以下のコードを実行するとどのように表示されますか?

buf = "すし\nてんぷら\nてっかどん"
notesel buf
notemax len
mes "" + len
noteadd "", 1, 1
notemax len
mes "" + len
mes buf
stop
247デフォルトの名無しさん:2007/12/03(月) 02:05:19
ttp://quasiquote.org/hspwiki/HSP3%a6%c2%3aChangeLog#H-gs64vx
3.0RC1
noteadd命令で空の文字列を上書きすると行が削除される不具合を修正。
248デフォルトの名無しさん:2007/12/03(月) 14:32:58
sockget でエラー検出時に取り得る statの一覧を 教えてください
249デフォルトの名無しさん:2007/12/03(月) 14:44:35
ループ内で sdim で変数を宣言すると
通るたびにmallocされたりするのでしょうか
250デフォルトの名無しさん:2007/12/03(月) 16:08:46
実行時に必要なDLLをpackfileに入れて
単体で動く実行ファイルを作ることは可能ですか?

普通にhspsock.dllなどを入れるだけでは駄目みたいですが
コツとかありますか?
251デフォルトの名無しさん:2007/12/03(月) 16:14:59
マニュアル嫁
252デフォルトの名無しさん:2007/12/03(月) 17:22:47
マニュ・・・ア・・・ル・・・?
253デフォルトの名無しさん:2007/12/03(月) 17:53:55
なぜ、mesboxの中の文字列はどうやって取得する方法はある?
254デフォルトの名無しさん:2007/12/03(月) 19:04:41
イエース,mesboxの中の文字列はどうやって取得する方法はある!
255デフォルトの名無しさん:2007/12/03(月) 22:50:55
>>251
まにゅあるあるあるか
256あみぢ厨:2007/12/03(月) 23:10:46
学生時代に作ったウンコゲームの雑誌掲載依頼が来て吹いたw
昔は何度もあったが、今になって来るとはwwww
257デフォルトの名無しさん:2007/12/04(火) 01:12:22
誘導

最高に頭の悪い発言をしてくださいinム板(XII)
http://pc11.2ch.net/test/read.cgi/tech/1179394713/l50
258デフォルトの名無しさん:2007/12/04(火) 03:11:37
>>247
どうもありがとうございます。

noteadd 空文字列 でぐぐって 2.x の changelog 見て
変だなと思っていました。
2.61 は使い続けたいので、\n で上書きしてから
一行増えた分を notedel で削除することにしました。
259デフォルトの名無しさん:2007/12/04(火) 22:47:04
HSPでは高速で画像を重ね合わせる処理は難しいのでしょうか?
たとえば、背景に雲の画像を重ねて多重スクロールさせる様な処理とかですが。
260デフォルトの名無しさん:2007/12/04(火) 22:48:04
randomize
buffer 99,640,480:cls 4
r=0:g=0:b=0:i=0
for yy,0,16,1:for i,0,16,1:for g,0,255,16:for r,0,255,16
color r,g,b:line 200+(i*256+r)/16,100+(yy*256+g)/16,200+(i*256+r)/16+8,100+(yy*256+g)/16+8
next:next:b+=1:next:next
;picload"back01.jpg"

dim stardot,10:stardot(1) = 200
buffer 1,640,480:cls 4
color 255,255,255
for i,0,stardot(1),1:pset rnd(640),rnd(480):next

screen 0,640,480:cls 4
scroollx = 0

*mainrooll
redraw 0
gmode 0:pos 0,0:gcopy 99,0,0,640,480
gmode 2
pos scroollx,0:gcopy 1,0,0,640-scroollx,480
pos 0,0:gcopy 1,640-scroollx,0,scroollx,480
redraw 1
scroollx = scroollx+1:if scroollx>640:scroollx=0

*loopbreak
stick key,0:if key=16:end
wait 1:goto *mainrooll
261デフォルトの名無しさん:2007/12/07(金) 22:03:03
buttonで作ったボタンには""で指定した文字列が入りますよね。
この""に入る部分に変数を指定したいんですけど、そういうことはできるんでしょうか?

クイズゲームで問題文と解答候補を別ファイルから読み込んで正答誤答をnotegetで変数に格納、
格納した解答候補の文字列をbuttonに印字、ということを考えているのですが…。
262デフォルトの名無しさん:2007/12/07(金) 22:22:12
>>261
つ objprm
263デフォルトの名無しさん:2007/12/07(金) 22:41:58
>>262
こんなコマンドがあったとは…
ありがとうございます 無事解決できました。
264デフォルトの名無しさん:2007/12/08(土) 21:01:10
じゃ、自己解決ゥ!
265デフォルトの名無しさん:2007/12/08(土) 21:57:13
エクセルみたいなグリッド格子の付いたセルを使うための
便利なライブラリを紹介しなさい
266デフォルトの名無しさん:2007/12/08(土) 23:17:34
>>265
いつまでにですか?
267デフォルトの名無しさん:2007/12/08(土) 23:33:24
>>266
君とオレが恋に落ちるまでにさ…。
268あみぢ厨:2007/12/08(土) 23:44:45
そんなのをhsぷーでやろうとするのがすごい
ちなみにそんなライブラリ知りません
知らないならはつげんするなって?
すみません
269デフォルトの名無しさん:2007/12/08(土) 23:57:33
つEXCEL
270デフォルトの名無しさん:2007/12/09(日) 00:30:37
screenとかbgscrでウィンドウ作ると、作った広さと色数だけメモリ消費するけど、
特定の領域だけフルカラーで、あとは非描画でメモリ節約したりする方法無いでしょうか。
271265:2007/12/09(日) 03:11:34
>>269
それしかないか
excelのコントロールを貼り付けるのが一番速そうだな
272デフォルトの名無しさん:2007/12/09(日) 13:33:07
>>270
日本語でOK。
>非描画でメモリ節約
非描写っていっても読み込んだらメモリ使われるわけだから、
メモリ節約したいなら、ファイルに書き出しておくしかない。
273デフォルトの名無しさん:2007/12/09(日) 15:34:31
>>272
すまんこ。多ウィンドウの画像ビューワー作ってます。
回←これをウィンドウとすると、内側の四角内に画像がある感じです。

ウィンドウ可変・最大化のために、どんな画像でも
とりあえずデスクトップサイズでscreenサイズを確保して、中心に画像をputしてるので、
画像の無い部分がもったいないなと思ったのです。
274デフォルトの名無しさん:2007/12/09(日) 16:00:28
>>273

;パレットモードのウィンドウの中にフルカラーのウィンドウを配置
#include "user32.as"
    screen 0,640,480
    a=hwnd
    repeat 10
    hsvcolor cnt*19,255,255
    boxf 0,cnt*48,640,cnt*48+47
    loop

    bgscr 2,320,240,2,160,120
    repeat 10
    hsvcolor cnt*19,255,255
    boxf 0,cnt*24,320,cnt*24+23
    loop
    SetParent hwnd,a
    gsel 2,1

こんな感じ?
275274:2007/12/09(日) 16:02:03
間違えた
screen 0,640,480 

screen 0,640,480,1
276デフォルトの名無しさん:2007/12/09(日) 18:06:51
>>274
ありがとうございます。こんなAPIあるんですね。
ちゃんと親ウィンドウで切り抜かれるんで、使えそう。
メモリも3〜4M節約できてるみたいです。(1600x1200時)
画像を30〜40枚開くのが前提なので、実際は100M単位の節約ができそう。

あとは動きの無いウィンドウを定期的に検出して、
ウィンドウからはみ出して見えない画像をスワップアウトするとかしてちまちま稼ぐしか無いですかね。

# ちょっと試したところだと、スクロール(SetScrollPosとか)が使えないので、(親ウィンドウだけスクロールしてしまう)
# 独自のスクロール実装が必要そうです。
# 実際は2つのウィンドウなので、マウス操作全般のウィンドウプロシージャがちょっとややこしくなりそう。
# 1から作り直した方が早いかも・・・。
277デフォルトの名無しさん:2007/12/09(日) 22:40:08
># ちょっと試したところだと、スクロール(SetScrollPosとか)が使えないので、(親ウィンドウだけスクロールしてしまう) 
 
これはwikiのHSP Bug Trackにも同じようなこと書いてあるけどHSP3の不具合だと思う。
HSP2で同様の事をしたらちゃんと動いたし。
278デフォルトの名無しさん:2007/12/09(日) 22:54:54
>>277
まじかー。次のリリースで直るといいけど・・・。
直るまでちょっと待ってみるか。
279デフォルトの名無しさん:2007/12/10(月) 01:53:58
HSP3の不具合って言ったけどこっちのはAPIで直接操作してるしBugTrackの内容とは異なるな。
スクロール量にあわせてSetWindowPosで動かすしかないかも。
あまり役に立たなくてすまん。
280デフォルトの名無しさん:2007/12/12(水) 12:29:02
hsp3.*でレジストリの情報を読み出し(書き込みはしない)、
テキストファイルに出力ってどうやればよいのでしょうか?
281デフォルトの名無しさん:2007/12/12(水) 13:21:39
複数のソースファイルに分けて開発してる場合、
どのソースファイルでコンパイル開始しても正常に動作する工夫とかできるかな?

いまはメインソースファイルからコンパイルしたスイッチが入ってないと他のソースファイルでは停止終了するように作ってるけど。
282デフォルトの名無しさん:2007/12/12(水) 14:19:21
>>281
Cygwinとか入れて、Makefile書いておけば?
283デフォルトの名無しさん:2007/12/12(水) 15:18:26
>>282
詳しく
284デフォルトの名無しさん:2007/12/12(水) 20:19:36
>>283
HSP3用のコマンドラインコンパイラを探す
285デフォルトの名無しさん:2007/12/13(木) 10:52:59
>>281
どのソース(ウィンドウ)から実行しても決まった名前のスクリプトをコンパイルする
仕様のコンパイラ(外部ツール)作れば?
286デフォルトの名無しさん:2007/12/13(木) 13:00:29
>>285
作らなくてももうあるだろ
287デフォルトの名無しさん:2007/12/13(木) 17:48:56
>>286
あるのなら教えてください。まじで。
288デフォルトの名無しさん:2007/12/13(木) 20:23:16
>>287
ググれ
289デフォルトの名無しさん:2007/12/13(木) 23:07:33
ゲルググ
290デフォルトの名無しさん:2007/12/13(木) 23:31:39
昔HSPスレで某コテハンを名乗っていたものです。
なんとなく思い出して見てみましたけど…
ぜんぜんかわってねぇなぁって思いました。
291デフォルトの名無しさん:2007/12/13(木) 23:33:01
じゃ、自己解決ゥ!
292デフォルトの名無しさん:2007/12/13(木) 23:33:18
なぁなぁ、メーリングリストってスパマーの登録をどうやって避けてるんだ?
スパマーが登録して広告をMLで長島来るって話をあまり聞かないのだが。
293デフォルトの名無しさん:2007/12/14(金) 00:43:40
>>292
MLの管理人がBANすればよいだけじゃない?
294デフォルトの名無しさん:2007/12/14(金) 05:46:26
>>281
#defineと#ifndefで工夫する
295デフォルトの名無しさん:2007/12/14(金) 19:18:01
test
296デフォルトの名無しさん:2007/12/14(金) 19:19:45
>>281
head.hsp:(
#ifndef head
#define head 1
...
#include "main.hsp"
#endif
)

main.hsp:(
#ifndef main
#define main 1
#include "head.hsp"
...
#endif
)

ってパッと思いついたけど通らないのかな
297デフォルトの名無しさん:2007/12/14(金) 21:00:01
>>296
よくわからんけどいつか試す
298デフォルトの名無しさん:2007/12/14(金) 22:08:46
これはとりあえず動くみたいだけど、もっとファイルが多いもの作る時、
どのファイルからでもコンパイルできるようにするとしたら、そのためだけ
のコード書くのめんどいな。

(main.hsp)
#define _main_
#ifndef _sub_
#include "sub.hsp"
#endif
mes "main"
submes

(sub.hsp)
#define _sub_
#module
#deffunc submes
mes "sub"
return
#global
#ifndef _main_
#include "main.hsp"
#endif
299デフォルトの名無しさん:2007/12/15(土) 01:58:16
buffer 2,640,480:cls 4
color 255,255,255:boxf 0,0,640,480
dim movex,3:dim movey,3

ballmovex = 0:ballmovey = 0
movex(1) = 1:movex(2) = -1
movey(1) = 1:movey(2) = -1
mx = 1:my = 1
screen 0,640,480:cls 4

*main
redraw 0
color 0,0,0:boxf 0,0,640,480
ballmovex = ballmovex + movex(mx)
if ballmovex > 602:mx = 2
if ballmovex < 0:mx = 1
ballmovey = ballmovey + movey(my)
if ballmovey > 448:my = 2
if ballmovey < 0:my = 1
pos ballmovex,ballmovey:gcopy 2,0,0,32,32
redraw 1
color 255,255,255
pos 0,120:mes "x"+ballmovex
pos 0,136:mes "y"+ballmovey

stick key,15
if key=16:end
await 5
goto *main

これって、もっと高速に跳ね回るように出来ないのでしょうか?
300デフォルトの名無しさん:2007/12/15(土) 10:08:15
ballmovex = ballmovex + movex(mx)*10
とか
301デフォルトの名無しさん:2007/12/19(水) 14:29:41
超長い文字列を使ってるんだけど
strlenで文字列長取得すると 32767文字くらいまでしか返ってこない

shortじゃなくてlongで返してほしいんだけど、どうしたらいい?
つーか、HSPってlong型とかあんの?
302デフォルトの名無しさん:2007/12/19(水) 17:55:45
とりあえず3.1ではそんなことはないけど? HSPの整数は標準で32ビットだよ。
303デフォルトの名無しさん:2007/12/19(水) 18:09:34
GlobalAllocとか使うとかとかとかとかとかとかとかとかとかとかとか
304デフォルトの名無しさん:2007/12/19(水) 20:16:12
>>301
s=""
repeat 3276
s+="とかとかとかとかとかとかとかとかとかとか"
loop
mes strlen(s)
305デフォルトの名無しさん:2007/12/19(水) 20:49:44
>301
つーかshort型がないだろ。
あるのは32Bit整数と倍精度浮動小数と文字列型だけだろ。
306301:2007/12/19(水) 22:16:26
自己解決しました
307デフォルトの名無しさん:2007/12/19(水) 23:06:02
じゃ、自己解決ゥ!
308デフォルトの名無しさん:2007/12/20(木) 09:28:58
フォントの大きさが指定できない
font "Terminal",10,0
mes "あいうえお"
とやっても10ポイントの文字にならない
なぜだよ
309デフォルトの名無しさん:2007/12/20(木) 20:32:47
stick key,256 ; 左クリックを監視する
mx=mousex ; マウスのX座標
my=mousey ; マウスのY座標
if key&256{
if (mx>200)&(mx<(200+bx))&(my>100)&(my<(100+by)) : break ; ボタン上でクリックしたらループ抜ける
}

これの&についてなんだけど、何で=じゃなくて&なの?
演算子&についての詳しい説明がほしいんだけど、見つからないし。
=と同義で使えるというわけでもないし、かといってこれを=に置き換えても挙動は同じ。
ifの後における等号や不等号と合わせて且つの意味で使うだけでない、どういう意味があるの?
310デフォルトの名無しさん:2007/12/20(木) 21:27:05
>>309
論理式が正なら1だからだろ
つーかそもそも文脈上どう考えてもequal条件じゃなくてand条件だろ
なにより他言語での文法との混同を避ける意味で
&じゃなくandって書くべきだろ
311デフォルトの名無しさん:2007/12/20(木) 21:30:04
最もHSPのANDは&のマクロで、結局論理積でしかないけどな。
312デフォルトの名無しさん:2007/12/20(木) 21:33:28
そういえばそうだったな。もうオレは死んだ方がいいな
313デフォルトの名無しさん:2007/12/20(木) 21:50:40
ワロタ
314デフォルトの名無しさん:2007/12/20(木) 23:14:03
イ`!
315デフォルトの名無しさん:2007/12/21(金) 10:52:50
>>310
そのand条件とやらについて知りたいってのが最後の文章そのものなんだけど・・・
if a=10&B=10とかなら意味としてわかるけど。
if 10&10では主語の部分がなくてよくわからん。変数&数字、の場合だけなんか意味をなすとか?
前者に後者が含まれるという意味だ、と解説してるサイトもあったけど。
マニュアルにはこのへん載ってないし(等号不等号とあわせてしか)、どこ見てもstickには説明なくナチュラルに&使われてるし。
意味伝わるかなぁ・・・
316デフォルトの名無しさん:2007/12/21(金) 14:56:36
>>315
論理積 と ナンシー関 って似てると思わないか?

みんなよく間違えるからWikipediaで違いを確認するといいよ
317デフォルトの名無しさん:2007/12/21(金) 18:35:50
HSPの&,&&,andは論理積でなくビット単位AND
318デフォルトの名無しさん:2007/12/21(金) 19:39:07
>317
HSPは「&&」なんて使えたか?
319デフォルトの名無しさん:2007/12/21(金) 22:37:09
>>315
if (value){
 〜〜
}
はvalueが0でないときに〜〜が実行される。0のときは実行されない。

if (key=512){
 〜〜
}
はkeyが512に等しいときに〜〜が実行される。512でないときは実行されない。
((key=512)はkeyが512に等しいなら1、等しくないなら0になる。)


if (key&512){
 〜〜
}
は(key&512)が0でないときに〜〜が実行される。(key&512)が0のときは実行されない。

2番目と3番目はkey = 512 + 256のときとかに違いが出る。
stickならボタン同時押しとかな。
&の意味については「&演算子」でググれ。CでもJAVAでも意味は同じだ。
320test:2007/12/21(金) 23:46:11
test
321デフォルトの名無しさん:2007/12/22(土) 07:42:49
>>319を勝手に補足。

>>2番目と3番目はkey = 512 + 256のときとかに違いが出る。
ここで512と256が2の倍数だというところがミソ。
512 = 0b1000000000
256 = 0b0100000000
ここで0b〜は2進数表記という意味。

(512+256)&256は256だけど、(11+1)&1は1じゃないので注意。
322デフォルトの名無しさん:2007/12/22(土) 16:21:03
>>321
2の倍数じゃなくて2の乗数または2の冪
323321:2007/12/22(土) 16:35:31
これは失礼。
324デフォルトの名無しさん:2007/12/22(土) 18:08:38

どんま〜い!

3 ・ 2 ・ 1! 3 ・ 2 ・ 1!
325デフォルトの名無しさん:2007/12/22(土) 18:55:43
時計表示について質問です
5時4分を「5時04分に」表示させるのは、文字列型での表示の仕方は「strf」を使えばいいのですが
数値型にして表示するのが分かりません。
教えてください。お願いします
326デフォルトの名無しさん:2007/12/22(土) 19:30:33
>>325
?????????????????????????????????????
?????????????????????????????????????
?????????????????????????????????????
?????????????????????????????????????
?????????????????????????????????????
327デフォルトの名無しさん:2007/12/22(土) 20:12:25
ノベルゲームなんかでよくあるような、画面切り替え時にページをめくる感じにしたりとか
モザイクがかかっていくとか、下から次の画面の背景がでてくるとか、そういう表現あるかな?
clsで消して再描写ってだけじゃなんか味気なくて。
328デフォルトの名無しさん:2007/12/22(土) 20:31:07
>325
何言ってんだ?お前。
329デフォルトの名無しさん:2007/12/22(土) 20:58:32
>>327
gmode gcopy gzoom だけでも、かなりのパターンを作り出せるぞ。
とはいえ、cls を多用してるようじゃ辛いかもな。
330デフォルトの名無しさん:2007/12/22(土) 22:18:17
atoiじゃないのフヒィ!?
331デフォルトの名無しさん:2007/12/23(日) 19:17:32
フヒィって何
332デフォルトの名無しさん:2007/12/23(日) 20:13:46
照れ隠しの単位です。
現在のレートは 1フヒィ=113.4サーセン です。
333デフォルトの名無しさん:2007/12/23(日) 20:15:33
フヒィ高サーセン安
334デフォルトの名無しさん:2007/12/23(日) 23:13:13
意味不明な時はァ、自己解決ゥ!
335デフォルトの名無しさん:2007/12/24(月) 18:05:35
>>329
あーそのへんを使ってやらないと駄目なのかぁ。
ノベル向けってわけじゃないからそんな専用の命令なくて当然か。さんくすー
336デフォルトの名無しさん:2007/12/25(火) 07:58:11
ノベル作るんだったら(ry
337デフォルトの名無しさん:2007/12/25(火) 23:28:53
あそこは垂れ餡先生しか教師がいない状態になりつつあるのか…。
338デフォルトの名無しさん:2007/12/26(水) 11:31:25
Elonaって実はHSP製なんだよね
ソースコードが計20万行越えてて吹いた
339デフォルトの名無しさん:2007/12/26(水) 13:45:54
>338
そりゃ随分と重そうだなw
そういや、HSP3の逆コンパイラってあるのか?
340デフォルトの名無しさん:2007/12/26(水) 14:41:44
ググれ
341デフォルトの名無しさん:2007/12/27(木) 00:23:19
ググって自己解決ゥ!
342デフォルトの名無しさん:2007/12/28(金) 05:46:15
モジュールの中から外部のラベルを呼び出す方法は調べてわかったんですが、
グローバル空間からoncmdでモジュール内のラベルを直接的に呼び出すにはどうすればいいのでしょうか
343デフォルトの名無しさん:2007/12/28(金) 09:54:49
ユーザ定義命令経由以外でモジュール内に飛び込むのは無理じゃね?
344342:2007/12/28(金) 18:53:27
どうやらnewmodでモジュール型変数を作ると
gosub hoge@モジュール名でモジュール内を呼び出せるようです。

なのにgosub label@hspという方法ではモジュール内からグローバルのラベルに飛べないのは何故なんでしょう
345デフォルトの名無しさん:2007/12/28(金) 20:37:26
JAVAでいうfinalみたいな定数を作成するにはどうすれば?
マクロ宣言時に変数を展開する方法があれば#constや#defineでもいいのですが
346デフォルトの名無しさん:2007/12/28(金) 23:44:53
Cでいうconst?
無いかも
347デフォルトの名無しさん:2007/12/29(土) 00:09:03
>>344
gosub label@ で飛べない?
348デフォルトの名無しさん:2007/12/29(土) 02:31:13
>>347
ありがとうございます、できました
@hspはプリプロセッサ命令を扱う時に用いるんでした
統一するか併用してくれればいいのに
349デフォルトの名無しさん:2007/12/29(土) 23:49:15
HEY YO!
350デフォルトの名無しさん:2007/12/30(日) 01:46:05
randomize
pos 20,20:mes zyukugo.rnd(15)
pos 20,55:mes zyukugo.rnd(15)
pos 20,90:mes zyukugo.rnd(15)
pos 20,125:mes zyukugo.rnd(15)
pos 20,160:mes zyukugo.rnd(15)
pos 20,195:mes zyukugo.rnd(15)
この6行のうち1行をランダムに選択、その選択した行のrnd命令が結果として選んだ数値を取得する
なんて事できないかな?
ランダムに15種の熟語のうち6つが表示されて、そのうち1つの回答を示すようなゲームみたいなの
つくってるんだけども・・・これができないとやたら長くなっちゃう。
351デフォルトの名無しさん:2007/12/30(日) 01:59:02
>>350
何がしたいのか、何が言いたいのかよく分からないが

データベース中に、15のデータが格納されていて、
その中から6つをランダムで取り出すのを目的とした場合、
その記述のままだと、同じデータが重複されて取り出されるときがある。
場合によっては、6つとも同じデータが取り出されてしまう可能性も存在する。
352デフォルトの名無しさん:2007/12/30(日) 03:07:29
repeat 6
tmp = rnd(15-CNT)
hyouji.CNT = zyukugo.tmp
swap zyukugo.tmp,zyukugo.15-CNT ;swapは#defineしておく
pos 20,30*CNT+20 : mes hyouji.CNT
loop
このあとhyoujiからランダムで一個選べばいいんだけど
元配列を並び替えてるのと、元配列の何番目か判らないのは問題かな?
必要条件が確定してないから
353デフォルトの名無しさん:2007/12/30(日) 03:19:16
>>350
適当に作ってみた

randomize 
sdim zyukugo,4,15
dim table,6
zyukugo="1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"
a=1
repeat 6
table(cnt)=rnd(15)  ;乱数を記録しておく
loop
input a,32,,1
pos 32,0:mes "行目を           or"
pos 80,0:button gosub "選ぶ",*erabu
pos 200,0:button gosub "ランダム選択",*random
gosub *erabu
stop
*random
a=rnd(6)+1
*erabu
if (a<1)or(a>6):dialog "1〜6行目を選択しやがれこのウジ虫めが!":return
color 255,255,255:boxf 0,40,640,480
repeat 6
if cnt=(a-1){
    color ,,128:boxf 0,40+35*cnt,640,58+35*cnt
    color 255,255,255
    }else:color
pos 20,40+35*cnt:mes zyukugo(table(cnt))
loop
color:pos 20,300:mes "選んだ行:"+a+"\n数値"+zyukugo(table(a-1))
return
354350:2007/12/30(日) 14:21:58
>>351
あーその通りだわ・・・指摘されるまで気づかなかった\(^o^)/
英熟語が6つ表示されて日本語が一つ表示される。その日本語に合致するのは6つのうち
どーれだ、って話。
その為には日本語の選択をランダムに選ばれた6つの英熟語のどれかに準拠しないと
どれもハズレって事になっちゃう、って意味だったんだけど。

>>352
わざわざありがたや。
4行目を理解するのに数十分かかったぜ・・・。351の指摘の内容を修正できてるって事よね?
でもそれでも解答をどう出すかがわからない。

さて、>>353の理解に着手しよう・・・どれだけ時間かかるやら怖いけど。
355350:2007/12/30(日) 14:57:12
>>353
ありがとう。とりあえず理解でけた・・・ふぅ。でもこれ、351指摘の問題でちゃうね。
それに根本的に何やら違う事に。長文の質問はウザいかと思ったけど
わざわざ作って答えてくれる人の事を考えるともっとちゃんと説明すべきだったか。

やりたいコト:
基本的に上記354の通り。さらに細かく言うと
6つの英熟語はボタンを模した画像の上に表示、擬似ボタンにして、それぞれ正解をクリック
すれば正解の処理に、間違いの5つのどれかをクリックすれば不正解の処理に移行。
という構想で・・・とりあえず日本語の方を表示する段階になって、選ばれた6つの英熟語の中から
さらにランダムでどれかを選んで、それに対応したのを表示できないかな、って。
それで>>350のような内容に。
でもどっちみち表示だけを考えてちゃ正解かどうかの処理ができないのか・・・?('A`)
けど熟語は最終的に膨大な数になるから一つずつ問題をつくるとものすごく長くなっちゃうし、と・・・
356デフォルトの名無しさん:2007/12/30(日) 16:04:18
>>355
表示とかは最後にして処理の流れを紙に書き出して見ると良いと思う。

今回は必要なデータがはっきりしてるから、データさえ用意できれば作りやすいはず。
重複しない乱数は下記参照。
ttp://hspdev-wiki.net/?cmd=read&page=%BD%E4%B2%F3%CD%F0%BF%F4
357353:2007/12/30(日) 22:13:44
>>355
言いたいことは大体分かった。また適当に作って書こうと思ったらなんか面白くなってきて作りこんでしまった。正直、自己満足の領域。
選択の部分は擬似ボタンではないけど重要部分は大体書いてある。
問題の選出とかは他にもいろいろあるので自分の好きなやり方で。


randomize gettime(7)
sdim mondai,16,6
sdim zyukugo,16,6
mondaimax=6     ;問題の数
kaitou=4        ;回答の数
mondai="山","川","海","空","森","湖"
zyukugo="mountain","river","sea","sky","forest","lake"
;このとき、mondai.numの問題に対してzyukugo.numの解答が正しい
num=rnd(3)      ;問題の種類を決める
mes mondai.num+"は英語で?\n"
;回答群(3種)を作製する。このときあえて回答群に正しい解答を含まないようにする。
;問題が重複しないように乱数を作る
dim list,mondaimax-1
repeat mondaimax-1  ;問題番号を抜いた0から順に1ずつ増加させた配列を問題数-1個作る(たとえば問題2なら0,1,3,4,5の配列)
if cnt>=num:list.cnt=cnt+1:else:list.cnt=cnt
loop
repeat 10    ;ループの回数だけ配列をシャッフルする
a=rnd(mondaimax-1)
b=rnd(mondaimax-1)
c=list.a
list.a=list.b
list.b=c
loop
358353:2007/12/30(日) 22:14:25
list.rnd(kaitou)=num    ;正しい解答を後から回答の数内に収まるように代入
;あとは回答の数だけ回答を表示して正しい解答を選択させる
repeat
erabu=-1
redraw 0
color 255,255,255:boxf 0,40,640,480
    repeat kaitou       ;回答の数だけ回答を表示
    pos 20,40+cnt*18
    ;回答の上にカーソルがある場合色をかえて表示。そのときの回答番号も記録しておく
    if ((mousey-40)/18)=cnt:color ,,128:boxf 0,40+18*cnt,640,58+18*cnt:color 255,255,255:erabu=cnt:else:color 
    mes zyukugo(list(cnt))
    loop
    if erabu>=0{
        pos 20,180:color
        if list(erabu)=num:mes"正解":else:mes"不正解";回答番号から回答の種類を参照して照合
    }
wait 1
redraw 1
loop
359353:2007/12/30(日) 22:17:59
コメントの回答群(3種)ってのは間違いで4種類表示になってるけど気にしないでくれ
360デフォルトの名無しさん:2007/12/31(月) 22:22:28
質問です。
キーボードのボタンを押すと音が出るというプログラムをつくろうとするとボタンを押して離した後に音が鳴ってしまいます。私としてはボタンを押した瞬間に音を鳴らしたいのですが、どうすればいいでしょうか。
361 【1208円】 【だん吉】 :2008/01/01(火) 00:35:23
2008
362350:2008/01/01(火) 05:44:19
あけおめなんだぜ
>>357
うおーありがたや。めちゃ参考になった。思ったとおりのができたよ。
理解できない部分が若干残ってるけど・・・今後のレベルアップに期待して
今は深く考えすぎないようにする。ほんと助かった、ありがとん。

しかし元旦から何をやってるんだ俺は\(^o^)/
363350:2008/01/01(火) 06:03:43
>>356
ありがとう。
しかし>>357のおかげで解決しちまったぜ。また今度参考にするなのぜ
364デフォルトの名無しさん:2008/01/01(火) 09:56:29
じゃ、自己解決ゥ!
365デフォルトの名無しさん:2008/01/01(火) 13:03:49
マップチップは32*32サイズで
キャラのサイズが移動はビット単位の当たり判定がしたいんだけど
どう考えりゃいいの?
366デフォルトの名無しさん:2008/01/01(火) 13:04:23
訂正
キャラサイズ32*32で移動がビット単位
367デフォルトの名無しさん:2008/01/01(火) 14:12:51
posx % 32
368デフォルトの名無しさん:2008/01/01(火) 19:27:21
if (a=1)&(b=2)|(c=3)&(c=4):mes "HSP"

こういう条件式を書いたとき、片方の条件式)(c=3)&(c=4)が成立している時は、mes命令が実行されるのですが
(a=1)&(b=2)が実行されても,mes命令が実行されません。
どうしたらよいのでしょうか?
369デフォルトの名無しさん:2008/01/01(火) 20:37:07
(c=3)&(c=4)っていつ真になるの?
370デフォルトの名無しさん:2008/01/01(火) 20:38:37
a = 1
b = 2
if (a=1)&(b=2)| (c=3)&(c=4) :mes "HSP"
if (a=1)&(b=2)|((c=3)&(c=4)):mes "HSP"
371デフォルトの名無しさん:2008/01/01(火) 21:27:57
if ((a=1)&(b=2))|((c=3)&(c=4)):mes "HSP"
372デフォルトの名無しさん:2008/01/01(火) 21:38:37
#include <stdio.h>
int main()
{
int a = 1, b = 2, c = 0;
if(a == 1 && b == 2 || c == 3 && c == 4) printf("HSP");
return 0;
}

HSP始まったな
373デフォルトの名無しさん:2008/01/02(水) 20:02:02
アプリとして配布した後に、その各々の使用者が任意で画像やBGMを差し替えられる
ようにってできる?
374デフォルトの名無しさん:2008/01/02(水) 20:55:45
1 iniファイルにパスを書く
2 アプリ内で設定できるようにする
3 特定のファイル名のファイルを使う
375デフォルトの名無しさん:2008/01/03(木) 10:41:07
コンボボックスの選択が変更されたら画面上の
他の項目を更新するようにしたいんですが、
repeat 〜 loopで監視するしかないんですかね?

ボタンやメニューを表示し終わったらstopで終わりたい気がするんですが
最後にrepeatを設置するのは落ち着かない感じがしません?
376デフォルトの名無しさん:2008/01/03(木) 19:49:12
>>375
Let's HSP!「HSP3 あれこれ <オブジェクト編 5>」
ttp://lhsp.s206.xrea.com/hsp_object5.html#5
377デフォルトの名無しさん:2008/01/03(木) 23:01:46
ありがとうございます、助かりました。
コンボボックスとウィンドウメッセージが関連してることを知らなかったので
マニュアルの割り込みの項や、リファレンスでは全然解説されてないから
これはわかりっこないですな
378デフォルトの名無しさん:2008/01/04(金) 03:45:01
WINアプリの設定ウィンドウ、たとえばHSPスクリプトエディタのツール→オプション
を選んで表示されるウィンドウに、角が丸まった四角形に青文字が添えられてる
囲み部分があるじゃないですか。
頻繁に使われてるので、あれってまとめて描画できるような命令があるんでしょうか。

ググってみると単体の角丸四角形は一つの命令では表示できないみたいですが。
379デフォルトの名無しさん:2008/01/04(金) 03:48:23
別に一つの命令じゃなくても、モジュールが公開されていたらそちらをお願いします。
380デフォルトの名無しさん:2008/01/04(金) 04:31:52
連投失礼。
グループボックスって名前みたいですね。名前に行き着くまでどれだけ時間がかかったか…。
ボタンをsendmsgで変化させたりするようですが、HSPでは不完全らしい?
ttp://lhsp.s206.xrea.com/hsp_object1.html#5
381デフォルトの名無しさん:2008/01/04(金) 07:33:08
>>380
そんなあなたに開発wiki
ttp://hspdev-wiki.net/?HSP%B9%D6%BA%C2%2F%A5%A6%A5%A3%A5%F3%A5%C9%A5%A6%B3%C6%C9%F4%A4%CE%CC%BE%BE%CE

表示バグが気にならないなら付属サンプルを流用すれば充分かと思う。
配布しないならOS互換性とか気にしないでいいだろうし。
気になるならそのページのモジュールを使う。
382デフォルトの名無しさん:2008/01/04(金) 11:17:58
XPスタイルだと角が丸まるのか
383デフォルトの名無しさん:2008/01/04(金) 18:29:08
>>381
うほっいい教材

HSPのサンプルやそのページのchkboxを利用した例は
最小化→復元で背景が透けてしまうんで使えませんね。
圧縮ファイル内のモジュールを流用することにしました。
384デフォルトの名無しさん:2008/01/04(金) 23:50:40
>>374
もうちょい詳しく教えてもらえんですか。
アプリにする=exeファイル一つになる、って考えてる時点で駄目?
画像は画像として独立して存在してるなら、そこの画像を勝手に入れ替えて
もらえばそれでいけるであろう事はわかるんだけど。。。
385デフォルトの名無しさん:2008/01/05(土) 00:07:33
そもそもpicloadとかフォルダを指定しなければ
exeファイルと同じフォルダの画像が読み込まれるだろう?
386デフォルトの名無しさん:2008/01/05(土) 11:02:43
>>385
おーほんとだ。パックしたファイルよりフォルダにおいた画像とかが優先されるのね。
じゃー同梱のreadmeに画像差し替えたきゃ●●って名前の●●×●●サイズの画像
をフォルダにいれてちょ、でいいんだなぁ。センクスー

しかしその画像をexeと同じフォルダにいれとかないと、
ちゃんとパックしたはずの画像を表示する段階でエラーが発生するのは何でだろう・・・
387デフォルトの名無しさん:2008/01/05(土) 17:31:23
それってファイル名が長いとか漢字使っているとかじゃないかな?
388デフォルトの名無しさん:2008/01/05(土) 20:54:19
>>387
さすがに半角ローマ字しか使ってないけど、長いっちゃ長いかも・・・。10文字。(拡張子含まず
10文字のがなんとか大丈夫になったと思ったら15文字のでもうどうしようもなく。
ためしに短くしてみたら大丈夫になった、ありがとん!
具体的に何文字まで、とか決まってないのかな?環境や状況依存で変わるなら
無理矢理にでも全部やたら短い名前にしないと駄目って事になるよね・・・

389デフォルトの名無しさん:2008/01/05(土) 21:58:34
>>388
たしか拡張子無しで8文字だったかな?
ファイル名収納用のヘッダがそのぐらいまでしか確保されていない
390389:2008/01/05(土) 22:09:09
訂正
拡張子込み(ドットも)で15文字だ
16文字分入ることは入るけど内部では認識できないみたい
たぶん、16文字分読んで最後にNULL文字詰めてるのかも?
391389:2008/01/05(土) 22:24:51
うーん、docs/hspprog.htm に書いてある内容が間違っている気がする
「PACKFILEと暗号化」の項に
> ファイル名は、拡張子も含めて19文字までが識別対象になります
と書いてあるが15文字までしか認識できない
392デフォルトの名無しさん:2008/01/05(土) 23:50:39
自力で透過処理をしたいんだけど誰かサンプルありませんか?
psetで絵を描いてそれを落ちるようにしたいんだけど
393:2008/01/05(土) 23:53:00
サンプルを見せろや
ソレを自力ということにすっから
394デフォルトの名無しさん:2008/01/05(土) 23:58:46
>>389
詳しくありがとう。ファイル名収納用って事はやはり画像以外もか。
とりあえず全部11字以内に収まるようにするよー
395394:2008/01/06(日) 00:52:51
もしや変数名やラベル名にも文字数制限あったりするのかな?なんか不安になってきた。

話は変わって、
>>386の>パックしたファイルよりフォルダにおいた画像とかが優先されるのね
に誰もつっこんでくれなかったけど、これは文字数との兼ね合いで結果としてこうなっただけで
パックファイルの中身が優先されちゃうじゃないか(´・ω・`)
これだと画像はパックせずにバラで配布せんと差し替えできないという事に・・・。
アプリ内での設定となると、
1:パック内よりフォルダ内を優先して読み込めーって命令とか
2:アプリ内でのコンフィグ的操作から、スクリプトを書き換える命令で
●●.jpgの部分を▲▲.jpgに書き換えつつ「▲▲.jpg」ってファイルをフォルダにおいてね、と注釈いれる
とか・・・そんな命令、もしくは他の方法はあるですかいな
396デフォルトの名無しさん:2008/01/06(日) 03:56:13
参照画像名をレジストリかINIにでも書いておけばええやん
397デフォルトの名無しさん:2008/01/06(日) 05:15:37
一行が長すぎてソースが汚くなるから改行したいときに、
前の行から続けて書くための記述方法ってあります?
398デフォルトの名無しさん:2008/01/06(日) 09:32:31
>>395
> もしや変数名やラベル名にも文字数制限あったりするのかな?なんか不安になってきた。

あるよ。
変数・ユーザ定義命令・ラベル:59バイト
マクロ:20バイト
モジュール名:18バイト
1、2バイトの余裕はあるみたいだけど、マニュアルにはこう書いてある。

> 話は変わって、
> >>386の>パックしたファイルよりフォルダにおいた画像とかが優先されるのね
> に誰もつっこんでくれなかったけど、これは文字数との兼ね合いで結果としてこうなっただけで
> パックファイルの中身が優先されちゃうじゃないか(´・ω・`)
> これだと画像はパックせずにバラで配布せんと差し替えできないという事に・・・。

確かにパックするファイル名の文字数が適正であればパックしたファイル優先になるね。

対処法としては、通常のフルパスで参照すればパックしたファイルは対象にならないようだから、
フルパス(起動ディレクトリのパス+ファイル名など)のファイルが存在しなければファイル名のみ
で読み込むとかするのはどう?

起動ディレクトリのパスはdir_curに入ってる(起動時に変更されてなければ)。実行ファイルでの
実行時ならdir_exeでもOK。スクリプトからの実行時はdir_exeにはhsp3.exeなどのパスが入る。
399398:2008/01/06(日) 09:36:02
>>398
> スクリプトからの実行時はdir_exeにはhsp3.exeなどのパスが入る。

hsp3.exeがあるフォルダのパスってことね。連投すまん。
400394:2008/01/06(日) 20:27:16
>>396
俺の知識では、この場合にレジストリだとかiniだとかいう言葉が具体的に何を指して
どう書く事で、どういう意味があるのかが全部わからんとですよ(´・ω・`)

>>398
>対処法としては、通常のフルパスで参照すればパックしたファイルは対象にならないようだから
ここの解釈が微妙だったんで試してみたんだけども、あくまで「対象」であって「優先」じゃないよね?
これが「優先」ならこれで良かったんだけど、フルパスで指定すると
指定された場所に指定の名前の画像がないとエラー。
ここでまた問題が発生・・・実行ファイルにしてからだと、dir_curでもdir_exeでもどっちでも
ちゃんとフォルダに指定の名前の画像ファイルを置いておいてもエラー。
エディタからF5で実行すると全く同じスクリプトでエラーなく動くのに。意味がわかんねぇ・・・

それと、上記の通り、フルパスでも別に「優先」でないのなら、別にフルパスでなくても
違う名前で指定しておいて(ex:A1.jpgとA2.jpg)、A1を読み込んで、ファイルが存在しなければ
A2(こちらだけパックしておく)でいいような・・・?
さらに、これの場合もフルパスの場合も、「ファイルが存在しなければ」の部分をエラー出さずに
ちゃんと判定させる手段が思い浮かばない・・・

疑問ばっかで長々とすんまそ・・・
401394:2008/01/06(日) 21:00:33
>>400の>ここでまた問題〜以下3行のよくわからんエラーは解決しました('A`)
全然関係ないところだった。連投でつまらんことですんません
402デフォルトの名無しさん:2008/01/06(日) 22:12:43
exist命令でファイルの有無はチェックできるぞ。
403デフォルトの名無しさん:2008/01/06(日) 23:29:08
ひまだねぇ
404デフォルトの名無しさん:2008/01/06(日) 23:55:53
そうですねぇ
405デフォルトの名無しさん:2008/01/07(月) 00:02:09
あらやだ。
406デフォルトの名無しさん:2008/01/07(月) 22:23:44
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0265zip.html
キーコンフィグを作ったのですが、セーブやロードがうまく行きません。
sdimやdupも使ってみましたが、
セーブデータを見る限り、変数の消費より少ないという、より酷い状況に陥ったようで……
どういうセーブ方法が正しいやり方なのでしょうか。
407デフォルトの名無しさん:2008/01/07(月) 22:45:25
えー、失礼しました。
ロードした後にdim使っちゃいけませんよねアヒャヒャ……

自己解決ぅorz
408デフォルトの名無しさん:2008/01/07(月) 23:08:13
ひさしぶりに自己解決ッ!!!
409デフォルトの名無しさん:2008/01/07(月) 23:14:36
じゃ、自己解決ゥ!
410デフォルトの名無しさん:2008/01/08(火) 00:03:24
hspda使ってみようと思ったんだけど、vsaveもvloadも命令として認識しない。
(エディタで水色にならず、実行したらエラー)
dllは本体と同じとこにあるし、asはスクリプトと同じフォルダ、#includeもある。
これ以上何をどうすればいいのか、マニュアルにのってないよ(´・ω・`)
411400:2008/01/08(火) 01:46:12
>>402
おーこんなのあったのか。これでうまいこといきそうだ、ありがとん!
412デフォルトの名無しさん:2008/01/08(火) 03:58:41
>>410
#include "hspda.as"
a="hoge"
vload a
普通はこれだけでもエラーはでないんだがなあ
413デフォルトの名無しさん:2008/01/08(火) 11:09:20
HSPを少しさわりだしてHSPTVブラウザってので
どんなのをみなさんは作ってるのかと思い適当に
クリックしたらウィンドウじゃなく全画面表示になって
終了さそうにもEscは効かねーわその他のキーも
効かねーわでタスクマネージャーで無理矢理
終了させた。
それにしても、どっか良い講座サイトないかね〜
最初、型は?初期化は?ってとまどった。
414410:2008/01/08(火) 11:15:56
>>412
どこもいじってないのに(;消しただけ)今日はいけたよ・・・なんだったんだろ。
しかしこれ、エディタで水色にならんのは仕様って事でいいのかな?
415410:2008/01/08(火) 11:19:52
>>413
超絶初心者の俺は
ttp://www.rinku.zaq.ne.jp/ultimate/index.htm
ここをたまに使う。逆引き辞書が便利。でも、1からとりあえず〜ってのにはオススメしない。
最初講座から入ると自分は飽きちゃいそうで・・・HSP本体添付のだけはちゃんと読んだけど。
416デフォルトの名無しさん:2008/01/08(火) 12:43:33
>>415
ありがとう!!
少しだけページ見てみました。
一応自分はC言語の知識はあってwin32apiを猫程度かじってて
C++,JAVAを初心者レベルで知識はあってC#をほんの少し
さわったレベルのプログラミングの経験がある野郎です。
ですので講座をちゃっちゃと流し読みしてTipsを読み終えたら
HSP付属のHELPむさぼることにしますわ
417デフォルトの名無しさん:2008/01/09(水) 01:40:11
ファイルを開くダイアログが出てくるのを監視して
出てきたらファイル名をHSPから送りたいんですが
aplkeyとかaplkeyd+aplkeyuとかでも反応ないんですが
どうすればいいですか?
418417:2008/01/09(水) 02:52:28
自己解決しました。
スレ汚しすいませんでした。
419デフォルトの名無しさん:2008/01/09(水) 08:49:09















420デフォルトの名無しさん:2008/01/09(水) 23:13:14
ジン! ジン! 自己解決ゥ〜♪
421デフォルトの名無しさん:2008/01/10(木) 09:37:36
拡張プラグインありでexeを作って配布する場合、プラグイン本体(dll)をコピーして
exeとかreadmeとか同じフォルダにいれておけばOK?
exeにした後、自分のPCでも問題なく動くのは、HSPの本体と同じフォルダにdllがあるからで
配布する場合はプラグインも添付しとかないと駄目・・・だよね?
422デフォルトの名無しさん:2008/01/10(木) 18:05:33
>>421
> exeにした後、自分のPCでも問題なく動くのは、HSPの本体と同じフォルダにdllがあるからで

exeと同じフォルダ(かシステムフォルダ)にないと動かないはずだが。

> 配布する場合はプラグインも添付しとかないと駄目・・・だよね?

Yes。
423通販さん@賛成です:2008/01/11(金) 01:33:34
通販さん@賛成です
424デフォルトの名無しさん:2008/01/11(金) 05:37:16
>>421
DLLの再配布条件をDLLのReadmeで確認しとくことをお薦めするよ。
425デフォルトの名無しさん:2008/01/14(月) 11:43:51
>>422
>>424
遅くなったけどありがとう。
426デフォルトの名無しさん:2008/01/14(月) 16:33:15
ftpgetやftpputしたあとに、netmode命令で状態見てみたけど、
ftp待機状態ってなんだこりゃ。

HSPでオンライン通信なんて考えない方がいいんでしょうか。
教えて偉い人。
427デフォルトの名無しさん:2008/01/14(月) 18:02:15
よくrepeatloopの間にgoto挟んであるのを見るけど、これってネスト云々で
エラー起きる元だよね?
なんでbreakと変数代入とか、エラーの起きない方法で示さないんだろう?
暗黙の了解で、手法を示す時はgoto使うけど、このスクリプト
使うならちゃんと自分でエラー起きないように書き換えろよ!みたいなのが
あるのかな?
428デフォルトの名無しさん:2008/01/14(月) 18:37:42
>>427
breakは嫌い
ループ構文によって使えたり使えなかったりでうっとおしいから
ていうかHSPの各種ループ命令の統一感の無さは異常
429デフォルトの名無しさん:2008/01/14(月) 20:08:47
>>427
>よくrepeatloopの間にgoto挟んであるのを見るけど
俺は見たことないよ
430デフォルトの名無しさん:2008/01/15(火) 00:46:43
C++では多重ループから抜けるときとかエラー処理に飛ばすときとかに使う
HSPではやっちゃいけないのは知ってるがついやっちゃうなあ
431デフォルトの名無しさん:2008/01/15(火) 14:27:31
>>428
breakよりオススメの方法を教えてほすぃ

>>429
そう言われて初めて気づいた。どこかで見たか何かでそれが普通だと
俺が思い込んでただけで、よく見るって程溢れてはないっぽいね・・・

>>430
やっちゃってたZE
432デフォルトの名無しさん:2008/01/15(火) 19:10:43
mmload でmp3形式のファイルの音声が再生されません・・・
wav形式は正常に鳴るんですが、プラグインを入れないと再生できないのでしょうか?
433デフォルトの名無しさん:2008/01/15(火) 21:14:51
mmloadじゃ再生できないだろ
434デフォルトの名無しさん:2008/01/15(火) 23:48:29
「直してくれ」ってスゲェな!
435デフォルトの名無しさん:2008/01/16(水) 05:44:58
失礼します。
パッドを三つほど繋いで使いたいのですが、
良い方法はありませんかね。

二つ使えるDLLならよくあります。
三人目はキーボードやマウスを使えます。
しかし四人目となると、どうにも……
436デフォルトの名無しさん:2008/01/16(水) 12:49:44
変数に上限設定って出来る?
例えばHPを999より高くならないようにする、みたいな。
437デフォルトの名無しさん:2008/01/16(水) 13:23:04
>>436

#module ;HPの上限規定
#deffunc hplimit int char_no

#const CHARHP 1
#const HPMIN 0
#const HPMAX 999

status(char_no,CHARHP)=limit(status(char_no,CHARHP),HPMIN,HPMAX)

return
#global

もちろん、このままじゃ動作しない。
438デフォルトの名無しさん:2008/01/16(水) 15:40:31
C++とかならクラスがあるのに…くやしい!!
439デフォルトの名無しさん:2008/01/17(木) 01:16:58
>>435
H2_STICKなら複数認識された希ガス
440デフォルトの名無しさん:2008/01/17(木) 19:12:12
いよいよ、HSP3.2βがフルオープンソースで公開された訳だが
みんな、興味ないん??
441デフォルトの名無しさん:2008/01/17(木) 21:40:10
「最新!HSP3.1〜〜」と書いてある本を今読んでた俺涙目
442デフォルトの名無しさん:2008/01/18(金) 00:38:17
>>440
構文ががらっと変わらない限り興味は無い
443デフォルトの名無しさん:2008/01/18(金) 00:44:35
B・S・D! B・S・D!
444デフォルトの名無しさん:2008/01/18(金) 03:57:08
>>440
簡便で実用的なツールであれば問題ない

仮にC++のような複雑怪奇な実装になっていれば、
今作ってるのが完成した時点でDに移るよ
445デフォルトの名無しさん:2008/01/18(金) 11:09:16
教えて下さいませ。
HSP3.1のscrenn命令で作成したウィンドウにスクロールバーを出させるには、どうしたら良いのでしょうか?

秀和システムから出版されている入門書のコマンド一覧には「クライアントサイズが初期化サイズよりも
小さい場合にはスクロールバーが付加されます」とあるのですが、うまく出来ませんでした。 具体的には、

screen 1,800,800,,,,300,300
repeat
 mes cnt
 if cnt=100 : goto *step2
loop
*step2
stop

とした時にスクロールバーが出現せず、ウィンドウサイズを超えた表示内容を見ることが出来ません。
446デフォルトの名無しさん:2008/01/18(金) 11:10:51
すみません、間違えました。 1行目はscrennではなくscreenでした。
447デフォルトの名無しさん:2008/01/18(金) 18:51:42
>>427
おまいだろ?コレ→>>445
釣られんからな!w
448デフォルトの名無しさん:2008/01/18(金) 22:31:19
>>447
私は>>427氏ではありませんが、ループの中にgotoを入れるのはスマートではないのですね。
すぐ前の書き込みなのに見逃していて恥ずかしい限りですが、勉強になりました。
できましたら、スクロールバーについても是非教えて下さい。。
449デフォルトの名無しさん:2008/01/19(土) 14:05:21
俺が427だぜ!結局今も変数とブレイクでやってるという・・・
450デフォルトの名無しさん:2008/01/20(日) 22:32:54
>448
マクロのforとかwhileとか使えばいいじゃん。
あれならgoto使おうが全く問題ないし。
451デフォルトの名無しさん:2008/01/21(月) 16:56:39
今ゲームつくってて、メッセージは全部同じウインドウに表示させるんだけど、
起点をposで定めて普通にmesで表示すると、文字数が多い場合ウインドウから
はみ出たり、最悪右端は表示されない。
自動折り返し用の命令みたいなのある?
それともいちいち文字数を数えて主導でpos指定しなおすしかない?
452デフォルトの名無しさん:2008/01/21(月) 20:15:19
>>451
つ[DrawText API]
453デフォルトの名無しさん:2008/01/21(月) 21:45:35
HSP 2.6時代はよくやってたけど3.0以降になってから手が付かない。
そんな変わらないけれどもw

ところで、HSPで言語設定を判定する事出来ますか?
454デフォルトの名無しさん:2008/01/22(火) 00:51:38
iconvを呼び出す
455デフォルトの名無しさん:2008/01/23(水) 20:00:48
>>452
よくわからんなりなんとか思ったとおりにできた。ありがとん
456デフォルトの名無しさん:2008/01/24(木) 12:15:23
様、様、呼ばれて。w
あの程度でさ〜 いい気になんなよ
457デフォルトの名無しさん:2008/01/24(木) 23:30:23
知らんがな
458デフォルトの名無しさん:2008/01/27(日) 11:42:01
HSPで作った実行ファイルを、ウィルスだと誤認識する問題は解決されたのだろうか?
ソースネクストの「ウィルスセキュリティ」は修正されているようだけど…。
459デフォルトの名無しさん:2008/01/27(日) 12:57:58
>>458
avastだと問題ないけど
誤認識するアンチウィルスソフトはいったい何だい?
460デフォルトの名無しさん:2008/01/27(日) 14:01:34
461デフォルトの名無しさん:2008/01/27(日) 23:20:19
ウイルスバスターもいまだに駄目じゃない? 俺のは2006だけど。
462デフォルトの名無しさん:2008/01/27(日) 23:27:09
ウイルスバスターは本当におせっかいだからな。
XPのキージェネもはじく品。
463デフォルトの名無しさん:2008/01/29(火) 14:15:16
画像を半透明に表示させる方法ってある?
背景の上にボックスを半透明で表示して、その上に文字を出したいんだけど。
HTMLのstyle="filter:Alpha(opacity=50)"みたいな。
464デフォルトの名無しさん:2008/01/29(火) 17:01:43
zip圧縮されたファイルの解凍後ファイルのヘッダの先頭20hに相当する部分だけが欲しいんですが
unzipで一度解凍する以外になにか上手い手はないですか?
465デフォルトの名無しさん:2008/01/29(火) 19:41:46
解凍する他ないかと
466デフォルトの名無しさん:2008/01/29(火) 20:47:22
>>463
ある。ジーコピーとジーモードを勉強しる!
467デフォルトの名無しさん:2008/01/29(火) 23:14:17
468デフォルトの名無しさん:2008/01/30(水) 00:28:20
>>467
HSPが普通なインデントが使えることをはじめて知ったよ。
いつのバージョンから可能になったの?
469デフォルトの名無しさん:2008/01/30(水) 07:41:03
470デフォルトの名無しさん:2008/01/31(木) 21:58:58
そいつらが四天王な訳w?
そいつらゴトキが?
471デフォルトの名無しさん:2008/01/31(木) 22:40:56
>470
所詮HSPなんてそんなもんだよ
472デフォルトの名無しさん:2008/01/31(木) 23:38:37
ほほう…


なかなか、知ってんのう!
473デフォルトの名無しさん:2008/02/01(金) 23:39:10
質問です。
同一ウィンドに複数のオブジェクト(ボタンと入力ボックスを6つずつ等)を配置して
特定のオブジェクト(入力ボックスのみ等)にだけ、Tabキーでのカーソル移動が
有効になるようにしたいのですが、可能でしょうか?

もし、可能でしたらヒントを下さい。
474デフォルトの名無しさん:2008/02/02(土) 12:24:50
質問です。
変数を特定の位置で印刷したいのですが、可能でしょうか?
また、それらを勉強するのに最適な書籍かHPを教えてください。

なぜかテンプレのURLが「HTTP エラー 403 - アクセス不可」でした。
475デフォルトの名無しさん:2008/02/02(土) 20:25:23
>>473です。

getkey 命令と、objsel 命令を使った力業で、自己解決しました。
476デフォルトの名無しさん:2008/02/02(土) 22:27:12
サーバプログラムを作ろうとしてるんですが
どうしてもセッションをひとつしか持てません。

listenソケットを作成し、接続を受け付けて
通信ソケットを取得することができますが
その状態でさらに別の接続を受け付けても
取り出すことができません。
どうしたらよいのでしょうか
477デフォルトの名無しさん:2008/02/02(土) 22:53:48
つpcbnet2
478デフォルトの名無しさん:2008/02/03(日) 06:23:09
画像を読み込んで、WINDOWS付属のペイントの下部にあるような
パレットリストみたいなものを配置したいんですが、
クリック時にマウスの座標を判別してイベントを起こす他に、
どんなオブジェクトを作成すればパレット選択から処理に飛べるでしょうか。(シングルクリックだけでいいので)
標準ボタンなんかは色を変えられないようです
479デフォルトの名無しさん:2008/02/03(日) 09:59:55
>>478
pget で色情報を取得して、やりたい処理をすればいいのでは?
480デフォルトの名無しさん:2008/02/03(日) 12:19:19
本家に書き込んでいるaは誰だか知らんが神だな
481デフォルトの名無しさん:2008/02/03(日) 14:37:38
>>479
>クリック時にマウスの座標を判別してイベントを起こす他に、
482あみぢ厨:2008/02/03(日) 15:25:56
3Dやりてーなー、ちくしょう。
しっかし作業出来るのは、良くても日曜日ぐらいで
文字通り日曜プログラマになってしまた。
あーマジ学生時代に戻りたいぜぃ。

向う1年ぐらいは2Dゲーのプロジェクトで埋まってる。
というワケで、やるとしたら1年後だけど、
そんな僕にHSP導入は、アリですかね?
自分で調べろウンコですか、そうですか。すみません。
483478:2008/02/03(日) 18:11:47
バッファに塗りつぶした正方形を描画して、
画像ボタンへスタイル変更したボタンに画像データとして関連付けようとしたんですが
イメージのハンドルってどうやって取得するんでしょうか。

mrefの66で取得した変数をポインタとして渡すんじゃ駄目でした。
LoadImageAでハンドルを取得する場合はメモリから読み込めませんし。
484デフォルトの名無しさん:2008/02/03(日) 18:44:50
CreateBitmapしてDC挟んでボタンに貼り付け…かな
485デフォルトの名無しさん:2008/02/03(日) 20:09:59
いやぁ〜〜 最近、サンプル製造機が増えて来て
助かってまちゅ〜〜w
486478:2008/02/03(日) 23:52:30
できました。ビットマップオブジェクトを作成するってことだったんですね。
プログラム終了時にDeleteObjectするのは当然ですが
ボタンに新しい画像を結びつける時には以前の画像を消さないとまずいですかね
Javaとかなら勝手に処理してくれそうですが
487デフォルトの名無しさん:2008/02/04(月) 01:43:48
clrobjの引数2を省略すると1以降全部消える数値が代入されるって
随分大胆な仕様じゃない
488デフォルトの名無しさん:2008/02/04(月) 02:04:42
どうしても半角カナを表示させたい(mesで)んだけども、文字化けさせずに使えないかな?
自分の環境ではエディタからやってもexeにした後に実行しても大丈夫なんだけど
どうも環境が違うと化ける場合もあるみたいで。
489デフォルトの名無しさん:2008/02/04(月) 07:39:46
半角カタカナ自体が環境依存文字という事実
490デフォルトの名無しさん:2008/02/04(月) 12:44:15
ウィンドウにあるリスト内でのクリックの検出ってどうやんの?
491デフォルトの名無しさん:2008/02/04(月) 13:59:32
>>466
遅くなったけどありがとう。ちゃんとできたー。
492デフォルトの名無しさん:2008/02/04(月) 22:04:11
>486
基本的にAPIでは作成・開放は自分で管理せんとならん。
HSPはクラスも使えんからきちんとやるべき。
493デフォルトの名無しさん:2008/02/04(月) 23:00:45
>>491
おう!君は出来る子だと思ってたよ。
494デフォルトの名無しさん:2008/02/05(火) 16:04:21
はじめまして。現在MCI使った動画プレーヤー作っていますが、
ウィンドウサイズ位置、動画のサイズを変更することなく、
カーソルがウィンドウ上にある時だけシークバー表示を実現したいです。
BGSCRでそれっぽい事が出来そうですがどうしてもタイトルバーが表示されてしまいます。
構成としては、
ID0の初期ディスプレイは非表示にし、
ID2のタイトルバーの無い画面(bgscrで作成)をメイン画面に、
ID3をシークバーとしてBGSCRで表示させようとしてます。
この場合タイトルバーが2つ表示されてしまいます。
MCI再生の動画上に直接描写するなど他にも方法があればご教授頂ければ幸いです。
495デフォルトの名無しさん:2008/02/05(火) 19:02:45
>>494
「タイトルバー」を、別の何かと勘違いしてないか?
ま、一番下のヤツでやるのがいいんじゃない?常考。
あと、「教授」じゃなくて「教示」が正しいようだぞw
496デフォルトの名無しさん:2008/02/05(火) 23:15:52
>>494

#include "user32.as"
bgscr 2,,,2 //非表示で

GetWindowLong hwnd,-20
SetWindowLong hwnd,-20,stat|$80
gsel 2,1


こういうことか…?
497デフォルトの名無しさん:2008/02/05(火) 23:30:27
>>496
a は、こっちに来んな!w
498デフォルトの名無しさん:2008/02/05(火) 23:44:12
>496
たぶんタスクバーに表示される奴の事を言ってるんじゃないのか?

#include "user32.as"
winx=ginfo_sx
winy=ginfo_sy
bgscr 2,,,2
boxf
hwnd2=hwnd
gsel 0
SetParent hwnd2, hwnd
gsel 2,1
width winx,32,0,winy-32

こんな感じじゃねぇ?
499デフォルトの名無しさん:2008/02/05(火) 23:52:32
>498
おっと、

GetWindowLong hwnd2, -16
SetWindowLong hwnd2, -16, stat & (0xFFFFFFFF ^ 0x80000000) | 0x40000000

を忘れていた。
500デフォルトの名無しさん:2008/02/06(水) 01:32:42
すみません訂正します。タスクバーが2つ表示されるのを防ぎたいなと。
また、ID2はタイトルバー表示させずタスクバーは表示させ、
ID3をタイトルバーもタスクバーも両方表示させないようにしたいです。
これも情報が間違っていて申し訳ありませんでした。
サンプル試してみましたが、自分のスクリプトの中に
#uselib "user32" というのが含まれているせいかfatal errorになります。
右クリックメニュー追加のためサンプルを改造しただけなので中身は理解してません…。
もしよろしければincludeを使わない形のご教示頂ければ幸いです。
501デフォルトの名無しさん:2008/02/06(水) 02:27:28
>>496,498を試そうともせず書き替えろとは虫の良い。
オマエのスクリプトの都合など知らん。

「右クリックメニュー追加のサンプル」とやらを
#include "user32.as"に合わせるのが筋。
502デフォルトの名無しさん:2008/02/06(水) 11:22:27
>>500を見てサンプル試してないと受け取れる感性は凄いと思うよ。
503デフォルトの名無しさん:2008/02/06(水) 14:01:56
質問です。

repeat
getkey key,65
wait 1
loop

みたいなスクリプトを書くと、aのキーが押されてる間中ずっとkeyに1が入りますよね?
これを押された瞬間のみkeyに1を入れて、その次のループ以降では0を入れたいのですが、どうすれば良いのでしょうか。
もちろん、2度目、3度目と押されたらその時もkeyに1が入るようにしたいです。
stickだと簡単に出来るのですが、getkeyだと調べてもなかなか方法が分からないです・・・
どうかご教授お願いします。
504デフォルトの名無しさん:2008/02/06(水) 15:19:12
>>501
試してみてダメだったと書いてあるのに随分ひどいレスだな。
酔った勢いで書くのはやめましょう。

>>503
変数が1になったら必要な処理して、変数が0になるまで別のループ処理するとか?
505デフォルトの名無しさん:2008/02/06(水) 16:08:20
>>503
getkeyは使ってないけど目的は達成出来そうなコード
#define WM_KEYDOWN 0x0100
#define WM_KEYUP    0x0101
oncmd gosub *check,WM_KEYDOWN
oncmd gosub *check2,WM_KEYUP
repeat
 await 1
loop
stop
*check
 switch wparam
   case 65
     switch lparam
       case 1966081
         mes "[a]が押された"
       swbreak
     swend
     swbreak
 swend
return
*check2
 switch wparam
   case 65
     mes "[a]が離された"
   swbreak
 swend
return
506デフォルトの名無しさん:2008/02/06(水) 16:21:27
>>500
そこまで切り分け済んでるならHSP タスクバー 非表示で検索すりゃ自己解決ですぜ。

俺もMCIで質問したいんですが、
FLVをメディアプレーヤーで再生できるようにした後
HSPからも拡張子を一時的に変える事なく再生する方法はありますか?
win.iniにそれらしいのがあったのでFLVをMPEGVIDEOとして手入力するもNG。
えっちな人教えて!
507デフォルトの名無しさん:2008/02/06(水) 17:52:10
color 255,0,0 : mes "あいう"
color 0,0,0 : mes "えお"

というプログラムを書くと自動的に改行されてしまいます。
posを使えば出来ないこともないですが、改行せずにちゃんと書くにはどうすれば良いんでしょうか?
508デフォルトの名無しさん:2008/02/06(水) 18:24:29
>>503
stick を使えよ。その為に生まれた命令なんだから…
あと、「教授」じゃなくて「教示」が正しいようだぞw


>>507
pos を使うしかない。

x=0 : y=0
pos x,y : color 0,0,0 : mes "あいうえお"
pos x,y : color 255,0,0 : mes "あいう"
509デフォルトの名無しさん:2008/02/06(水) 18:42:27
>>508
stickってエンターとかスペースとか矢印キーぐらいしか取得できないんじゃなかった?
510デフォルトの名無しさん:2008/02/06(水) 18:50:50
>>509
あ、ホントだー!w

>>503
ごめんなちゃい。
511デフォルトの名無しさん:2008/02/06(水) 19:05:30
>>508
やはりそのように上書き(?)して書くしかないのですね。
ありがとうございました。
512デフォルトの名無しさん:2008/02/06(水) 21:08:33
HSPは初なんだが、なんでサンプルデモのBGMがバカみたいに糞でかいの?
ちょっと大きめ程度の音量設定だったのにいきなり大音量で心臓止まるかと思ったよ。
513デフォルトの名無しさん:2008/02/06(水) 21:29:46
>500
>#uselib "user32"
を使ってるのになぜ、理解出来んのだ?
もし、何処かにで拾ってきたソースをそのままパクって
組み込んだだけというのなら、お前がどんなソースを書いてるのか
分からん限り教えようがねーだろ!
514デフォルトの名無しさん:2008/02/06(水) 21:32:23
>503
んなもん簡単だろ。
keyの値をコピーする変数をひとつ用意して、
その値と、keyの値を比較して
keyが1、もうひとつが0となった時にのみ
検出するようにすれば良いじゃん。
515デフォルトの名無しさん:2008/02/06(水) 22:58:04
>>514
天才登場!!!!!!!
516デフォルトの名無しさん:2008/02/06(水) 23:04:52
変数名に変数を使うにはどうすればいいのですか?
517デフォルトの名無しさん:2008/02/06(水) 23:09:12
exeファイルを生成し、実行してみたのですが、ウィンドウ名が空白になります
何かしらコマンドがあると思うのですが、探しても見つかりませんでした
どうかご教授願います
518デフォルトの名無しさん:2008/02/06(水) 23:19:02
つキーワード検索
つ"タイトル"
519デフォルトの名無しさん:2008/02/06(水) 23:19:25
>>517
どこぞの教授も呆れとったわw
520デフォルトの名無しさん:2008/02/06(水) 23:20:42
>>516
配列

>>517
title
521デフォルトの名無しさん:2008/02/06(水) 23:43:26
>516
dim 変数
522517:2008/02/06(水) 23:46:58
なんかアホな質問しちゃったみたいですね
皆さんありがとうございました
523デフォルトの名無しさん:2008/02/07(木) 00:03:50
>>522
それじゃ、幕引きは出来ないぜ!

ちゃんと、自己解決ゥ!と叫びなさいw
524500:2008/02/07(木) 01:09:09
迷惑かけすみません、単純にタスクバーにタイトルバーを表示させずにウィンドウの追加をする方法はありますか?
525デフォルトの名無しさん:2008/02/07(木) 02:35:29
HSP付属のガイドに

#define 新規名称 元名称 [新規名称を登録する]

新しい別名(エイリアス)を追加するためのものです。 HSPの従来ある命令の名前を、別な名前でも使用できるようになります。新規名称は、予約されている命令語や変数名と重ならない20文字以内の、スペースを含まない英文字列でなければなりません。


とあるけど、別に英文字じゃなくて使えるよね?
英文字じゃないと場合によってエラーが起きたりするのかな?
526デフォルトの名無しさん:2008/02/07(木) 12:40:32
mes aaa+":"+bbb
みたいに書くとちゃんと表示されず、
mes ""+aaa+":"+bbb
みたいに書くとちゃんとできるんだが仕様?
527デフォルトの名無しさん:2008/02/07(木) 12:43:49
変数の宣言はちゃんとしろやゴラァ

っていうHSPの中の人からの愚痴です。
528デフォルトの名無しさん:2008/02/07(木) 13:37:52
instrで"["とか"]"は検索できないんでしょうか。全然感知してくれません。
529デフォルトの名無しさん:2008/02/07(木) 15:10:16
>>527
変数の宣言って?
一応、
aaa = "あいうえお"
bbb = 777
みたいにはしてるよ。
530デフォルトの名無しさん:2008/02/07(木) 15:15:51
>>524
>>496,498,506

試せよ。
531デフォルトの名無しさん:2008/02/07(木) 15:30:58
>>529
文字列型と数値型を混ぜる時はどっちに合わせるか指定しろって事

数値に合わせるなら
mes aaa+":"+bbbなら":"も数値として扱われるし
文字列にしたいならmes str(aaa)+":"+str(bbb)としろ、と。
最初に来るaaaが文字列型なら文字列に合わせて丸められるし
数値型なら全て数値型に丸められる

aaa="あいうえお":bbb=777
mes aaa+":"+bbb

なら、あいうえお:777と表示されるし
mes bbb+":"+aaaなら777と表示される

型を混ぜる時はどっちかに決めろって事。
532デフォルトの名無しさん:2008/02/07(木) 15:41:04
>>531
あ、なるほどー。
Thanks!
533デフォルトの名無しさん:2008/02/07(木) 16:06:15
>>531
文字列にしたいならmes str(aaa)+":"+str(bbb)としろ、と。

自分はそういう時、mes ""+aaa+":"+bbb にしてるけど、これでも問題ない?
534デフォルトの名無しさん:2008/02/07(木) 16:11:58
>>533
aaa、bbbの型を間違えて嵌らなければ別にいいんじゃね?
俺は頭弱いからそういう使い方はしないけど
535デフォルトの名無しさん:2008/02/07(木) 18:29:51
HSPって、

if a==b { 処理1 }
else if a==c { 処理2 }
else {処理3}

みたいな制御構文は用意されてないの?


if a==b { 処理1 }
else {
if a==c { 処理2 }
else { 処理3 } }

って記述しなきゃダメだったりする?
536デフォルトの名無しさん:2008/02/07(木) 19:15:06
switch a
 case b
   処理1
 swbreak
 case c
   処理2
 swbreak
 case default
   処理3
 swbreak
swend

こう?
537デフォルトの名無しさん:2008/02/07(木) 19:30:44
>>536
switch文もあるのか。
でも、a<b とか指定したり
if a==b {} : else if c=d {}
みたいなことやったりは出来ないよね?
538デフォルトの名無しさん:2008/02/07(木) 19:38:17
どうしてもHSPで、って事なら
事前に数値を加工してswitchで振り分け
とかになるんじゃないかな

今の所、自分がそういう必要のある場面に出くわさないから良くわかんないや
539デフォルトの名無しさん:2008/02/07(木) 20:40:41
>>507
モジュール使えば?
#module
#deffunc nobr str msg
p = ginfo_cx, ginfo_cy
mes msg
pos p(0)+ginfo_mesx, p(1)
return
#global
repeat 5
nobr str(cnt)
loop
stop

>>537
if a==b { mes "a==b" } else : if a<b { mes "a<b" } else { mes "a>b" }
540デフォルトの名無しさん:2008/02/07(木) 20:42:22
書いた後に気づいたけど
case defaultっておかしいよな
誰も突っ込まないけど
541デフォルトの名無しさん:2008/02/07(木) 20:58:16
そういや、HSPのswitchは

switch i
default
swbreak
case 1
swbreak
case 3
swbreak;
case 5
swbreak;
swend

こういう書き方すると、全く機能しないんだよな。
全部defaultになるというw
542デフォルトの名無しさん:2008/02/07(木) 20:59:36
>524
既に答えが出てるだろ。あれ以上簡単にならねーよ。
543デフォルトの名無しさん:2008/02/07(木) 21:08:24
>>541
上から順番に評価するからそうだね
544デフォルトの名無しさん:2008/02/07(木) 21:16:20
>>535
#define elseif else:if
これで
if 条件1{
}elseif 条件2{
}elseif 条件3{
}
って書き方が出来るってどこかで聞いたぞ
545デフォルトの名無しさん:2008/02/07(木) 22:19:40
>544
まだそんな仕様なんだな。HSPは。
546デフォルトの名無しさん:2008/02/07(木) 22:56:07
なんでデフォルトでelse ifが用意されてないんだろ。
他の言語ならどれもあるのにね
547デフォルトの名無しさん:2008/02/07(木) 23:01:56
>500
ふと思ったが、お前が使ったサンプルというのは、
commonフォルダに入ってる「mod_menu.as」の事か?
だったら、その中の
#uselib "user32.dll"
#func global CreateMenu "CreateMenu"
#func global CreatePopupMenu "CreatePopupMenu"
#func global AppendMenu "AppendMenuA" int, int, int, str
#func global SetMenu "SetMenu" int, int
#func global DrawMenuBar "DrawMenuBar" int
#func global PostMessage "PostMessageA" int, int, sptr, sptr
を消せば、>>496,498,506が使えるんじゃねーの?
548デフォルトの名無しさん:2008/02/08(金) 18:28:18
>>545-546

elseif (VBとか)

else if (Cとか)

else:if (HSP)

どれも違わないと思うのは俺だけか
549デフォルトの名無しさん:2008/02/08(金) 18:30:06
>>548
else:if
   endif
endif

HSPしらないけどこうなっちゃわない?
550デフォルトの名無しさん:2008/02/08(金) 18:32:43
HSPにはendifが無い件

プリプロセッサ命令ならあるけど。
551デフォルトの名無しさん:2008/02/08(金) 18:34:10
>>549
いんや、普通にこう書けるんよ (HSP3な)

if A {
   aaa
} else:if B {
   bbb
} else:if C {
   ccc
} else:if D {
   ddd
}
552デフォルトの名無しさん:2008/02/08(金) 18:41:45
俺は一応、ケミ9カルとか、電磁方程式とかわかっているからOK
553デフォルトの名無しさん:2008/02/08(金) 18:42:44
/* main.hsp */
 gosub *draw
 stop

 *draw
  mes "test"
 return

上記のようなプログラムで、関数を別ファイルに移したいのですが、
main.hspにはどう記述すればいいですか?
#include でdraw.hspを読み込ませると、いきなり*drawを実行してしまいます。

/* draw.hsp */
 *draw
  mes "test"
 return
554デフォルトの名無しさん:2008/02/08(金) 18:46:05
>>553
gosubで飛ばせるなら#includeをmain.hspのケツに突っ込めばモウマンタイ
*drawの前にstop入れとくとmainから隔離出来てグー
先頭に#include入れたければ#deffunc使うとグー
555デフォルトの名無しさん:2008/02/08(金) 18:50:32
>>554
どうも、おしりに入れるやり方が一番早くていい感じです
ありがとうございましたm(_ _)m
556デフォルトの名無しさん:2008/02/08(金) 19:17:59
Temporary Internet Filesに入っているjpgファイルの一覧を表示したいのですが
sdim list, 256
chdir "C:\\Documents and Settings\\user\\Local Settings\\Temporary Internet Files"
dirlist list,"*.jpg",0
font "", 10
mes list
とやると何も表示されません
jpgを*にするとContent.IE5、desktop.ini、temp.dmfの3つしか表示されずうまくいきません
何が原因なんでしょうか
またフォルダ内のデータを他のフォルダに移動させるにはどうしたらいいでしょうか
557デフォルトの名無しさん:2008/02/08(金) 19:22:01
if a==b : 処理
else : 処理
とやるとエラーになるのですが仕様ですか?
558デフォルトの名無しさん:2008/02/08(金) 19:36:01
getkey命令で、ハイフンを取得したいのですが値はいくつに設定すればいいのでしょうか。
調べてもなぜか出てこないので質問しました。
559デフォルトの名無しさん:2008/02/08(金) 19:37:11
>>557
はい
560デフォルトの名無しさん:2008/02/08(金) 19:37:44
>>556
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1313048593

>>557
if a==b {
 処理
} else {
 処理
}

こう書きます
561デフォルトの名無しさん:2008/02/08(金) 19:40:13 BE:225769853-2BP(111)
562デフォルトの名無しさん:2008/02/08(金) 19:44:24
>>558
#define WM_KEYDOWN 0x0100
oncmd gosub *check,WM_KEYDOWN
repeat
await 1
loop
stop
*check
mes str(wparam)+"が押された"
return

↑のスクリプトで好きなキーを押せば対応するキーコードが出ます。
テンキーのハイフンは109、メインキーのハイフンは189です。
563デフォルトの名無しさん:2008/02/08(金) 19:53:42
>>561
書いてあるサイトもあるのですね。
失礼しました。

>>562
そのようなスクリプトも作れるのですね。
これから使わせて頂きます。


初心者な質問にわざわざ答えてくださってありがとうございました。
564デフォルトの名無しさん:2008/02/10(日) 01:59:04
以下のページのスクロールバー追加サンプルを試していたんですが
ttp://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200511/05110003.txt

画像を上下に縮小すると、画像の右端に重なる形で縦バーが追加されます。
画像と重ならないようにバーを付ける方法はないでしょうか。
565デフォルトの名無しさん:2008/02/10(日) 02:40:44
スクロールバーが表示されるタイミングでスクロールバーの分だけ
ウィンドウのサイズを横、又は縦に広げる。

スクリーン初期化時に決めたサイズ以上には大きく出来ないので
大きめのサイズで初期化してwidth命令で小さくしておくとイイかな。
566デフォルトの名無しさん:2008/02/10(日) 04:41:10
左ドラッグでウィンドウ移動できるようにした時、
ウィンドウへのファイルのドラッグ&ドロップした時ウィンドウが移動してしまうのは回避不可?
もちろん処理はウィンドウがアクティブの時に限定してるけど、
ファイルをドラッグしてる間ってアクティブ解除されないし…
567デフォルトの名無しさん:2008/02/10(日) 07:19:46
>>566
どういう方法で左ドラッグでウィンドウ移動できるようにしたんだ?
フツーに組めばそういうことにはならない気がするが。

#include "user32.as"
#include "shell32.as"
onclick gosub *a
DragAcceptFiles hwnd, 1
stop

*a
ReleaseCapture
sendmsg hwnd, 0xA1, 0x02, 0
return
568デフォルトの名無しさん:2008/02/10(日) 16:48:45
>>565
なるほど。ありがとうございます。
569デフォルトの名無しさん:2008/02/10(日) 18:22:51
>>567
ありがと!getkey判定でscreen命令をループさせてたよ。
動くようになったけど、たまにドラッグ離してるのに移動続いたりする。
もう少し様子見ます。
570デフォルトの名無しさん:2008/02/10(日) 22:31:24
#includeってどこでも.asが拡張子のファイルを対象にしてるけどなんで?
別にあえてasにしなくてもいいよね?.hspでも.txtでも。

#include命令使いたい(今まで一つのファイルで全部やってた・・・)んだけど
普通につくった.hspのファイルを拡張子だけ勝手に.asに変えてから使った方がいいのかな?
571デフォルトの名無しさん:2008/02/10(日) 22:36:24
ソースの#includeを書いた場所にファイルを差し込むだけなので
別にasだろうがhspだろうがtxtだろうが好きに汁
572デフォルトの名無しさん:2008/02/10(日) 23:39:50
.asは"HSP header"って位置づけ
573デフォルトの名無しさん:2008/02/11(月) 03:55:03
oncmdってウィンドウごとに指定するのに
oncmd 0で全ウィンドウの割り込みが停止するのはバグですかね?
574デフォルトの名無しさん:2008/02/11(月) 18:02:49
スクリプトエディタ上のフォントカラーの話なんだが、
たとえばemesみたいな、インクルードして始めて使えるような命令を、
標準命令と同じように変色させることはできるのか?
575デフォルトの名無しさん:2008/02/11(月) 18:06:54
>>574
今のところ無理。エディタの設定ダイアログを開いてみそ。
576デフォルトの名無しさん:2008/02/11(月) 18:28:19
そうか、色変えは無理か
少し残念だが、他言語ではこれが普通なんだよな……早急な解答dクス
577デフォルトの名無しさん:2008/02/11(月) 18:39:10
HSPでUTF-16を扱いたい時で
外部DLLやllmodを使わずに処理する場合に参考になるサイトとか無い?
578デフォルトの名無しさん:2008/02/12(火) 16:38:32
HSPでmixiいじったことある人居ませんか?
perlを使ってるせいで全然上手くいかない・・・
579デフォルトの名無しさん:2008/02/13(水) 00:43:32
HSPで作ったソフトで、メインループ内でredrawをしない場合
作ったソフトの上で別のウィンドウを動かすと白い部分が残ってしまいます。
redrawをループ内で回せばいいんですが、ループで何かが起きてるのか
何故か同時に起動している別のソフトのフレームレートが落ちてしまいます。
redrawを止めると元に戻ります。

タイマー使って定期的にredrawする以外に
ウィンドウの描画時にコレを使うと勝手に書き換えるよ
みたいなのってないですか?

ウィンドウ自体は普通に初期化してsyscolorで塗りつぶし
各種オブジェクトをHSPから設置しているだけです。
580デフォルトの名無しさん:2008/02/13(水) 07:45:39
>>579
残念。
もう少し日本語を上手く使えたのなら…。
581デフォルトの名無しさん:2008/02/13(水) 12:35:18
>>579
勘だけど、PAINTメッセージがらみでそんなことがあったような。
582デフォルトの名無しさん:2008/02/13(水) 15:45:22
タスクバーに表示されるタイトルバーの内容が更新されても、
マウスでクリックしないとなかなか反映されないのですがXPの仕様?
583デフォルトの名無しさん:2008/02/13(水) 16:14:52
>>582
Title "test1"
await 5000
mes "test2"
Title "Test2"

即時反映されますけど。
こういう事じゃないのかな?
584デフォルトの名無しさん:2008/02/13(水) 17:40:11
>>579
ループにwait入れてるか?
waitを大きく取るかWM_PAINT掴まえてそこでredrawしてみるしかないなぁ。
つか常に再描画するんなら重くなって然りだ。

”ループで何かが起きてるのか”もわからんで解決などありえん。


ゲーム作ってんなら「他のソフトのことなど知るか」と割り切れ。
ツールなら物にも依るが、なるべくループ使うな。
585デフォルトの名無しさん:2008/02/13(水) 18:54:24
>>584
>WM_PAINT掴まえて
あぁ、なるほど。
こういう事も出来るのか。
参考になりました。dクス。
586デフォルトの名無しさん:2008/02/13(水) 20:09:20
>>WM_PAINT掴まえて 
>あぁ、なるほど。

あんな質問しててこれがで理解したのか!?w 
587デフォルトの名無しさん:2008/02/13(水) 21:40:18
>>586
不思議だったのは
redrawが入ってるループだと何故か他のアプリに影響が出て、外すと影響が消える。
影響だけを考えると無い方がいいんだろうけど
そうするとウゥンドウの表示が乱れて気分的によろしくない。

ので、何か他の手段を、という事だったんで
メッセージ掴まえてredrawさせれば?という
解決への道筋を教えてもらえたので大変参考になった、と。
メインループでredrawを回さない分、意味不明なアプリへの影響も
原理的には無いわけで、これでダメなら他の部分が悪さしてるんだな、と。

メッセージ掴まえてredrawさせれば果たして上手くいくかは別問題ですが。

ちなみに、メインループでredrawさせても使用率は0%-1%で変化ナシ。
そこら辺の『wait入れてないんじゃね?』なレベルでは無いです。
588デフォルトの名無しさん:2008/02/13(水) 22:01:08
dim key
dim a
repeat
stick key,1+2+4+8
if key&1 and a=0 : end
if key&2 and a=0 : end
wait 5
loop

←を押せば終了するのに↑押しても終了されないのは何故ですか?
589デフォルトの名無しさん:2008/02/13(水) 22:17:27
>>588
(key&2)が1(真)にならないから

dim key
dim a
repeat
stick key,1+2+4+8
if key&1 and a=0 : end
if (key&2)>>1 and a=0 : end
wait 5
loop

こうかけば1になるから↑押しても終了するようになる。
でも面倒だから普通は↓こう書くか別変数使ってスイッチで分けない?

dim key
dim a
repeat
stick key,1+2+4+8
if a=0 {
if (key&1) :pos 0,0:mes "←"
if (key&2) :pos 0,0:mes "↑"
if (key&4) :pos 0,0:mes "→"
if (key&8) :pos 0,0:mes "↓"
}
await 5
cls
loop
590588:2008/02/14(木) 00:46:49
>>589
レスありがとうございます
↓の書き方にしてみます

まだ分からないところがあるんですが
and a=0をつけるとkey&2が真にならないのは何故なんでしょうか?
それと、(key&2)>>1という書き方を知らないんですが>>1ってどういう意味なんでしょうか?
591デフォルトの名無しさん:2008/02/14(木) 01:11:47
>>590
if文の基本は、ifに続く条件が真か偽かになります。a=0はaが0なら真、それ以外なら偽になります。
また、HSPや他の言語でもそうですが、真=1 偽=0として扱われます。
これを踏まえて、最初の条件を見ると、[ Key&1 and a=0 ]とあります。
人間にとっては10進数が基本ですが、PCにとっては2進数が基本なので
Keyという変数から0ビット以外をマスクして取り出す、という風に解釈します。
仮にKeyが0ならば(←キーは押していない)PCからは 0000 0000 0000 0000と0が16個ある状態になります。
これと10進数でいう1とを比べて第0ビットを取り出すと0になります。
0000 0000 0000 0000 ->変数Keyの中身
0000 0000 0000 0001 ->マスク
-------------------
0000 0000 0000 0000 ->10進数では0
結果は0になり偽となってif文では条件は成立していないと(0=偽だから)みなされます。
キーボードの↑を押すとKeyは1になります。
0000 0000 0000 0001 ->変数Keyの中身
0000 0000 0000 0001 ->マスク
-------------------
0000 0000 0000 0001 ->10進数では1
結果は1となり真となります。if文では条件が成立したと(1=真だから)みなされます。

同様に2(↑キー)を評価すると
0000 0000 0000 0010 ->変数Keyの中身
0000 0000 0000 0010 ->マスク
-------------------
0000 0000 0000 0010 ->10進数では2
となり真とは判断されずに、if文は成立していないとみなされます。
ので、こちらの思惑に沿わない処理が行われてしまいます。

[>>1]とはビットシフトをさせています。この場合、右に1ビットずらしています。
[0000 0000 0000 0010]を右に1ビットずらすと[0000 0000 0000 0001]になります。
結果が[2]な2進数を右にシフトする事で[1]に変換して真になるようにしてるんです。
でも普通はこんな書き方はしません。
592デフォルトの名無しさん:2008/02/14(木) 01:15:18
横から見ててあれーと思ってたけど
key&2は正否じゃなくて演算結果の2にしかならないんだな
>>*や<<*はシフト演算つって数字の数だけ2で割る/掛ける
593デフォルトの名無しさん:2008/02/14(木) 01:16:20
訂正
×でも普通はこんな書き方はしません。
○でも普通はこんなシフトさせてのキー判定はしません。
594588:2008/02/14(木) 01:16:20
>>591
詳しくありがとうございました
分かった気がします!
595588:2008/02/14(木) 01:17:37
>>592
ありがとうございました
596デフォルトの名無しさん:2008/02/14(木) 03:16:44
>>591
結論はあってるけど途中経過がおかしい
C++やHSPでは0が偽、0以外は全て真と扱われる。
比較演算子は比較の結果が真のとき1を返すが、1以外の値でも0でなければ真。
HSPでは&も&&もandも全てビットごとの論理積なので、
keyが2でaが0の時、((Key&2) and (a=0))は、((2) and (1))になって最終的に0になるから偽。
ビットごとの論理積では( 真 & 真 )が必ずしも真にはならない。

バグの原因は数値をそのまま論理値として使ってるせいだから、↓のように一度比較演算子を通すといい
if ((key&1) != 0) and (a=0) : end
if ((key&2) != 0) and (a=0) : end
597デフォルトの名無しさん:2008/02/14(木) 11:38:10
>>596
>ビットごとの論理積では( 真 & 真 )が必ずしも真にはならない。
なるほど。
598デフォルトの名無しさん:2008/02/14(木) 15:22:14
>>583
ウィンドウのタイトルバーは即座に更新されるけど、画面したのタスクバーの中身は古いままに。
599デフォルトの名無しさん:2008/02/14(木) 15:26:21
>>598
コード試してみた?
ウィンドウタイトルもタスクバーのタイトルも5秒後に同時に更新されるけど。
600デフォルトの名無しさん:2008/02/15(金) 09:09:24
>596
こうすりゃ良いんじゃね?
#undef and
#undef or
#define and )!0 & 0!(
#define or )!0 | 0!(

if (key&1 and a=0) : mes "a"
if (key&2 and a=0) : mes "b"

欠点として、ifの条件式をカッコで囲まなければならんけど、
Cと同じと思えば気にならんし。
601デフォルトの名無しさん:2008/02/15(金) 16:34:04
>>598
0.1秒ごととかの更新でもまずついていけない。諦めるべし。
602デフォルトの名無しさん:2008/02/15(金) 16:43:39
ツリービューの選択されているアイテムのテキストを取得するにはどうすればいい?
選択アイテムのハンドルは取得出来るけど、テキストが取得出来ん。
603デフォルトの名無しさん:2008/02/15(金) 17:28:17
以前スルーされましたが、MCIでFLV形式の動画を再生させる方法はありますか?
ファイルをplay.mpgとかでコピーすれば再生可能ですが開くまでに結構時間が…
604デフォルトの名無しさん:2008/02/15(金) 17:36:45
>>602 ググる
>>603 そういうコーディック入れる。スレ違い
605デフォルトの名無しさん:2008/02/15(金) 18:28:22
>>604
質問スレでそういう答え方って意味ないよな
分からないんなら黙ってろと
606デフォルトの名無しさん:2008/02/15(金) 18:48:15
>603
リネームして開けば?
607デフォルトの名無しさん:2008/02/16(土) 05:04:58
>>605
codec入れたからMPGに拡張子擬装して再生出来るんじゃん。
608デフォルトの名無しさん:2008/02/16(土) 05:05:55
>>604の間違い。
609デフォルトの名無しさん:2008/02/16(土) 21:14:43
お尻がムズムズしてきた
610デフォルトの名無しさん:2008/02/16(土) 22:51:15
>>609
じゃ、自己解決ゥ!
611デフォルトの名無しさん:2008/02/18(月) 18:41:33
蟯虫検査をせんとな
612デフォルトの名無しさん:2008/02/19(火) 08:56:41
画像の読み込みにbuffer使うかどうかの判定はどの辺りですればいいかな?
今まで全部bufferで読み込んでからやってきたんだけど、それでいいのかどうか。
今つくってるスクリプトでは数百枚は画像読み込むんだけど、1度の起動で1,2回使われるか
どうかって画像は直接読み込んだ方がいいんだろか?
逆に、数百もをbufferで最初に全部読み込んでおくデメリットはある?
メモリずっと食い続けるとか、その読み込み時だけ時間かかるだけで他はない、とか。
613デフォルトの名無しさん:2008/02/19(火) 16:46:38
最後の一行の通りではあるが、何を作ってるかにも依る。
その画像をユーザーが指定出来るならば少し考えた方が良い。
614デフォルトの名無しさん:2008/02/19(火) 21:58:31
>>612
数百は多いな、bufferをキャッシュにしたら?
50枚だけbufferを作って、新たに参照された画像はbufferに読み込む
一番長く参照されなかった画像はbufferから破棄、と
何を書いてるかによるが、工夫すれば楽しいぞ
615デフォルトの名無しさん:2008/02/19(火) 23:18:32
>612
アドベンチャーゲームみたいなもんを作ってるわけか?
頻繁に使用する画像ならともかく、
背景画とかなら、使用するたびに呼び出せば良いだろ。
616デフォルトの名無しさん:2008/02/20(水) 01:53:28
HSP4まだ?
617デフォルトの名無しさん:2008/02/20(水) 01:54:29
HSP4には是非とも構造体のサポートを頼む
618デフォルトの名無しさん:2008/02/20(水) 03:25:46
今日から3の勉強始めたばっかりなのにフヒィ!
619デフォルトの名無しさん:2008/02/20(水) 05:49:20
HSP3のベータ版って通常版とどのぐらい違うんでしょ?
かいつまんでで良いので
620デフォルトの名無しさん:2008/02/20(水) 07:47:59
>>619
大阪と東京くらいの違いです。
621デフォルトの名無しさん:2008/02/20(水) 15:32:52
メルアド入力無しでもDLできるのは良いとして
HSP3.1のアーカイブ版って無いのか('A`)
622デフォルトの名無しさん:2008/02/20(水) 18:02:44
東京と大阪ならさほど違わんな。
623デフォルトの名無しさん:2008/02/20(水) 18:04:59
全然関係ないけど大阪の人は本当に橋本でいいのか?
624デフォルトの名無しさん:2008/02/20(水) 21:15:12
>622
そういうこと。ベータ版も正式版とそんなに変わらんって事さ。
625デフォルトの名無しさん:2008/02/20(水) 21:50:14
>>621
あるよ
626デフォルトの名無しさん:2008/02/20(水) 22:27:05
>>622 >>624
大阪弁でおk
627デフォルトの名無しさん:2008/02/21(木) 06:20:13
インタプリタやめてくれよ
628デフォルトの名無しさん:2008/02/21(木) 07:11:15
てかHSPのコンパイラって無いのか
629612:2008/02/21(木) 15:35:31
レスありがとう。遅くなってスンマソ。
>>613
つくってるのはゲーム。アクションやシューティングみたいなのじゃないし
RPGのマップみたいなのもない。フィールドマップのないRPGみたいな感じかな。

>>614
なるほどー。それは思いつかなかった。

>>615
ゲーム性のあるアドベンチャーみたいなもんかもしれない。
下記に纏めてあるけど、その直接読み込むと「どうなるのか」を理解してないんだ・・・
HSPに関しての説明で、「画像読み込みはbuffer使ってgcopyで!」ってのしか見た事なくて。
仮に頻繁に使うのだけbufferで、他picloadでというスクリプト組んで、自分の環境で問題なくても
他の人の環境だとやたら負荷がかかって問題あったりするのかなぁ?とか。

んで。
picloadで直接読み込む場合のデメリットを詳しく知りたい。
picloadで直接読み込むのも、buffer画面に一旦読み込むのも負荷は同じだよね?
アクションゲームなんかの場合にこれだと、カクカクしそう、くらいには想像できるんだけど・・・
同じなら結構な数を直接読み込む事で済ませられそう。
630デフォルトの名無しさん:2008/02/21(木) 16:10:37
>>629
以下のコードでscreenとbufferに対するpicloadの負荷の掛かり具合を調べた。結果は
Screen > 32ms/Picload
Buffer > 26ms/Picload
この差をどう受け止めるかは作るソフトによって変わるので何とも言えんが
bufferに一旦読み込むのも負荷は同じってのは改めましょう。
#uselib "WINMM.DLL"
#func timeGetTime "timeGetTime"
dim Time,4
screen 0,640,480 : buffer 1,640,480
gsel 0 : title "Now Screen testing"
timeGetTime : Time(0) = stat
for i,0,100
picload "Test.jpg"
next
timeGetTime : Time(1) = stat
title "Now Buffer testing"
gsel 1
timeGetTime : Time(2) = stat
for i,0,100
picload "Test.jpg"
next
timeGetTime : Time(3) = stat
title "Finished"
gsel 0 : cls
time1 = (Time(1)-Time(0))/100
time2 = (Time(3)-Time(2))/100
mes "Result"
mes "Screen Picload " + str(time1)
mes "Buffer Picload " + str(time2)
631デフォルトの名無しさん:2008/02/23(土) 17:11:24
screenへのpicloadは、読み込み+描画が行われているのに対し、
bufferへのpicloadは、読み込みのみなので、同等の動作にしようと思ったら、
画像をウィンドウにgcopy等で転送する手間がかかるな。
632デフォルトの名無しさん:2008/02/23(土) 20:47:52
今日HSPを始めた者なんですが、正直、まずどういうことから手がけていいのか分かりません。
そもそもプログラミング自体、未経験も当然なレベルなんです。
参考になるサイトとかってないですかね?
633デフォルトの名無しさん:2008/02/23(土) 20:59:52
普通はHellowWorldからだろうけど
正直、何がしたいかによる。
634デフォルトの名無しさん:2008/02/23(土) 23:56:57
>>632
やりたいことを、やりたいとおりにやればいいのさ。
敷かれたレールの上しか歩けないのなら、別のことをやった方がいい。
635デフォルトの名無しさん:2008/02/24(日) 01:47:23
14000行程度のテキストをnoteloadすると
1800行程度しか読み込んでくれません。
同じテキストをエディタで読み込んでも同様です。

何か似たような現象知りません?
636635:2008/02/24(日) 01:54:00
自己解決
改行コードに問題アリでした。

スレ汚しスマソ
637デフォルトの名無しさん:2008/02/24(日) 07:22:14
>>634
くだらないレスするなよ
638デフォルトの名無しさん:2008/02/24(日) 16:32:02
>>632
マニュアルの目次にある「初心者のためのHSP入門」をクリック!
639デフォルトの名無しさん:2008/03/01(土) 07:49:41
初歩的な質問ですまん。
emes命令を使いたくて四苦八苦しているんだが、
どうしてもエラー6が出てしまう。
#include "hsp3util.as"
text 100
emes "あいうえお"

エラーで表示される行数は書いてもいない行番号。
モジュールはcommonファイルに入っているし、
作業ディレクトリに入れてみてもダメだった。
ヒントでもいいから教えてくれorz
640デフォルトの名無しさん:2008/03/01(土) 10:26:19
HSP→HSP拡張マクロを使用する
641デフォルトの名無しさん:2008/03/01(土) 13:09:47
あ(´д`;)
どうりで関数化された命令が使えないと…
迅速なレスありがとう、本当に助かった。
642デフォルトの名無しさん:2008/03/02(日) 20:11:46
初歩的な質問で申し訳ありません。
単純な割り算を計算させようとしているのですが小数点以下が計算されません。
仕様なのはわかるのですが小数点以下まで表示させる方法はないのでしょうか?
何卒お願いします・・・
643デフォルトの名無しさん:2008/03/02(日) 20:19:22
>>642
a = double (1) / 3

これで1÷3が小数点付きで計算されます
644デフォルトの名無しさん:2008/03/02(日) 20:22:39
>>643
迅速なレスありがとうございます。
大変助かりました。
本当にありがとうございます。
645デフォルトの名無しさん:2008/03/05(水) 20:13:03
HSPを入手したいのですが
オフィシャルサイトにはインストーラ形式しか見当たらず当惑してます
zip版はどこにあるのでしょうか?
646デフォルトの名無しさん:2008/03/05(水) 21:21:47
647デフォルトの名無しさん:2008/03/05(水) 21:57:56
>>646
ありがとうございました!
648デフォルトの名無しさん:2008/03/08(土) 01:10:45
質問させてください。

与えられた数値の、10の位以下を0にしたいのです。
例) 1923 -> 1900 230 ->200

アルゴリズムを考えてみましたが、思いつきません。
お知恵を貸してください。
649デフォルトの名無しさん:2008/03/08(土) 01:15:57
>>648
a = int ( 1923 / 100 ) * 100
650デフォルトの名無しさん:2008/03/08(土) 01:51:44
b=1923
a=b-b\100

とか
651デフォルトの名無しさん:2008/03/08(土) 02:00:37
10進数のままシフトさせたらどうなるのかな?
と思って試したら普通にビットシフトされててちょっとガッカリ

10進数のままシフトしてくれたら>>2と<<2で出来たのに。

まぁどうでもいいか。
652デフォルトの名無しさん:2008/03/08(土) 11:59:38
>651
お前ビットシフトを理解してないだろ。
653デフォルトの名無しさん:2008/03/08(土) 14:00:24
651はBCD表現の話をしていたんだよ!

Ω ΩΩ <な、なんだってー
654デフォルトの名無しさん:2008/03/08(土) 23:51:58
>>649,650
ありがとうございました。
言われてみると簡単ですねorz
655デフォルトの名無しさん:2008/03/09(日) 11:13:01
いや〜 ひまだねぇ・・・
最近、やっとPSP-2000買っちゃったよ。
656デフォルトの名無しさん:2008/03/10(月) 03:29:57
hsp最近始めました。。。

ボタンを押すと、あらかじめ設定しておいた文字列を
クリップボードにコピーするプログラムを作ってました。
エディタ上から起動すると問題なく動くのですが、コンパイルしたやつから起動すると
内部エラーが発生しました(38)
と言われて動きません。
ソースなどを晒すので、どこがおかしいのか見て下さい。

ttp://academic.meganebu.com/~kurorohome/ms.zip
657デフォルトの名無しさん:2008/03/10(月) 03:36:21
>>656
hspext.dllを実行ファイルと同一の場所に置くか
パスが通った%WINDIR%やSYSTEM32フォルダにおいて実行しましょう。

普通は同梱するけどね。
658デフォルトの名無しさん:2008/03/10(月) 04:06:12
ついでにAPIでクリップボード使えるようにして
hspext.dllを追い出してみたけど、かなりソースが増えるな。

クリップボードって面倒だなぁ。
659デフォルトの名無しさん:2008/03/10(月) 14:01:24
そこで古代技術ですよ

n="あいうえお"
mesbox n,0,0 :mid=stat

objprm mid,n
sendmsg objinfo(mid,2),0xB1,0,-1 ;EM_SETSEL 0xB1
sendmsg objinfo(mid,2),0x301,0,0 ;WM_COPY 0x301
660デフォルトの名無しさん:2008/03/11(火) 20:08:00
古代進おつ!
661デフォルトの名無しさん:2008/03/11(火) 21:31:13
>>657
ありがとうございました。
まさか、dllを同梱するなんて思いませんでした。
「hspext.as」をインクルードしただけで満足してました。
前まで使ってたプログラム言語はコンパイルした時に必要なdllとかコピーされてたので

>>658
APIですか、大変そうですけど頑張ってみます。
実行ファイルを小さくしたいのに、dllとか同梱して増えたら本末転倒ですから///

すいません・・・ネットがあまり繋げない状態で・・・
662デフォルトの名無しさん:2008/03/11(火) 21:40:28
>>661
659のコードを参考にすればAPI使わなくてもAPI叩かなくてもなんとかなるよ。

659のままだとHSP3だと動かないけど。
2.6だと動くのかな?
ヨクワカンネ
663デフォルトの名無しさん:2008/03/11(火) 22:02:21
>>662
うぉー動きました!!!
ありがとうございます。

>>659
ありがとうございました。
コピペしただけなので、これから命令リファレンスみながら勉強させて頂きます。
664661 663:2008/03/11(火) 22:28:29
調べてみました

n="あいうえお" ;変数を設定して
mesbox n,0,0 ;ボックス作って
mid=stat ;IDを取得して
objprm mid,n ;nに設定し直す
sendmsg objinfo(mid,2),0xB1,0,-1 ;EM_SETSEL 0xB1 ;取得したIDの部品の文字列を選択して
sendmsg objinfo(mid,2),0x301,0,0 ;WM_COPY 0x301 ;選択した文字列をコピー

これって、「objprm mid,n」の部分って
必要な時に、文字列を変える処理でいいんですよね?
メッセージボックスを何個も作らないで、これひとつで全部を代用する為に。
665デフォルトの名無しさん:2008/03/11(火) 23:02:31
mesbox n,0,0

mesbox n,100,100
にすればどういう状態なのかを確認出来るよ。
その状態でobjprm mid,nを数値を変えて色々試すといいっす。
666とテテヘつ:2008/03/15(土) 16:50:57
突然ですが。
dialogで二重に発生するソースを教えて。
667デフォルトの名無しさん:2008/03/15(土) 16:54:46
>>666
は?
668デフォルトの名無しさん:2008/03/15(土) 17:00:17
主語
669アブダラ様:2008/03/15(土) 18:07:16
「おおアブダラ様、私は、『ウィンドウを一度で、2個出したい』のです。
 どうか教えてくださいませ。」という事であろう。
素直に言えばいいのじゃ。≫666よ。
小さき者よ。≫666よ。
いつか光が差すであろうぞよ。
精進するのじゃ。

・・・さらばじゃ。≫666よ・・・
670デフォルトの名無しさん:2008/03/15(土) 18:14:51
つ glicoコマンド
671とテテヘつ:2008/03/15(土) 18:19:14
glicoってなぁに?
出来れば、ソースを書いてくんださい。
672デフォルトの名無しさん:2008/03/15(土) 18:26:46
#module
#uselib "USER32.DLL"
#func MessageBox "MessageBoxA" int , int , int , int
#deffunc doubledialog str mes1 , str mes2
str1 = mes1 : str2 = mes2
pstr1 = varptr( str1 )
pstr2 = varptr( str2 )
MessageBox hwnd , pstr1 , 0 , 0
MessageBox hwnd , pstr2 , 0 , 0
return
#global

doubledialog "Test1","Test2"


こうか?w
673デフォルトの名無しさん:2008/03/15(土) 18:37:49
pokeとかpeekってc言語で表現するにはどうすればいいですか?
674デフォルトの名無しさん:2008/03/15(土) 18:42:55
ポインタ使って好きに書き換えるよろし
675デフォルトの名無しさん:2008/03/15(土) 18:50:34
ありがとう
676デフォルトの名無しさん:2008/03/16(日) 03:34:16
HSPは簡単とか見かけたので挑戦してるんですが難しいです
3日でシューティング作ったとか信じられないです
私の頭が悪いだけでしょうか
時間の無駄なので諦めた方がいいでしょうか?
677デフォルトの名無しさん:2008/03/16(日) 03:50:41
プログラミングの知識が全く無い状態では
参考サイトなり参考書籍なりを見ながらでないと
天賦の才能が無い限り無理。

簡単な初心者向けの解説サイトや書籍等があるので
そこを参考にしつつ少しずつ自分のものにすればおk

人が3日でシューティングが作れたとか
他人と比較するのは意味ないっす。
あくまでも自分が楽しめるかどうか、です。

今、HSPなりC++なりをバリバリ使える人も
最初はHellowWorldから始めたもんす。
678あみぢ厨:2008/03/16(日) 21:15:52
ところでシューティングゲームって、
今となっては、どんなのを作ったら喜ばれるのだろうか・・・。

うーむ。
679デフォルトの名無しさん:2008/03/16(日) 22:08:31
弾幕ゲーかね
個人的には面白い横スクロールが見たいけど
680デフォルトの名無しさん:2008/03/16(日) 22:15:25
1. 硬派なシューティング
  既存のパクリではない仕様で、
  難易度はシューター向けにチューン

2. キャラゲー
  同人ならパロでもいいが、オリジナルでもいい
  難易度はヌルめなものからシューター向けのものまで選べると良い

3. リスペクト
  既存のシューティングを元にした同人作品
  元ネタを知ってるとニヤっとするネタを仕込む

あるいはこれらの掛け合わせ。
681あみぢ厨:2008/03/16(日) 23:04:10
・柔派 萌えキャラいっぱい 女の子 ファンタジー
・ストーリー、絵(特にキャラ絵)、音楽、世界観 重視
・システムはシンプル、アクション寄り、ガシガシ進んでいく
・多少の被弾は気にしない HP/MP 制
・スコアとかオマケに過ぎない。

こんなSTGを構想中なのですが、ちょっと考えを改めた方がいいですねぇ。
うーむ。時間が無限に欲しいぜ。

え? もう休み終わり? orz orz orz
682デフォルトの名無しさん:2008/03/16(日) 23:08:44
なんで?自分の作りたいもの作ればいいんじゃね?
683あみぢ厨:2008/03/16(日) 23:23:23
自分の作りたいものを作る。
そうですねー。それが第一ですね!


第二はですね・・・。
ぶっちゃけると、知名度がある程度欲しいのです。
「ちやほやされたひ」ってやつ?

はるか大昔2chの某スレで、何度か自作ゲーの流れになった時は
脳汁が止まらなかったのよ。
大して能力が無い俺でも、誰かが話題にしてくれるのですよ。
頑張れば!

なんか俺、死んだほうがいいな。
寿命あとどのぐらいかな?
684デフォルトの名無しさん:2008/03/16(日) 23:37:17
喜ばれるものを作るのって別に悪いことじゃないと思うぜ。
685デフォルトの名無しさん:2008/03/16(日) 23:41:26
気持ちは分かる。
作ったものが評価されると嬉しいもんだしね。

でも、例えば、最初から富士山の頂上に飛んでいこうとしてもそれは無理なわけで
地道に一合目からステップを踏んでいかないとダメなわけですよ。普通の人は。
ヘリとかで頂上に飛んでけばいいジャン、みたいに思われると思いますが
それは限られた、天賦の才能がある人に限られる訳で。

とりあえずHSPで作るんなら、不恰好なコードで構わないし
画面に絵や文字を表示するだけの単純なもので構わないので
何か作ってみて、HSPとプログラミングに慣れる事が最初の一歩ですよ。
特にHSPは、細かい事をあまり意識せずに作れちゃうので
プログラミング初心者には向いてるんじゃないかな。
686デフォルトの名無しさん:2008/03/17(月) 00:01:22
目的は人それぞれ
商売する目的が「人の役にたつものをつくりたい」という人もいるし
「金儲けがしたい」という人もいる
問題はやるか、や ら な い かだ
687デフォルトの名無しさん:2008/03/17(月) 01:09:47
や ら な い か 

を強調するのヤメレw
688デフォルトの名無しさん:2008/03/17(月) 01:11:09
うほっ!
689デフォルトの名無しさん:2008/03/17(月) 09:43:25
いいボタン!
690デフォルトの名無しさん:2008/03/19(水) 19:24:22
HSPをダウンロードしようと思うんですが
無料ですか?
691デフォルトの名無しさん:2008/03/19(水) 20:33:18
HMemory.dllで変動アドレスは取得できないの?
わざわざうさみみで解析するのつかれたお
692デフォルトの名無しさん:2008/03/19(水) 20:39:02
                    _,ィ、  ,r、__
                ,.ヘー'´  i `´/  `i_
            /ヾ、 ヽ、 i /   /ヽ
              _ィ、〉   > ´ ̄  ̄ ` く  ,ゝ、
          }、 ,>'´        、  ヽ./`ヽ
          ┌! /    /  i 「`i   ヽヽ ヽ   }
            Y     !   | |  l i i   l i  ',__,.ゝ
          ,'     |  | |   !l l   | l  l !
           i   !   |   | |   | j___j |  |i i!
           |i!  l  ,.|‐T丁i!   ハlj, --!`トlノ、||
           | !  !  レ'i´`j    "i´ `iヽ, i ||  _
           | l  |i   iバ__ソ     L__ソ /.ノ |! _ヽ)
           | |  |l  |、//// '  ///// |! |i ヽ)
           !ハ |!  |,ゝ' ´ ̄ ̄ ` く  レy'|!
          __,ノ レ'ヽiハ /             \}'´ ̄ `ヽ、
    ィ´ ̄/    ,べY    取得できるが    Y`i__    \
    〉/    / , 、ヽ  お前の態度が   /_`ヽ\    \
   ,ィ'ん、  / ! '´__ ヽ  気に入らない  /´__,.` ', \   ァ'`
   `ヽ、/ー'   /!   __`ヾ!           レ'´ _,.  !   \ i
    /ー-ィ、 ィ__!  ___`フ         /  ヽ二  /7  _i弋
   /    辷j  !   ヽ      / /    /  / }  j´  〉
    ヽ、   冫 ヽ__ュ_y\    /   /     /ヽヘ/え´   /
     \'´` `}ー-、_,ゝくi ヽ、 ____ ,. イィ_,、  __う'´__/
      , `>ャ,`Yー-‐'^ |ニ=ー-   ー-/  `^7   ,ゝ、ヽ
    ///  l !     |           /    }   / | iハ_j
   く///f´ ̄l/      |          i     y /-、| |
      // | ┌ヽ.     / `ー-='´ _|     /`  | |\
    i l   | ,ゝ,ハ  /         ´,ハ   /〉    レ'   ヽ
693デフォルトの名無しさん:2008/03/19(水) 20:43:05
>>690
読め
694デフォルトの名無しさん:2008/03/19(水) 21:36:41
>>692
私奴の知識では固定アドレスしか書き換えできません
ご教示願います
695デフォルトの名無しさん:2008/03/19(水) 22:15:46
>>693
スマン、フリーウェアだったのか。
さっそくダウンロードしてくるわ。
696デフォルトの名無しさん:2008/03/20(木) 19:09:25
>694
お前には100年かかっても無理。あきらめろ。
697デフォルトの名無しさん:2008/03/21(金) 15:16:19
ソースごちゃごちゃしてきたから、moduleやincludeつかってソース分割してみたんだが、
依存関係とメンテナンス性を勘案して分割するのがかったるい。

特に行番号上の前後関係が難しい。
オブゼクト指向っていうの?みんなはどうやってるんだぜ?
698デフォルトの名無しさん:2008/03/21(金) 18:38:27
ソース分割とオブジェクト指向は関係ないでしょw。手に負えなくなってからあわてても
手遅れのような気がする。

                 ハ_ハ
               ('(゚∀゚∩ 気がする!
                ヽ  〈
                 ヽヽ_)
699デフォルトの名無しさん:2008/03/21(金) 18:54:15
>>698
おしえてよ!!!ぼくの関数達ががからまって解けなくってるよ!!
700デフォルトの名無しさん:2008/03/21(金) 20:03:14
メソッドなら実行行より後にあっても呼び出せるけど
HSPだと関数やらモジュールやらを先に宣言しなくちゃいけないから不便だなー
701デフォルトの名無しさん:2008/03/21(金) 21:55:48
メインループとそれに付随する処理だけメインソースに書いて
それ以外はなるべくgosubで処理するようにする。
で、メインソースの最終行にstopとサブルーチンを纏めたサブソースをincludeする。
関数も一まとめにして別ソースに分けてメインソースの最初の方でincludeする。
定数定義とかAPIとかモジュール宣言も、それぞれ別ソースに一まとめにしてinclude。
処理の流れはメインソース見れば分かるのでとりあえず問題ナシ。

こんな感じで書いてる俺。
702デフォルトの名無しさん:2008/03/21(金) 22:09:20
>>700
行の前後ねー・・それにつきるわ。不便ですよね。
んでメソッドってなに?

>>701
gosubあんま使わない(モジュールにしちゃう)けど、
メインから1階層下の処理郡はgosubでやってみるかな。
703デフォルトの名無しさん:2008/03/21(金) 22:55:46
俺はgosubは変数(名)管理の負担軽減に貢献しないので割り込み時ジャンプ
のためにしか使ってない。

自分の場合、速度やタイミングを考えなくていいソフトしか作ってないので、
モジュールとユーザ定義命令がデフォルト。名前空間を分割しないと、ファイル
分割の効果も半減してしまう。

>>702
>んでメソッドってなに?

他の言語の話でしょ。

ところでdev-MLのあいつ、絶対MLの過疎化助長してるよ。カンベンして欲しい。
704デフォルトの名無しさん:2008/03/22(土) 00:50:20
>697
VC++に乗り換える。HSPはもう捨てなさい。
705353:2008/03/22(土) 22:13:27
aの値によって処理内容を変更しようと思って、ifかswitchのどっちを使うか迷ったんだけど、
処理速度を比較してみたらifのほうが速いっぽい。
この場合ifを使うべき?
#include "Kernel32.as"
repeat 10
GetTickCount:begintime=stat:
repeat 100000
a=rnd(5)
/*
if a=0:b++
if a=1:c++
if a=2:d++
*/
/*
switch a
case 0
b++
swbreak
case 1
c++
swbreak
case 2
d++
swbreak
swend
*/
loop
GetTickCount:endtime=stat:mes (endtime-begintime)
loop
706デフォルトの名無しさん:2008/03/22(土) 22:16:07
名前が353になっていますが気にしないで下さい
707デフォルトの名無しさん:2008/03/22(土) 23:32:16
>>359
>>706
「気にしないでくれ」は、1回だけにしてください!w
708デフォルトの名無しさん:2008/03/22(土) 23:36:29
画像処理とかする訳でもないなら見やすい方で組むべき。

つか、
変数で処理分けするなら on gosub 使った方が速いし見やすい。
ifを増やすと分かる。
709デフォルトの名無しさん:2008/03/23(日) 00:29:15
ifもswitchも中身は同じ。
switch文は実際にはマクロの一種で、コンパイルの前に以下のように置き換えられる。

p1 = a
if ( 0 ) ; p2++
if ( p1 = 0 ) | p2 : b++ : goto *end_switch
if ( p1 = 1 ) | p2 : c++ : goto *end_switch
if ( p1 = 2 ) | p2 : d++ : goto *end_switch
*end_switch

変数2つとラベル1つが無駄に作られる上、余計な処理が増える(特にgoto文)ので
ほとんどの場合単純なif文より遅い。
よって速度を気にするならifを使うべき。
repeatとfor、whileの関係も同じ。
710デフォルトの名無しさん:2008/03/23(日) 13:00:45
質問いいですか? 例えば、以下のようなスクリプトを書いて実行したとき、
onkey gosub *set
repeat
mes "cnt " + cnt
await 3000
loop
*set
return
何もしなければ3秒ごとに"cnt ?"と表示されますが、何かキーを押しっぱなしにすると、
"cnt ?"が待ち時間なしで次々と表示されてしまいます。
これは、await中にキー割り込みが発生して、gosubから戻ってきたとき、
awaitの残り時間が無視されてしまうってことでしょうか?

HSP ver.3.1 os:WindowsXP
711デフォルトの名無しさん:2008/03/23(日) 13:05:12
>>710
無視されるんじゃなくて次の行に処理が移るから
712710:2008/03/23(日) 13:25:16
>>711
レスありがとうございます。
そうなんですかー。そうするとwaitやawaitを使うなら、
onkey, oncmd, onclickなどの命令は使わないほうがいい
ということなんですかね。うーん。
※awaitをwaitにしたり、onkeyをonclickやoncmd(WM_KWYDOWNを指定)
にしても同じような結果になります。
713デフォルトの名無しさん:2008/03/23(日) 13:26:51
>>712
やりたい事が分からないけど
awaitじゃなくWM_TIMERでmes cntを回せば?
714710:2008/03/23(日) 13:36:24
>>713
そうですね、検討してみます。

stick命令で使用できるキーが限定されているので、
onkeyでキーを取得してstick命令にかわるものを作ろうかなと思いました。
715デフォルトの名無しさん:2008/03/23(日) 13:40:07
>>714
キーコード一覧
http://quasiquote.org/hspwiki/HSP%25A4%25CETips:HSP%25A5%25AD%25A1%25BC%25A5%25B3%25A1%25BC%25A5%25C9%25C9%25BD

取得出来ないキーってなかったはずだけど。
716710:2008/03/23(日) 13:59:58
>>715
onkeyでlparamのbit30を調べると、キーが押された瞬間?がわかるので、
getkeyで実現するよりも適切かなと思いました。
getkeyのほうも検討してみます。
717デフォルトの名無しさん:2008/03/23(日) 14:03:59
>>716
押された瞬間なら
oncmd gosub *check,WM_KEYDOWN
でOK。
離された瞬間なら
oncmd gosub *check2,WM_KEYUP
な。
718デフォルトの名無しさん:2008/03/23(日) 14:31:49
入力した英単語の音声(wavファイル)をダウンロードするソフトを作ろうと思って、
hspinetを使ってみようと思いました。
goo辞書から音声ファイルを取り込みたいのですが、
まずは、検索した英単語が載っているページをダウンロードして見ようと思い、下のコードを記述しました。

netinit
neturl "http://dictionary.goo.ne.jp/"
if stat : dialog "ネット接続に失敗しました。" : end
netload "search.php?MT=" + word(英単語1語を格納済み) + "+&kind=ej&mode=0&kwassist=0"
stop

しかし、「エラー:ダウンロードファイルが作成できません。」と表示されてしまい、出来ませんでした。

インターネットに接続するプログラムを作るのは初めてなので、わかりません。
出来ればご指導のほど宜しくお願いいたします。
719デフォルトの名無しさん:2008/03/23(日) 16:25:18
>>708-709
ありがとうございます。onが一番無難のようですね。
720デフォルトの名無しさん:2008/03/23(日) 18:16:31
>>718
netdlname命令で保存ファイル名を指定するんだ!ファイル名に使える文字だけを
使うんだ!
721デフォルトの名無しさん:2008/03/23(日) 21:23:18
HSPで作成されたソフトは
商用、非商用、同人ソフトを問わず、どのような形態での使用も可能です。ただし、違法な行為には使用しないでください。
とあるが、違法な行為ってどういう場合よ。
722デフォルトの名無しさん:2008/03/23(日) 21:29:08
>>721
スピード違反
723デフォルトの名無しさん:2008/03/23(日) 21:30:07
>>721
合法でないこと。
724デフォルトの名無しさん:2008/03/23(日) 21:34:54
無修正エロゲ?
725デフォルトの名無しさん:2008/03/23(日) 22:54:09
まーソフトなんて結局ユーザーの使い方しだいで役に立ったり悪用だったりするからね
アホ役人の考えたコンピュータウィルス処罰の法案では
format d:
というバッチ/コマンド/文字列だけでも違法な可能性があるというから笑える、いつ思い出しても楽しい
726デフォルトの名無しさん:2008/03/23(日) 23:35:48
WM_KEYDOWN / WM_KEYUPはフォーカスがinputにあるとメッセージが来ない。
だからエンターで入力決定とかしたいときはサブクラス化しかないのかー!


とか思ったが普通に onkey 使えばいけるんだよな('A`)
727デフォルトの名無しさん:2008/03/24(月) 00:13:45
>>726
じゃ、自己解決ゥ!
728718:2008/03/24(月) 08:27:52
>>720
レス有難うございした!
うまくいきそうです!!
729デフォルトの名無しさん:2008/03/24(月) 22:20:08
hspdxfix の es_screen で出した画面の解像度が screen 0,x,y で変わることを偶然見つけたんだが
この使い方は正しいのか?
730デフォルトの名無しさん:2008/03/25(火) 12:48:00
>729 DXFIX掲示板の過去ログに

>本来p1,p2に任意の数値を入れればそのサイズにウィンドウが変更されるはずなのですが、
>なぜか初期のウィンドウサイズより大きくはならないようです。
>これについては後日調査しますが、es_screen実行後にscreen命令を使ってウィンドウサイズを
>変更することで対処することができます。

とあるから、想定外の動作っぽいが、当面はOKなんじゃないか?
731デフォルトの名無しさん:2008/03/26(水) 09:15:30
CDのトレイが開いてるか閉まってるかを見る方法ってある?
732デフォルトの名無しさん:2008/03/26(水) 10:30:23
覗けばいいんじゃないのか?
733デフォルトの名無しさん:2008/03/26(水) 19:22:34
>>731
stat に 1 が返ってくれば開いています。
それ以外なら、閉まっています。
734デフォルトの名無しさん:2008/03/26(水) 20:07:45
>>730
おお、わざわざサンクス
とりあえずscreenでいろいろ試してみるが、
本当にプラグイン製作者さんには感謝の限りだな
735デフォルトの名無しさん:2008/03/27(木) 20:29:10
まだ勉強してないのですがオンラインゲームを作ることは可能ですか?
736デフォルトの名無しさん:2008/03/27(木) 20:54:52
オンラインの規模が測りかねるけど通信プレイならディアボロの大冒険という実例が
737デフォルトの名無しさん:2008/03/27(木) 21:02:04
>>736
これはすごい! ありがとうございます!
738デフォルトの名無しさん:2008/03/28(金) 21:04:16
解せないのは、!の後にスペースが入ってる件。
739デフォルトの名無しさん:2008/03/28(金) 21:16:55
寧ろ無いほうが不自然じゃないか?
「、」「。」の後にスペースが入らないのは当然だが、
英語のように、単語間にスペースが入る言語(確かインド=ヨーロッパ語族とかいう奴)から来てる「!」「?」とかは、
そのあとにスペースを置くのが決まりっぽい

まあ日本で使われて久しく既に日本語の一部みたいなもんだから、気にすることもないんジャマイカ
例外も多々あるし


HSP関係ねーな
740デフォルトの名無しさん:2008/03/28(金) 21:39:10
日本の文章でも!?の後にスペース置く慣習あるよ
それよりかぎ括弧閉じる前に句点置く奴は後頭部を打ち抜く
741デフォルトの名無しさん:2008/03/28(金) 21:48:09
>>739-740
へー 勉強になるなー
742デフォルトの名無しさん:2008/03/29(土) 14:03:05
初心者質問すみません。 hsp3.1です。

for x,1,10,1
  x = x +0.5
  mes x
 next

repeat 10
  mes cnt+0.5
loop

どちらのループでも、表示されるメッセージでは小数点以下が切り捨てられてしまいます。
ループの回数を表している変数(上の例ではxやcnt)を実数の数式に用いたい場合は
どうしたら良いのでしょうか。
743デフォルトの名無しさん:2008/03/29(土) 14:05:19
すみません。
最初のループの内容が少し変でした。
 x=x+0.5
ではなく、
 y=x+0.5
として
 mes y
でした。
744デフォルトの名無しさん:2008/03/29(土) 14:24:08
>>743
for x,1,10,1
y = double(x) +0.5
mes y
next

repeat 10
mes double(cnt+0.5)
loop
745デフォルトの名無しさん:2008/03/29(土) 14:47:01
なるほど!
勉強になりました。 ありがとうございます。
746デフォルトの名無しさん:2008/03/29(土) 19:44:33
HSPって非公式のコンパイラってあんの?
747デフォルトの名無しさん:2008/03/30(日) 00:57:20
自前で実行ファイル作れるものはないでしょ。
748デフォルトの名無しさん:2008/03/30(日) 01:28:07
TAB入れなくてもコンパイラ出来るのにTAB入れる意味あんの
749デフォルトの名無しさん:2008/03/30(日) 01:55:10
コンパイラ出来るって何語だよ
750デフォルトの名無しさん:2008/03/30(日) 02:33:04
命令はマニュアルをよめばわかります
それでも仕様書を一通りよんでそこそこ長いサンプルプログラムをみると
「こんな風に書いて動かしてるの?こんなに難しいの?」
って感じで想像もしないような書き方で動かしていて
時間をかけてソースを追っても中々理解が進みません

そのサンプルと全く同じものを自力で1から作ろうとしても
今の私のレベルでは到底できないです
本当は作りたいソフト(アイデア)がたくさんあるのですが
実現できそうになくて無念でなりません
751デフォルトの名無しさん:2008/03/30(日) 02:43:12
HSPってまだあったのかよ
752デフォルトの名無しさん:2008/03/30(日) 12:40:56
>>750
自分が作りたいソフトの一機能のサンプルになるような小さいものから
作っていって慣れていくしかないね。マニュアルに含まれてる「入門」は
読んだ?
753デフォルトの名無しさん:2008/04/02(水) 06:17:13
>>748
コンピュータが読める(コンパイルできる)こと以上に人が読めることが大切
インデントしたほうが人にとって読みやすいと思いません?
754あみぢ厨:2008/04/02(水) 07:49:44





    \コンパイラ出来る/




755デフォルトの名無しさん:2008/04/02(水) 22:03:01
cygwinでhsp用のdll作るのに挑戦中(・ω・` )
756デフォルトの名無しさん:2008/04/03(木) 11:42:11
ギブアップ\(^o^)/
757デフォルトの名無しさん:2008/04/03(木) 17:45:37
>>756
それを言うなら、「ギバップ」が正しいようです。
758デフォルトの名無しさん:2008/04/03(木) 18:22:05
ギヴァッじゃね?
759デフォルトの名無しさん:2008/04/03(木) 23:34:53
ングィウヴァッッじゃね?
760デフォルトの名無しさん:2008/04/04(金) 00:14:55
ファイルサイズの大きさはともかく
実行速度がもう少し早ければかなり実用的なのに
761デフォルトの名無しさん:2008/04/04(金) 00:42:36
>>760
ハードのスペックを標準的なクラスまで上げれば?
762デフォルトの名無しさん:2008/04/04(金) 00:52:53
マシン語を使え
763デフォルトの名無しさん:2008/04/04(金) 01:35:08
スペックをいくらあげようが他の言語より明らかに遅いしな。
764デフォルトの名無しさん:2008/04/04(金) 02:10:33
話ぶったぎってすいませんが、pcbnet2のマニュアルってどこにあります?
1時間以上ググッたりしましたが分かりませんorz
765デフォルトの名無しさん:2008/04/04(金) 10:38:03
HSPが遅いとかいってる奴は
使い方が間違っているといわざるを得ない
766デフォルトの名無しさん:2008/04/04(金) 12:05:20
まあ遅いのは事実だが
767デフォルトの名無しさん:2008/04/04(金) 13:54:57
最小化された別アプリにキー送信する方法ってありますか?
keybd_eventじゃアクティブの窓にしか効かないし・・・
768デフォルトの名無しさん:2008/04/04(金) 14:28:58
>>767
aplkeyはどうか?
769デフォルトの名無しさん:2008/04/04(金) 20:36:19
>>768
いや、aplkeyの方だろ?
770768:2008/04/04(金) 20:37:02
出来ました。ありがとうございます
771デフォルトの名無しさん:2008/04/04(金) 20:38:14
767だ凹〇
772あみぢ厨:2008/04/04(金) 21:45:25
「HSPは遅い」 とか面白すぎです。
どんなシステムを作りたいのかが先だと思います。。
HSPでそれが実現できないなら、別環境にGOってだけかと・・・。
773デフォルトの名無しさん:2008/04/04(金) 22:12:34
俺のHSPは速い。
774デフォルトの名無しさん:2008/04/04(金) 23:05:14
HSPが遅いのは周知の事実!!
775デフォルトの名無しさん:2008/04/04(金) 23:26:04
遅い?
だったら…

awaitを使えばいいじゃん!
776デフォルトの名無しさん:2008/04/05(土) 00:29:58
日本語BASICより早い。
777デフォルトの名無しさん:2008/04/05(土) 06:04:00
インタプリタだから遅くなるのは当然
ただ早ければもっと使えるってだけだろ
778デフォルトの名無しさん:2008/04/05(土) 08:37:14
上級スレにかかれてたけどapi直接叩いた方が遅くなるってどんだけ。
779デフォルトの名無しさん:2008/04/05(土) 13:27:59
#uselibと#funcでdllから関数呼び出すとき、
デフォルト引数って使えないのかな?

例えばint型をhsp側で省略すると、0が渡されてるみたいだけど。
780デフォルトの名無しさん:2008/04/05(土) 13:35:45
マクロ使えば出来るんじゃないか?
781デフォルトの名無しさん:2008/04/05(土) 14:14:42
>>780
ありがとうございます。hsp側で設定でやってみます。
782デフォルトの名無しさん:2008/04/06(日) 13:18:59
HSPはまだ構造体は使えんのか?
783あみぢ厨:2008/04/06(日) 13:29:41
構造体単独の機能が必要なプログラムってどんなのだろうか?
クラスみたいな事が出来るならともかく、
アドレスぶち込んでおく領域を定義出来ない時点で、
構造体だけ用意できても意味がなくね?
784デフォルトの名無しさん:2008/04/06(日) 14:23:55
遅ければ機械語使うまでだな
785デフォルトの名無しさん:2008/04/06(日) 17:57:00
HSPからコンソールアプリケーションを実行する際、
コマンドを代入してある変数を使いたいのですがどうすればいいでしょうか?
786デフォルトの名無しさん:2008/04/06(日) 19:01:09
プログラムとして難しいものというのはいわゆるどういったもの
なんでしょうか?

例えばNet-Ballのような波をうつもの、キャラを同時に複数動かす、
3Dポリゴンとか難しいと思いますが
他にはどういったものがあるんでしょうか?
787デフォルトの名無しさん:2008/04/06(日) 19:17:15
>>786
人工知能。最適化問題。
788デフォルトの名無しさん:2008/04/07(月) 15:11:00
hspはapi使えばそれなりの事が出来ると言っても、
やっぱユーザーは中高生や初心者だからそれなりのアプリは出てこないな。
ABはHSPなんかとは比較にならないくらい難しいし資料少なすぎだし。
789デフォルトの名無しさん:2008/04/07(月) 15:39:50
lameのフロントエンドで有名なLIFEとかは確かHSPじゃなかったっけ
790デフォルトの名無しさん:2008/04/07(月) 20:21:47
>783
決まってるだろ。API使うには構造体が使えんと話になんねー。
791デフォルトの名無しさん:2008/04/07(月) 20:48:39
ちょっと微妙な質問になるんだけど、つくったアプリを配布する前提で
特殊なフォントを使った場合って、そのフォントをパックするなり同梱するなりするの?
HSPについてってよりフォントそのものについての疑問に近い気がするけど・・・

例えば、どっかからAというフォントをDLしてきて、俺のPCにいれる。
で、そのフォントを指定してHSPで色々表示するスクリプトつくる。exeにして配布。
DLして俺の作ったアプリを動かす人のPCにAというフォントは入ってない、するとどうなる?的な。

根本的に物凄く的外れな事言ってるかもしれないけど、フォントそのものについて調べても
欲しい情報が全く出てこんかった。
俺が何を疑問に思ってるのかわかったら答えておくれ・・・
792デフォルトの名無しさん:2008/04/07(月) 20:52:39
ぶっちゃけ、そのフォントの使用/利用規約による。
793デフォルトの名無しさん:2008/04/07(月) 21:31:40
>>791
一番無難なのはマニュアルに
こっからAというフォントDLしてくれって書くことじゃないかな
まあ、極力MSゴシックみたいにどのPCでも入っているフォントを使うか
あるいは画像にして使うか(この場合はフォントの利用規約によるかと)
相手のPCにそのフォントがない場合は sysfont 0 のフォントが使われるはず
794デフォルトの名無しさん:2008/04/07(月) 22:30:04
>>790
今でも十分なサイズの変数用意して適切に値をセットすれば
構造体としてAPIに渡せるぞ
795デフォルトの名無しさん:2008/04/07(月) 22:53:35
>794
それが面倒じゃねーか。
構造体使えたら楽。
後HSPじゃコールバック関数は作れんから、
そういうのを引数として呼び出すAPIも使えん品。
796デフォルトの名無しさん:2008/04/07(月) 23:32:55
ただ、それで実行が遅くなったり、デメリットの方が大きくなったらなぁとは思う。
それなら、全部Cとかで作った方がいいw
797デフォルトの名無しさん:2008/04/08(火) 04:05:24
ほんと。なんでC使わないんだろこの人…
798デフォルトの名無しさん:2008/04/08(火) 14:02:00
hsp3.1でDirectX(hspdx.dll)を使っています。
終了するときに不正処理が起こってしまいます。
es_screenやes_mesなど基本的な命令しか使ってなくても起こる現象なので、
どうも仕様っぽいのですが、みなさんはどう解決されてるのでしょうか?
799デフォルトの名無しさん:2008/04/08(火) 14:10:14
>>798
es_bye入れてる?
800デフォルトの名無しさん:2008/04/08(火) 14:48:17
こんな感じで入れていてもダメでした。

#include "hspdx.as"
es_ini
es_screen 256,224,8,4
gmode 2

*main//メインループ
es_cls
pos 10,10 : color 255,255,255 : es_mes "AAA"
es_sync 10
await 1
getkey a,27 : if a=1 { es_bye : end } //ESCで終了
goto *main
801デフォルトの名無しさん:2008/04/08(火) 14:55:05
>>800
とりあえず、ウチだとそのコードではエラー出ないね@HSP3.1
念のため、HSP再インスコしてみるとか。
802デフォルトの名無しさん:2008/04/08(火) 15:28:41
それでもダメでした。ちなみにWindows Vistaです。
旧バージョンの2.61だと大丈夫だったので、
エディタが使い辛いけどこっちで作ろうかと思います。
803デフォルトの名無しさん:2008/04/08(火) 15:59:07
あ、Vistaなのか。実際のところ対応とかどうなんかな。
持ってないのでわからんけどw
804デフォルトの名無しさん:2008/04/08(火) 16:17:04
>>795
> 後HSPじゃコールバック関数は作れんから、
> そういうのを引数として呼び出すAPIも使えん品。

ちょくと氏のプラグインでできるんじゃね?
805デフォルトの名無しさん:2008/04/08(火) 19:51:22
>804
ま、どうでもいいけどな。
俺HSPなんて使ってねーし。
806デフォルトの名無しさん:2008/04/08(火) 20:29:41
>>805
がんばれば使えるようになるよ。
簡単にあきらめないで!
807デフォルトの名無しさん:2008/04/08(火) 22:53:44
>806
いや、あんな遅いもん使う気しねー。
Cで十分!
808デフォルトの名無しさん:2008/04/08(火) 23:28:33
そういう事を書きにくる自分が嫌にならないかい?
809デフォルトの名無しさん:2008/04/09(水) 00:33:12
>>807
いや、あんな遅いもん使う気しねー。
アセンブラで十分!

って言ってほしいのかい?
810あみぢ厨:2008/04/09(水) 00:36:24
/(^o^)\
811デフォルトの名無しさん:2008/04/09(水) 10:53:11
#func hoge "hoge" str
sdim s,1000
hoge s で渡して、

C側で、
int hoge( char *s )
で受けたポインタを使って内容書き換えてもHSP側で反映されないのは何故なんでしょうか?
812811:2008/04/09(水) 11:10:45
#func hoge "hoge" pval
sdim s,1000
hoge s

int hoge( PVal *pval )
char *s = pval->pt;

とりあえず、これでいいのかな?
自己解決か?
813811:2008/04/09(水) 12:01:41
連レスすみません。

>>811の場合は、メモリのコピーが渡されてるんでしょうか?
で、連続した領域が確保されてることが保証されてるんでしょうか?

>>812の場合も、連続した領域は保証されてるんでしょうか?
814デフォルトの名無しさん:2008/04/09(水) 15:17:55
strは文字列。 "hoge"
渡されるのはおそらくはHSP内のバッファのポインタ。

変数の内容を書き替えたい場合は
文字列型でも数値型でも var を使う。C側は int hoge( char *s ) でいい。

dimやsdimで確保すれば連続してる。
確保していない変数は連続していないかも知れない。
815デフォルトの名無しさん:2008/04/09(水) 18:47:28
>>814
ありがとうございます、varでできました!

連続した領域に関してはちょっと良く分かりませんでしたが、
HSP2だと多元配列も連続したメモリになるってことなのかな。
HSP3だとポインタのポインタってことで。
816791:2008/04/09(水) 19:43:49
>>792
>>793
レスありがとん。
うーん、なるほど。実際的な問題についてはわかったし、疑問も解けたと思うんだけど
ちょと確認だけさせておくれ。
規約でおkだという前提で、フォントのファイルそのものを作ったスクリプト(配布ファイル)に組み込むというか
所謂普通のフォントのインストールをせずに使用するってのは無理って事よね・・・?

普通に普段ゲームとかアプリとか使ってて、(自分のPCには入ってないであろう)変わったフォントで
表示されたりするから、そういう事は出来るのかなぁと思ったんだけど。
まさか全部画像なんじゃろか。
817デフォルトの名無しさん:2008/04/09(水) 21:33:21
exec "filename",p1,"command"

"filename"の部分に変数を使いたいのですがどうすればよいでしょうか?
818デフォルトの名無しさん:2008/04/09(水) 21:35:56
sdim temp
temp="filename"
exec temp,p1,"command"
819デフォルトの名無しさん:2008/04/09(水) 22:52:43
>>795
見てなくてもどっちでもいいけど
naznyark氏が作ったhpi_exprogctrlプラグイン。
http://www.vector.co.jp/soft/win95/prog/se432910.html
これで一応関数ポインタというのが使用できるようになる。
820あみぢ厨:2008/04/10(木) 00:08:12
32bitWinOSで作ったアプリケーションって、
64bitWinOSでも、とりあえず動くのでしょうかーッ!?><
821デフォルトの名無しさん:2008/04/10(木) 00:21:07
動きますが何か?

ところでDevMLのあの馬鹿何とかして
どう考えても厨房(もしかしたら消防かも)としか思えん言動だ
822デフォルトの名無しさん:2008/04/10(木) 00:28:27
>>821
DevMLってなに
823デフォルトの名無しさん:2008/04/10(木) 00:39:54
開発メーリングリストだろうけど、見てないのでわからない。
824デフォルトの名無しさん:2008/04/10(木) 01:02:41
>>816
「HSP フォント インストール」
でググったらこんな記事見つけたが
ttp://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200701/07060023.txt
825デフォルトの名無しさん:2008/04/10(木) 07:23:48
HSP3用の使えるプラグイン教えれ
HSP2用のものしかないし
826デフォルトの名無しさん:2008/04/10(木) 08:53:29
何がやりたいか教えれ
827デフォルトの名無しさん:2008/04/10(木) 18:37:15
>>826
チベットに自由を!
828デフォルトの名無しさん:2008/04/10(木) 21:05:14
>827
中国に核弾頭落とせばいいんじゃね?
829デフォルトの名無しさん:2008/04/11(金) 14:03:04
初心者質問すみません。
サブルーチン実行中にボタンを押したらメインルーチンに戻る、というのは
どう書けば良いのでしょうか。
以下のような流れに書くと「サブルーチン外のreturnは無効です」となってしまいました。

*main
gosub *sub
wait 50
goto *main

*sub
button goto "END sub",*end_sub
stop

*end_sub
return
830デフォルトの名無しさん:2008/04/11(金) 14:33:42
HSP製のブラウザってないんかい
831デフォルトの名無しさん:2008/04/11(金) 16:09:12
>>829
(HELPから引用)
>マウスでボタンをクリックすると、*labelで指定した場所にプログラムの制御が移ります。
>button gotoと記述した場合は、ラベルにジャンプ。button gosubと記述した
>場合は、 ラベルにサブルーチンジャンプを行ないます。

ということだから
この場合のbutton goto先(*end_sub)では、
*mainからgousub *subした分のサブルーチンネストはクリアされている状態というか。
下記と同じ状態になって、エラーになっているのだと思われ。

goto *end_sub
*end_sub:return

button命令では、飛び先は別のプログラムとして起動する、くらいに認識して
書き直したほうが良いのではないかと。

そもそも
サブルーチン内でstopして待ち受ける形に無理があると思う。
*main
gosub *sub
wait 50:goto *main

*sub:button gosub "END sub",*end_sub
repeat:wait 0
if flag:flag=0:return
loop

*end_sub:flag=1:return
832デフォルトの名無しさん:2008/04/11(金) 18:25:42
>>829
#define WM_KEYDOWN 0x0100

oncmd gosub *KeyDown,WM_KEYDOWN

*main
stop

*KeyDown ;キーが押された時の処理
mes "KeyDown"
return

こう。
833デフォルトの名無しさん:2008/04/11(金) 18:26:23
あぁ、違うね。
↑は忘れてくれ。
834デフォルトの名無しさん:2008/04/11(金) 19:24:21
>>831,832
レスありがとうございます。 大変参考になりました。
ボタンジャンプ先でreturnを実行するのを止めることにします。
お蔭様ですっきりしました!
835デフォルトの名無しさん:2008/04/12(土) 11:55:53
モジュール側でウィンドウを再初期化したいんだけど、
今のウィンドウが、screen/bgscr/bufferのどれで初期化されたとか、
初期化した画面モードって取得できる?
836835:2008/04/12(土) 13:40:14
BMSCR構造体経由でできました!
画面モードは一部しか分からんかったけど。
837デフォルトの名無しさん:2008/04/12(土) 14:32:59
自己解決ゥ!
838デフォルトの名無しさん:2008/04/16(水) 03:17:19
ピクセル単位で精密な画像をつくりたいんだけど、いいツールが見つからないから
HSPでやった方が早いんじゃね?と思い立った。
そこで質問なんだけど、bmpでスクリプト実行中の画面を画像保存する命令ってある?
出来れば画面全体より座標で指定できるとさらに嬉しい。
839デフォルトの名無しさん:2008/04/16(水) 04:48:28
指定座標をgcopyで新しいbufferにコピペしたあとbmpsave
840デフォルトの名無しさん:2008/04/16(水) 19:17:27
>>838
「ドット絵ツール」のことか?
「アイコンエディタ」で検索してもあんま良いのはないな。
841デフォルトの名無しさん:2008/04/16(水) 23:49:45
鯖を一人が立ててそこに接続してチャットをするメッセンジャーみたいなものを作りたいのですが、
どのプラグインを使うのが組みやすいでしょうか?
842デフォルトの名無しさん:2008/04/17(木) 22:05:30
dialogを使う、winAPIを利用する、以外にウィンドウを操作不能にする方法ってありましたっけ
843デフォルトの名無しさん:2008/04/17(木) 22:23:01
>>842
repeat:loop
844デフォルトの名無しさん:2008/04/17(木) 22:55:24
ツマンネ
HSPらしく*foo : goto *fooぐらい思い付けよ
845デフォルトの名無しさん:2008/04/18(金) 09:19:28
自動でキー入力やマウスクリックをしてくれるプログラムを作っているのですが、
NumLock を点滅させることや、メモ帳に入力することはできるようになったのですが、
なぜかお目当てのゲームでは反応がありません。
API を使うのは初めてなので、あちこち意味不明で
何か根本的な勘違いをしている可能性もあり、原因がまったくわかりません。

とりあえず、一秒ごとに w を押すコードを書いたので、ここがおかしいなどあればぜひ教えてください。

#uselib "user32.dll"
#func SendInput "SendInput" int,int,int
#func MapVirtualKey "MapVirtualKeyA" int,int

dim input_struct,7,2

Key = $57
MapVirtualKey Key,0
scan_code = stat

input_struct(0,0) = $1,Key+(scan_code<<16),$1 ,0,0,0,0
input_struct(0,1) = $1,Key+(scan_code<<16),$1 | $2,0,0,0,0

repeat
 SendInput $1,varptr(input_struct(0,1)),28
 wait 50
 SendInput $1,varptr(input_struct(0,0)),28
 wait 50
loop
846デフォルトの名無しさん:2008/04/18(金) 10:10:20
そのゲームにnPro入ってるんじゃね?
847845:2008/04/18(金) 10:27:14
>>846
個人製作(多分)のゲームなのでそういった類のものは使われていないと思います。
848デフォルトの名無しさん:2008/04/18(金) 13:35:02
とりあえずaplkeyで反応あるか見てみれば?
849845:2008/04/18(金) 15:11:24
aplkey も使ったことがないのでよくわからないのですが、こんな感じでしょうか?


#include "hspext.as"
aplsel "xxx"
aplact
wait 10

aplobj "",0
if stat != 0 : dialog "error" : end

repeat
 aplkey 87
 wait 100
loop


試してみたところ、if文のところで終わってしまいました。
一応if文を飛ばしても見ましたが、反応はありませんでした。
850デフォルトの名無しさん:2008/04/18(金) 17:39:37
>>849
if文っつーか、aplobj "",0の行無しではどうか?
あと、最初のaplsel "xxx"で、対象はキャッチできてる?
851845:2008/04/18(金) 18:24:40
>>850
aplobj "",0 コメントアウトしても相変わらず無反応です。
キャッチできてるかどうかですが、
aplact でアクティブになればキャッチできていると考えてもいいのでしょうか?
stat と refstr にも数値が入ってます。
852デフォルトの名無しさん:2008/04/18(金) 21:52:11
>>851
aplsel
 成功:stat=0 refstr=正確なウィンドウタイトル

それ以外は基本的に失敗。
WinAPIで捕まえるって手もある。
853845:2008/04/19(土) 05:00:59
>>852
aplsel は成功してると思われます。
stat=0 で refstr に正確なウィンドウタイトルも取れてます。
854デフォルトの名無しさん:2008/04/19(土) 12:08:31
もう対象のアプリを晒さないと分からんかもな。
855デフォルトの名無しさん:2008/04/24(木) 12:35:45
皆さんお力をお貸しください。

HSPで作成したexeがいわゆる標準出力にメッセージが出せなくて悩んでいます。
やりたいのは標準出力にメッセージを出力するコンソールアプリケーション(EXE)の作成です。

やったことは次のとおり
HSP 3.1

#runtime "hsp3cl"
#packopt runtime "hsp3cl"

mes "hello world"

でスクリプトを作成し、【起動時にメインウィンドウを非表示】をチェックしてexeファイル
を作成。
出来上がったexeを起動すると何も反応せず、ゾンビプロセスとなります。
なお、【起動時にメインウィンドウを非表示】をチェックしないとウィンドウが表示され
メッセージが表示されます。

よろしくお願いします。
856デフォルトの名無しさん:2008/04/24(木) 12:43:05
>>855
コンソールから起動しないからじゃないの?
857デフォルトの名無しさん:2008/04/24(木) 12:45:00
>>856
コマンドプロンプトから実行しています。
858デフォルトの名無しさん:2008/04/24(木) 14:41:06
実行ファイル自動作成で作れるよ。

それから「#runtime "hsp3cl"」があれば「#packopt runtime "hsp3cl"」はいらない。

#packopt runtimeは実行ファイル作成時にのみ有効で、#runtimeはエディタからの
デバッグ実行時にも指定したランタイムを使ってくれる。

あと#packopt runtimeを使う場合は、ランタイム名に拡張子が必須。#packoptは
自動作成用の命令なので、手動でexe作るときにはエラーが出ない。
859デフォルトの名無しさん:2008/04/24(木) 14:45:10
書き忘れたけど、コンソール用exeが作れた時は、アイコンがカップのやつじゃなくて、
ただのウィンドウのやつになる。

たしかコンソール用exeにはアイコンが指定できなかったはず。。。
860855:2008/04/24(木) 15:55:04
>>858

上手くできました!
実行ファイル自動作成を行うとhsptmp.exeが出来上がり、それを実行すると
コンソールにメッセージが出ました。すばらしい。

貴重な情報ありがとうございました。
861デフォルトの名無しさん:2008/04/27(日) 00:09:13
HSPで簡単で高速な3Dは何ですか?
862デフォルトの名無しさん:2008/04/27(日) 01:10:31
誰でも
出来る
どんでん返し
863デフォルトの名無しさん:2008/04/27(日) 01:25:29
>>861
どこの翻訳サイトを使っているのですか?

探しているのは、プラグインですか?
864デフォルトの名無しさん:2008/04/27(日) 07:56:11
Easy3Dが一番いいらしいですか?
865デフォルトの名無しさん:2008/04/27(日) 11:13:22
簡単なのはEasy3D
高速なのはhgimg3
かな
866デフォルトの名無しさん:2008/05/02(金) 07:29:29
100億円? 自慢してんじゃねよ!
867デフォルトの名無しさん:2008/05/02(金) 15:05:03
今日も1個HSPでプログラム作ってしまった・・・
868デフォルトの名無しさん:2008/05/02(金) 17:40:09
やったね! 君は天才だよ!
869デフォルトの名無しさん:2008/05/02(金) 17:42:27
ひとつのプロジェクトで100億なんてのがあるの? 合計100億で受注したってことだよね?
870デフォルトの名無しさん:2008/05/04(日) 20:51:33
質問してもまともな答えが返ってこなかったのでちょっと悲しいです
ポイント制だったら間違いなくポイント払いませんね
871デフォルトの名無しさん:2008/05/05(月) 10:33:11
ポイント制のところ行けよ
872デフォルトの名無しさん:2008/05/05(月) 17:15:57
[参照]ボタンクリックして、自分で持ってる音楽を設定したらその音楽が流れるように
したいんだけど、
mmplayで流す→mmstopで止める
だと、途中からじゃなくなるじゃん?

で調べたらmmplayとかじゃ無理って分かったんだけど
dmmplayとかmciの使い方よく分からないから
だれか教えて・・・


windowsXpね
873デフォルトの名無しさん:2008/05/05(月) 17:34:58
その質問に答えたら何ポイントくれますか?
874デフォルトの名無しさん:2008/05/05(月) 18:29:35
YAHOOだったら1ポイント
gooだったら4ポイント
よくわからないからプライスレス。
どれも買えねーよwマスターカード
875デフォルトの名無しさん:2008/05/05(月) 20:29:50
>>872
ググレカス
876デフォルトの名無しさん:2008/05/06(火) 00:58:02
HSPTVの掲示板との2重カキコですか
877デフォルトの名無しさん:2008/05/06(火) 14:14:59
#module nnn aaa
#modinit
sdim aaa,6
aaa = "pppppp"
return
#deffunc testa array a
b = "zzzzzzzzzzzzzzzzzzzzzzzzz"
mes a
memcpy a,aaa@ThisMod,6,0 ; 5bytes以上転送するとバッファオーバーフロー←ここがわかりません
; memcpy a,aaa,5,0 ; ThisModが必要
; memcpy a,b,3,0 ;エラーにならない
; memcpy a,b,17,0 ;エラーにならない
mes a ;上の転送が5bytes未満でも、aが壊れて表示されなくなる
return
#modfunc testb array x
testa x
return
#global

*main
sdim mojiretu,16
mojiretu = "0123456789ABCDEF"
newmod mmm,nnn
testb mmm,mojiretu
mes mojiretu ;上でaが壊れたときはこれも壊れる(参照渡しはうまくいっている?)
stop

すいません質問です。上記のような処理をすると9行目のところでバッファオーバーフローが起こってしまいます。
mojiretuもaaaもOFするようには思えませんし、bを使うケースでは2つともきちんと動くのですが、どこがまずいのでしょう……
878デフォルトの名無しさん:2008/05/06(火) 14:36:48
>877
sdim aaa,6
879デフォルトの名無しさん:2008/05/06(火) 15:26:39
testa内からはaaaにはアクセス出来ないと思うのだが

aaa@ThisModの中身は877が期待してる物とは別物
880877:2008/05/06(火) 17:17:54
ありがとうございました。

>>878
そこは100でも255でも同じだったのです。

>>879
なるほどそういうことでしたか。変なポインタを渡してたんですね。
仕様を勉強し直します。
881デフォルトの名無しさん:2008/05/07(水) 13:46:45
HSP3.1でなんですけど、マクロでマクロを定義することってできますか?
882デフォルトの名無しさん:2008/05/07(水) 16:58:10
>>881
通報しました
883デフォルトの名無しさん:2008/05/07(水) 18:31:23
>>881
どういう意味?
884デフォルトの名無しさん:2008/05/07(水) 18:42:49
#define hage #define moge mes "boke"
hage
moge
て意味じゃね?ちなみにこれエラー
885881:2008/05/07(水) 19:05:56
そです。やはり無理か、こういう変則的なことは。
マクロ内の改行の問題もだけど、そういうのが出来たら複数マクロ一括登録もできないかな?と思ったので。
#define init(%1) \
#define %1_get(%?) 〜\
#define %1_set(%?) 〜
みたいな感じで。
886デフォルトの名無しさん:2008/05/07(水) 20:44:42
>>885
なるほど、一種のクラス的な発想をマクロに見つけたのか
発想は良いけど言語が悪かったな
887デフォルトの名無しさん:2008/05/10(土) 19:46:29
goto *l11
#deffunc kurimati
repeat:stick key,0
if key&256 : break
wait 1:loop
return
*l11
#define くりまち kurimati


randomize
aadduu=rnd(100)+1;1~100
aa=1

if aa=1{
if aadduu<=20:mes "a":くりまち
if 20<aadduu<=50:mes "b":くりまち
if 50<aadduu<=90:mes "c":くりまち
if 90<aadduu<=100:mes aadduu+"c":くりまち
}

stop

こんな感じでつくると変数aadduuが20以下の場合a b c〜 と表示されて
それ以上の場合 b c 〜と表示されちゃう。
50以上でもcからにならないし、aだけやbだけで止まってくれない。
ifの中にif入れるのは無理ってわけでもなくて、2つまでとか決まってるの?
ものすごく微妙というか、なんでこんな仕様?って気がするんだけど。
888デフォルトの名無しさん:2008/05/10(土) 20:12:29
20<aadduu<=50

aadduuがどんな数字でも結果は必ず正になるぞ
889デフォルトの名無しさん:2008/05/10(土) 20:16:51
((20<aadduu)and(aadduu<=50))
890デフォルトの名無しさん:2008/05/10(土) 20:18:58
あれ、aadduuが21~50の場合をつくるには(aadduu>20)&(aadduu<=50)
って書き方以外ダメなんだっけ・・・何か20<aadduu<=50っぽい書き方でいけた気がするんだけど・・・

>>888
20以上もしくは50以下、的な判定なのかな?
論理演算?だか自体は実はよくわかってないんだけど・・・。
且つにしたい場合で、なんかそんな感じの書き方なかったかなぁ。
前に&使わずにそんな感じでやった気がするんだけど・・・うーん
891デフォルトの名無しさん:2008/05/10(土) 20:22:18
>>889
それだけいけるよねぇ・・・あれー勘違いかなぁ。
それこそが自分が思い込んでる「20<aadduu<=50っぽいモノ」かもしれないか。

同じ条件をつくるスクリプトで別の20<aadduu<=50っぽい書き方なかったかなぁ
モヤモヤするー
892デフォルトの名無しさん:2008/05/10(土) 20:25:54
その別のスクリプトは知らんが
通常は、引き算して0以下を判定するよな。
893デフォルトの名無しさん:2008/05/10(土) 20:28:20
>>892
引き算して0以下を判定・・・どゆこと?
完全独学で初心者なもんで、もしかしたらすごく基本的な事知らずに
変な事してたのかも。
後学の為に教えてほすい。お暇ならば。
894デフォルトの名無しさん:2008/05/10(土) 20:43:46
例えば、0〜8の数値を
@0-2
A3-5
B6-8
の3種類に分けて処理するとする。

a=4 (←対象の数値を入れる。今回は例として4を入れる)
a-=3:if a<0{処理1}:goto *next
a-=3:if a<0{処理2}:goto *next (今回はここで引っかかる)
a-=3:if a<0{処理3}:goto *next
mes "aの値が範囲外":stop

*next

こんな感じ。
895デフォルトの名無しさん:2008/05/10(土) 20:55:53
補足:

減算値は今回は全て3だけど
@0-4
A5-6
B7-8
なら、順番に5、2、2と引けば範囲を変えれる。
最小チェックと最大チェックをしっかりすれば、比較を一度も行わずに条件分岐させれる。

16bit時代のプログラミングじゃ当たり前だったんだが
今の時代はそんなの気にしなくてもいいからいいよなぁ。
896デフォルトの名無しさん:2008/05/10(土) 22:40:10
なるほどおお。理解でけた、ありがとん。
今のHSPでもそういう風にやる人が多いのかな・・・?
自分は感覚でわかりやすい&とか使う方でいいかなまだ('A`)
897デフォルトの名無しさん:2008/05/10(土) 22:46:53
一応、複数の比較が必要な場合は
こういう方法もあるんだ、という事を覚えておけばOK。
898デフォルトの名無しさん:2008/05/11(日) 00:08:24
>891
俺が知る限りそんな書き方出来る言語は一つもないが…
899デフォルトの名無しさん:2008/05/11(日) 00:13:07
perlかpythonで出来なかったっけ。
まぁ、hspの場合は、論理演算じゃなくてビット演算だからな。
900デフォルトの名無しさん:2008/05/11(日) 00:17:06
901デフォルトの名無しさん:2008/05/11(日) 01:57:41
>900
見てみたけど分けわからんなこれw
ジェネレーターってなんじゃいww
意味不明だしwww
902デフォルトの名無しさん:2008/05/11(日) 12:21:57
>>898
つ Fortress
903デフォルトの名無しさん:2008/05/11(日) 18:35:55
HSP3の命令再帰呼び出しって、125段くらいが最大なのかな?

#module
#deffunc rf int j, local i
i = j : if i == 0 : return
i-- : rf i : return
#global

rf 125 : stop

; rf 125 ok
; rf 126 終了後エラー
; rf 200 スタック領域のオーバーフローというエラーメッセージが出る
904デフォルトの名無しさん:2008/05/11(日) 19:05:06
HSP2のころは32回とかその辺だったような
自前でスタックを作って再帰廻してみたら、何これ浅い!とかオモタ記憶がある
100階層も潜れればたいてい何でもできね?
905デフォルトの名無しさん:2008/05/11(日) 19:15:41
>904
クイックソートはムリポ
906デフォルトの名無しさん:2008/05/11(日) 19:33:52
>>905
それはソートクイックソート!
て組んだことないけど100回も潜るのか
まあ元の並びによっては行くか

簡単な木の探索でもするのかとおもた
907デフォルトの名無しさん:2008/05/11(日) 20:06:33
分割がうまくいかない場合にもうまく対処すれば
32回以内には終わると思うけど・・・どうだろうね。
908デフォルトの名無しさん:2008/05/11(日) 20:20:45
結構浅い階層に限界があるので、一々気にしないといけないってのは面倒だからな。
処理の再帰の深さが決まっていて絶対にその範囲で終わるってのが分かってるなら別にいいんだけど。
909デフォルトの名無しさん:2008/05/11(日) 20:30:16
バイナリサーチとかは確実に終わるからいいよね。
910デフォルトの名無しさん:2008/05/11(日) 22:22:00
まあ要するにループ使えと
積極的に再帰を使うような言語じゃないんだろう
911デフォルトの名無しさん:2008/05/11(日) 22:34:05
じゃ、自己解決ゥ!
912デフォルトの名無しさん:2008/05/12(月) 23:20:52
switchってswbreakで抜けなくてgotoで抜けもネスト云々ってエラーでないかな?
loop命令だとたしかダメだったよね
913デフォルトの名無しさん:2008/05/12(月) 23:34:53
>912
出ねーよ。
そもそも、switch,for,do,while等のマクロはすべてgoto
を使って実装してるからな。
914デフォルトの名無しさん:2008/05/12(月) 23:48:13
>>913
さんくすー。これで安心してすすめられる
915デフォルトの名無しさん:2008/05/16(金) 06:03:12
ラベル名はすでに使われています、ってエラーがでた。
ラベル名を変えても同じエラー。
しかもこのエラー、調べてもまったくといっていいほどヒットしない。
error 7を含むと7件、HSPを含むと100件ちょい。
どういうこっちゃ
916デフォルトの名無しさん:2008/05/16(金) 09:52:08
ソースうp
917デフォルトの名無しさん:2008/05/16(金) 14:43:24
>>916
事故解決ぅうぅう!しちゃった。
なんか、gotoでとばしてるラベル名だったのが駄目だったみたい。
そこを一致させないと大丈夫という、意味不明なというかどっちみち使えない。
無理矢理他の方法で同じ処理になるようにしたけど。
状況によってgoto使っちゃダメとかあるのかな。
918デフォルトの名無しさん:2008/05/16(金) 18:33:27
頭悪いな。何言ってるのか全くわからないから。
919デフォルトの名無しさん:2008/05/16(金) 20:10:37
まったくだな。俺も何言ってんのかさっぱり分からん。
日本語で話せよ。日本語で。
920デフォルトの名無しさん:2008/05/17(土) 07:39:24
どこが理解できないのかがサッパリだ。そのまんまの内容だと思うが。
gotoの後の*×××とラベルの×××と一致した内容でダメだったんだろ?
一致させなきゃいいが、一致させないとgotoが意味成さんし。

まぁ頭の悪いヤツは自分が頭悪い事に気づきもせず他人に阿呆とか言うからな・・・
もしかして(俺は)頭悪いな。(人の)言ってる事が理解できない。なんだろうか。

で、どういう状況だとそんな事になるかは、知らない。聞いたことないな。
推測だが、他の方法でいけるような場合ってところがミソなんじゃない?
どんな使い方してたのか見てみたい。
921デフォルトの名無しさん:2008/05/17(土) 08:18:24
××× = "変数をラベルで使うな"
goto *××× ;error 7 : ラベル名はすでに使われています
*×××
922デフォルトの名無しさん:2008/05/17(土) 09:56:01
俺は>>920を読んでもわからんかったが、>>921を見たらわかった。
923デフォルトの名無しさん:2008/05/17(土) 17:20:36
921を参考に日本語訳を試みた。

>自己解決しました。
>gotoの引数のラベル名が既に使用している変数とかぶっていたのがダメだったようです。
>それを一致させなければ大丈夫なのですが、意味不明でどのみち使えません。
>他の方法で同じ処理になるようにしましたが。
>状況によってgoto使ってはいけない場合などがあるのでしょうか。

いまだに3行目の意味がわからん。
変数で使用していないラベル名を付ければいいだけじゃん。
924デフォルトの名無しさん:2008/05/17(土) 19:20:18
文字列型変数にラベル名突っ込んでgotoとかやってるんじゃないかと予想
925デフォルトの名無しさん:2008/05/17(土) 23:42:42
>922
つーか920=917だろ。自作自演乙
926デフォルトの名無しさん:2008/05/18(日) 11:43:55
俺もわからんつーか 917と920、ともに
読めば読むほど気持ち悪くなる文章だな。
精神を病んだ人の描いた絵をみるような気持ち悪さというか。

使っている単語が、ことごとく不適当
(単語の意味を誤解したまま使っている)
なのが原因ではないか?と思ったが・・・違うか。
927デフォルトの名無しさん:2008/05/18(日) 12:02:20
>>926
>もしかして(俺は)頭悪いな。(人の)言ってる事が理解できない。
こういう、括弧を使った喋り方とか、
>で、どういう状況だとそんな事になるかは、知らない。聞いたことないな。
こういう独特な言い回しが、怖いよね。
928デフォルトの名無しさん:2008/05/18(日) 13:52:47
HSP3.1なんだけど、notegetのヘルプで
>p1で指定する変数には、読み出すのに十分なバッファを確保
って書いてあるけど、自動で確保されないの?
929デフォルトの名無しさん:2008/05/18(日) 14:43:19
されるよ。
930デフォルトの名無しさん:2008/05/18(日) 16:02:11
>929
されてるな。マニュアルが更新されて無いだけか?
931928:2008/05/18(日) 19:49:13
トンクス。とりあえず安心して使っても良さそうですな。
932デフォルトの名無しさん:2008/05/20(火) 06:13:55
今まで何も考えずに付属のエディタ使ってたんだけど、他の人は何使ってる?
さすがにアレでは大変だと気づき始めたけど、テキストエディタなんて
どんなのがいいのかサッパリだ
933デフォルトの名無しさん:2008/05/20(火) 06:43:00
大変って?
934デフォルトの名無しさん:2008/05/20(火) 12:00:33
Wikiにソースの色分けが可能なエディタのリンクがあるな。TeraPadは
3.xには対応してないが。

Le.Antillaってやつをダウソしたことがあるが、かなり高機能だった。
935デフォルトの名無しさん:2008/05/20(火) 14:56:13
なんでLaじゃないんだろとググってみたら
先生も同じ疑問を返してきた
936デフォルトの名無しさん:2008/05/20(火) 22:52:34
mciの命令を使おうとしているのですが、

mci "open sample.mp3 alias abc"
mci "play abc"
stop

と書いて、とりあえず普通に再生だけをしてみようとしてみても
上手く動いてくれません。
どのように書けば再生ができるようになるのでしょうか…?
937デフォルトの名無しさん:2008/05/20(火) 23:19:31
>>936
コードそのまんまでこっちで試したけど普通に動いたので
ファイルが読み込めてないだけジャマイカ

ファイルのパスを確認するか、一度ソースを保存して
ソースと同一のフォルダにsample.mp3を置くと再生されると思う。

ただ、mmload+mmplayの方が手っ取り早い気もする。
938デフォルトの名無しさん:2008/05/21(水) 01:01:20
付属エディタがウィンドウ分割機能を搭載してくれたら嬉しいんだが…
939デフォルトの名無しさん:2008/05/21(水) 15:46:58
そのうち分割表示機能があるFooty2に移行するだろうから、要望出しておけば?
940デフォルトの名無しさん:2008/05/21(水) 17:28:36
>>937
一度ソースを保存と言うのをしてみたら
動いてくれました。
ありがとうございます。助かりました。
941デフォルトの名無しさん:2008/05/21(水) 18:10:40
じゃ、決めぜりふを〜!
942デフォルトの名無しさん:2008/05/21(水) 19:38:12
事故解決ゥ!
943デフォルトの名無しさん:2008/05/21(水) 21:28:12
hsp3.xなんだけど…

inputの第4パラメータ(入力する最大文字数の指定)が
2バイト文字だと無効になるのは仕様ですか?
944デフォルトの名無しさん:2008/05/21(水) 21:31:23
HSPに限らず、ほとんどの言語では
命令コードに2バイト文字は使えません

なでしこは別な
945デフォルトの名無しさん:2008/05/21(水) 21:44:42
使えません=1
input a, 100, 100, 使えません


使えるじゃん?
946デフォルトの名無しさん:2008/05/21(水) 21:45:25
>>943
2バイト文字てのはinputに入力する文字のこと? だったら文字数制限は
ちゃんと有効になるぞ。バイト数じゃないぞ、「文字」数だ。
947デフォルトの名無しさん:2008/05/21(水) 21:45:43
それは変数
948デフォルトの名無しさん:2008/05/21(水) 21:48:53
>>946
ああそういう意味か
944のせいで命令引数うんぬんかと思っちゃった
949デフォルトの名無しさん:2008/05/21(水) 21:51:18
943の日本語はそう思われてもしかたないけどね。
950デフォルトの名無しさん:2008/05/21(水) 21:55:23
いや
2パラでもなく3パラでもなく4パラって時点で気づくべきだったすまん
951デフォルトの名無しさん:2008/05/21(水) 21:57:05
>>946
あ、本当だー!(汗

なんだよ、この文字数ってくくり方は〜!w

では、入力可能なバイト数での制限ってのは可能でしょうか?
952デフォルトの名無しさん:2008/05/21(水) 21:58:41
>>949
ごめんなさい。
953デフォルトの名無しさん:2008/05/21(水) 22:02:54
あるテキストファイルの、何行目にあるのかわからない
File=D:\DataFolder\sample.dat
という行のファイル名部分を test_sample.dat に変更する、という処理をしたいんですが、どうしたらいいのでしょうか?
メモリノートパッドで行ごと書き換えれば済むこと、というのはわかるのですが、
上記の行が何行目にあるのかを特定する方法がわかりません。
954デフォルトの名無しさん:2008/05/21(水) 22:13:54
>>951
入力されたデータを使う時にチェックするしかないんじゃないかなー。よく知らん。
955デフォルトの名無しさん:2008/05/21(水) 22:14:08
>>951
oncmdとかループで監視とかでアレするしかないかも
956954:2008/05/21(水) 22:15:35
>>955
あぁそっか、自分で監視すりゃいいだけか。
957デフォルトの名無しさん:2008/05/21(水) 22:26:13
>>954-955
ありがとう。
その方法で、がんばってみますゥ!
958デフォルトの名無しさん:2008/05/21(水) 22:26:53
>>953
行数分notegetを繰り返してすべての行のデータをチェックすればいい。
repeatを使えば、システム変数cntに何回目の繰り返しかが代入される。(1回目は0)

ヒットしたらその場で書き換える。
959デフォルトの名無しさん:2008/05/21(水) 22:33:32
行数はnotemaxか
960デフォルトの名無しさん:2008/05/21(水) 22:36:28
>>958
あぁ…こんな単純なことだったのですね。
ありがとうございます。

テキストファイル書き換えるだけのプログラムに何日かけてんだ俺・・・orz...
961デフォルトの名無しさん:2008/05/21(水) 22:40:12
>>959
repeat notemax
a = noteget 変数, cnt
if instr(a, 0, "検索したい文字列") >=0 : 書き換え処理
loop
という感じですかね。
ありがとうございます。
962デフォルトの名無しさん:2008/05/21(水) 22:46:44
書き換え箇所が一箇所しか無いのが分かってるなら
書き換え処理の後でbreakした方がいい…かな。
963デフォルトの名無しさん:2008/05/21(水) 22:58:06
>>962
了解です。
大した量じゃないので大きく影響はしないでしょうけど、
プログラムとしてそのほうがスマート(?)そうですね。
964デフォルトの名無しさん:2008/05/21(水) 23:05:55
ああ、>961 のnotegetの使い方間違えてた。スルーお願いします
965デフォルトの名無しさん:2008/05/21(水) 23:16:07
場合によってはnote系命令を使う必要もないね。

目的のテキストを見つけて、その前のテキストと後ろのテキストで書き換え用の
テキストを挟んだものを保存すればいいから。

ところでnote系命令ってCRだけの改行かLFだけの改行のどっちかを
認識できなかったと思うけど不便だね。
966デフォルトの名無しさん:2008/05/22(木) 17:45:10
両方認識したらCRLFが改行2回分になっちゃわないか
967デフォルトの名無しさん:2008/05/22(木) 18:06:32
screen 1, 640,480, 0, 100,100
mes "HOGE"
screen 1, 800,600, 0, 100,100

こうすると、HOGEは消えてしまいますが、
ウィンドウの内容を維持したまま、ウィンドウの初期化サイズを変動させることは可能でしょうか?
968デフォルトの名無しさん:2008/05/22(木) 18:31:01
>>967
つ width
969デフォルトの名無しさん:2008/05/22(木) 18:31:56
>>968は、忘れてくれorz
970デフォルトの名無しさん:2008/05/22(木) 18:44:20
>>968
概ね合ってるんじゃ。
コード的には

screen 0,1680,1050
width 640,480
mes "hoge"
await 3000
width 800,600

こんな感じ?
それが嫌ならbufferに描画して必要なサイズに初期化したscreenにコピーするとか。
971デフォルトの名無しさん:2008/05/22(木) 18:54:26
1680x1050 ていう決め打ちがイヤスw
972デフォルトの名無しさん:2008/05/22(木) 18:56:09
>>970
やっぱ初期化サイズは、想定される最大のサイズにしとかないとだめかねぇ。
1600x1200だとメモリ食いすぎる・・・。かといって毎回初期化→再描画だとチラツクし。

パレットモード以上にメモリを節約する方法ってある?
普通のWindowsアプリの空白(灰色)部分あるけど、あれはピクセル分メモリ食ってるんだろうか。
メモ帳の背景白色部分は?
973デフォルトの名無しさん:2008/05/22(木) 18:56:36
>>966
そこは違うタイプの改行コードを混用することはないと決め付けちゃっていいんじゃね?
CRLFと来たら一つ扱いで固定ってことで。それで最初に見つけたコードだけが使われてる
という仮定で決めうち。

確認してみたら、mesやnote系で認識できないのはLF(10)だった。当初はLinuxへの
展開なんて考えてなかったってだけの話かな。それともwin32apiがらみの話なのか。

Linux版のコードはどうなってんだろ。いつか調べてみよう。
974デフォルトの名無しさん:2008/05/22(木) 19:00:32
>>971
自分のモニタがWSXGA+なのでモウマンタイw
975デフォルトの名無しさん:2008/05/22(木) 19:05:29
>>972
32bit深度と仮定した場合、WSXGA+でも

1680*1050*32*3/8 = 7056000(Byte) ≒ 6.73MB

約7MB。
イマドキのPCのVRAM容量は128〜768MB。
来月2GBのVRAM容量を持つカードが出るらしいが
正直、フレームバッファ容量なんて気にしなくていいんジャマイカ
976デフォルトの名無しさん:2008/05/22(木) 19:05:40
>>972
> >>970
> やっぱ初期化サイズは、想定される最大のサイズにしとかないとだめかねぇ。

ちょっと話ずれるけど、昔のHSPはクライアント領域に直接描画せずにコモン
コントロール置いたりするだけなら、正直に確保する必要はなかった。

今は画面上に実際に表示されるサイズを確保しないとその大きさで表示できない
(リサイズできない)ようになっちゃった。
977デフォルトの名無しさん:2008/05/22(木) 19:06:26
>>973
えーそんな賢い仕様だったらヤダー!実装がアホでストレートな昔ながらのHSPがすき。

HSPて昔からMac版があった関係か知らんけど、13を改行として認識する命令が多い希ガス
978デフォルトの名無しさん:2008/05/22(木) 19:13:41
なにげに「良スレ」化してる。
本家が「お子様天国」化してるからかな?w
979デフォルトの名無しさん:2008/05/22(木) 19:26:18
俺は気取ってるわけじゃないが、なぜか本家に気軽に書き込むのは
躊躇してしまうな。

気がついたらいつのまにか本家は避けるようになってしまっていたw
980あみぢ厨:2008/05/22(木) 19:29:00
hsp難しいです><
981デフォルトの名無しさん:2008/05/22(木) 19:32:34
それは深刻だな。HSPより簡単でそこそこ便利な言語なんてあるだろうか?

まあがんがって自己解決してくれ。
982デフォルトの名無しさん:2008/05/22(木) 19:32:54
>>975
マルチモニタ環境とか想定して、デスクトップ全体分確保しようとすっと、
2880x1200とかいっちゃうんで。んで読み込んだ画像の数だけ確保するからえらいことに。(作ってるのは画像ビューワ)

んで半年ぐらい前にこのスレだかで助言を受けて、パレットモードの大ウィンドウと描画領域の32bitウィンドウをSetParentする方法をやってみた。
これは効果てきめんで、メモリ消費量が2/3ぐらいになた。(32bit->8bitだから当然)
ただし、画像を拡大縮小するときに子ウィンドウサイズが変わるんだけど、このときにウィンドウ初期化→画像転写するからチラつく。
初期化→転写の間の描画は redraw 0 じゃ止められないし・・・。

最近は描画しない領域はパレットモードですら勿体無いような感じがしてて模索中。
>>976みたいなウィンドウをAPI叩いて作ればいいんかいねぇ。世の画像ビューワはどうやってメモリ節約してるのか。
983デフォルトの名無しさん:2008/05/22(木) 19:43:40
>>982
画像ビューワが実際に何をどうしてるのかは知らないけど
マモリマップドファイルでやれば実メモリを消費せずにファイルにアクセス出来る。

HSPからメモリマップドファイルは…クラスが使えないから少し扱いにくいと思うけど
不可能では無いと思う。
984デフォルトの名無しさん:2008/05/22(木) 21:02:27
http://hsp.tv/play/pforum.php?mode=all&num=15946

本家に書き込まないってのもあながち間違いではないとおもう
985デフォルトの名無しさん:2008/05/22(木) 21:44:50
HSP3.0でスクリーンセーバー作ってるんだけど
「wait20回の謎」対策として…

repeat 20 : await 1 : loop を実行しても
キー検出(終了)をしないのはどうしてですか?

2.xの頃は、これで検出してくれてたと思うんですが…。
986デフォルトの名無しさん:2008/05/22(木) 21:48:21
awaitの精度が10ms以上だから

とエスパーしてみる
987デフォルトの名無しさん:2008/05/22(木) 21:54:40
>>986
repeat 20 : await 20 : loop や
repeat 20 : wait 10 : loop でもダメなんですゥ〜
988デフォルトの名無しさん:2008/05/22(木) 22:01:02
>>987
入力を監視するなら、WMでキー入力とマウス入力を監視すれば?

正直、repeat:〜:loop内で何してるのか分かんない。
そのままのコードだとウェイトかけてるだけだし。
989デフォルトの名無しさん:2008/05/22(木) 22:05:12
oncmd 0 かけても割り込みかかる時って結構あるけどあれって何なんだろう。コツとかあんの?
990デフォルトの名無しさん:2008/05/22(木) 22:12:31
>>984
小中学生のユーザに丁寧に付き合ってあげられるならいいけど、
自分はちょっと余裕ないなー。
991デフォルトの名無しさん:2008/05/22(木) 22:14:01
>>988
「wait20回の謎」とは、この事です。

HSPで作成されたスクリーンセーバーは、起動直後すぐにマウスの動きや
キーの検出をして終了してしまうと都合が悪いため、しばらくの間は
終了のための検出を行わないようになっています。
具体的には、waitoやawait命令が20回以上実行されないと
検出が始まらないようになっています。

で、私が作ってるスクリーンセーバーは、メイン画面で動的な処理をせずに
画像を表示するだけなので、スクリプトの中にwaitやawaitが無いんです。

なので、毎回、Alt+F4 で終了しなくちゃならないんですゥ〜w
992デフォルトの名無しさん:2008/05/22(木) 22:21:10
無限ループでいいじゃん。細かいことはキニスンナ
993デフォルトの名無しさん:2008/05/22(木) 22:26:52
>>991
そうなのか。
スクリーンセーバーは作った事ないから分かんなかった。正直スマン。

で、スクリーンセーバーって何か特殊な作り方しなきゃいけないの?
イメージ的には、通常アプリがWindowsから呼び出される感じなんだけど。
画面のサイズを取得して、同一のサイズでCreateWindowして最前面に配置。
メインループ内で、キー入力とマウス入力のWMを監視。マウスの移動はマウスの位置を監視…

とかじゃダメ?
994デフォルトの名無しさん:2008/05/22(木) 22:37:56
画像を一回表示した後メインループでクルクル回せばいいじゃない。
995デフォルトの名無しさん:2008/05/22(木) 22:40:26
良スレなので、次スレ立てておきました!w

【スレ番】HSP初質P55【修正】
http://pc11.2ch.net/test/read.cgi/tech/1211463465/
996デフォルトの名無しさん:2008/05/22(木) 22:52:40
>>989
oncmd 0が利くのって最初にoncmdされたメッセージ1つだけじゃなかったっけ
997あみぢ厨:2008/05/22(木) 23:35:04
707 名前:デフォルトの名無しさん :03/09/14 05:45
998デフォルトの名無しさん:2008/05/23(金) 00:04:12
HSPでP2Pファイル共有ジュークボックス的なものを作ろうと考えています。
ネット上でユーザーが自由にグループを作成して、
そのグループのメンバーのところに同じ曲が流れるという仕組みです。

<動作>
1.起動すると、自分が属しているグループの全曲リストを更新。
2.その中から聞きたい曲をチョイス。
3.すでに曲が流れている場合には、自分の選択した曲がグループのキューに溜められ、順に演奏される。
4.自分の持ってないファイルの曲が演奏される場合、持っているユーザーから自動的にDLして演奏する。

<機能>
○キューリミット機能
  数十数百という常識外れの曲数を登録する嵐的な輩への対抗策。
  そのグループ内において、キューに溜められる曲数を1〜20の間で設定できる。
○グループ認証機能
  グループに入る場合に、グループ作成者やメンバーの認証を行う機能。
○評価機能
  演奏中の曲を停止できるのは基本的にチョイスした人のみだが、
  評価機能は、グループメンバーの中の何人か(パーセンテージ、絶対人数)が『却下』的な評価を
  下した場合に直ちに演奏が中止される。
○評価機能2
  評価は記録され、グループ内のメンバー一覧等で各々の評価を見ることができる。
  嵐の評価は基本的に低くなるはずなので、警戒できる。

<応用>
・ネットラジオ的なものも作れる。

<課題>
グループの規模によっては曲ファイルの転送がかなりのトラフィックになることが予想されるので、
圧縮転送、及び鼠算的転送(※1)も実装する必要がある。
※1・・・1人が2人以上に転送する機能。例えば1人がn人に転送する場合、5回の転送でn^5人への転送が可能となる。
     これにより、曲ファイル1つに対して数千人規模のグループでも高速で共有できる。
999デフォルトの名無しさん:2008/05/23(金) 00:11:11
で?
1000デフォルトの名無しさん:2008/05/23(金) 00:14:47
ここ数年で研究が盛んな分野だな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。