トップページgamedev
987コメント370KB

HSP - Hot Soup Processor [14]

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/12/09(土) 22:35:08ID:E0eCgjhQ
       (  ,,,)
        .(  ,,)      スクリプト言語 HotSoupProcessor について
        ( ,,).        ゲーム製作の視点から、また〜りと語り合うスレ。
     , -──- 、
    (,;::-──-; )-、
     .|` ̄ ̄ ̄´;;|ヽ l   * 質問する前に検索してみる事
     l;    :::;;;l-' /   * ヲチ、ネタなどはスレ違い
    ,-ヽ───.'-、´..   * 歴代スレ、関連サイトは >>2-4 あたり
    ヽ ──── '

  ONION software (本家)
   http://www.onionsoft.net/
0465名前は開発中のものです。2007/02/22(木) 14:41:18ID:TB+Oxm9G
>>464
>内部エラー38とか言われる。何がダメなのかわからないので
「38 "外部DLLの呼び出しに失敗しました"」
hsp30のフォルダにあるhspda.dllを
作った実行ファイルと同じフォルダにコピーしる
0466名前は開発中のものです。2007/02/22(木) 15:15:46ID:ULv4wJip
>465
うぉうデキタ。トン
exeにしたときは同じとこにないとダメなのね。憶えた。
一緒にひっくるめてファイルにしてくれるもんかと思ってた。

できた記念に一口買ってくるヮ
8、11、12、16、19、38
思いきり当たらなそうだけどなーorz
0467名前は開発中のものです。2007/02/22(木) 15:43:16ID:lPfRj7VD
>>464
思いついて適当に書いたけど
問われて改めて考えると、バグの元や無駄があるのに気づくな…。

─repeat cnt+1 は─
無限ループに陥るのを回避するために、ループ回数を指定してるんだけど
「ランダムで数字を選んだ時、すでに選択した数字とカブってる」
という状況は、7回以上連続して発生してもおかしくないんで、
試行回数 cnt+1 では不十分だ…。

>463氏の、選択した数値を抜き取っていく方法なら、
同じ数値が選ばれる問題は発生しないから、そっちのほうがいいやね。


─a=0とかa=1は─
キー待ちループの所で、
どういう理由でループを脱出したかを、あとで判定するための
フラグ操作のつもりだったのだけど、
脱出する理由は一つだけなんだから、フラグ立てるまでもなかった。

repeat:wait 1:stick key
if key&32 :break
if key&128 :end
loop
cls :goto *selnum ;これで十分だった。
0468名前は開発中のものです。2007/02/22(木) 21:00:40ID:u/uL+4lY
HSPでRPG作ろうと思ってるんだけど、音楽の再生(BGM)までの時間遅くない?
これを皆さんどうやって解決してますか?
0469名前は開発中のものです。2007/02/22(木) 21:09:48ID:5nAwOm3S
なんじゃそら
データの無音時間が長いんじゃねえの
0470名前は開発中のものです。2007/02/22(木) 21:44:16ID:TMK/38nP
>>466 そぉい!

#define ALL 43 //0~42の合計43個から
#define NEED 6 //6個選ぶとして

dim a, ALL

repeat ALL
a(cnt) = cnt
loop

repeat NEED
idx = rnd(ALL-(cnt+1))
idx += (cnt+1)

//ここで2つをスワップ
tmp = a(cnt)
a(cnt) = a(idx)
a(idx) = tmp
loop
//処理が終了した、結果を確認 ****

repeat ALL
mes "a[" + cnt + "] = " + a(cnt)

if(cnt == (NEED-1)): mes "↑ ここまで"
loop
0471名前は開発中のものです。2007/02/22(木) 23:23:00ID:MHAA7b9m
#define ALL 43 //0~42の合計43個から
#define NEED 6 //6個選ぶとして

if ALL < NEED : dialog "ALL が NEED 未満\nALL="+ALL+" NEED="+NEED,1,"MyError!" : end

//初期化
dim a, ALL
repeat ALL : a(cnt) = cnt : loop

//シャッフル
randomize
repeat NEED
  idx = rnd(ALL-cnt)+cnt   //←*******ここ、これでもいけるんじゃね?*********
  //ここで2つをスワップ
  tmp = a(cnt) : a(cnt) = a(idx) : a(idx) = tmp
loop

//処理が終了した、結果を確認 ****
sdim result, 32*ALL : notesel result
repeat ALL
  noteadd "a[" + strf("%2d",cnt) + "] = " + a(cnt)
  if(cnt == NEED-1) : noteadd "↑ ここまで"
loop
mesbox result, ginfo_winx,ginfo_winy, 0
0472名前は開発中のものです。2007/02/22(木) 23:57:08ID:TB+Oxm9G
>>468
.MID?
なら音の初期化に時間が掛かってる(仕様)
それが嫌なら MCI コマンド で
mpegvideoのデバイス使用したりすればいい
0473名前は開発中のものです。2007/02/23(金) 00:14:35ID:O0erhAiM
BGMは普通にオーディオファイル使いなよ
04744702007/02/23(金) 10:12:11ID:E2Prn5Yf
>>471
指摘と訂正ありがとう!
言われて気づきますた。>>470は rnd() で拾う範囲が間違ってました。
0475名前は開発中のものです。2007/02/24(土) 19:54:37ID:W+rZHJ8X
>>468
___________________
| GuruGuruSMF            || 検 索 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                         ↑
0476名前は開発中のものです。2007/02/25(日) 03:54:57ID:VNaVZIL+
SMFでBGM鳴らすと嫌がられるかもよ
0477名前は開発中のものです。2007/02/25(日) 06:18:25ID:g1M1g916
kwsk
0478名前は開発中のものです。2007/02/25(日) 14:44:33ID:JBJKbo+u
高性能なソフトウェア音源持ってるとオーディオ鳴らすよりメモリ食うから
ゲームの処理自体も遅くなるってことか>476
0479名前は開発中のものです。2007/02/25(日) 15:03:49ID:AlLVbpDx
俺もMIDIは嫌だな。
環境依存だから作曲者の意図した音色で鳴らないし、内蔵のはとにかく音がヘボイ。
外部音源(GM非対応)持ってるんだけど、MIDIのルーティングそっちにしてると
勝手に変な信号送るしな。

基本的には用量が小さい以外のメリットはないからオーディオデータのが良いよ。
フリー素材使う&レコーディング環境が無いならSMFデータでも仕方ないが。
0480名前は開発中のものです。2007/02/25(日) 16:42:45ID:/zNzezvq
mp3はライセンスがあれだからoggだね
0481名前は開発中のものです。2007/02/25(日) 17:02:00ID:VNaVZIL+
>477
俺が見てるゲーム系スレでMIDIだと一部に叩かれたりしてたってだけ
478-479みたいな話だった

俺もホムペでBGMにしてるとことかウザいし、内蔵の音嫌いなんで切っちゃってるがw
0482名前は開発中のものです。2007/02/25(日) 17:18:26ID:fYDjuiva
GGSMFは指定すれば外部音源も使えるが、
DirectMusicモードにすればどのパソコンも共通のDLSを使うんだぜ(そのDLSを変えれば別だが、普通はしない)。
処理は重くならない。

まぁ音がショボイのは髪の毛が抜けるほど同意なんだけどさ。
0483名前は開発中のものです。2007/02/25(日) 17:27:28ID:fYDjuiva
連ですまんが俺は

スーファミチックなグラフィック   = SMF
3Dなど、綺麗なグラフィックや世界観 = オーディオデータ

でいいんじゃないかと思っている
でもまぁ個人差はあるよね
0484名前は開発中のものです。2007/02/25(日) 17:52:08ID:VNaVZIL+
どちらもオーディオでいいと思うけどw
何らかの理由でとにかくデータを小さくしたいなら別だが
0485名前は開発中のものです。2007/02/25(日) 18:25:52ID:AgVpiUO/
ジャンルによるけど、オーディオだと素材が見つからないんだよね。
聴いたことあるやつだったりして萎えたり。

MIDIは豊富だけどどこもショボいし、
かといって自分じゃ作れないし…
はぁ
0486名前は開発中のものです。2007/02/26(月) 01:40:02ID:57LQAIMh
>>483
ああ、それ分かるわ〜
ファミコンチックな絵にはmusic.comのMMLで。

winで鳴らすプラグインあったよな…
いいわ。アレ。
0487名前は開発中のものです。2007/02/26(月) 01:53:38ID:oDJiOUFE
TSSで良いんじゃね。HSP用プラグインあるし。
あとMIDIデータがあるならGXSCCでオーサリングするとか。

とにかく環境依存のSMFは、技術的に他に選択肢が無い場合以外は回避が吉。
0488名前は開発中のものです。2007/02/26(月) 19:23:37ID:RONGsV2o
わかった!
別でソフト音源を自作して配布すれば人類みな兄弟だ
0489名前は開発中のものです。2007/02/26(月) 20:48:02ID:SJxC1fKB
そりゃPSGの時代にSCC積むってんなら分かるけど。
MIDIやmp3じゃだめなの?
0490名前は開発中のものです。2007/02/26(月) 20:54:27ID:A8+9CQeT
低脳回線の俺にとっては、5分くらいかけて一生懸命落としたやつが、
超ハイクオリティなオーディオデータ使ってても
内容が糞だと本当に萎える。
作者は自分の技量に合った容量の音楽データを決めてくれよな/(^o^)\ハッナザッワサーン

チラ裏だけど
俺はショボいMIDIのほうがゲームには味があっていいなと思う時がある
0491名前は開発中のものです。2007/02/26(月) 21:09:27ID:I1DVp87U
>作者は自分の技量に合った容量の音楽データを決めてくれよな
ムチャクチャ言うとるw

だからTSS使えと
0492名前は開発中のものです。2007/02/26(月) 22:17:32ID:PGtAGC7+
ここはミュージックフォーマットスレですか?

HSPの話題ないのかね
0493名前は開発中のものです。2007/02/26(月) 22:53:47ID:oDJiOUFE
TSSをHSPで使ってみよう
0494名前は開発中のものです。2007/02/27(火) 01:26:41ID:sv8ON4Xo
元から進行遅いんだし何話題にしてももうなんでもよくね?
と妥協気味なんだが。
0495名前は開発中のものです。2007/02/27(火) 04:16:21ID:sv8ON4Xo
というか、こういう話題で荒れなかったのは奇跡な気がしてきた。
0496名前は開発中のものです。2007/03/02(金) 17:27:06ID:RL8xs1BY
>467
レストンクス
cnt+1はそういうことだたのかー。
あの時はcntがどこにかかっているのかまだ良くわかってなかった。
でも これは (cnt+1/43)^(cnt+1) ってことで
確率としてはよっぽどと思うけど、
プログラマからすると高い方なんだろうか。
組んで計算してみようかと思ったけど、累乗してくれる命令が見つからない。
a=はフラグなのね。なるほどね。フラグってそうやって表すんか。
別のプログラムでこのやり方使ってうまくいった。勉強になりました。

>470-471
ようやっと仕組みがわかった。これも凄いな。
こういう発想は慣れればすぐ出てくるものなのかとただただ感心。
でもそれだけじゃ悔しいのであえていうと、
ロト6にゼロはないから、 a(cnt)=cnt+1にシル。
0497名前は開発中のものです。2007/03/02(金) 21:45:03ID:nNF0epL2
hsp wikiが

アクセス権限がありません

とかで見れない・・・俺だけ?
0498名前は開発中のものです。2007/03/02(金) 22:49:20ID:5hSvgbhg
見れるが

……何かやらかしたんじゃないだろうなw
0499名前は開発中のものです。2007/03/02(金) 22:52:48ID:xch9HBdf
>>497
俺は開ける
ついこの前開発wikiが
>07/02/28から07/03/01までの間アクセスできない状態が続きました。原因はスパムによる高負荷だったようです。
だったみたいだから
そのうち繋がるんじゃね?
0500名前は開発中のものです。2007/03/03(土) 08:16:02ID:/ZMyxF+O
まりがとう。

ところで、
装備品やアイテムのパラメータがExcelで管理できたら
製作者的に便利だと思ったんですが、
HSPとのやりとりは難しいですかね・・・?

今はnote命令でやってるんですが視認性があまり良くなくて・・・
0501名前は開発中のものです。2007/03/03(土) 11:47:02ID:b1MKL1pP
>>500
本格的なxsl形式対応は難しくても、csvなら簡単じゃね?
まあ何をどういう感じにしたいのかは知らんが。
0502名前は開発中のものです。2007/03/03(土) 12:28:23ID:WpAkZHyn
>>500
今はどんな感じに(noteで読んでる)ファイル作ってる?
0503名前は開発中のものです。2007/03/03(土) 13:18:13ID:a544u/75
HSP3です。
screen で作成したWindowを、HSPスクリプトディタみたく、
最大化ボタンを追加し、起動時に最大化を行う
(ただしタスクバーと重ならないように)
ようにする方法があれば教えてください。

Wikiの過去ログで最大化ボタンを追加する方法がありましたが、
タスクバーの後ろに画面が重なったり、
プログラム実行時、自動的に最大化する方法がわかりませんでした。
0504名前は開発中のものです。2007/03/03(土) 13:21:58ID:/ZMyxF+O
こんなカンジです
;武器データの例(各0行目=インデックス=武器ID)
;10行目;ファイル名,アイテム名,材質
;11行目;アイテムの説明
;12行目;損壊後ID,耐久度,重量
;13行目;切断力,刺突力,衝撃力
;14行目;対切,対刺,対衝
;15行目;切,穿,打
;16行目;構えN,構えT,構えW
;17行目;持易N,持易T,持易W
;18行目;価格,汎/重
;19行目;欠番(改行だけを入れる)

Excelだとフィルタとか使えてアイテム間のバランス調整が楽だなあと思いまして
0505名前は開発中のものです。2007/03/03(土) 14:07:38ID:WpAkZHyn
>>503
#uselib "user32.dll"
#func ShowWindow "ShowWindow" int, int
//  BOOL ShowWindow(
//    HWND hWnd,    // ウィンドウハンドル
//    int nCmdShow  // 表示状態
//  );
#func SetWindowLong "SetWindowLongA" int, int, int
//  LONG SetWindowLongA(
//    HWND hWnd,    // ウィンドウハンドル
//    int nIndex,      // 変更するデータの指定
//    LONG dwNewLong  // 新しい値
//  );
#func SetWindowPos "SetWindowPos" int, int, int, int, int, int, int
//  BOOL SetWindowPos(
//    HWND hWnd,            // ウィンドウのハンドル
//    HWND hWndInsertAfter,    // 配置順序のハンドル
//    int X,int Y,int cx,int cy,    //位置と大きさ
//    UINT uFlags            // ウィンドウ位置のオプション
//  );
#define GWL_STYLE                -16
#define WS_OVERLAPPEDWINDOW    0x00CF0000
#define SW_SHOWMAXIMIZED        3
#define SWP_FRAMECHANGED      0x0020
screen 0,ginfo_dispx,ginfo_dispy,0,,,640,480
SetWindowLong hwnd, GWL_STYLE, WS_OVERLAPPEDWINDOW
ShowWindow hwnd, SW_SHOWMAXIMIZED
SetWindowPos hwnd, 0, ginfo_wx1, ginfo_wy1, ginfo_dispx, ginfo_dispy, SWP_FRAMECHANGED

とりあえず作ったぜ?最大化はこんな感じ?
で、タスクバーが重ならないのはフルスクリーンではないのか?
05065032007/03/03(土) 14:33:02ID:a544u/75
>>505
早い回答ありがとうございます。
>>505の内容を新規作成で実行しましたが、ウィンドウがちらっと見えて速攻落ちました。
ちなみにこちらで作ってみたのを下に書いてみます。

screen 0,10,10,2
sz_w = ginfo(20)
sz_h = ginfo(21)
screen 2,sz_w,sz_h,,0,0
cls 4
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#uselib "user32.dll"
#cfunc GetWindowLong "GetWindowLongA" int,int
#func SetWindowLong "SetWindowLongA" int,int,int
#const GWL_STYLE -16
#const WS_MAXIMIZEBOX 0x00010000
ws = GetWindowLong( hwnd, GWL_STYLE ) //ウインドウスタイル取得
ws = ws | WS_MAXIMIZEBOX //最大化ボタン表示フラグを追加
SetWindowLong hwnd, GWL_STYLE, ws //ウインドウスタイルを再設定
gsel 2,-1 : gsel 2,1 // [最大化ボタン]再描画のため
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

>で、タスクバーが重ならないのはフルスクリーンではないのか?
フルスクリーンというのは、↓こんなのですか?
;$$$$$$$$$$$$$$$$$$$$$$
bgscr 2,ginfo(20),ginfo(21),,0,0
cls 4
;$$$$$$$$$$$$$$$$$$$$$$
というより、やりたかったのは最大化ボタンで最大化するとタスクバーを避けた範囲で最大化し、
タスクバーの高さをちょこちょこいじっても、追従してウィンドウの下枠が移動してくれるのです。
0507名前は開発中のものです。2007/03/03(土) 14:46:03ID:WpAkZHyn
>>506
落ちたっすかwwwwwwサーセンwwwwwww
そのままコピペして全角スペース残って無いだろうな?#defineの所。もし、そうならプロセスが残ってるはずだ

>フルスクリーン
そんなの

>追従してウィンドウの下枠が移動
そのスクリプトでその通りに動いてるが?というかWindowsが勝手にやってね?
05085062007/03/03(土) 14:54:53ID:a544u/75
>>507
もうしわけございません。//の行をそのままやってました。
ちゃんと整理すると思い描いていたとおりの動きで感激です。
かなり嬉しいです。どうも。
0509名前は開発中のものです。2007/03/03(土) 19:32:20ID:Ia/P8ltl
>>507
見吉ィぃぃぃぃいぃぃ!!!!
0510名前は開発中のものです。2007/03/04(日) 17:15:14ID:wznVdj4V
突然の質問失礼します。Pcbnet2のサンプルのsample01_SimpleChatをコンパイル+実行
してみたのですが、HSP3ではエラーになってしまいます。
ソースコンバータ(HSP2をHSP3に変換してくれる)にかけたのですがサーバ側は問題
ないのですが、Client側でエラーが出てしまいます。
85|*main
86| tcpfail soc
87| if stat : tcpclose soc : dialog "接続が切断されました!",1 : end
88| tcpgetl buf,1024,soc
89| if stat : gosub *recv
90| instr a,msg,"\n"
91| if a!-1 : gosub *send
92| wait 1
93| goto *main

line89がエラーと出るのですが、どうしたらいいでしょうか? 教えてください
0511名前は開発中のものです。2007/03/04(日) 17:42:38ID:S2R5w3OY
>>510
ソースコンバータを過信しすぎだな。
HSP3.1b7で実行すれば、エラーメッセージに原因が表示されるぞ。
0512名前は開発中のものです。2007/03/04(日) 18:57:05ID:YMvgADvJ
instrを関数にしろ
05132007/03/05(月) 00:21:04ID:6FToFsAD
>>512
instrを関数にしたいのですが、例えばa=instr(p1,p2,"string")ですよね?
このa=のaの部分を何にすればいいのかわかりません;;
>>511
早速DLしてきて試してみます! ありがとうございます ペコリ
0514名前は開発中のものです。2007/03/05(月) 00:26:34ID:ao1dJWki
>>513
ヘルプ見ろって・・・
>instr(p1,p2,"string")

>p1=変数名 : 検索される文字列が格納されている文字列型変数名
>p2=0〜(0) : 検索を始めるインデックス
>"string" : 検索する文字列
これでインデックス(自然数)が返ってくる。無ければ-1が返ってくる
05152007/03/05(月) 00:34:38ID:6FToFsAD
>>514
すみません;; 本気でわからないのですが、instr(a,msg,"\n")では
パラメータ式の記述が無効です。
ってなります;;
0516名前は開発中のものです。2007/03/05(月) 00:35:14ID:6FToFsAD
↑ごめんなさい、1じゃないです。
0517名前は開発中のものです。2007/03/05(月) 00:48:28ID:ao1dJWki
>>515
C言語とかだと有効だけど、HSPでは関数の戻り値を入れる変数が必要
つまり、index=instr(a,msg,"\n")みたいな感じで。
というか、戻り値使わないと関数を実行する意味無くね?
0518名前は開発中のものです。2007/03/05(月) 01:10:21ID:6FToFsAD
ほんとにすみません;; index=のindexの部分を何にすればいいのかわかりません。
instrでmsgから"\n"改行?を探してるのかな?ってぐらいにしかわからないです;;
0519名前は開発中のものです。2007/03/05(月) 01:36:15ID:6FToFsAD
あ! HSP2のinstrのヘルプ見てわかったんですが、a=(msg,,"\n")にしてやればいいのかな?
ですが、これで実行してみるとチャット欄にhelloって文字を打ちエンター押すと
10行ぐらいhelloってずらずら続いてしまいます・・・・
やはり違うのかな・・・・
0520名前は開発中のものです。2007/03/05(月) 02:07:49ID:ao1dJWki
index = instr(msg,0,"\n")
これでmsgの中身をインデックス0(1文字目)から検索して"\n"があるインデックスがindexに入る

例 : msg = "hello\n"の時
6文字目にあるのでindexには5が入る。
0521名前は開発中のものです。2007/03/05(月) 02:11:49ID:6FToFsAD
>>520
はい、そこまではわかりました。 でも、こんどはメッセージを送信したときに
メッセージがずらずら〜っといっぱい出てきてしまいます;;
Test17>test
Test17>test
Test17>test
Test17>test
Test17>test
こんな感じです;;
もう、思いつく限りの関数はHSP3用に直したのですが・・・;;
原因がさっぱりです
0522名前は開発中のものです。2007/03/05(月) 02:14:37ID:6FToFsAD
*send
s=msg
instr a,s,"\n" //ここもa=instr(s,,"\n")に直しました
getstr ss,s,a+2
poke s,a,0
s+=ss
buf="say "+s+"\n"
tcpput buf,soc
objprm 0,""
return
0523名前は開発中のものです。2007/03/05(月) 02:36:17ID:ao1dJWki
//動作がよくわからなかったのでためしに書いた。
s = "0123456789\nabcdefg"
ss = ""
a = instr(s,0,"\n")
mes a
getstr ss,s,a+2
mes ss
poke s,a,0
s+=ss
mes s

つまり文字列途中の改行を抜きたいってことでいいのか?
もしそうならinstrとstrmidをセットで使ったほうが楽
strmid(buff,instr(buff,0,"\n")+2,256)
これでbuff内の\n以降が取得できる。

余談だが、\nって二文字分なのな。\n\rに変換してるってどっかで見たが・・・
0524名前は開発中のものです。2007/03/05(月) 02:48:59ID:6FToFsAD
>>523 さん ほんとうにありがとうございます。
いぇ、改行を抜きたいのではなくて、pcbnet2のサンプルのsample01_Simplechat
をHSP3で正しくコンパイルしたいだけでして・・・;;
0525名前は開発中のものです。2007/03/05(月) 02:54:53ID:ao1dJWki
>>524
というか俺、さっきも書いた気がするがHSP3から入ったからHSP2の知識が全く無い。
移植そのものの役には立てそうにない。
しかし、良いスクリプトってだいたいHSP2だな・・・
0526名前は開発中のものです。2007/03/05(月) 02:58:45ID:6FToFsAD
>>525
ですねぇ;; ソースコンバータがもっとバージョンアップしてくれれば・・・・
             ↑
          すごい他力本願^^;
0527名前は開発中のものです。2007/03/05(月) 03:54:46ID:IdxZqlrk
>>522
msg=""
objprm 0,""
return

一応これで出来た
hsp2だと objprm 0,"" で使ってるバッファも影響受けるのかな?
0528名前は開発中のものです。2007/03/05(月) 03:57:48ID:ay926VlW
なんかごちゃごちゃやってるみたいだけど
ソースコンバータ通したスクリプトを

90行目
a=instr(msg,0,"\n")

135行目
a=instr(s,0,"\n"):msg=""

にするだけの話だぞ
0529名前は開発中のものです。2007/03/05(月) 04:04:56ID:6FToFsAD
>>528
おお!! でけた! 528さん、ありがとうございます;;
このサンプルでpcbnet一生懸命勉強しようと思います。
どうもありがとうございました ペコペコ
0530名前は開発中のものです。2007/03/05(月) 04:19:35ID:IdxZqlrk
sdim msg,1024
mesbox msg,200,24,1
repeat
s=msg
;instr(a,s,"\n") ;2用
a=instr(s,0,"\n") ;3用
if a>0{objprm 0,""}
title ""+msg
wait 1
loop
stop

やっぱり objprm の動作が2と3で違うな
2ならobjprm で操作したら使ってる変数内容も
変化するけど 3は変わらない
バグっぽいけど・・・
0531名前は開発中のものです。2007/03/05(月) 08:05:10ID:9TVkJKsy
関連付けてる変数を更新して、それをobjprmの引数にすれば
OKなんだけどね。

ていうかウィンドウキャプション、改行コードも表示されちゃうんだ。
知らんかった。
0532名前は開発中のものです。2007/03/07(水) 17:18:17ID:nPv9ImbS
サーバ側からクライアント側へ画像を転送するにはどうすればいいですか?
0533名前は開発中のものです。2007/03/07(水) 18:44:46ID:nwF22j0Y
>>532
HTTPのGETコマンドで画像ファイルのURLをリクエストすればいい。
でもバイナリデータだからHSPだと切り出しがツライかも。
0534名前は開発中のものです。2007/03/07(水) 20:09:37ID:nPv9ImbS
>>533
いあ、HTTPではなくて、サーバ側のbufferに描いた画像をクライアント側
にgcopyするみたいなことってできないですかね?
0535名前は開発中のものです。2007/03/07(水) 20:18:53ID:hRCFzq0X
>>534
クライアント側がサーバになり(ポートを開いて接続を待ち受ける)、
サーバ側がクライアントとして振舞う(クライアントに接続に行く)ことで
ファイルを送りつけることは可能。
でも現実にはルータやファイアウォールとか、サーバの規約とか、
ウイルス扱いされるとか、ネットワークの安全性とか、色々な問題が予想されます。
0536名前は開発中のものです。2007/03/07(水) 21:06:27ID:ydn30hoM
>>534
クライアント側に初めから用意されている画像を、
『どの位置か』といったシンプルな情報だけを通信でやりとりして、
それを基にクライアント側で処理させるのが無難。
 
何のためにそれをしたいのかを書かないと、大したアドバイスは出来ないと思う。
絵チャットみたいなのをしたいの?
0537名前は開発中のものです。2007/03/07(水) 21:53:25ID:nPv9ImbS
>>536
なるほど。 別になにかしたいってわけではなくて、ただ、どうやったら
できるのかな?って疑問に思っただけなんです^^;
「どの位置」をクライアント側に渡してやればいいのかあ。
考えてみます。
どうもありがとうございました。
0538名前は開発中のものです。2007/03/08(木) 17:40:29ID:TEJL+ADw
レースゲームのサンプルスクリプトってどこかないですか?
アクセルとブレーキの実装ってどうやっているのか知りたいのですが。
0539名前は開発中のものです。2007/03/08(木) 17:51:20ID:V+92YLpv
>>538
物理計算を単純にした感じでいいんじゃね?
0540名前は開発中のものです。2007/03/08(木) 19:31:25ID:swI1jhiZ
アクセル 前進
ブレーキ 停止
じゃなくて
アクセル 速度上昇
ブレーキ 速度減少
にして、速度によって位置を変えていけばいいんじゃね?

って回答でおk?
0541名前は開発中のものです。2007/03/08(木) 19:34:54ID:TEJL+ADw
>>539
すいません、物理計算っていうのがわかりません;;
0542名前は開発中のものです。2007/03/08(木) 19:42:23ID:TEJL+ADw
>>540
なるほどお!? わかったような、わからないような・・・
普通のキー入力だと、キーを離すとキャラクタが止まってしまいますよね?
キーを離しても、慣性で進んでいくような、レースゲームでは当たり前でしょうが、
経験が浅いのかおつむがバカなのかその具体的な方法が思いつきません
0543名前は開発中のものです。2007/03/08(木) 20:07:41ID:hsHUTUZZ
*main
//キーチェック
if(加速キーが押されてたら):加速度=加速度+いくらか
if(減速キーが押されてたら):加速度=加速度-なんぼか

//座標更新
座標=座標+加速度

//グラフィック表示
pos(座標…
gcopy(グラフィック表示…

//ループ毎に減らす(アクセルを踏んでないとエンジンブレーキ)
加速度=加速度-ちょっと
goto *main

レースゲームだとたぶんキャラの位置は固定で背景だけが動く
だろうから適当に工夫してちょ
0544名前は開発中のものです。2007/03/08(木) 20:29:52ID:TEJL+ADw
>>543
おお!ありがとうございます! これを元に考えてみます
0545名前は開発中のものです。2007/03/09(金) 04:35:11ID:PSudILgY
どうでもいいけど
加速度→速度
いくらか・なんぼか→加速度
じゃね?
0546名前は開発中のものです。2007/03/09(金) 05:52:08ID:mAtCxyxj
それもそうだ
本能で書いた
すまぬ
0547名前は開発中のものです。2007/03/09(金) 22:18:11ID:OmsA6ix3
gzoomでキャラクターが画面向こうからこっちに迫ってくるようにしたいんですが
背景で画面をクリア(残像を消去)しながらやるとちらついてしまいます。
多分gzoom命令のせいだと思いますがちらつかなくする方法ってありますか?
0548名前は開発中のものです。2007/03/09(金) 23:08:54ID:mAtCxyxj
redrawとかは当然使ってるんだよね
gcopyではチラつかないのにgzoomだとチラつく?
0549名前は開発中のものです。2007/03/09(金) 23:48:34ID:9wm9gx0I
向かってくるキャラが女性なんだろう。
だから色々チラつくんじゃないかな。
05505472007/03/10(土) 07:57:00ID:BrhUO2D5
うまくいきました。
初歩的なことですいませんでした
05515482007/03/10(土) 08:53:38ID:s4EgJTT+
  ( ゚д゚ )
0552名前は開発中のものです。2007/03/10(土) 09:47:14ID:RgqImxK/
どっかのHSPまとめサイトかなんかで、

このTIPSは理解しやすいように変数に全角文字を 使ってるけど
行儀が悪いので半角に換えましょう

みたいな事が書かれてたんだけど、・・・行儀悪い?
俺見易くなるようにNOを#とかにしてるけど・・・
後で思わぬ不具合が出るとか?

0553名前は開発中のものです。2007/03/10(土) 12:02:56ID:EgnyZfl8
プログラムの書き方なんて千差万別
どの書き方がよくてどれが悪いなんて無い
0554名前は開発中のものです。2007/03/10(土) 15:53:04ID:dqgHW26b
その手の宗教発言は真に受けるべからず
0555名前は開発中のものです。2007/03/10(土) 16:21:45ID:C28IpD1h
HSPでアクションゲームつくりたいんだけどどこかいい解説サイトはないかな
0556名前は開発中のものです。2007/03/10(土) 17:19:27ID:eQ0ijKNl
昔は「美しいプログラムを書きましょう」だの「スパゲッティ」だのよく聞いたんだけどな。今はソースを
他人に公開することもなく、チームを組んで作るとか後で後輩に引き継ぐとかするのでもなければ
行儀なんてどうでもいいんだろうな。現実にはそういう場合でもきったねえんだけどさ。
でもHSPなんてフリーソフトなんだから、やっぱ標準的な書き方しないと心配じゃね?変数を全角で
書いて、もし変な不具合が起こったらどうしようってずーっと心配しなくちゃいけない。行儀がどうこう
ってんじゃなくて、信用できない。起こらないんだろうけど。てか現実にはマイクロソフトだってそんな
に信用できないけどさ。

>>552
Dr.Dに怒られちゃうぞ。
0557名前は開発中のものです。2007/03/10(土) 17:34:29ID:eQ0ijKNl
>>555
シューティングでもテトリスでも作り方がある程度分かればアクションも作れるだろ。あとはたっぷり
アクションゲームをやることだ。お前の言ってるアクションが格闘アクションのことだったら知らんけど。
てかHSPでアクションゲームに特化して解説してるがなかったら作れないってんならやめちまえ!





でも頑張ってね。(←ツンデレで)
0558名前は開発中のものです。2007/03/10(土) 17:51:50ID:GJ+Cs3X4
どうせ横スクロールモノだろ?
シューティングよりも、テトリスの方が似てるかな。
テトリスの棒が左右に歩いてジャンプできれば、一画面物アクションなら出来たも同然。
0559名前は開発中のものです。2007/03/10(土) 18:51:01ID:3t9NJGvE
すごろくゲームのサンプルスクリプトどこかにありませんか?
サイコロの出た目によってコマが進むしくみが知りたいのですがどうすればよいのかわかりません。
0560名前は開発中のものです。2007/03/10(土) 19:31:06ID:s4EgJTT+
クマー
0561名前は開発中のものです。2007/03/10(土) 19:49:45ID:GJ+Cs3X4
>>559
双六は、マップのデータの持ち方が意外にややこしいかもな。
・・・どうも、それ以前の段階で詰まってそうな感じだけど。
0562名前は開発中のものです。2007/03/10(土) 19:56:29ID:5ZAWuvtI
>>559
まず一方通行&一直線のすごろくを作って、
配列インデックスと座標データとコマ表示の関係を学ぶといい。

1.一方通行&一直線のすごろく (基本)
2.クネクネしたすごろく (応用)
3.ぐるぐる回るすごろく (モノポリーなど)
4.分岐やループのあるすごろく (人生ゲームなど)
5.目的地があり、好きな方向に動けるすごろく (桃太郎電鉄など)

この流れで作っていけば君もすごろくマスターだ!
0563名前は開発中のものです。2007/03/10(土) 21:02:03ID:rcfj8Pc0
>>552
同一ソース内に全角と半角を混ぜるなんて、
ちゃんと動いたとしても、気持ち悪くて出来ないな。
万が一、半角スペースのつもりで全角スペースを入れたときとか
見つけにくいんだよ意外と。
「そんなミスするわけないだろ(笑)」とか思っててもやってしまうのが
プログラミング。

少なくともそういう、「全角だろうが半角だろうがOK!」
っていう教え方をする先輩や上司はいないだろうな。

というか既に結論出ちゃってるけど、
個人でやるなら自由にすればいい。
団体でやるならマナーを守れと。
0564名前は開発中のものです。2007/03/10(土) 21:14:58ID:Of9Rb6RG
ビリー「全角スペースなんて小さな事でお悩みの貴方に送る、テキストエディタ TeraPad!」
■ このスレッドは過去ログ倉庫に格納されています