トップページ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/
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!」
0565名前は開発中のものです。2007/03/10(土) 22:04:35ID:A2NSoGOm
エディタで色分けやら下線強調表示できたところで、コード次第ではどのみち死ねますね
統一すんのは検索効率もあるし
0566名前は開発中のものです。2007/03/10(土) 22:58:30ID:s4EgJTT+
どっちのスタイルにせよ
コメント文をソースに書くとき
全角にして半角に戻すのって面倒臭くない?

VC++でもしょっちゅう間違えてソースの方に
全角スペース入れてしまってコンパイル蹴られる。
漢字キーがもうちょっと近くにあると嬉しいのだが
0567名前は開発中のものです。2007/03/10(土) 23:00:49ID:Of9Rb6RG
コメントを英語で書けば何の問題も無い
0568名前は開発中のものです。2007/03/10(土) 23:05:06ID:s4EgJTT+
// sore naisu!
0569名前は開発中のものです。2007/03/10(土) 23:25:27ID:9POELrpn
スペースは常に半角とか、IMEの設定でできなかったっけ?
0570名前は開発中のものです。2007/03/10(土) 23:28:51ID:uQgnCise
>>559
マルチ乙w




釣りじゃないんなら
なにがわかんないのか書けばいいと思うよ
0571名前は開発中のものです。2007/03/10(土) 23:34:42ID:s4EgJTT+
ああ、会社ではそれにしてる
シフト押しながらスペースで全角スペースになる

なんで家ではやってなかったんだ俺
なんか理由があった気がするが…忘れた
0572名前は開発中のものです。2007/03/11(日) 00:39:28ID:stPPhm55
hspdxfixについて質問なんですが…

es_set等でスプライトの優先順位を設定した際に
数値が大きいスプライトが手前に表示されるのですが、
小さいほうを手前に出来ないでしょうか?

なんか設定ミスってんのかな、俺。

0573名前は開発中のものです。2007/03/11(日) 09:11:36ID:iZ4HV+4f
多角形塗り潰しの命令でおすすめのないでしょうか?
ウィザードリィ風な3Dダンジョンをつくるのに台形の塗り潰し機能を使おうとしてます。
壁と天井の色を分けて裏画面で奥から手前に向かう順番で壁で塗り潰していってるのですが、
pal_DrawPolygonを使っていると、画面を何度か更新しているうちに
色がどちらか一方の色だけにかわってしまいます。
0574名前は開発中のものです。2007/03/11(日) 12:00:57ID:/T7FdIWg
その謎命令については良く知らんが
gsquareじゃ駄目なん?
0575名前は開発中のものです。2007/03/11(日) 13:01:37ID:9H6tJUaN
つーか単なるあんたのプログラムミスじゃん。
0576名前は開発中のものです。2007/03/11(日) 15:27:59ID:GsSBQTuQ
その不具合が確実に起こる短いソースを書け
05775732007/03/11(日) 15:49:57ID:iZ4HV+4f
>>574-576
サンクス!
gsquareにかえたら問題解消でした。
短いソースかいてみます。
05785732007/03/11(日) 17:46:02ID:iZ4HV+4f
起動した後、Enterキーを押すたび、同じ画像が再描画されます。
ぽち、ぽち・・・と、Enterキーを、20回くらい押し続けると、
なぜか画像が変化します。
pal_DrawPolygonは、ここ↓
http://www.vector.co.jp/soft/win95/prog/se209258.html



#include "palhsp.as"
repeat
stick KY
if KY=32 {
screen 2,640,480 : cls 4
buffer 3,640,480 : cls 4
for j, 11, 7, -1 : for k, 3, 12,1 : for i, 6,15,1
pal_SetPoint 0,310+i*2,310+i*2
pal_SetPoint 1,410+j*2,310+j*2
pal_SetPoint 2,410+k*2,410+k*2
pal_SetPoint 3,310+k*2,410+k*2
color 25,125,50
pal_DrawPolygon 4,1
redraw 1
next : next : next
gsel 2,1
gcopy 3,0,0,640,480
}
wait 5
loop
0579名前は開発中のものです。2007/03/11(日) 18:21:12ID:/T7FdIWg
リンク先はマンドクセからみてないが
基本命令の使い方すらわかってないのは良くわかった
こんなレベルでプラグイン使うな

あと、せめてこのソースが何をしようとしているか
ぐらい書け

「ボタン押している間だけ台形が表示される」か?

なんでメインループの、しかもキーチェックの中に
screen,bufferがあるんだ?
0580名前は開発中のものです。2007/03/11(日) 20:33:12ID:yv4HZkMu
>>578
これはひどい
0581名前は開発中のものです。2007/03/11(日) 21:08:13ID:9lsP7SN/
もっとソフトに叩いてやれよ。
HSPスレは初心者もしくはプログラム触り始めの人間が
現れるとすぐにムキになってブッ叩くクセがあって良くない。

>>578
これはひどい
0582名前は開発中のものです。2007/03/11(日) 21:33:08ID:fVOjDyWr
初めて見るプラグインで、役に立ちそうな機能を持ってたので
どんな代物なのか自分でも確かめるために、>578の件を調べてみたが。

一見、HSPでも問題なく動いているように見えるけど、
更新されたのが2002年2月で、HSP3が出るずっと前のプラグインだから
HSP3には完全対応してないんじゃないかと思った。

実際、>578のスクリプトを2.61用に一部修正して実行したら、
描画が変化する問題は発生しなかった。
それにしても

>>578
これはひどい

ボタン1回押すごとに、324個のポリゴン描画してるのは
573の意図したものなのか、疑わしいな。

参考までに。 wait 5の前に
title str(cnt)
とか追加して、実行してみるといい。
これが573の意図した動作なのかどうか。
0583名前は開発中のものです。2007/03/11(日) 22:29:42ID:/T7FdIWg
#include "palhsp.as"
screen 0,640,480 : //ループに入れるなカス!IDは0だろ
buffer 3,640,480 : cls 4//透過色用に黒か?
//意図は知らんがループ前に作ってちゃ駄目か?
for j, 11, 7, -1 : for k, 3, 12,1 : for i, 6,15,1
pal_SetPoint 0,310+i*2,310+i*2
pal_SetPoint 1,410+j*2,310+j*2
pal_SetPoint 2,410+k*2,410+k*2
pal_SetPoint 3,310+k*2,410+k*2
color 25,125,50
pal_DrawPolygon 4,1//んなマイナーなプラグイン知らん
next : next : next
gsel 0//描画対象を0に戻せ
repeat
redraw 0 //まず描画を裏画面にセットしろカス
color 80,50,50 : boxf //まず先に画面を背景でクリアしろカス!
//色をつけてみたのは透過するか確かめる為だ
//その上から描きたいものを載せろこのウジムシ!!
stick KY,32 //押しっぱなしの処理がしたいのか?ボウヤ
if KY=32 {
gmode 2//透過コピーで良いのか?
gcopy 3,0,0,640,480 //ID3に描いといた奴をコピーで良いのか?
}
redraw 1 //全部描き終わったら裏画面を表画面に反映しやがれ
title str(""+cnt+" "+(cnt/60))//秒間60フレームより速ければ秒より速く表示
await 5//awaitにしてみた
loop
//お前のママでもエスパーでもないんだ
//何やりたいかなんか知るかカス
//動的に変化させて表示させる意図なら知らん!自分で考えろ
//マニュアルのredrawとscreenとgselとこ100回読んで氏ね
0584名前は開発中のものです。2007/03/11(日) 23:03:03ID:k4eFOmxa
どうでもいいことだけど
>screen 0,640,480
いらなくね
>redraw 0
redraw 2のがいいはず。
まあ実際はたいして変わらんが。
>KY=32
KY&32のがええかも。仕様によるが。
>gmode 2
ループの外に出せるね。
0585名前は開発中のものです。2007/03/11(日) 23:10:44ID:V3/hxKyI
思い切りひっぱたいた後で一行ずつ丁寧に教えててワラタ

ツンデレってこのスレのことやね。
0586名前は開発中のものです。2007/03/11(日) 23:24:14ID:/T7FdIWg
screenとgmodeについては
今後の変更のことも考えてそうした
背景を透過なしで使う可能性が高いからな

redrawはそうだっけ?忘れた

keyはコイツには&の説明すんのはめんどかった


05871/22007/03/12(月) 02:01:28ID:UmbRWuRt
>>559
分岐無しだけど・・・
準備
#define colrgb(%1) color ((%1)>>16),(((%1)>>8)&$ff),((%1)&$ff)
#module
#deffunc getdat var indx,array ps,int no,int fg,local notdat,local strdata
chk='=' , ':' , ':' , ':' , ':'
noteget notdat,0:if fg=1 {indx=strsizeindx(no):masmax=no}:getstr strdata,notdat,indx,','
if strsize>0 {if fg=0 {masmax++:indx+strsize:strsizeindx(masmax)=indx}:idx=0
repeat 5:getstr tmpstr,strdata,idx,chk(cnt):if (strsize>0) {idx+strsize
: ps(cnt)=int(tmpstr)}loop}else{return -1}return masmax
#deffunc masmov array pdat,int pno,int masno
dupptr masdat,varptr(pdat(0,pno)),4*5:getdat indx,masdat,masno,1:return
#global
mas="0=16:16:100:80:,1=120:25:80:70:,1=200:32:80:70:,1=280:50:80:70"
mas+",1=300:130:80:70,1=220:150:80:70,1=140:180:80:70,1=80:230:80:70"
mas+",2=40:290:80:70:1j0n,1=120:300:80:70,3=200:290:80:70,1=280:310:80:70,10=360:340:120:90"
evmes="☆スタート☆","イベント無し","分岐点\n(未実証)","一回休み\n(未実証)","4","5","6","7","8","9"," ★ゴール★"
evcol=$f08080,$8080c0,$505080,$806030,$806030,$806030,$806030,$806030,$806030,$806030,$5080f0
evmcol=$ffff50,$a0f0f0,$f000f0,$101010,$806030,$806030,$806030,$806030,$806030,$806030,$f05060
randomize:buffer 1:notesel mas:repeat :getdat indx,ps,0,0:if stat<0 {break}
masmax=stat:colrgb(evcol(ps(0))):circle ps(1),ps(2),ps(1)+ps(3),ps(2)+ps(4),1
colrgb(evmcol(ps(0))):pos ps(1),ps(2)+ps(4)/2-8:mes evmes(ps(0)):color:pos ps(1),ps(2):mes masmax-1:loop
playernam="@","A":playermax=2
続く
05882/22007/03/12(月) 02:06:06ID:UmbRWuRt
メイン
repeat:dim pdat,5,playermax:dim player,playermax:playerno=0:sai=0
gsel 0:clrobj :pos 500,100:button gosub "サイコロ",*rndsai:repeat:redraw 0:pos 0,0:gcopy 1,0,0,640,480:
if (sai>0)&(((cnt-tim)\15)=0)&mov{sai--:player(playerno)++:if sai=0{playerno=(playerno+1)\2::objprm 0,"サイコロ"}}
repeat playermax:masmov pdat,cnt,player(cnt):if pdat(0,cnt)=10 {Gaul=1}:color:x=pdat(1,cnt)+pdat(3,cnt)/5+cnt*32
y=pdat(2,cnt)+pdat(4,cnt)/5:circle x,y,x+17,y+17,1:color cnt*255,(cnt=0)*255:pos x,y:
mes playernam(cnt):loop:pos 0,0:color:mes "残り("+sai+")"
if Gaul{break}:repeat 2:pos 200-cnt,5-cnt:color (playerno*255)*cnt,(playerno=0)*255*cnt
mes "[ "+playernam(playerno)+" ] の番です。":loop:redraw 1:await 10:loop:Gaul=0:pos 250,220:color 255:
mes "[ "+playernam(playerno)+" が ゴール しました]":redraw 1:wait 200:loop
*rndsai:if sai=0 {sai=rnd(6)+1:title "サイの目["+sai+"]":mov=0:objprm 0,"移動"}else{mov=1:tim=cnt}:return

適当に改行してコメント入れてけば読めるだろう
0589名前は開発中のものです。2007/03/12(月) 11:04:23ID:mM+HHXub
awaitって何ミリ秒ウェイトしてるの?
確かawait 16なら前のawaitから0.016秒「待った」後でウェイトが入るんだよね?
05905592007/03/12(月) 11:37:51ID:NDVpsEF4
>>587
>>588
ありがとうございます。
0591名前は開発中のものです。2007/03/12(月) 11:55:55ID:gLL2hKAr
FPSを60に近づけたい時は、awaitの値を16にするんですよね。
うちの環境では、15と16では、かなりの差があり、15の方が正確に、秒をきざんでいるのですが
環境に依存するのでしょうか?

repeat
a+
title "" + a/60 + "秒"
await 15
loop
0592名前は開発中のものです。2007/03/12(月) 12:32:17ID:PDxfvhOI
気になるようなら時刻を拾って補正すればいいんでは.
そこまで面倒かけてする必要があるかは謎だが.

うちも15の方が近い(60FPSよりやや早めになる)
16ってのは単に1000を60で割ったら16〜17が一番近いってだけだろうから
理論上は60フレームで960mm秒しか待たない筈でも遅延を入れると
1000mm秒超えて結果的に15の方が近くなるのだと思う
たぶんマシンパワーが無いほど遅延が大きいと想像するがよく知らない

エロイひとの解説を待とう
0593名前は開発中のものです。2007/03/12(月) 12:52:56ID:c7c2vkZ/
俺はOSのスレッド切替が10msで実行単位が20msだから間をとって2の乗数でキリのいい16、だと思ってた
0594名前は開発中のものです。2007/03/12(月) 12:59:26ID:UmbRWuRt
>>591
await 1 とawait 10 を比べてみ
ほとんど違いが無いから
Win2000以降のOSだとawait 1でも10前後待つ


winmm.dll
 timeBeginPeriod タイマー精度の設定
 timeEndPeriod 設定解除
 timeGetTime 設定に合った精度で経過時間を取得できる

kernel32.dll
 Sleep 設定に合わせた精度で待つ

これらの組み合わせで、ある程度正確に待てる
使い方が分からなかったら、モジュールにして
公開してる人が居るから利用させて貰えばいい

有る程度正確って言うのは、Sleep 1としても
2ms待ってしまう環境があるから
2ms未満は時間を監視しながらループ回して
待てば正確さは増す(けどCPU使用率は上がる)

注意としては、awaitとSleepは別物なので、
Sleepを使っていてもawait 0は必ず必要
無いと閉じるをクリックしても終了出来なかったり
マウス座標収得やオブジェクトボタンの操作も出来ない
0595名前は開発中のものです。2007/03/12(月) 16:32:41ID:gLL2hKAr
>>592-594
回答有難うございます。
探してみたところ、MIA氏のtime.hpiが良さげなので、使ってみます。
0596名前は開発中のものです。2007/03/12(月) 17:18:23ID:UmbRWuRt
>>595
それは用途が違うHSP2時代のawaitが
少し処理を食ってたから作られた物で
タイマー精度には関係ない

hsp Manager で検索してみ
0597名前は開発中のものです。2007/03/12(月) 18:23:04ID:kFfYyS9X
>>570
何がわからないのかわからないのが初心者クオリティ
0598名前は開発中のものです。2007/03/12(月) 20:14:55ID:gLL2hKAr
>>596
サンクス! Time Manager for HSP3ですね。
05995782007/03/12(月) 20:48:26ID:bHRnq+dr
>>579-584
いろいろ、ありがとうございました。
>>583のプログラムはいろいろノウハウがあって驚きました。
自分のとは比べ物にならないほど綺麗に画面が切り替わりました。
初心にもどって頑張ります。
またきます。
0600名前は開発中のものです。2007/03/12(月) 20:53:37ID:c7c2vkZ/
初心者じゃなかったのか
06015832007/03/12(月) 21:15:42ID:PDxfvhOI
( ゚д゚)、ペッ 地球人め
0602名前は開発中のものです。2007/03/13(火) 19:35:12ID:N8GDXKRx
コーディング能力・・・5だと?!
0603名前は開発中のものです。2007/03/15(木) 21:35:25ID:R/FJK7NS
コミュニケーション能力はマイナスみたいね。
0604名前は開発中のものです。2007/03/16(金) 04:49:37ID:BDnU/+tv
>>603
誰がうまいことをいえと・・・



この2日間の空白を作ったのはは明らかに空気が詠めない子だね (`ω´;)
0605名前は開発中のものです。2007/03/16(金) 12:32:21ID:s337brCd
今日ぐぐったら、ウィンドウ半透明化のサンプルを見つけた。
これから全てのウィンドウを半透明化してやるぜフゥーファハハハハー
0606名前は開発中のものです。2007/03/16(金) 23:28:12ID:5xoFEMkV
なんだ、XPで擬似Vistaでもやる気か!
0607名前は開発中のものです。2007/03/17(土) 04:07:05ID:w6Ip/tdc
>>605
HSPだとメインウィンドウだけしか半透明にできないよね。
もし、子ウィンドウも半透明にできるんだったら知りたい。
0608名前は開発中のものです。2007/03/17(土) 17:06:27ID:HgUYLq+d
>>605
重くなりそう
0609名前は開発中のものです。2007/03/17(土) 19:08:59ID:q4U0F70w
>>608
重くなりました・・・
特にタブブラウザと2chブラウザが致命的だたーよ
0610名前は開発中のものです。2007/03/17(土) 21:02:55ID:Z5sWvh6/
メモリ2GB以上推奨じゃね。
0611名前は開発中のものです。2007/03/26(月) 00:48:34ID:pDPzBZgB
あげる
0612名前は開発中のものです。2007/03/26(月) 01:10:12ID:EnuQNPAk
いらない
0613名前は開発中のものです。2007/03/28(水) 18:27:58ID:A5jDWsKh
フルスクリーンとウィンドウを動的に切り替えるdirectxのdllは無いのでしょうか?
hspdxfixじゃ切り替えようと思うと急に落ちてしまって・・・
0614名前は開発中のものです。2007/03/28(水) 21:21:13ID:+O7YOmys
処理として凄く面倒だから対応していないソフトって結構あるね
0615名前は開発中のものです。2007/03/28(水) 21:41:27ID:rMTkz8BK
再起動後に有効になります。
で良いんじゃね。
0616名前は開発中のものです。2007/03/28(水) 21:47:57ID:W4jKrJc5
iniファイルとかを書き換えて再起動でいいんじゃね?
06176132007/03/28(水) 21:59:47ID:A5jDWsKh
切り替えは再起動がやはり前提になるのですね・・・返答、ありがとうございました
0618名前は開発中のものです。2007/03/28(水) 22:04:14ID:W4jKrJc5
再起動ってかDLL解放して再初期化だな
0619名前は開発中のものです。2007/03/28(水) 22:54:45ID:zDNvHnoM
;フルスクリーンじゃなくて、全画面ウィンドウへの切り替えなら…

#include "HSPDXFIX.as"
sx=800:sy=600:screen 0,sx,sy,0:d3d=0
es_ini:if stat : goto *owari
onexit goto *owari
es_screen sx,sy,32,0,1,d3d:if stat : goto *owari
es_cls 0,0,0:wx0=ginfo_wx1:wy0=ginfo_wy1
*main:await 0:kyP=ky:stick ky,ky:if (ky=128):goto *owari
color 0,0,0:es_boxf 0,0,sx,sy:color 255,255,255:es_boxf sx-8,sy-8,sx,sy
pos 0,0:es_mes strf("あめんぼあかいな(゚ω゚)aiueo ky=%3d",ky)
if ((ky=4)&(kyP=0)) {bgscr 0,ginfo_dispx ,ginfo_dispy, 0,0,0}
if ((ky=1)&(kyP=0)) {screen 0,sx,sy,0,wx0,wy0}
es_sync -17,2:goto *main
*owari:es_bye:end

;(全画面<->窓の切り替え処理は手抜きなので、
;このままでは実用するには不都合あると思いますが、参考までに。)
0620名前は開発中のものです。2007/03/28(水) 23:00:06ID:zDNvHnoM
あー、
カーソル右で全画面、
カーソル左で窓モードに戻す
ESCで終了、です。(読みづらいかと思ったので一応)
0621名前は開発中のものです。2007/03/29(木) 04:26:24ID:yzMVV1IZ
ZGPはできたけど
今更3には対応していないしなぁ
0622名前は開発中のものです。2007/03/29(木) 04:44:25ID:YSXEyT2v
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
■ このスレッドは過去ログ倉庫に格納されています