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/
0446名前は開発中のものです。
2007/02/21(水) 14:55:21ID:2oVWmjXk消防の頃、88で自作の3DRPG作ったのを思い出す。
初めて自分の作ったダンジョンの中を歩いた時は、そりゃ感動したもんだ。
LINE文が、描画中の線が目に見えるほど遅かったのには難儀したが。
0447名前は開発中のものです。
2007/02/21(水) 20:10:26ID:sqTKc8XK俺もやったけど、描画は遅いんであらかじめ描いておいてパレットチェンジで対応した。
描画の速さはちょっと自慢だったが、完成してないので誰も見ていないw
0448名前は開発中のものです。
2007/02/21(水) 20:27:05ID:2oVWmjXkああ、そう言う方法の方が早かったかも知れないですな。
あんまり遅かったんで、俺はLINE文を自作のマシン語で置き換えて作ってたよ。
まあダンジョンの中歩けた時点で満足して、俺もゲームらしいゲームには作らなかったけど・・・
0449名前は開発中のものです。
2007/02/21(水) 21:51:11ID:ffqSjqvs消防でか。すげーな。
俺の通ってた小学校にいたら間違いなくヒーローだぞ。
0450447
2007/02/21(水) 21:57:51ID:sqTKc8XK緑の点を打つ、あたりで挫折した覚えがあるよ。446すげーな
つーかここHSPスレじゃねえかw
0451名前は開発中のものです。
2007/02/21(水) 22:25:26ID:CjGnhR5w0452名前は開発中のものです。
2007/02/21(水) 23:00:10ID:sqTKc8XK0453名前は開発中のものです。
2007/02/21(水) 23:29:33ID:0jTyllT+ロト6用に簡単なものをつくってみたいんだけど、
ぱっと思いつくrepeatとrndをつかった文だと、重複した時の対処を
一つずつやっていかなきゃならないけど、
なんかもっときれいな形にできないかなと。
0454名前は開発中のものです。
2007/02/22(木) 00:04:43ID:MHAA7b9m0455名前は開発中のものです。
2007/02/22(木) 00:44:26ID:XI+KwTS4シューティング作ってるんだけど、弾の出し方がよく分からない。
・押しっぱなしで出続ける(最大何発とかの制限あり)
・離すと切れる
は出来るんだけど、
・一回押したら最後まで出る(ミサイルが4発時間差で出たり)
ってのが出来ない。
だれかヒントを…
0456名前は開発中のものです。
2007/02/22(木) 00:55:44ID:0D03FtgL↓
カウンターが規定値に達したらカウンターを0に。
↓
カウンターが特定の値のとき、自機の座標に応じてショットを生成
↓
ループ
で良くね
0457名前は開発中のものです。
2007/02/22(木) 00:58:29ID:MHAA7b9mキー押されたらフラグ変えて、ループ中に作ったif文で関数なりなんなりに飛んでけばおk
モジュール空間にミサイル発射間隔とカウンタ等を入れるのがお勧め
0458名前は開発中のものです。
2007/02/22(木) 03:06:11ID:AGuE7p3Bそうですかそれしかないですか(´・ω・`)ションボリ
0459名前は開発中のものです。
2007/02/22(木) 04:11:10ID:AGuE7p3B*saisho
dim a,6
randomize
repeat 6,0
*yarinaoshi
a(cnt)=rnd(43)+1
if cnt=1 & a(1)=a(0) :goto *yarinaoshi
if cnt=2 & (a(2)=a(1) or a(2)=a(0)) :goto *yarinaoshi
if cnt=3 & (a(3)=a(2) or a(3)=a(1) or a(3)=a(0)) :goto *yarinaoshi
if cnt=4 & (a(4)=a(3) or a(4)=a(2) or a(4)=a(1) or a(4)=a(0)) :goto *yarinaoshi
if cnt=5 & (a(5)=a(4) or a(5)=a(3) or a(5)=a(2) or a(5)=a(1) or a(5)=a(0)) :goto *yarinaoshi
loop
sortval a,
repeat 6
mes a(cnt)
loop
mes "\n enterでもう一回。ESCで終了"
*keycode
stick key
if key&32 :cls :goto *saisho
if key&128 :end
await 1
goto *keycode
つくって見たんだけど、EXEファイルが実行してもエラー。
どうすれば良いか全然分からん。( つД`)
0460名前は開発中のものです。
2007/02/22(木) 05:04:52ID:lPfRj7VD*selnum ;数字選定
dim r,44
repeat 6
repeat cnt+1
a=rnd(7)+1:if r(a)=0:r(a)=1:break
loop
loop
;表示
repeat 43,1:if r(cnt) :mes cnt
loop
;まだやるかい
mes "\nENTERで「元気…イッパイ…だぜ…ヘッ…」\nESCで、「ヒ…」":a=0
repeat:wait 1:stick key
if key&32 :a=1:break
if key&128 :end
loop
if a:cls :goto *selnum
0461460
2007/02/22(木) 05:07:35ID:lPfRj7VDa=rnd(43)+1:if r(a)=0:r(a)=1:break
0462名前は開発中のものです。
2007/02/22(木) 06:26:39ID:TB+Oxm9G出来るなら [Ctrl]+[F9] で実行ファイル作ってる?
0463名前は開発中のものです。
2007/02/22(木) 06:27:44ID:PPY3Nm7Zrandomize: notesel a: repeat 43,1: noteadd ""+cnt: loop
repeat 6: i=rnd(43-cnt): noteget n(cnt),i: notedel i: loop
repeat 6: mes n(cnt): loop: stop
0464名前は開発中のものです。
2007/02/22(木) 12:39:48ID:ULv4wJipオメスゲーナ。やり用によってはこうやってできるのか。
ちょっとわからんところ。
repeat cnt+1 の意味と最後にa=0とかa=1の意味とか、
良かったら教えてくれ。
if ってこういう使い方もあったのか。ヘルプだけじゃワカラン。
>462
内部エラー38とか言われる。何がダメなのかわからないので、晒してみた。
>463
重複が重複のまま・・。
0465名前は開発中のものです。
2007/02/22(木) 14:41:18ID:TB+Oxm9G>内部エラー38とか言われる。何がダメなのかわからないので
「38 "外部DLLの呼び出しに失敗しました"」
hsp30のフォルダにあるhspda.dllを
作った実行ファイルと同じフォルダにコピーしる
0466名前は開発中のものです。
2007/02/22(木) 15:15:46ID:ULv4wJipうぉうデキタ。トン
exeにしたときは同じとこにないとダメなのね。憶えた。
一緒にひっくるめてファイルにしてくれるもんかと思ってた。
できた記念に一口買ってくるヮ
8、11、12、16、19、38
思いきり当たらなそうだけどなーorz
0467名前は開発中のものです。
2007/02/22(木) 15:43:16ID:lPfRj7VD思いついて適当に書いたけど
問われて改めて考えると、バグの元や無駄があるのに気づくな…。
─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これを皆さんどうやって解決してますか?
0469名前は開発中のものです。
2007/02/22(木) 21:09:48ID:5nAwOm3Sデータの無音時間が長いんじゃねえの
0470名前は開発中のものです。
2007/02/22(木) 21:44:16ID:TMK/38nP#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 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.MID?
なら音の初期化に時間が掛かってる(仕様)
それが嫌なら MCI コマンド で
mpegvideoのデバイス使用したりすればいい
0473名前は開発中のものです。
2007/02/23(金) 00:14:35ID:O0erhAiM0475名前は開発中のものです。
2007/02/24(土) 19:54:37ID:W+rZHJ8X___________________
| GuruGuruSMF || 検 索 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑
0476名前は開発中のものです。
2007/02/25(日) 03:54:57ID:VNaVZIL+0477名前は開発中のものです。
2007/02/25(日) 06:18:25ID:g1M1g9160478名前は開発中のものです。
2007/02/25(日) 14:44:33ID:JBJKbo+uゲームの処理自体も遅くなるってことか>476
0479名前は開発中のものです。
2007/02/25(日) 15:03:49ID:AlLVbpDx環境依存だから作曲者の意図した音色で鳴らないし、内蔵のはとにかく音がヘボイ。
外部音源(GM非対応)持ってるんだけど、MIDIのルーティングそっちにしてると
勝手に変な信号送るしな。
基本的には用量が小さい以外のメリットはないからオーディオデータのが良いよ。
フリー素材使う&レコーディング環境が無いならSMFデータでも仕方ないが。
0480名前は開発中のものです。
2007/02/25(日) 16:42:45ID:/zNzezvq0481名前は開発中のものです。
2007/02/25(日) 17:02:00ID:VNaVZIL+俺が見てるゲーム系スレでMIDIだと一部に叩かれたりしてたってだけ
478-479みたいな話だった
俺もホムペでBGMにしてるとことかウザいし、内蔵の音嫌いなんで切っちゃってるがw
0482名前は開発中のものです。
2007/02/25(日) 17:18:26ID:fYDjuivaDirectMusicモードにすればどのパソコンも共通のDLSを使うんだぜ(そのDLSを変えれば別だが、普通はしない)。
処理は重くならない。
まぁ音がショボイのは髪の毛が抜けるほど同意なんだけどさ。
0483名前は開発中のものです。
2007/02/25(日) 17:27:28ID:fYDjuivaスーファミチックなグラフィック = SMF
3Dなど、綺麗なグラフィックや世界観 = オーディオデータ
でいいんじゃないかと思っている
でもまぁ個人差はあるよね
0484名前は開発中のものです。
2007/02/25(日) 17:52:08ID:VNaVZIL+何らかの理由でとにかくデータを小さくしたいなら別だが
0485名前は開発中のものです。
2007/02/25(日) 18:25:52ID:AgVpiUO/聴いたことあるやつだったりして萎えたり。
MIDIは豊富だけどどこもショボいし、
かといって自分じゃ作れないし…
はぁ
0486名前は開発中のものです。
2007/02/26(月) 01:40:02ID:57LQAIMhああ、それ分かるわ〜
ファミコンチックな絵にはmusic.comのMMLで。
winで鳴らすプラグインあったよな…
いいわ。アレ。
0487名前は開発中のものです。
2007/02/26(月) 01:53:38ID:oDJiOUFEあとMIDIデータがあるならGXSCCでオーサリングするとか。
とにかく環境依存のSMFは、技術的に他に選択肢が無い場合以外は回避が吉。
0488名前は開発中のものです。
2007/02/26(月) 19:23:37ID:RONGsV2o別でソフト音源を自作して配布すれば人類みな兄弟だ
0489名前は開発中のものです。
2007/02/26(月) 20:48:02ID:SJxC1fKBMIDIやmp3じゃだめなの?
0490名前は開発中のものです。
2007/02/26(月) 20:54:27ID:A8+9CQeT超ハイクオリティなオーディオデータ使ってても
内容が糞だと本当に萎える。
作者は自分の技量に合った容量の音楽データを決めてくれよな/(^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:oDJiOUFE0494名前は開発中のものです。
2007/02/27(火) 01:26:41ID:sv8ON4Xoと妥協気味なんだが。
0495名前は開発中のものです。
2007/02/27(火) 04:16:21ID:sv8ON4Xo0496名前は開発中のものです。
2007/03/02(金) 17:27:06ID:RL8xs1BYレストンクス
cnt+1はそういうことだたのかー。
あの時はcntがどこにかかっているのかまだ良くわかってなかった。
でも これは (cnt+1/43)^(cnt+1) ってことで
確率としてはよっぽどと思うけど、
プログラマからすると高い方なんだろうか。
組んで計算してみようかと思ったけど、累乗してくれる命令が見つからない。
a=はフラグなのね。なるほどね。フラグってそうやって表すんか。
別のプログラムでこのやり方使ってうまくいった。勉強になりました。
>470-471
ようやっと仕組みがわかった。これも凄いな。
こういう発想は慣れればすぐ出てくるものなのかとただただ感心。
でもそれだけじゃ悔しいのであえていうと、
ロト6にゼロはないから、 a(cnt)=cnt+1にシル。
0497名前は開発中のものです。
2007/03/02(金) 21:45:03ID:nNF0epL2アクセス権限がありません
とかで見れない・・・俺だけ?
0498名前は開発中のものです。
2007/03/02(金) 22:49:20ID:5hSvgbhg……何かやらかしたんじゃないだろうなw
0499名前は開発中のものです。
2007/03/02(金) 22:52:48ID:xch9HBdf俺は開ける
ついこの前開発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本格的なxsl形式対応は難しくても、csvなら簡単じゃね?
まあ何をどういう感じにしたいのかは知らんが。
0502名前は開発中のものです。
2007/03/03(土) 12:28:23ID:WpAkZHyn今はどんな感じに(noteで読んでる)ファイル作ってる?
0503名前は開発中のものです。
2007/03/03(土) 13:18:13ID:a544u/75screen で作成した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#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
とりあえず作ったぜ?最大化はこんな感じ?
で、タスクバーが重ならないのはフルスクリーンではないのか?
0506503
2007/03/03(土) 14:33:02ID:a544u/75早い回答ありがとうございます。
>>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落ちたっすかwwwwwwサーセンwwwwwww
そのままコピペして全角スペース残って無いだろうな?#defineの所。もし、そうならプロセスが残ってるはずだ
>フルスクリーン
そんなの
>追従してウィンドウの下枠が移動
そのスクリプトでその通りに動いてるが?というかWindowsが勝手にやってね?
0508506
2007/03/03(土) 14:54:53ID:a544u/75もうしわけございません。//の行をそのままやってました。
ちゃんと整理すると思い描いていたとおりの動きで感激です。
かなり嬉しいです。どうも。
0509名前は開発中のものです。
2007/03/03(土) 19:32:20ID:Ia/P8ltl見吉ィぃぃぃぃいぃぃ!!!!
0510名前は開発中のものです。
2007/03/04(日) 17:15:14ID:wznVdj4Vしてみたのですが、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ソースコンバータを過信しすぎだな。
HSP3.1b7で実行すれば、エラーメッセージに原因が表示されるぞ。
0512名前は開発中のものです。
2007/03/04(日) 18:57:05ID:YMvgADvJ05131
2007/03/05(月) 00:21:04ID:6FToFsADinstrを関数にしたいのですが、例えばa=instr(p1,p2,"string")ですよね?
このa=のaの部分を何にすればいいのかわかりません;;
>>511
早速DLしてきて試してみます! ありがとうございます ペコリ
0514名前は開発中のものです。
2007/03/05(月) 00:26:34ID:ao1dJWkiヘルプ見ろって・・・
>instr(p1,p2,"string")
>p1=変数名 : 検索される文字列が格納されている文字列型変数名
>p2=0〜(0) : 検索を始めるインデックス
>"string" : 検索する文字列
これでインデックス(自然数)が返ってくる。無ければ-1が返ってくる
05151
2007/03/05(月) 00:34:38ID:6FToFsADすみません;; 本気でわからないのですが、instr(a,msg,"\n")では
パラメータ式の記述が無効です。
ってなります;;
0516名前は開発中のものです。
2007/03/05(月) 00:35:14ID:6FToFsAD0517名前は開発中のものです。
2007/03/05(月) 00:48:28ID:ao1dJWkiC言語とかだと有効だけど、HSPでは関数の戻り値を入れる変数が必要
つまり、index=instr(a,msg,"\n")みたいな感じで。
というか、戻り値使わないと関数を実行する意味無くね?
0518名前は開発中のものです。
2007/03/05(月) 01:10:21ID:6FToFsADinstrでmsgから"\n"改行?を探してるのかな?ってぐらいにしかわからないです;;
0519名前は開発中のものです。
2007/03/05(月) 01:36:15ID:6FToFsADですが、これで実行してみるとチャット欄にhelloって文字を打ちエンター押すと
10行ぐらいhelloってずらずら続いてしまいます・・・・
やはり違うのかな・・・・
0520名前は開発中のものです。
2007/03/05(月) 02:07:49ID:ao1dJWkiこれでmsgの中身をインデックス0(1文字目)から検索して"\n"があるインデックスがindexに入る
例 : msg = "hello\n"の時
6文字目にあるのでindexには5が入る。
0521名前は開発中のものです。
2007/03/05(月) 02:11:49ID:6FToFsADはい、そこまではわかりました。 でも、こんどはメッセージを送信したときに
メッセージがずらずら〜っといっぱい出てきてしまいます;;
Test17>test
Test17>test
Test17>test
Test17>test
Test17>test
こんな感じです;;
もう、思いつく限りの関数はHSP3用に直したのですが・・・;;
原因がさっぱりです
0522名前は開発中のものです。
2007/03/05(月) 02:14:37ID:6FToFsADs=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:ao1dJWkis = "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いぇ、改行を抜きたいのではなくて、pcbnet2のサンプルのsample01_Simplechat
をHSP3で正しくコンパイルしたいだけでして・・・;;
0525名前は開発中のものです。
2007/03/05(月) 02:54:53ID:ao1dJWkiというか俺、さっきも書いた気がするがHSP3から入ったからHSP2の知識が全く無い。
移植そのものの役には立てそうにない。
しかし、良いスクリプトってだいたいHSP2だな・・・
0526名前は開発中のものです。
2007/03/05(月) 02:58:45ID:6FToFsADですねぇ;; ソースコンバータがもっとバージョンアップしてくれれば・・・・
↑
すごい他力本願^^;
0527名前は開発中のものです。
2007/03/05(月) 03:54:46ID:IdxZqlrkmsg=""
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さん、ありがとうございます;;
このサンプルでpcbnet一生懸命勉強しようと思います。
どうもありがとうございました ペコペコ
0530名前は開発中のものです。
2007/03/05(月) 04:19:35ID:IdxZqlrkmesbox 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:9TVkJKsyOKなんだけどね。
ていうかウィンドウキャプション、改行コードも表示されちゃうんだ。
知らんかった。
0532名前は開発中のものです。
2007/03/07(水) 17:18:17ID:nPv9ImbS0533名前は開発中のものです。
2007/03/07(水) 18:44:46ID:nwF22j0YHTTPのGETコマンドで画像ファイルのURLをリクエストすればいい。
でもバイナリデータだからHSPだと切り出しがツライかも。
0534名前は開発中のものです。
2007/03/07(水) 20:09:37ID:nPv9ImbSいあ、HTTPではなくて、サーバ側のbufferに描いた画像をクライアント側
にgcopyするみたいなことってできないですかね?
0535名前は開発中のものです。
2007/03/07(水) 20:18:53ID:hRCFzq0Xクライアント側がサーバになり(ポートを開いて接続を待ち受ける)、
サーバ側がクライアントとして振舞う(クライアントに接続に行く)ことで
ファイルを送りつけることは可能。
でも現実にはルータやファイアウォールとか、サーバの規約とか、
ウイルス扱いされるとか、ネットワークの安全性とか、色々な問題が予想されます。
0536名前は開発中のものです。
2007/03/07(水) 21:06:27ID:ydn30hoMクライアント側に初めから用意されている画像を、
『どの位置か』といったシンプルな情報だけを通信でやりとりして、
それを基にクライアント側で処理させるのが無難。
何のためにそれをしたいのかを書かないと、大したアドバイスは出来ないと思う。
絵チャットみたいなのをしたいの?
0537名前は開発中のものです。
2007/03/07(水) 21:53:25ID:nPv9ImbSなるほど。 別になにかしたいってわけではなくて、ただ、どうやったら
できるのかな?って疑問に思っただけなんです^^;
「どの位置」をクライアント側に渡してやればいいのかあ。
考えてみます。
どうもありがとうございました。
0538名前は開発中のものです。
2007/03/08(木) 17:40:29ID:TEJL+ADwアクセルとブレーキの実装ってどうやっているのか知りたいのですが。
0539名前は開発中のものです。
2007/03/08(木) 17:51:20ID:V+92YLpv物理計算を単純にした感じでいいんじゃね?
0540名前は開発中のものです。
2007/03/08(木) 19:31:25ID:swI1jhiZブレーキ 停止
じゃなくて
アクセル 速度上昇
ブレーキ 速度減少
にして、速度によって位置を変えていけばいいんじゃね?
って回答でおk?
0541名前は開発中のものです。
2007/03/08(木) 19:34:54ID:TEJL+ADwすいません、物理計算っていうのがわかりません;;
0542名前は開発中のものです。
2007/03/08(木) 19:42:23ID:TEJL+ADwなるほどお!? わかったような、わからないような・・・
普通のキー入力だと、キーを離すとキャラクタが止まってしまいますよね?
キーを離しても、慣性で進んでいくような、レースゲームでは当たり前でしょうが、
経験が浅いのかおつむがバカなのかその具体的な方法が思いつきません
0543名前は開発中のものです。
2007/03/08(木) 20:07:41ID:hsHUTUZZ//キーチェック
if(加速キーが押されてたら):加速度=加速度+いくらか
if(減速キーが押されてたら):加速度=加速度-なんぼか
//座標更新
座標=座標+加速度
//グラフィック表示
pos(座標…
gcopy(グラフィック表示…
//ループ毎に減らす(アクセルを踏んでないとエンジンブレーキ)
加速度=加速度-ちょっと
goto *main
レースゲームだとたぶんキャラの位置は固定で背景だけが動く
だろうから適当に工夫してちょ
0544名前は開発中のものです。
2007/03/08(木) 20:29:52ID:TEJL+ADwおお!ありがとうございます! これを元に考えてみます
0545名前は開発中のものです。
2007/03/09(金) 04:35:11ID:PSudILgY加速度→速度
いくらか・なんぼか→加速度
じゃね?
■ このスレッドは過去ログ倉庫に格納されています