【じゃ】HSP初質P52【 ..
[2ch|▼Menu]
281:デフォルトの名無しさん
07/12/12 13:21:39
複数のソースファイルに分けて開発してる場合、
どのソースファイルでコンパイル開始しても正常に動作する工夫とかできるかな?

いまはメインソースファイルからコンパイルしたスイッチが入ってないと他のソースファイルでは停止終了するように作ってるけど。

282:デフォルトの名無しさん
07/12/12 14:19:21
>>281
Cygwinとか入れて、Makefile書いておけば?

283:デフォルトの名無しさん
07/12/12 15:18:26
>>282
詳しく

284:デフォルトの名無しさん
07/12/12 20:19:36
>>283
HSP3用のコマンドラインコンパイラを探す

285:デフォルトの名無しさん
07/12/13 10:52:59
>>281
どのソース(ウィンドウ)から実行しても決まった名前のスクリプトをコンパイルする
仕様のコンパイラ(外部ツール)作れば?

286:デフォルトの名無しさん
07/12/13 13:00:29
>>285
作らなくてももうあるだろ

287:デフォルトの名無しさん
07/12/13 17:48:56
>>286
あるのなら教えてください。まじで。


288:デフォルトの名無しさん
07/12/13 20:23:16
>>287
ググれ

289:デフォルトの名無しさん
07/12/13 23:07:33
ゲルググ

290:デフォルトの名無しさん
07/12/13 23:31:39
昔HSPスレで某コテハンを名乗っていたものです。
なんとなく思い出して見てみましたけど…
ぜんぜんかわってねぇなぁって思いました。

291:デフォルトの名無しさん
07/12/13 23:33:01
じゃ、自己解決ゥ!

292:デフォルトの名無しさん
07/12/13 23:33:18
なぁなぁ、メーリングリストってスパマーの登録をどうやって避けてるんだ?
スパマーが登録して広告をMLで長島来るって話をあまり聞かないのだが。

293:デフォルトの名無しさん
07/12/14 00:43:40
>>292
MLの管理人がBANすればよいだけじゃない?

294:デフォルトの名無しさん
07/12/14 05:46:26
>>281
#defineと#ifndefで工夫する

295:デフォルトの名無しさん
07/12/14 19:18:01
test

296:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/14 21:00:01
>>296
よくわからんけどいつか試す

298:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/15 10:08:15
ballmovex = ballmovex + movex(mx)*10
とか

301:デフォルトの名無しさん
07/12/19 14:29:41
超長い文字列を使ってるんだけど
strlenで文字列長取得すると 32767文字くらいまでしか返ってこない

shortじゃなくてlongで返してほしいんだけど、どうしたらいい?
つーか、HSPってlong型とかあんの?

302:デフォルトの名無しさん
07/12/19 17:55:45
とりあえず3.1ではそんなことはないけど? HSPの整数は標準で32ビットだよ。

303:デフォルトの名無しさん
07/12/19 18:09:34
GlobalAllocとか使うとかとかとかとかとかとかとかとかとかとかとか

304:デフォルトの名無しさん
07/12/19 20:16:12
>>301
s=""
repeat 3276
s+="とかとかとかとかとかとかとかとかとかとか"
loop
mes strlen(s)

305:デフォルトの名無しさん
07/12/19 20:49:44
>301
つーかshort型がないだろ。
あるのは32Bit整数と倍精度浮動小数と文字列型だけだろ。

306:301
07/12/19 22:16:26
自己解決しました

307:デフォルトの名無しさん
07/12/19 23:06:02
じゃ、自己解決ゥ!

308:デフォルトの名無しさん
07/12/20 09:28:58
フォントの大きさが指定できない
font "Terminal",10,0
mes "あいうえお"
とやっても10ポイントの文字にならない
なぜだよ

309:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/20 21:27:05
>>309
論理式が正なら1だからだろ
つーかそもそも文脈上どう考えてもequal条件じゃなくてand条件だろ
なにより他言語での文法との混同を避ける意味で
&じゃなくandって書くべきだろ

311:デフォルトの名無しさん
07/12/20 21:30:04
最もHSPのANDは&のマクロで、結局論理積でしかないけどな。

312:デフォルトの名無しさん
07/12/20 21:33:28
そういえばそうだったな。もうオレは死んだ方がいいな

313:デフォルトの名無しさん
07/12/20 21:50:40
ワロタ

314:デフォルトの名無しさん
07/12/20 23:14:03
イ`!

315:デフォルトの名無しさん
07/12/21 10:52:50
>>310
そのand条件とやらについて知りたいってのが最後の文章そのものなんだけど・・・
if a=10&B=10とかなら意味としてわかるけど。
if 10&10では主語の部分がなくてよくわからん。変数&数字、の場合だけなんか意味をなすとか?
前者に後者が含まれるという意味だ、と解説してるサイトもあったけど。
マニュアルにはこのへん載ってないし(等号不等号とあわせてしか)、どこ見てもstickには説明なくナチュラルに&使われてるし。
意味伝わるかなぁ・・・

316:デフォルトの名無しさん
07/12/21 14:56:36
>>315
論理積 と ナンシー関 って似てると思わないか?

みんなよく間違えるからWikipediaで違いを確認するといいよ

317:デフォルトの名無しさん
07/12/21 18:35:50
HSPの&,&&,andは論理積でなくビット単位AND

318:デフォルトの名無しさん
07/12/21 19:39:07
>317
HSPは「&&」なんて使えたか?

319:デフォルトの名無しさん
07/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でも意味は同じだ。

320:test
07/12/21 23:46:11
test

321:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/22 16:21:03
>>321
2の倍数じゃなくて2の乗数または2の冪

323:321
07/12/22 16:35:31
これは失礼。

324:デフォルトの名無しさん
07/12/22 18:08:38

どんま〜い!

3 ・ 2 ・ 1! 3 ・ 2 ・ 1!

325:デフォルトの名無しさん
07/12/22 18:55:43
時計表示について質問です
5時4分を「5時04分に」表示させるのは、文字列型での表示の仕方は「strf」を使えばいいのですが
数値型にして表示するのが分かりません。
教えてください。お願いします

326:デフォルトの名無しさん
07/12/22 19:30:33
>>325
?????????????????????????????????????
?????????????????????????????????????
?????????????????????????????????????
?????????????????????????????????????
?????????????????????????????????????

327:デフォルトの名無しさん
07/12/22 20:12:25
ノベルゲームなんかでよくあるような、画面切り替え時にページをめくる感じにしたりとか
モザイクがかかっていくとか、下から次の画面の背景がでてくるとか、そういう表現あるかな?
clsで消して再描写ってだけじゃなんか味気なくて。

328:デフォルトの名無しさん
07/12/22 20:31:07
>325
何言ってんだ?お前。

329:デフォルトの名無しさん
07/12/22 20:58:32
>>327
gmode gcopy gzoom だけでも、かなりのパターンを作り出せるぞ。
とはいえ、cls を多用してるようじゃ辛いかもな。

330:デフォルトの名無しさん
07/12/22 22:18:17
atoiじゃないのフヒィ!?

331:デフォルトの名無しさん
07/12/23 19:17:32
フヒィって何

332:デフォルトの名無しさん
07/12/23 20:13:46
照れ隠しの単位です。
現在のレートは 1フヒィ=113.4サーセン です。

333:デフォルトの名無しさん
07/12/23 20:15:33
フヒィ高サーセン安

334:デフォルトの名無しさん
07/12/23 23:13:13
意味不明な時はァ、自己解決ゥ!

335:デフォルトの名無しさん
07/12/24 18:05:35
>>329
あーそのへんを使ってやらないと駄目なのかぁ。
ノベル向けってわけじゃないからそんな専用の命令なくて当然か。さんくすー

336:デフォルトの名無しさん
07/12/25 07:58:11
ノベル作るんだったら(ry

337:デフォルトの名無しさん
07/12/25 23:28:53
あそこは垂れ餡先生しか教師がいない状態になりつつあるのか…。

338:デフォルトの名無しさん
07/12/26 11:31:25
Elonaって実はHSP製なんだよね
ソースコードが計20万行越えてて吹いた

339:デフォルトの名無しさん
07/12/26 13:45:54
>338
そりゃ随分と重そうだなw
そういや、HSP3の逆コンパイラってあるのか?

340:デフォルトの名無しさん
07/12/26 14:41:44
ググれ

341:デフォルトの名無しさん
07/12/27 00:23:19
ググって自己解決ゥ!

342:デフォルトの名無しさん
07/12/28 05:46:15
モジュールの中から外部のラベルを呼び出す方法は調べてわかったんですが、
グローバル空間からoncmdでモジュール内のラベルを直接的に呼び出すにはどうすればいいのでしょうか

343:デフォルトの名無しさん
07/12/28 09:54:49
ユーザ定義命令経由以外でモジュール内に飛び込むのは無理じゃね?

344:342
07/12/28 18:53:27
どうやらnewmodでモジュール型変数を作ると
gosub hoge@モジュール名でモジュール内を呼び出せるようです。

なのにgosub label@hspという方法ではモジュール内からグローバルのラベルに飛べないのは何故なんでしょう

345:デフォルトの名無しさん
07/12/28 20:37:26
JAVAでいうfinalみたいな定数を作成するにはどうすれば?
マクロ宣言時に変数を展開する方法があれば#constや#defineでもいいのですが

346:デフォルトの名無しさん
07/12/28 23:44:53
Cでいうconst?
無いかも

347:デフォルトの名無しさん
07/12/29 00:09:03
>>344
gosub label@ で飛べない?


348:デフォルトの名無しさん
07/12/29 02:31:13
>>347
ありがとうございます、できました
@hspはプリプロセッサ命令を扱う時に用いるんでした
統一するか併用してくれればいいのに

349:デフォルトの名無しさん
07/12/29 23:49:15
HEY YO!

350:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/30 01:59:02
>>350
何がしたいのか、何が言いたいのかよく分からないが

データベース中に、15のデータが格納されていて、
その中から6つをランダムで取り出すのを目的とした場合、
その記述のままだと、同じデータが重複されて取り出されるときがある。
場合によっては、6つとも同じデータが取り出されてしまう可能性も存在する。

352:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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

354:350
07/12/30 14:21:58
>>351
あーその通りだわ・・・指摘されるまで気づかなかった\(^o^)/
英熟語が6つ表示されて日本語が一つ表示される。その日本語に合致するのは6つのうち
どーれだ、って話。
その為には日本語の選択をランダムに選ばれた6つの英熟語のどれかに準拠しないと
どれもハズレって事になっちゃう、って意味だったんだけど。

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

さて、>>353の理解に着手しよう・・・どれだけ時間かかるやら怖いけど。

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

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

356:デフォルトの名無しさん
07/12/30 16:04:18
>>355
表示とかは最後にして処理の流れを紙に書き出して見ると良いと思う。

今回は必要なデータがはっきりしてるから、データさえ用意できれば作りやすいはず。
重複しない乱数は下記参照。
URLリンク(hspdev-wiki.net)

357:353
07/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

358:353
07/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

359:353
07/12/30 22:17:59
コメントの回答群(3種)ってのは間違いで4種類表示になってるけど気にしないでくれ

360:デフォルトの名無しさん
07/12/31 22:22:28
質問です。
キーボードのボタンを押すと音が出るというプログラムをつくろうとするとボタンを押して離した後に音が鳴ってしまいます。私としてはボタンを押した瞬間に音を鳴らしたいのですが、どうすればいいでしょうか。

361: 【1208円】 【だん吉】
08/01/01 00:35:23
2008

362:350
08/01/01 05:44:19
あけおめなんだぜ
>>357
うおーありがたや。めちゃ参考になった。思ったとおりのができたよ。
理解できない部分が若干残ってるけど・・・今後のレベルアップに期待して
今は深く考えすぎないようにする。ほんと助かった、ありがとん。

しかし元旦から何をやってるんだ俺は\(^o^)/

363:350
08/01/01 06:03:43
>>356
ありがとう。
しかし>>357のおかげで解決しちまったぜ。また今度参考にするなのぜ

364:デフォルトの名無しさん
08/01/01 09:56:29
じゃ、自己解決ゥ!

365:デフォルトの名無しさん
08/01/01 13:03:49
マップチップは32*32サイズで
キャラのサイズが移動はビット単位の当たり判定がしたいんだけど
どう考えりゃいいの?

366:デフォルトの名無しさん
08/01/01 13:04:23
訂正
キャラサイズ32*32で移動がビット単位

367:デフォルトの名無しさん
08/01/01 14:12:51
posx % 32

368:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/01 20:37:07
(c=3)&(c=4)っていつ真になるの?

370:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/01 21:27:57
if ((a=1)&(b=2))|((c=3)&(c=4)):mes "HSP"

372:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/02 20:02:02
アプリとして配布した後に、その各々の使用者が任意で画像やBGMを差し替えられる
ようにってできる?

374:デフォルトの名無しさん
08/01/02 20:55:45
1 iniファイルにパスを書く
2 アプリ内で設定できるようにする
3 特定のファイル名のファイルを使う

375:デフォルトの名無しさん
08/01/03 10:41:07
コンボボックスの選択が変更されたら画面上の
他の項目を更新するようにしたいんですが、
repeat 〜 loopで監視するしかないんですかね?

ボタンやメニューを表示し終わったらstopで終わりたい気がするんですが
最後にrepeatを設置するのは落ち着かない感じがしません?

376:デフォルトの名無しさん
08/01/03 19:49:12
>>375
Let's HSP!「HSP3 あれこれ <オブジェクト編 5>」
URLリンク(lhsp.s206.xrea.com)

377:デフォルトの名無しさん
08/01/03 23:01:46
ありがとうございます、助かりました。
コンボボックスとウィンドウメッセージが関連してることを知らなかったので
マニュアルの割り込みの項や、リファレンスでは全然解説されてないから
これはわかりっこないですな

378:デフォルトの名無しさん
08/01/04 03:45:01
WINアプリの設定ウィンドウ、たとえばHSPスクリプトエディタのツール→オプション
を選んで表示されるウィンドウに、角が丸まった四角形に青文字が添えられてる
囲み部分があるじゃないですか。
頻繁に使われてるので、あれってまとめて描画できるような命令があるんでしょうか。

ググってみると単体の角丸四角形は一つの命令では表示できないみたいですが。

379:デフォルトの名無しさん
08/01/04 03:48:23
別に一つの命令じゃなくても、モジュールが公開されていたらそちらをお願いします。

380:デフォルトの名無しさん
08/01/04 04:31:52
連投失礼。
グループボックスって名前みたいですね。名前に行き着くまでどれだけ時間がかかったか…。
ボタンをsendmsgで変化させたりするようですが、HSPでは不完全らしい?
URLリンク(lhsp.s206.xrea.com)

381:デフォルトの名無しさん
08/01/04 07:33:08
>>380
そんなあなたに開発wiki
URLリンク(hspdev-wiki.net)

表示バグが気にならないなら付属サンプルを流用すれば充分かと思う。
配布しないならOS互換性とか気にしないでいいだろうし。
気になるならそのページのモジュールを使う。

382:デフォルトの名無しさん
08/01/04 11:17:58
XPスタイルだと角が丸まるのか

383:デフォルトの名無しさん
08/01/04 18:29:08
>>381
うほっいい教材

HSPのサンプルやそのページのchkboxを利用した例は
最小化→復元で背景が透けてしまうんで使えませんね。
圧縮ファイル内のモジュールを流用することにしました。

384:デフォルトの名無しさん
08/01/04 23:50:40
>>374
もうちょい詳しく教えてもらえんですか。
アプリにする=exeファイル一つになる、って考えてる時点で駄目?
画像は画像として独立して存在してるなら、そこの画像を勝手に入れ替えて
もらえばそれでいけるであろう事はわかるんだけど。。。

385:デフォルトの名無しさん
08/01/05 00:07:33
そもそもpicloadとかフォルダを指定しなければ
exeファイルと同じフォルダの画像が読み込まれるだろう?

386:デフォルトの名無しさん
08/01/05 11:02:43
>>385
おーほんとだ。パックしたファイルよりフォルダにおいた画像とかが優先されるのね。
じゃー同梱のreadmeに画像差し替えたきゃ●●って名前の●●×●●サイズの画像
をフォルダにいれてちょ、でいいんだなぁ。センクスー

しかしその画像をexeと同じフォルダにいれとかないと、
ちゃんとパックしたはずの画像を表示する段階でエラーが発生するのは何でだろう・・・

387:デフォルトの名無しさん
08/01/05 17:31:23
それってファイル名が長いとか漢字使っているとかじゃないかな?

388:デフォルトの名無しさん
08/01/05 20:54:19
>>387
さすがに半角ローマ字しか使ってないけど、長いっちゃ長いかも・・・。10文字。(拡張子含まず
10文字のがなんとか大丈夫になったと思ったら15文字のでもうどうしようもなく。
ためしに短くしてみたら大丈夫になった、ありがとん!
具体的に何文字まで、とか決まってないのかな?環境や状況依存で変わるなら
無理矢理にでも全部やたら短い名前にしないと駄目って事になるよね・・・



389:デフォルトの名無しさん
08/01/05 21:58:34
>>388
たしか拡張子無しで8文字だったかな?
ファイル名収納用のヘッダがそのぐらいまでしか確保されていない


390:389
08/01/05 22:09:09
訂正
拡張子込み(ドットも)で15文字だ
16文字分入ることは入るけど内部では認識できないみたい
たぶん、16文字分読んで最後にNULL文字詰めてるのかも?


391:389
08/01/05 22:24:51
うーん、docs/hspprog.htm に書いてある内容が間違っている気がする
「PACKFILEと暗号化」の項に
> ファイル名は、拡張子も含めて19文字までが識別対象になります
と書いてあるが15文字までしか認識できない


392:デフォルトの名無しさん
08/01/05 23:50:39
自力で透過処理をしたいんだけど誰かサンプルありませんか?
psetで絵を描いてそれを落ちるようにしたいんだけど

393:訳
08/01/05 23:53:00
サンプルを見せろや
ソレを自力ということにすっから

394:デフォルトの名無しさん
08/01/05 23:58:46
>>389
詳しくありがとう。ファイル名収納用って事はやはり画像以外もか。
とりあえず全部11字以内に収まるようにするよー

395:394
08/01/06 00:52:51
もしや変数名やラベル名にも文字数制限あったりするのかな?なんか不安になってきた。

話は変わって、
>>386の>パックしたファイルよりフォルダにおいた画像とかが優先されるのね
に誰もつっこんでくれなかったけど、これは文字数との兼ね合いで結果としてこうなっただけで
パックファイルの中身が優先されちゃうじゃないか(´・ω・`)
これだと画像はパックせずにバラで配布せんと差し替えできないという事に・・・。
アプリ内での設定となると、
1:パック内よりフォルダ内を優先して読み込めーって命令とか
2:アプリ内でのコンフィグ的操作から、スクリプトを書き換える命令で
●●.jpgの部分を▲▲.jpgに書き換えつつ「▲▲.jpg」ってファイルをフォルダにおいてね、と注釈いれる
とか・・・そんな命令、もしくは他の方法はあるですかいな


396:デフォルトの名無しさん
08/01/06 03:56:13
参照画像名をレジストリかINIにでも書いておけばええやん

397:デフォルトの名無しさん
08/01/06 05:15:37
一行が長すぎてソースが汚くなるから改行したいときに、
前の行から続けて書くための記述方法ってあります?

398:デフォルトの名無しさん
08/01/06 09:32:31
>>395
> もしや変数名やラベル名にも文字数制限あったりするのかな?なんか不安になってきた。

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

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

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

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

起動ディレクトリのパスはdir_curに入ってる(起動時に変更されてなければ)。実行ファイルでの
実行時ならdir_exeでもOK。スクリプトからの実行時はdir_exeにはhsp3.exeなどのパスが入る。


399:398
08/01/06 09:36:02
>>398
> スクリプトからの実行時はdir_exeにはhsp3.exeなどのパスが入る。

hsp3.exeがあるフォルダのパスってことね。連投すまん。

400:394
08/01/06 20:27:16
>>396
俺の知識では、この場合にレジストリだとかiniだとかいう言葉が具体的に何を指して
どう書く事で、どういう意味があるのかが全部わからんとですよ(´・ω・`)

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

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

疑問ばっかで長々とすんまそ・・・

401:394
08/01/06 21:00:33
>>400の>ここでまた問題〜以下3行のよくわからんエラーは解決しました('A`)
全然関係ないところだった。連投でつまらんことですんません

402:デフォルトの名無しさん
08/01/06 22:12:43
exist命令でファイルの有無はチェックできるぞ。

403:デフォルトの名無しさん
08/01/06 23:29:08
ひまだねぇ

404:デフォルトの名無しさん
08/01/06 23:55:53
そうですねぇ

405:デフォルトの名無しさん
08/01/07 00:02:09
あらやだ。

406:デフォルトの名無しさん
08/01/07 22:23:44
URLリンク(gamdev3.hp.infoseek.co.jp)
キーコンフィグを作ったのですが、セーブやロードがうまく行きません。
sdimやdupも使ってみましたが、
セーブデータを見る限り、変数の消費より少ないという、より酷い状況に陥ったようで……
どういうセーブ方法が正しいやり方なのでしょうか。

407:デフォルトの名無しさん
08/01/07 22:45:25
えー、失礼しました。
ロードした後にdim使っちゃいけませんよねアヒャヒャ……

自己解決ぅorz

408:デフォルトの名無しさん
08/01/07 23:08:13
ひさしぶりに自己解決ッ!!!

409:デフォルトの名無しさん
08/01/07 23:14:36
じゃ、自己解決ゥ!

410:デフォルトの名無しさん
08/01/08 00:03:24
hspda使ってみようと思ったんだけど、vsaveもvloadも命令として認識しない。
(エディタで水色にならず、実行したらエラー)
dllは本体と同じとこにあるし、asはスクリプトと同じフォルダ、#includeもある。
これ以上何をどうすればいいのか、マニュアルにのってないよ(´・ω・`)

411:400
08/01/08 01:46:12
>>402
おーこんなのあったのか。これでうまいこといきそうだ、ありがとん!

412:デフォルトの名無しさん
08/01/08 03:58:41
>>410
#include "hspda.as"
a="hoge"
vload a
普通はこれだけでもエラーはでないんだがなあ

413:デフォルトの名無しさん
08/01/08 11:09:20
HSPを少しさわりだしてHSPTVブラウザってので
どんなのをみなさんは作ってるのかと思い適当に
クリックしたらウィンドウじゃなく全画面表示になって
終了さそうにもEscは効かねーわその他のキーも
効かねーわでタスクマネージャーで無理矢理
終了させた。
それにしても、どっか良い講座サイトないかね〜
最初、型は?初期化は?ってとまどった。

414:410
08/01/08 11:15:56
>>412
どこもいじってないのに(;消しただけ)今日はいけたよ・・・なんだったんだろ。
しかしこれ、エディタで水色にならんのは仕様って事でいいのかな?

415:410
08/01/08 11:19:52
>>413
超絶初心者の俺は
URLリンク(www.rinku.zaq.ne.jp)
ここをたまに使う。逆引き辞書が便利。でも、1からとりあえず〜ってのにはオススメしない。
最初講座から入ると自分は飽きちゃいそうで・・・HSP本体添付のだけはちゃんと読んだけど。

416:デフォルトの名無しさん
08/01/08 12:43:33
>>415
ありがとう!!
少しだけページ見てみました。
一応自分はC言語の知識はあってwin32apiを猫程度かじってて
C++,JAVAを初心者レベルで知識はあってC#をほんの少し
さわったレベルのプログラミングの経験がある野郎です。
ですので講座をちゃっちゃと流し読みしてTipsを読み終えたら
HSP付属のHELPむさぼることにしますわ

417:デフォルトの名無しさん
08/01/09 01:40:11
ファイルを開くダイアログが出てくるのを監視して
出てきたらファイル名をHSPから送りたいんですが
aplkeyとかaplkeyd+aplkeyuとかでも反応ないんですが
どうすればいいですか?

418:417
08/01/09 02:52:28
自己解決しました。
スレ汚しすいませんでした。

419:デフォルトの名無しさん
08/01/09 08:49:09

















420:デフォルトの名無しさん
08/01/09 23:13:14
ジン! ジン! 自己解決ゥ〜♪

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

422:デフォルトの名無しさん
08/01/10 18:05:33
>>421
> exeにした後、自分のPCでも問題なく動くのは、HSPの本体と同じフォルダにdllがあるからで

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

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

Yes。

423:通販さん@賛成です
08/01/11 01:33:34
通販さん@賛成です

424:デフォルトの名無しさん
08/01/11 05:37:16
>>421
DLLの再配布条件をDLLのReadmeで確認しとくことをお薦めするよ。

425:デフォルトの名無しさん
08/01/14 11:43:51
>>422
>>424
遅くなったけどありがとう。

426:デフォルトの名無しさん
08/01/14 16:33:15
ftpgetやftpputしたあとに、netmode命令で状態見てみたけど、
ftp待機状態ってなんだこりゃ。

HSPでオンライン通信なんて考えない方がいいんでしょうか。
教えて偉い人。

427:デフォルトの名無しさん
08/01/14 18:02:15
よくrepeatloopの間にgoto挟んであるのを見るけど、これってネスト云々で
エラー起きる元だよね?
なんでbreakと変数代入とか、エラーの起きない方法で示さないんだろう?
暗黙の了解で、手法を示す時はgoto使うけど、このスクリプト
使うならちゃんと自分でエラー起きないように書き換えろよ!みたいなのが
あるのかな?

428:デフォルトの名無しさん
08/01/14 18:37:42
>>427
breakは嫌い
ループ構文によって使えたり使えなかったりでうっとおしいから
ていうかHSPの各種ループ命令の統一感の無さは異常

429:デフォルトの名無しさん
08/01/14 20:08:47
>>427
>よくrepeatloopの間にgoto挟んであるのを見るけど
俺は見たことないよ

430:デフォルトの名無しさん
08/01/15 00:46:43
C++では多重ループから抜けるときとかエラー処理に飛ばすときとかに使う
HSPではやっちゃいけないのは知ってるがついやっちゃうなあ

431:デフォルトの名無しさん
08/01/15 14:27:31
>>428
breakよりオススメの方法を教えてほすぃ

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

>>430
やっちゃってたZE

432:デフォルトの名無しさん
08/01/15 19:10:43
mmload でmp3形式のファイルの音声が再生されません・・・
wav形式は正常に鳴るんですが、プラグインを入れないと再生できないのでしょうか?

433:デフォルトの名無しさん
08/01/15 21:14:51
mmloadじゃ再生できないだろ

434:デフォルトの名無しさん
08/01/15 23:48:29
「直してくれ」ってスゲェな!

435:デフォルトの名無しさん
08/01/16 05:44:58
失礼します。
パッドを三つほど繋いで使いたいのですが、
良い方法はありませんかね。

二つ使えるDLLならよくあります。
三人目はキーボードやマウスを使えます。
しかし四人目となると、どうにも……

436:デフォルトの名無しさん
08/01/16 12:49:44
変数に上限設定って出来る?
例えばHPを999より高くならないようにする、みたいな。

437:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/16 15:40:31
C++とかならクラスがあるのに…くやしい!!

439:デフォルトの名無しさん
08/01/17 01:16:58
>>435
H2_STICKなら複数認識された希ガス

440:デフォルトの名無しさん
08/01/17 19:12:12
いよいよ、HSP3.2βがフルオープンソースで公開された訳だが
みんな、興味ないん??

441:デフォルトの名無しさん
08/01/17 21:40:10
「最新!HSP3.1〜〜」と書いてある本を今読んでた俺涙目

442:デフォルトの名無しさん
08/01/18 00:38:17
>>440
構文ががらっと変わらない限り興味は無い

443:デフォルトの名無しさん
08/01/18 00:44:35
B・S・D! B・S・D!

444:デフォルトの名無しさん
08/01/18 03:57:08
>>440
簡便で実用的なツールであれば問題ない

仮にC++のような複雑怪奇な実装になっていれば、
今作ってるのが完成した時点でDに移るよ

445:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/18 11:10:51
すみません、間違えました。 1行目はscrennではなくscreenでした。

447:デフォルトの名無しさん
08/01/18 18:51:42
>>427
おまいだろ?コレ→>>445
釣られんからな!w

448:デフォルトの名無しさん
08/01/18 22:31:19
>>447
私は>>427氏ではありませんが、ループの中にgotoを入れるのはスマートではないのですね。
すぐ前の書き込みなのに見逃していて恥ずかしい限りですが、勉強になりました。
できましたら、スクロールバーについても是非教えて下さい。。

449:デフォルトの名無しさん
08/01/19 14:05:21
俺が427だぜ!結局今も変数とブレイクでやってるという・・・

450:デフォルトの名無しさん
08/01/20 22:32:54
>448
マクロのforとかwhileとか使えばいいじゃん。
あれならgoto使おうが全く問題ないし。

451:デフォルトの名無しさん
08/01/21 16:56:39
今ゲームつくってて、メッセージは全部同じウインドウに表示させるんだけど、
起点をposで定めて普通にmesで表示すると、文字数が多い場合ウインドウから
はみ出たり、最悪右端は表示されない。
自動折り返し用の命令みたいなのある?
それともいちいち文字数を数えて主導でpos指定しなおすしかない?

452:デフォルトの名無しさん
08/01/21 20:15:19
>>451
つ[DrawText API]

453:デフォルトの名無しさん
08/01/21 21:45:35
HSP 2.6時代はよくやってたけど3.0以降になってから手が付かない。
そんな変わらないけれどもw

ところで、HSPで言語設定を判定する事出来ますか?

454:デフォルトの名無しさん
08/01/22 00:51:38
iconvを呼び出す

455:デフォルトの名無しさん
08/01/23 20:00:48
>>452
よくわからんなりなんとか思ったとおりにできた。ありがとん

456:デフォルトの名無しさん
08/01/24 12:15:23
様、様、呼ばれて。w
あの程度でさ〜 いい気になんなよ

457:デフォルトの名無しさん
08/01/24 23:30:23
知らんがな

458:デフォルトの名無しさん
08/01/27 11:42:01
HSPで作った実行ファイルを、ウィルスだと誤認識する問題は解決されたのだろうか?
ソースネクストの「ウィルスセキュリティ」は修正されているようだけど…。

459:デフォルトの名無しさん
08/01/27 12:57:58
>>458
avastだと問題ないけど
誤認識するアンチウィルスソフトはいったい何だい?

460:デフォルトの名無しさん
08/01/27 14:01:34
>>459
これです。
URLリンク(www.onionsoft.net)

461:デフォルトの名無しさん
08/01/27 23:20:19
ウイルスバスターもいまだに駄目じゃない? 俺のは2006だけど。

462:デフォルトの名無しさん
08/01/27 23:27:09
ウイルスバスターは本当におせっかいだからな。
XPのキージェネもはじく品。

463:デフォルトの名無しさん
08/01/29 14:15:16
画像を半透明に表示させる方法ってある?
背景の上にボックスを半透明で表示して、その上に文字を出したいんだけど。
HTMLのstyle="filter:Alpha(opacity=50)"みたいな。


464:デフォルトの名無しさん
08/01/29 17:01:43
zip圧縮されたファイルの解凍後ファイルのヘッダの先頭20hに相当する部分だけが欲しいんですが
unzipで一度解凍する以外になにか上手い手はないですか?

465:デフォルトの名無しさん
08/01/29 19:41:46
解凍する他ないかと

466:デフォルトの名無しさん
08/01/29 20:47:22
>>463
ある。ジーコピーとジーモードを勉強しる!

467:デフォルトの名無しさん
08/01/29 23:14:17
現在のHSPを支えている四天王
URLリンク(hspnext.com)
URLリンク(rpen.blogspot.com)
URLリンク(sprocket.babyblue.jp)
URLリンク(lhsp.s206.xrea.com)

468:デフォルトの名無しさん
08/01/30 00:28:20
>>467
HSPが普通なインデントが使えることをはじめて知ったよ。
いつのバージョンから可能になったの?


469:デフォルトの名無しさん
08/01/30 07:41:03
>>467
URLリンク(dream.freespace.jp)
が抜けてるぞ

470:デフォルトの名無しさん
08/01/31 21:58:58
そいつらが四天王な訳w?
そいつらゴトキが?

471:デフォルトの名無しさん
08/01/31 22:40:56
>470
所詮HSPなんてそんなもんだよ

472:デフォルトの名無しさん
08/01/31 23:38:37
ほほう…


なかなか、知ってんのう!

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

もし、可能でしたらヒントを下さい。

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

なぜかテンプレのURLが「HTTP エラー 403 - アクセス不可」でした。


475:デフォルトの名無しさん
08/02/02 20:25:23
>>473です。

getkey 命令と、objsel 命令を使った力業で、自己解決しました。


476:デフォルトの名無しさん
08/02/02 22:27:12
サーバプログラムを作ろうとしてるんですが
どうしてもセッションをひとつしか持てません。

listenソケットを作成し、接続を受け付けて
通信ソケットを取得することができますが
その状態でさらに別の接続を受け付けても
取り出すことができません。
どうしたらよいのでしょうか

477:デフォルトの名無しさん
08/02/02 22:53:48
つpcbnet2

478:デフォルトの名無しさん
08/02/03 06:23:09
画像を読み込んで、WINDOWS付属のペイントの下部にあるような
パレットリストみたいなものを配置したいんですが、
クリック時にマウスの座標を判別してイベントを起こす他に、
どんなオブジェクトを作成すればパレット選択から処理に飛べるでしょうか。(シングルクリックだけでいいので)
標準ボタンなんかは色を変えられないようです

479:デフォルトの名無しさん
08/02/03 09:59:55
>>478
pget で色情報を取得して、やりたい処理をすればいいのでは?

480:デフォルトの名無しさん
08/02/03 12:19:19
本家に書き込んでいるaは誰だか知らんが神だな

481:デフォルトの名無しさん
08/02/03 14:37:38
>>479
>クリック時にマウスの座標を判別してイベントを起こす他に、

482:あみぢ厨
08/02/03 15:25:56
3Dやりてーなー、ちくしょう。
しっかし作業出来るのは、良くても日曜日ぐらいで
文字通り日曜プログラマになってしまた。
あーマジ学生時代に戻りたいぜぃ。

向う1年ぐらいは2Dゲーのプロジェクトで埋まってる。
というワケで、やるとしたら1年後だけど、
そんな僕にHSP導入は、アリですかね?
自分で調べろウンコですか、そうですか。すみません。

483:478
08/02/03 18:11:47
バッファに塗りつぶした正方形を描画して、
画像ボタンへスタイル変更したボタンに画像データとして関連付けようとしたんですが
イメージのハンドルってどうやって取得するんでしょうか。

mrefの66で取得した変数をポインタとして渡すんじゃ駄目でした。
LoadImageAでハンドルを取得する場合はメモリから読み込めませんし。

484:デフォルトの名無しさん
08/02/03 18:44:50
CreateBitmapしてDC挟んでボタンに貼り付け…かな


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4743日前に更新/116 KB
担当:undef