HSP - Hot Soup Processor [9]
1 :
名前は開発中のものです。 :
05/01/07 13:18:01 ID:Mj8P4Zg+
俺、ちょうどHSP今日から使い始めたんだ このスレ参考に勉強して見よう まあ、このスレ始まったばかりなので今は前スレから目を通すけど
>>3 本家のBBSも役に立つ。あっちの方はかなり古い過去ログまでワード検索出来るから使える。
6 :
テンプレ :05/01/07 19:45:18 ID:hRDDjyxo
( ,,,)
.( ,,) スクリプト言語 HotSoupProcessor について
( ,,). ゲーム製作の視点から、また〜りと語り合うスレ。
, -──- 、
(,;::-──-; )-、
.|` ̄ ̄ ̄´;;|ヽ l * 質問する前に検索してみる事
l; :::;;;l-' / * ヲチ、ネタなどはスレ違い
,-ヽ───.'-、´.. * 歴代スレ、関連サイトは
>>2-8 あたり
ヽ ──── '
ONION software (本家)
http://www.onionsoft.net/
7 :
テンプレ :05/01/07 19:45:41 ID:hRDDjyxo
8 :
テンプレ :05/01/07 19:46:06 ID:hRDDjyxo
9 :
テンプレ :05/01/07 19:46:47 ID:hRDDjyxo
Q&A Q HSPで○○は作れますか? A あなたの努力と根気次第です。じゃんけんからRPGまで、 ありとあらゆるゲームが作成可能です。 Q 構造体は使えますか? A 使えません。但し、Windows API を呼び出す事は可能です。 その際は、構造体の変わりに配列を使用します。 Q ポインタはありますか? A 文法上では正式にサポートされていませんが、 ll_getptr などの命令で変数のポインタを取得できます。
10 :
1 :05/01/07 20:39:07 ID:X+CcfJJR
11 :
1 :05/01/07 20:39:58 ID:X+CcfJJR
と思ったら前スレの最初のほうにあったのね。 スマソ
あの、俺のPCだけかもしれないんですが、最近ウィルスをちらほら検出するようになったので HDを全検索してみたら、HSP製のexeファイルがことごとく引っかかるんですよ。 Trojanなんとかっていうウィルスなんですが、みなさんはどうですか?
13 :
名前は開発中のものです。 :05/01/08 00:05:01 ID:xhIAYrTx
それ以前オフィシャルで発表されてたよ。 チェッカーの誤認だから気にするな。
ダブルクリックの検出がしたいのだけれど、 llmod以外の他のDLLを利用して検出するか、 レジストリからWクリの間隔を取得して、2回クリック時に間隔を比較する とかしかないのだろうか。 スマートなやり方があったら教えていただきたい。
16 :
名前は開発中のものです。 :05/01/08 03:38:12 ID:vxfcqOEH
自前で検出するのは駄目? あくまでユーザーがwindowsで設定したダブルクリックの間隔 でやりたいの?
ツール作ってるのでそこらへんきっちりしないと、と思っているので。
HSPでツールを作ろうという発想自体(ry
19 :
名前は開発中のものです。 :05/01/08 09:37:47 ID:vxfcqOEH
操作上ダブルクリックが必要なツールって何かあるかな? HSP製に限らず全く思いつかないんだけど…
すまん。あげまくってる
「伺か」もどきなのでどーしてもWクリが使いたいのです
メッセージフックか、おにたまに要望。
HKCU\Control Panel\Mouse\DoubleClickSpeed から 設定されたダブルクリックの間隔を取得してほげほげ
>>15 クリック間隔(DoubleClickSpeed デフォは500)以外にも
DoubleClickHeight/DoubleClickWidthも。デフォは4
以上は存在しないこともある。
でもこの方法だと
真ん中ボタンやペンタブのボタンにダブルクリックを割り当てている場合、
検出出来ないよ…
去年のHSPコンテストの作品でお勧めなの何かある? DLしようと思ったが一杯ありすぎて迷う
起動時間を利用したタイマーとGetDoubleClickTimeを利用して とりあえずダブルクリックの検出に成功しました。 情報ありがとうございました。
サントラのJ&AとA&Jってどこかでかかってたっけ?思い打線・・
スマソ誤爆
あくまで擬似的なものなので ちゃんとウィンドウメッセージで取得する物を これからも追い求めます。
>>31 結局は2回自力で取得してるだけ。
メッセージ取得とかしてないし。
>>32 今ちょっとベクターで検索したら出てきたし、他にもダブルクリック必要な人がいたら
コレ知っとけば簡単に出来るな〜って思って…
ゴメンナサイ。
しょーがない全部落とすか
複数ある文字列のなかから、 ランダムにひとつの文字列を表示したいのですが、 どう書けばいいかわかりません。 どなたか教えてください。
文字列を配列変数に代入しておいて 配列の要素をランダムで選ぶ とか。
使い捨てるならノートパッドのほうが便利とか。
>>35 sdim message,1024
message={"
複数ある文字列のなかから、
ランダムにひとつの文字列を表示したいのですが、
どう書けばいいかわかりません。
どなたか教えてください。
"}
notesel message : notemax max
repeat
stick key
if key = 32 : gettime gyou,7 : gyou=gyou\max : noteget moji,gyou : mes moji
wait 1
loop
今日HSP勉強しだしたから正しいか不明
randomize:txt="":notesel t:dialog "txt",16,:if stat{noteload refstr notemax a:sdim m,$fff,a:repeat a:noteget m.cnt,cnt:loop:onkey k:*k:rnd r,a:mes m.r:stop}
40 :
35 :05/01/12 03:20:07 ID:wglGHFM8
>>36 さん、
>>38 さん
レスありがとうございます。できました。
はじめてまだ間もないのですが、おすすめのページや本があったら教えてください。
win2000であれこれサンプルにHSPのゲーム集めて動かしてみたんですが それ以後IMEが消えてしまって日本語入力が出来なくなってしまいました これってどう対処すればいいんだろう…
HSPとは関係ないだろそりゃw とりあえずOS再インスト
単に右下のアイコンが消えたという場合 半角/全角キーを押す(あるいは Alt+半角/全角) これ以外のキーボードを使っている人がする質問じゃないと思うのでその他は無視します いや、そうじゃないんだという場合 とりあえずPCを再起動してみる 質問文からしてこの程度のトラブルだと予想。違ったらスマソ。しかもスレ違いだね。
46 :
35 :05/01/14 02:33:50 ID:bkozkGKf
>>41 さん
レスありがとうございます。
一応テンプレのサイトは全部見たのですが、他にもあるなら、と思って書き込みました。
他に無いようでしたら、もう少しテンプレのサイトをよく読んでみます。
お手数おかけしました。
えーとですね、よくわからなかったのでマイクロソフトのHPで調べて見たら スタート→設定→コンパネ→キーボードでIMEツールバーの表示を指定とか何とかと 書かれていたのでそれに従ったら元に戻りました 半角/全角キーでも戻るかもでしたけどこちらの場合こんな形で自力解決しました ともあれレス下さった方サンクスです(^^;)
ツールバーが消えただけだったのか。 つーかツールバー表示させてるんだ。 俺、あれウザイから必ず消すよ。
つーかスレ違い
>>49 あまりにも知識がなかったからHSP(のサンプル)が悪さしたと思ってるんだろ。
51 :
名前は開発中のものです。 :05/01/16 11:41:30 ID:k/dL61kl
Forsythia3D使ってる人いますか あれでリフレッシュレートに関係なく描画を60FPSに固定するには ウェイトを自前でやるしかないのでしょうか。 どうもこのプラグ印はよくわかりません。
わからないならわかるまで調べてみよう!
なんだこのバカそうなレスは
Forsythia3Dは俺も使おうと思ったが資料が少ないのでヤメ。 作者がこれを使って作ったゲーム見ると興味わくんだが。
56 :
54 :05/01/18 19:02:50 ID:uz05hs6W
>>54 Direct3D、3D関係の勉強も必要だと思うぞ。
2Dくらいまではいいと思うが、3Dになるとプラグインの説明、資料
程度だけだとつらいと思うが。
58 :
51 :05/01/19 07:16:27 ID:4Ti0r+Zx
>>57 ZGPで3Dのゲーム作ったことあるんで、最低限の知識はあるかも。
ただ今まで触ったプラグインはFPS取得&60FPS維持が簡単だったんで…。
普通に16〜17msのウェイトをかければ良いだけですかね。
>>58 そういえば、Forsythia3D落としてたのを思い出した。
命令みたかぎり、実装されていないね。FPS関連
まぁ、FPS関連の実装方法は探せばでてくるだろうから
自前で実装してもいいじゃないか?
後々、そういう実装がないプラグインがでた時のためにも。
>>59 FPSだと混同しやすい。FirstPersonShooterと。まあ、どうでも良いけど。
描画が間に合わないとスキップとかが出来ないでしょ、フレームレート自動調節がプラグイン側にないと。
それとVSYNCは2D,3Dに関わらずプラグインには必須だと思う。
>>60 あんまりFirstPersonShooterと混同しない気もするが・・・まぁいいか。
>描画が間に合わないとスキップとかが出来ないでしょ
描写関連だけ使うかなっと思って(Forsythia3Dは描写関係の命令ぐらいしかなかったような・・・)
まぁ、プラグインに内部処理までまかせるなら確かにいるけどね。
>>59 HSPで自前で実装するとなると、タイマー使って
16〜17ms(60FPSの場合)の間ループしとけばいいのかな。
でもその間CPUフル回転だよねえ…。
まあとりあえずやってみっか。
>>62 いや、少し精度は落ちるかもしれんができるだけawaitとか使ったほうがいい。
少しどころじゃない気がする
>>60 同意。
どんなに機能が良くても同期待ちが無いと辛いね。
無いならせめて、1ms間隔が信頼出来るタイマーが欲しい。
timeGetTime()並みの。
いろいろ試して調べたけど
awaitは15ms間隔ぐらいが限界っぽい。(winXP)
win98だと55ms間隔らしい。(これはどっかで見ただけ。信頼しないで・・)
ちなみにHSPDXFIXに付いてるタイマは素晴らしいよ。マジお勧め。
っていうか時間取得の為だけに独立してライブラリ作ってもいいぐらいと思う。
シェーダが使いたいんじゃなければForsythia3DじゃなくてZGPで良いかもね。
67 :
名前は開発中のものです。 :05/01/20 02:31:46 ID:EsDKouyb
つーかHSP3は3D関係どこまでできるようになるやら。
>>61 >FPS
小文字にしてくれってことじゃねーの?
HSPでペジェ曲線を描けますか?
HSPでは加減乗除の計算ができるので、可能です。
72 :
70 :05/01/21 22:53:14 ID:I5fAYv76
>>71 なんだか難しそうですね。
HSPとJAVAでどちらが早く作れるか考えていたんですけど、JAVAの方が自分の力では早く作れそうです。
どうもありがとうございました。
( ゚д゚)…
キー入力した分だけキャラクターを移動させる処理をしているのですが、 途中から入力した内容が画面に反映されなくなります。(座標の数値だけ反映されます。) 他のウィンドウで隠す等で、一時的に画面を消すと入力した分が反映されています。 このような現象の原因はなんでしょうか?
>>74 それだけの情報じゃあ、redraw命令で画面を正しく更新していない…というぐらいしか
思い浮かばず。
というかそれでビンゴとしか思えず
74続き 情報が不足しているのは確かなんですが、なにを話したものか。 とりあえず、思いつくままに。 ・以下の処理で、3→1に戻ると問題が発生。 1)移動させるキャラを選択 2)矢印キーで、キャラを移動(一度移動させると、選択不可の状態) 3)1、2を繰り返し一通りキャラを移動させると、ふたたび全てのキャラを選択可能に ・問題がおきると、キャラを移動させる操作をしても画面が更新されない ・他のウィンドウで画面を隠し、ウィンドウをどかすと、画面が更新されている (隠す部分は、画面全体でなくても可) ・「redraw 2 → 背景描写→ キャラ描写(gmode 2 使用) → redraw 1」という流れ ・HSP2.6.1使用 なまじ1通りキャラ移動が終わるまでは正常に動作するために、気づくのに遅れました。 以前はこの問題が起きていなかったのですが、なにが原因なのかは心当たり無し。
リアルタイムのゲームじゃないのか? redraw 1にちゃんと到達してるんだろうか? 他のウィンドウで隠すと反映されるということは awaitのタイミングか
>>77 一応、「redraw 2」じゃなくて「redraw 0」でやってみそ。
というか、gsel命令がらみの予感。たぷん分岐サブルーチンで「redraw 1」を指定して
いるのがバッファ画面になっているのでは。
あと、全キャラ選択可能にするサブルーチンからgoto命令で選択移動ルーチンに
持っていってない? 8回繰り返すとネストエラー出るとか。
77続き お騒がせしました。解決です。 redraw と gcopy の対応で不適切な個所があったのが原因です。 いらんトコに redraw があったり、必要なトコになかったり。 部分的なプログラムを作って動作を確認をしてから、全体に組み込んでいるから統一性が なくなるのかなあ。(プログラムの適性が足りんと言ったら、そうかもしれんが・・・・)
非リアルタイムって煩雑になりがちだな 漏れは全部シューティングと同じ感覚で 常時更新でなんでも作ってるよ。
バックアップしたつもりでいたらEXEしか保存してなかったorz 誰か逆コンパイラうぷしてくれよ。
hsptmpでも残ってりゃいいんだけどな
>>83 残ってない。
逆コンパイラでググったけど、もう何処にも置いてないみたいだし。
諦めるしかないのか。
2.6以降の逆コンパイラなんてあったっけ
定期的にバックアップ取ってないのか? 俺は数日おきにフォルダ丸ごとバックアップしてるが。
>>81 それはHSPみたいなイベント駆動処理を全く考慮に入れてないシステムでの話な。
イベントドリブンをまったく考慮に入れていないなら、buttonやonkeyの割り込み機能は何なの
89 :
名前は開発中のものです。 :05/01/26 02:35:56 ID:O6SXoRjt
「まったく考慮に入れていない」は、間違えかもしれんけど 「考慮に入れていない」なら同意。 HSPは基本的にぐるぐる回すものだと勝手に思っている。
>>89 いや、それはゲームを作るという目的からHSPを見ているからであって、ツールを作る
目的ならほとんどぐるぐるとは回さないですよ。
ユーザーインターフェースに凝るなら廻したほうが楽ジャネ?
DirectXを使おうと思ってhspdxfixとhspdx+aのどちらを使おうか迷ってるんだけど、 ここの住人はどっちか言いと思う? どちらもさらっと触った限りでは、 hspdxfix 重い、高機能、+aよりややこしい、開発中なので将来性がある。 Direct3Dのあるグラボ持ってない人は意外といる。 hspdx+a 軽い、機能少ない、わかりやすい、作者失踪中。 といった印象。 どっちも一長一短で激しく悩む。利用者の人、助言きぼん。
誤字すまそ どっちか言いと思う?→どっちがいいと思う? 書き忘れ Direct3Dのあるグラボ持ってない人は意外といる。 →Direct3Dのあるグラボ持ってない人は意外といるから そういったユーザーのこと考えるの結構辛い? テストプレイがきつい?
>>92 俺は両方使ったが、FIXのほうが高機能でややこしいとあるが、俺の印象は
大して変わらない。
ユーザー層を広く取りたいならアルファブレンディングや拡大縮小を
使わなければいい。HSPDXFIXでDirect3Dを使わなければ速いぞ。
追記 fixのほうが重いとあるがこれも俺の印象では殆ど変わらない。 どんな環境で差が出た?
漏れも同じことで悩んでるけど fixかαかという話ならfixかな。新しいし。 αのマニュアルが分かり易いのは同意。 どっちかというとzgpにするかどうかで悩む。
>>90 ツールだって、ウィンドウサイズ変更なんかのメッセージが取れないから、
そういうのが必要な場合ぐるぐる回すだろ?
ヨではメッセージが取れるようになるらしいが
>>95 Direct3Dを使ったから重くなったようです。
言葉足らずだったようで。すまそ。
環境はセレロン1GH、メモリ512MB、グラボ内臓の8Mの
しょぼいPCです。
自分はまだHSP始めて2ヶ月の若輩者なので、
fixのパラメータの多さにまったく慣れないです。
しかし機能の多さには惹かれるし・・・
おとなしく初心者は+aの方がいいかなぁ。
ここの人は実力ありそうだから、こんなこと悩まなくていいだろうけど。
まぁ触り始めて間も無いので、もうちょっと考えます。
なら基本のHSPDXを使うのが良いんじゃ。 両方ともそれに機能追加しただけだから、段階的に覚えればいい。 それとも半透明とかどうしても使いたいの?
>>97 典型的なHSPユーザだな。
Win環境で言えば回っているのはメッセージループだけで十分。
もうちっと勉強して来い。
HSPでの話なんだからもう良いじゃん。
102 :
名前は開発中のものです。 :05/01/27 10:23:55 ID:2AC+f76z
>>100 HSPの内部処理は知らないけど、実質 wait で、メッセージ処理、
stop で、隠蔽されてるメッセージループに入るって事でしょ?
だとしたら、 wait を呼び出す無限ループは、メッセージループになるんじゃないかな。
>>100 atarimaedaro.
HSPでの話だぞ?
というか内部の話ではなく コーディング上での話だと思うのだが
だから、HSPではウィンドウサイズ変更もマウスポインタ位置変更も ループせんと取れんって。 HSPで普通にメッセージループを組む方法があったら言ってみれ。
HSP2.61で取れるのは、マウスクリックとキープッシュとボタン押しだけ。
だからHSPでツール作るなと小一時間 以下無限ループ
109 :
94 :05/01/28 05:06:56 ID:6pqEgHeT
>>92 すまん、あんま変わらん印象とか書いたが、やっぱりFIXはかなり重いみたいだ。
ちょっと測ってみたんだが、FIXをDirect3Dを使うとスプライトが増えると加速度的に重くなる。
半分どころか4〜5分の一くらい。やり方があかんのかな?
110 :
名前は開発中のものです。 :05/01/28 18:40:32 ID:6pqEgHeT
DirectX関係のDLLで2D描画の速度検証用に作ってみたのでアップした。
できたらいろんな環境で試して欲しいので協力ヨロ。
興味ある人も居ると思うんで。
ttp://gamdev.org/up/img/2293.zip HSPDX+αとHSPDXFIXはDirectDrawとDirect3Dの2種類あり。
スプライト数は400固定で画面モードはVGAフルスクリーンの16bitカラー。
escキーで終了するけど、初期化時のエラーチェックとかやってないので
作成失敗するような環境だと飛ぶかも。
ソースは5種類。
HSPDX
HSPDXA(DirectDrawで描画)
HSPDXA3D(Direct3Xで描画)
HSPDXFIX(DirectDrawで描画)
HSPDXFIX3D(Direct3Xで描画)
ZGP
ほぼ同じ条件になってると思うが、ソースが変なとこあったら教えて欲しい。
111 :
名前は開発中のものです。 :05/01/28 18:53:13 ID:6pqEgHeT
ちなみにウチの環境でのテスト結果(速い順) <開発機(AthlonXP2200+、RADEON9600XT、DirectX9.0c)> HSPDXA3D (約1370FPS) ZGP (約660FPS) HSPDXFIX (約350FPS) HSPDXA (約340FPS) HSPDX (約300FPS) HSPDXFIX3D (約84FPS) <サブ機(Celeron1.8GHz+、Intel845G、DirectX9.0c)> HSPDXFIX (約390FPS) HSPDXA (約300FPS) HSPDX (約300FPS) HSPDXA3D (約230FPS)※絵が化ける? ZGP (約208FPS) HSPDXFIX3D (約45FPS) こんな感じ。 HSPDXFIX3Dが極端に遅い。何か間違ってるのかも…。
<開発機(Pen4 2.4CG、GeForceFX5700Ultra、DirectX9.0b)> HSPDX :180fps HSPDXFIX :191fps HSPDXFIX3D :82fps HSPDXA :214fps HSPDXA3D :998fps なんだこの結果・・・
機械 Athlon64-3800+、GeForce6600GT DX9c HSPDX 350fps 以下('A`)プラグイン アツメルノ メドイ
3D性能の高いビデオカードだとHSPDXAが恐ろしく速いな…
もう少しデモ的なベンチマークだといいかもしれない。 拡大縮小と回転もいれて。 まあ、その場合はfpsじゃなくスコアって形になるだろうけど。
time.hのclock()をラップしたDLL作ったらms正確に取得できる?
ベンチマークでAMddrawとhmm.dllも知りたいです。
>>117 簡単なスクリプトだから自分で改造しちくり
hspdxfix、半透明使いたいんだが遅すぎるな… 古いノートでやたらと引っかかるなと思ったが重いプラグインだったのか。
なにも表示しないで転送だけでも、すでにhspdxfix遅いしね。 ZGPは超安定型かな。なにも表示しない場合とスプライト400個表示でほぼかわらない。 ただ、hspdx+aは異常すぎるが・・・DirectXのバージョン違いも関係するのか?
>>121 3Dアクセラレーションの強い環境だと恐ろしく速くなるって話じゃないの?
HSP=ホットソーププロフェッサー
124 :
名前は開発中のものです。 :05/01/31 01:00:41 ID:HSOpcifq
ZGPは速いのか遅いのかよく分からないな
HSP自体が
HSP本体が遅いのは仕方ないだろい
hspdxfixとhmmをやってみた。 Pen3 700M ミレニアムG400 dxfix3D fps 約90 hmm fps 約150 だった。 AMddrawはもってないからできなかった。すまん。
なんかさあ、fpsとか一生懸命気にしている人って、そんな時間があるなら どうやったら面白いゲームになるのか考えるのに時間さいた方がいいと思う んだよね。 だってBASICの時代じゃないでしょ?fpsなんて60も出れりゃー万々歳でしょ? なんで速度にこだわるか分からん。古い環境だとどうなるか気にしてるの? いいじゃん別に。どうせ作ってるのはフリーソフトなんでしょ?古い環境は 切り捨てりゃいいじゃん。 同様の理由で「awaitは不正確だ」ってのにこだわってる人も分からん。 より正確なやり方にこだわるあまり高度なことを勉強したりしてね。 そんなの勉強してる時間あったらゲームのアイデア出せよと。いいじゃん awaitで。 人生のうちで作れる作品数は少ない。木を見て森を見ずをやってるうちに 年老いていくぞ。
自分の決めた枠の中である程度ちゃんと動くようにする為の 検証をしてるだけなんだがな。
作りたいのがゲームとは限らんしな。今も昔もこだわりたい人間だけがこだわってるんだよ。 森を眺めて楽しむ人間もいれば、木の枝ひとつひとつに魅力を感じる人間もいる。 単にここ最近のレスに興味がないだけなら、新しい話題でも提供してみるといいんじゃないだろうか。 #最近は長編よりも10分程度で軽く中断できるような短いスパンで遊べるものが楽しく感じてきた。 HSPって特にそういうの作りやすいよね。
ただ単に、プラグインの性能比較してるだけじゃん。
>>127 hmm.dllのスクリプト作りたかったが、うちの環境だとサンプルさえ動かないからうpたのんます。
でも、hmm.dllも微妙な数字かぁ。
そういえば、hspdxfixのこのスクリプトでの激重は分からないそうだ@Sinagawa氏
fixでも、Direct3Dモード使っててもDirect3Dスプライトが少なければ 遅くないんだよな。スプライトが増えるとそれだけで激重になる。 3Dが得意なグラボでも格段に遅くなる理由がよくわかんない。
でも、遅くないって言ってもhspdxa3Dの半分しかでてないけど。(スプライトなし)
hspdx+αはなんであんな速いんだろ。 しかし+αは+αでいくつか問題が。 特にes_syncによるウェイトが安定しないのと、ウィンドウモードで D3Dの画像がズレまくるのは使い物にならん…。
単純な描画だけじゃなくて内部でいろいろと管理してるからだろ。 使用DirectXのバージョンの関係もあるだろうし。
自前でDirect3D試しても、400回コピーで400fps台(約1/4)だしなぁ・・・(無駄多いからしょうがないが) でも、この値efx_putと同じなんだよね。 なので、スプライト表示の際に最適化されてるね。(だいたいの予想はつくけど)
138 :
名前は開発中のものです。 :05/02/01 15:33:45 ID:JALKMDoD
スレ違いかもしれないけど、HSPでドラクエのようなマップ作るとき素材はクロゲパ にあるからいいが、作るとなれば地道に本物とくらべて作らなきゃいけないのそれだとしたら 1マップ作るのにかなり時間かからない??
誰か翻訳ヨロ
ワカラネエw
マップ専用の作業員何人もいるんだよ
ドラクエのまえに日本語の勉強だな
自力で1から作ったとしても、キャプチャ画像をそのまま真似するのは著作権的にグレーじゃ? キャプチャ画像を参考にして、その技法を真似するのは問題無いだろうけど。(特許でもない限り) 正直、プログラマ兼絵描きなら、素材を使うか、マップ描きを探す事を勧める。 絵描き兼プログラマなら、四の五言わずにドット打て。
グレーじゃないよ完全にアウトだよ
ドラオエは怒られた品 あと、 「本物を比べて作らなきゃいけないの?」 なんてこっちが聞きたいわw 意味が分からぬ。
helpアイコン作ったら怒られるのか…orz
ちゃんと公開公報読んだのか?
148 :
名前は開発中のものです。 :05/02/02 00:24:34 ID:EMLr0vcY
,ィ⊃ , -- 、 ,r─-、 ,. ' / ,/ } ち { ヽ / ∠ 、___/ | 署 ヽ. V-─- 、 , ',_ヽ / ,' ょ ヽ ヾ、 ',ニ、 ヽ_/ rュ、 ゙、 / ま \ l トこ,! {`-'} Y っ ヽj 'ー'' ⊆) '⌒` ! で , 、 l ヘ‐--‐ケ } と ヽ ヽ. _ .ヽ. ゙<‐y′ / 来 } >'´.-!、 ゝ、_ ~ ___,ノ | −! \` ー一'´丿 \ い ノ ,二!\ \___/ /`丶、 /\ / \ /~ト、 / l \
HSPDXFIXだが、俺の環境だと今作ってるゲームはこのまま行くと60fps切りそうだ…。 HSPDXAに変えるしかないかな…。
みんな60FPSが好きだな。 60じゃなきゃいや?
151 :
名前は開発中のものです。 :05/02/02 09:48:22 ID:Syiucok9
つーかドラゴンファンタジーとかマップほぼパクッてない??自作RPG作ろうと 思ってんだけど、マップの作り方がわかんない。戦闘の作り方とかはそこそこわかるけど。
低脳ハツクールツカエ
>>146 ヘルプモードにするためのボタンだな。
アイコンをクリックしてヘルプモードにしてから他のアイコンをクリックするとそのヘルプが表示される。
>>153 特許の内容を読んでいると、ツールバーにアイコン付のボタンを表示する機構や
アイコン付のボタンをクリックした時に情報処理をする、っていう事もその特許の中に入っているように
読める気がするから日本語って不思議ヨネー
でも、焦点になってるのは、「?」がアイコンか文字かって事じゃないの?
>>155 正確には「?+マウスマーク」ね。
アイコンで特許取ってるみたいだからアイコンじゃないってなれば引っかからないから。
まあ、それとは別に特許自体が無効ってジャストシステムは言ってるけどね。
>>154 なんで猫も杓子も60fpsなんだろう…
ボスケテエロイヒト
スーパーマリオとか昔のファミコンってどんくらいだったんやろ…
普通に60
松下は今ヤヴァイからなぁ。 でも、自社製品と直接競合しないジャストシステムを絞るのは陰湿すぎ。 日本企業ばかりを訴訟の標的にしてたアメリカ企業みたい。
>>157 コンシューマーは30が多い。
なめらかってうたってるのは60。
インターレスだし。
インターレース
俺は25fpsの男だぜ。
俺には60以外選ぶ理由が無いんだがな。
最低限30fps確保できればいいと思うが。
60のゲームの後に30やると結構カクカク感分かるよ。
自分も30fpsあれば全然OKなんですが、 どの環境でも同じ速度じゃないとイヤです。(±3%ぐらい) 【宗教】 1 フレーム経過した後の変数の値 ◆A宗:「v += a * dt」 v-syncに同期。リフレッシュレートは任意。 ◆B宗1派:「v += a」 タイマーに同期。一定間隔で値を更新する。 ◆B宗2派:「v += a」 v-syncに同期。何らかの方法でリフレッシュレートを固定する。 HSPでA宗はキツいですよね。。(気合入れれば可能?) できれば2派。ムリなら1派というふうに設定できるようにするに一票。 フレーム管理関連の話題って、どこでもアツくなってますよね。
またこれか。 いや良いけどw。 そもそもA宗はHSPで作るようなゲームでは向かないよな、 …って言うのは偏見かな?
ゲームによっては100msのタイマメッセージでも十分だけどな。 もちろんACTで。
fpsの前に解像度を上げないと。 最近はコンシューマーでも480pとか1080i出てきたし 次世代機は1080i(p)が標準になってるだろうし。 640x480の時代は終わったよ。
2Dアーケード風を作りたいので640x480でも細かすぎますが。
自分が絵が描けずセンス無いってのも相まって 解像度とか見た目の綺麗さはあんまり気にしない。 やっぱゲーム自体の面白さやバランス・システムとかを見所としたい。 だからゲームの難易度が変動してしまうフレーム管理は妥協したくない。
というかどっちにしろそんな高解像度はドット絵でなく ポリゴンの画面なるだろうから、任意で変えればいいだけでは。
ハァハァ シルシル パンパン
下手な釣り糸が何本か垂れ下がってるんですけど
そうやって釣りとか言ってるから相手が付け上がるのかもな。 釣りと釣られた人との立場というより、珍獣と見物客だな。
モレにはどれが釣りなのか分からんのですが。 >173かえ?
174は誤爆じゃない? ム板の
一連のレス全てマジレスに見えるのか・・やっぱHSP厨ってスゲえな(藁
むしろ流れに乗れない
というわけでここは HSPで大作RPGを作るクソスレ として生まれ変わろうとしています
タスクっぽいプログラムにすると、 縦に動くごとにタスクを新しく作って、古いのを消さなきゃならないのがめんどい
ここをム板のHSPスレと同等に考えられては困る。 あそこで荒らし回ってるヤシはお引き取り下さい。
じゃあ何か話題振れば? 話題も振れんならおまえも荒らし同様。
いや話題が無いならわざわざ書くこたーないだろ
話題も何も無い―
虚無の空間
そう ここは虚無空間の世界
話題が無さで溢れている空間―――――
それはそうと、
>>183 のIDにUSKが。
そもそもHSPなんてものは存在しないんだよ。昔BASICで一生懸命ゲーム作って て、「ああ、BASICでドット単位に動けばいいのに!」と切に願った人達が HSPという集団幻覚にとらわれたんだ。ここはそんなおっさんばっかりの スレなんだ。 本家もおにたまも幻覚。 その証拠にコンテストの参加賞送られてこなかったぞ。
お前の存在も幻覚だからな
BASICが使われてたのっていつぐらいまで?
おっさんのおっさんによるおっさんのための言語。 大いに助かってる。
>>188 98時代だろうな。(Windowsじゃなく)
まあ、情報処理試験とかセンターでも未だに使われてる。
時代遅れだと思うけど。
自分的に守ってきた『DLL禁止。標準機能のみで開発』を破る。 800x600のフルスクリーンがやりたかったんだ……orz
>>191 そんなもんHSPじゃ内部的にDLL使ったりしてるから無意味。
>>192 そりゃあ、OSの一部だったりする奴はしょうがないだろ。
でも、DLL使いたがらない奴って多い気がする。
「すべて標準命令で作ってます」って謳ってるの。
>すべて標準命令で作ってます でも、これって使う側にとってはどうでもいいことだけどね。
たしかに結構いるなあ。標準命令だけでって人。 何か意味があるのかと思うけど、ただの実験かな。
標準命令だけでも、がんばればこれだけできるって教えてるんじゃないの?
そういう人もいるかも試練が…191氏はどうなんだ?
dllくっつけて配布すんのがマンドクサイとか?
出来る限り入れるファイル数を抑えたいってのは分かるな
STGでパッドすら使えないのはな。変換ソフト使え。ってのは別の話な。 利便性を廃してまでDLL不使用!貫くヤシが居てちょっと困る。 解像度変更も、パッド使用もモジュールで出来るけど。 2.6?2.55?だかで標準命令に組み込まれたloadlib使えば大抵のことは出来る。
>>200 そうだよなぁ。
パッドはAPIで実際のところは十分だし(フォースフェードバック使わないなら)
解像度変更は・・・ChangeDisplaySettingsEx?ビデオカードによっちゃあ危ないが。
単純に外部DLLをつかわずに、ってことだろう 他の力に頼ってる感覚もあるしな DLL使わなくてもWindowsのAPIはそれなりに使えるし、 やるきになりゃあCOMだって扱える こどわりを持つのはやってて楽しいしぃぃんじゃね? ただソフトの利用者からしてみれば別にどうでもいい話だが ちなみに800x600のフルスクリーンは、 いちいちDLL呼ばんでも出来る希ガス 結局DLLの中でAPI叩くんだろ?
プラグインじゃなきゃ絶対出来ないってことは少ない。 俺は使おうと思わんが、マシン語って手も有るし。
ただ、そこまでくるとHSPで作らずにCとかの方が楽じゃないか?
楽じゃないが楽しい。
>>206 それならいいや。
なんだかんだいってもやっぱり楽しいからやってるよねぇ・・・
HMM.DLLが更新されてるな。
標準だけで作りたいっていうのは、その過程を楽しんでいるのであって作品を作ることが目的じゃないんだよね。 プログラミングが楽しい、自分で作った感があればいいんでしょ。 漏れは、DirectXのプラグイン使いまくり。 プログラミングは楽しいけど、重要なのはいい作品を作ることなんで。
今度のはまた、面白い更新だな<HMM.DLL
DirectShowが使えるじゃん。 動画再生がおもしろそう。
>>212 ああそうか。
やってみようかな。うまくできるか分からんけど…
組み立ての好きな作り手、製造の好きな作り手がそれぞれいるだけだろう いい物を作りたいってのは誰でも同じことだと思うよ
漏れは速度的な問題で仕方なくdirectxのプラグイン使ってるけど 標準命令の方が圧倒的に融通が利いて使い易いんだよね gcopy周りとかが スプライトやら辺り判定やらの機能は個人的にはいらない 自分でやったほうがやりやすい
俺はDLLにある機能は使ってるな。 スプライトとか判定とか自動移動とか。 ラクだし特に問題ないんで…。
>標準命令の方が圧倒的に融通が利いて使い易いんだよね >gcopy周りとかが まぁ、ここらへんはプラグイン作者しだいだなぁ。 作者ががんばればいいけど、制限つよくなってくるのがねぇ・・・ スプライトの必要性は賛否あるけど、ケースバイケースだからいいんじゃない? スプライト機能排除版とスプライト機能あり版があればいいかもしれん。
スプライト機能は好き嫌いがあるから それは個人個人でやりやすいほうを使えばいいんじゃない。 それよりも、某HSPシューティングの製作者日記で標準命令の描画はおせーとか 言ってるくせに使ってるほうがわからん。 215>> そんなお前にこそ上に出てるHMM.DLLがいいんじゃないの? 標準命令みたいにかなり融通が利くと思うぞ。
219 :
名前は開発中のものです。 :05/02/11 02:39:17 ID:acOSDzKu
別に機能あっても良いんじゃ。使わなければいいだけで。 あと融通が利く利かないの話ってDirectxに起因するんじゃないかと思った。
>>219 でも、その分サイズ大きくなるからどうだろう。
>Directxに起因するんじゃないかと思った。
まぁ、それはあるな。
VRAMに置いたら、直接アクセスが問題になるからなぁ。
SYSTEMでも、一応DIBよりは早くなる可能性があるが、
MMXでも使わんとちときついか(リアルタイム系)
DirectDrawでの話しだけど。
DirectX使わないと、画像描画は遅くなるがバッファリングしない分 入力遅延の問題は解消される…かも。 やってないからわからんけど理屈の上ではそうなる気が。
>>221 HSPが遅いから、それは微妙だと思う。
まぁ、ジャンルによりますが。
223 :
名前は開発中のものです。 :05/02/12 19:57:37 ID:VyEOWxYv
あげ
hspdxで半透明合成するにはやはりDirect3D使わないと無理ですか?
むしろDirect3D使わない理由が無いんだけど…
重くなる
そりゃビデオカードの性能不足じゃねの
なんにもわかってねーな 自分だけ軽快に動きゃいいってもんじゃない
まあ、各製作者の考え方によるんじゃないの
ただ、D3Dが重いって言ってもD3D使わない方法でなら大丈夫かというと微妙だけど。
モレはどちらかというと「自分だけ軽快に動きゃいい」という考え。 いまどき3D機能の無いボード積んでるなんてちょっと考えられない。 そうなると全体のスペック、CPUや2D性能すらままならない場合が多いのでは。 GeForce2(中古2000円 これでも5,6年前のモノか?)でさえ 2Dベースで半透明合成に3D使うぐらいならまったく問題なし。 自分だけと言ってもたかだか1.1GHzのCPUだがな orz
そうそう。 切り捨ても重要よ。 だいたい開発効率を差しおいて速度とるなら HSPなんか使わない。
でも,サポートが面倒なんだよね。 ビデオカードに依存すると。 標準命令で要求性能を1Ghz以上ゴリ押しとかの方が今は楽かなと思えてきた。
HSPのD3D関係のプラグイン、全部確認したわけじゃないけど さすがにGeForce、Radeon系はほぼ問題なく動くよ。 テクスチャサイズさえ気をつければ大丈夫だろう。 それ以外のビデオカードはシラネで良いと思うけど。
nvidia、ATI以上にIntelのシェアが大きい気がする。 ノートとかデスクトップもメーカーだとあんまりビデオカード積んでないし。
とりあえずPIII(500MHz)+Intel810程度の超低速PCでも D3Dで結構高速に動いたぞ。問題ないと思われ。
>>231 現役で動いているノートマシンでも3Dアクセラ貧弱もしくは皆無って環境多い。
まあそんなマシン使ってるヤシは漏れも含めて3Dゲーなんかに全く興味ないから無視してもいいよ。
238 :
名前は開発中のものです。 :05/02/17 23:52:30 ID:rUspwZ60
>>237 確かにそれも一理ある。
反対にグラボでいいやつ積んでるユーザーは3Dにはうるさいから、
中途半端な仕上がりだと総スカンを食らう諸刃の剣。
2DゲーでもDirectXで半透明使いたければ3Dな罠
intel855シリーズだっけ? セントリノテクノロジーでつんでるチップセットは。 それでも普通にD3D動くよ。 forsytiaは動かんかったけど
いろいろと初心者用のホームページを回ったんですが いまいち分かりません。 みなさんのオススメの初心者向けの講座が置いてあるHSPホームページを教えてもらえないでしょうか? 御願いします。
初心者講座などに頼るな。 まずHSPを弄繰り回す努力をするべし。 サンプルを改造しろ、適当なソフトの動作を真似ろ。 分からないところが出たら調べろ。 丁度良いソースが見つかったらそれがどんな動作をしているのか完全に理解しろ。 そうしたらその動作をするソースを1からまた作れ。 分からないところが出たら調べろ。 完成したら元と見比べて無駄な部分を排除していけ。 分からないところが出たら調べろ。 それを繰り返していけば大抵のことは出来るようになる。
>>110 やってみました
16bit 32bit
hspdx 335 220
hspdxa 332 214
hspdxa3D 412 247
hspdxfix 445 344
hspdxfix3D 154 150
ZGP(set2d) 276
ZGP 240
2D能力 FIX >>> ZGP > +α = hspdx
3D能力 +α > ZGP >>> FIX
FIXは2D描画は速いけど3Dは('A`)
ZGPが安定
Fixの内部実装がすっごく気になるわぁ・・・
あんまり、作者もよくわかってなさそうだし・・・
で、
>>243 のスペックは?
ノミ● Pen4 2.80GHz RADEON IGP 345M DirectX 9.0c 1年前に買ったノートPC
>>186 今日賞状、賞品と共に参加賞キタ━━(゚∀゚)━━
247 :
名前は開発中のものです。 :05/02/20 01:28:56 ID:bYmOU6s3
HSPを勉強したいですが いいサイト知りませんか?
HSP公式サイトのリンクに講座サイトいっぱいあるやん どこのサイトもわかりやすい
249 :
247 :05/02/20 01:39:42 ID:bYmOU6s3
>>248 ありがとうございます
早速言ってみます
awaitの内部での待機の仕方が変わるらしい@HSP3.0β
3.0では長いパスに対応してる?
>>250 timeGetTimeでも使うのかい?
待ち処理がSleepからMsgWaitForMultipleObjectsに変更されるとか。
3.0でもダブルクリック取得できないのな
ダブルクリック取得してー。取得してー。
なに使うん?
ウィンドウスタイルだかなんだかでダブルクリック許可汁。 マンドクサ…
2005/02/22 3.0β4 スタックメモリ及びタスクの管理方法を変更、若干の高速化。 多くのメモリ確保を行なってもメモリ警告が出ないように修正。 実行時ランタイムを指定するプリプロセッサ命令#runtimeを追加。 winobj命令の実行に失敗した時にシステム変数statで通知するように修正。 varptr関数のパラメーターで配列要素が無効になる不具合を修正。 dirlist命令で三番目のパラメータが機能していない不具合を修正。 inputオブジェクト配置時に別なイベントが発行される不具合を修正。 chkboxオブジェクトのデフォルト値が無効だった不具合を修正。 一部のオブジェクトがobjprm命令で変更できなかった不具合を修正。 poke命令のパラメーターに文字列を指定できるように修正。 dialog命令のメッセージに文字列型以外の指定ができるように修正。 文字列型変数の比較後に加算代入(+=)でエラーが起こる不具合を修正。 await命令の待ち処理をSleepからMsgWaitForMultipleObjects APIに変更。 end命令でアプリケーション終了コードを設定できるように修正。 ID0以外のウインドゥのクローズボックスでも終了できるように修正。 hspmath.asマクロを同梱。
メッセージループの中で while(...){ if(メッセージあり){ /* メッセージ処理 */ } else { /* HSP動作 */ Sleep(await等の時間); } } ってことなのかと思ってたが合ってる? クリックとかはプロシジャ側で取得してグローバルな変数で保持してるのだろうか。 ならダブルクリックも比較的簡単に取得できそうな希ガス …と思ってみたが初心者なので間違ってる可能性大
while (GetMessage(&msg, NULL, 0, 0)){ : } GetMessage()はメッセージが来るまで止まってるので、 何もないときは何もしていないのでは、と。 waitはWM_TIMERが来るまでGetMessage()で止まってる。awaitはシラネ... ダブルクリックはウィンドウに許可(CS_DBLCLKS)を与えないとメッセージすら来ない。 HSP3のscreenにそういうオプション要望してみては…
oncmdで実験してみたがダブルクリックだけ拾えん
そして、HSPDXFIX 0.16 更新きてます。 うお。フリップ使わないただの転送も指定できるのね。
HSPDXFIX、D3Dがちょっぱやになってますがw
ちょっぱやというか、やっと普通になったって感じだが・・・。
それはたしかにw。 なんであんなに遅かったんだろう。 描画範囲でなくスプライト数で遅くなってたんだよなー。
HSP3 のページ違反です。 モジュール : <不明>、アドレス : 0000:00000000 Registers: EAX=00000000 CS=0157 EIP=00000000 EFLGS=00010246 EBX=00550000 SS=015f ESP=0065fce4 EBP=0065fe38 ECX=c109d850 DS=015f ESI=00000000 FS=115f EDX=815a8284 ES=015f EDI=bff77509 GS=0000 Bytes at CS:EIP: 00 00 00 00 00 00 00 00 16 00 23 09 69 04 70 00 Stack dump: 004080d5 0040c5fa 00c90784 00000010 00000006 0040cc10 00c90970 0065fe28 0041b3eb ffffffff 00410efa 00400000 00414185 00400000 00000000 815a9c6c
267 :
名前は開発中のものです。 :05/02/24 16:48:04 ID:ABjHRtsF
スプライトを描写する時に y座標が高い順(奥側?)から順番に描写して、 手前の物を後から描写して見えるようにするには どうすればよいですか? やはりソートしてスプライトNOの低い順に入れ直すしか無いのでしょうか?
ソートするしか無いかどうかは知らないけれど、それが一番楽なんじゃないかな? 描画毎にソートしたとしても今時は大して問題にならないだろうし、 もしそれが気になるのならスプライトを描画順に登録すれば良いだけだし。 例えばオブジェクトを保持するリストが、 0:a(x,y)=(0,0) 1:b(x,y)=(0,2) となっている時に、c(x,y)=(0,1)を追加する場合、 0:a(x,y)=(0,0) 1:c(x,y)=(0,1) 2:b(x,y)=(0,2) となるようにすれば、速度的にも大して問題にならないと思う。
HSPDXFIXの最新版で、スプライト番号関係なく表示プライオリティ 変えることできることができるようになってるみたいだよ。
HGIMGが何かスゴイ事になってきたなー。 独自形式じゃなくX形式でも使えるとか。
もう何年も見ていなかったがHSPは3.0βが発表されたのか。 時の流れを感じるな。
オニオンソフトはたまねぎ剣士並みに神
オニオンソード、オニオンアーマー、オニオンヘルム・・・以下略を 装備しているわけか(w
なんでDSでリメイクなんだよ。 PSPにしてくれよ。 それか、ノーマル版(ほぼFCそのまま)と大幅リメイク(3Dとかいれて)版をセットにして PS2でだすとか。
274は誤爆か?と思ったがFF3の話をしてるのか。
276 :
名前は開発中のものです。 :05/02/27 10:59:37 ID:ixI3aRMx
質問があるんだが、HSPでグローバルIPを取得するにはどうしたらいいかい? ネットワークを利用したものを作りたいとおもって、ソケットを利用した簡単なチャット を作ってみたんだが、IPが「192.168・・・」ってなってるんだ。 これじゃルータ外のPCと通信できないよな? どうしたらいいか教えてくださいエロイ人
エロイ人とか言うから教えない 残念だったな
エロイ人 は誉め言葉だろうに
エロイ人とか言わなければすごいこと教えてたのに・・・
まったくエロイやつらだぜ
>281 俺の事かーーー!!!!!(AAry
で、グローバルIPの件はどうなんですか?>>エロイ人々
俺はエロイだけなので答えを教えてあげることが出来ない
>>276 外部に「俺のIP教えろ!」って聞く。
クライアントのIPだけを出力するCGI(サーバー作るほどでもないし)組んで、
そこから取るのが吉。
自前のサーバーか、専用サーバー(共有は×)があれば、の話だが。
無ければ、ugtop.com当たりから取得。
>>276 エロとは心外だが、啓蟄も近いと言うことで許してやる。
まず、自鯖建設。
自ソフトに仕込む。
IPを得るついでに(ry
外部からでないと得るのは難しいんじゃないかってこと。
HPスペース持ってるなら適当なCGIでも設置汁。
あともう一つ。本当に聞きたいなら出来るだけ下手に出れ、な。
なんかかぶってるな スマソ on_
チャットソフト作っても相手にIPアドレスを教えるのに 他のチャットソフト使わなくてはならない罠('A`)
290 :
276 :05/02/28 13:01:00 ID:8eePMSBv
エロイとか言って申し訳なかった。
自宅鯖とかなしで、純粋に「サーバたてて、クライアントがつないで・・・」ってやりたいんだ。
でも、
>>276 でも書いた通り、IPがローカルみたいなんで困ってた。
他の諸先輩方はこういった場合、どういう方法を取るのでしょうか?
ちなみにpcbnet2を調べてみたら、そういった機能はあるらしいんだが、ベータ版なので
配布には向かないとのことだった。
HSPのプログラムのみでグローバルIPを取得する方法を、改めて教えてください。お願いします。
>>290 通信機能がついてないので無理。
まあ、直にWinsockいじってるなら別だけど。
プラグイン無しって言うのはあまり意味内と思う
>>276 =290
まずネットワークの基礎を勉強したほうがいいと思う
どうも今までの発言を見る限り理解できているのかどうか判断しづらい
スプライトが必ず番号順に手前のほうに表示されていく仕様ってHSPだけ? キャラが重なったら手前のキャラが前に表示されるようにするには その度にスプライト番号を入れ替えるという作業をしなきゃならない?
296 :
290 :05/03/04 11:48:39 ID:hw0nkzvH
レスが遅くなってすみません。ネット環境がないところに居ましたので。
>>292 プラグインの有無は気にしてません。(というか、プラグインに頼らないとムリポぐらいなので・・・)
>>294 確かにおっしゃられている通りです。
C++、VBのプログラミング経験はあるのですが、ネットワーク関係は未経験です。
TCP/IPの入門書を借りて読んでるんですが、いまいち理解できていない状態です。
ルータ使わないでやったら? ルータかましてネットワークゲーム作ろうとかそこからおかしいだろ
ルータ関係ないんじゃない? サーバになるならポート空ける必要はあると思うけど。 C++、VB未経験の俺でもHSPでチャットプログラム作れたよ。
>>297 君、半端な知識でいい加減な事言わない方が良いよ。
ポート開ければいい話でしょうが。
O2ではあかんの?
グローバルIPを得る方法ってば ルーター毎に違うんじゃないの
>>276 プライベートIPアドレスが返ってくるのは
PCにまんまそれが割り当てられてるからです。
その場合グローバルIPアドレスはルーターに
割り当てられてる(WANから見て)ので
知りたければ
>>286 か
>>301 の方法で。
後者は非現実的なので確実な前者をお勧めです。
そもそも自由に出来るサーバーがあるなら
IRCのようにマッチングサーバー立てて
後はみんなクライアントにしちゃうかな。
>>295 それはHSPではなく、使ってるプラグインによると思うが・・・
UPnPを用意しといたほうがいいでしょ。 保険としてポートの指定も可。
>>290 HSP製ネトゲのExorcismBreatheなんかだと基本的なメイン部分は
すべてクライアント扱いで、通信はHTTP+CGIを利用。
直接的なリアルタイム通信じゃないけど、そういうアプローチもあるよってことで。
この方法だとポートはHTTPだけで済むのでルータの設定とかそのへんの
サポートが必要なくなる。
306 :
290 :05/03/05 13:31:25 ID:Yfh9xh2E
ネット環境が、無線LANかつPC2台なんでルータは必須なんです。 そういえば無線LANアダプタ(ルータ込み)でポート設定ができたような・・・ ちょっとやってみます。
とりあえずDMZで試してみたら?
2005/03/04 3.0β5 hspcmp.dllによるシンボル取得時の方法を修正。 β4でonerror命令によるエラートラップが無効になっていた不具合を修正。 HSP2.61互換プラグイン呼び出しでエラー10が出ることがある不具合を修正。 oncmd命令の割り込み登録を操作先のウインドゥごとに行なわれる仕様に変更。 oncmd命令の割り込み時のウインドゥIDをginfo関数で取得できるように修正。 oncmd命令のサブルーチン割り込み内からreturn命令で戻り値が設定されるように修正。 割り込み発生時のジャンプではlooplev、sublevをリセットするように修正。 オブジェクトファイル作成時にも一部のデバッグ情報が生成される不具合を修正。 screen、bgscr命令のウインドゥスタイル設定が反映されない不具合を修正。 objprm命令でボタンオブジェクトの内容変更ができない不具合を修正。 [TAB]キーによるオブジェクトフォーカス移動を実装。 オブジェクトにフォーカスがある場合にもキー割り込みがかかるように修正。
七 みんなで荒らそう2ちゃんねる掲示板 人 女 ●各板で話題に沿わない荒らし方をする。 監 ●ポイント:過去レスを見ずに書き込むとうまくいく。 禁 ⇒新入りはなくなるだろう。 殺 ⇒普通にスレ返すのはプロ固定。 害 ⇒妙な荒れ方するのはプロ固定。 ・ ⇒とりあえず2ch擁護するのはプロ固定。 犯 人 ●2、3書き込んだら後は寒く無視。 ‖ ⇒すると東京プラス会社潰れる。 西 ⇒監禁中の女プロ固定も解放される。 村 博 之 ______________________________________
ポート設定してもできませんとか言いそうなので先に言っておくと、 パケットフィルタの設定だけじゃなくて、ポートマッピングとかルーティング周りも きちんと確認しておかないとおそらくつながらんよ。 そもそもそのタイプのソフトは、まず最初に相手に自分のIPを知らせる必要が あると思うんだが、それをどのような手段で行うか、だよな。 特にチャット系だと「誰と接続できるか」の一覧をどこからか取得するとか そういう処理も必要だろう。そしてそれが実現できるならグローバルIPの取得も その時点で解決しているはず。 ということは、誰と誰が通信するかはすでに固定だったりするのかな。 そうなるとお互いがDDNSサービスを使うとかいう手もあるけど。
新しいHGIMG出てるけど、他のDirectX関係のプラグインと比べてどう? 誰か使ってみた人いる?
O2使ってんだけど、ロビーにいるプレイヤーのリストって どうしてる?一応2つくらい試したんだけどさ、 どれもプレイヤーの名前は文字列変数に、"\n"で区切って 保存。(要はメモリノートパッド命令で使いやすく) 1)seGameStatの返り値とプレイヤーリストの行数を比べて、 違ったらチャットコマンドで他のプレイヤーに呼びかける。 長所:楽 短所:マニュアルの誤植なのか、seGameStatがロビーにいる 人数ではなく、ゲームに接続しているプレイヤーの数 を返してくる。要は、ルームで対戦中でロビーに参加 していないプレイヤーも数えてしまう。 2)点呼専用のチャットオプションを用意しておき、一定時間ごとに 自動で点呼。 長所:時間かかるけど確実 短所:ネットワークに負荷が。しかもタイマーを厳密に全員同じ にできないので、ほとんど常にトラフィックが発生する恐れも。 問題は、ルームを作成して、誰か入ってきたのを知った頃(つまりseWait を実行した時)には既にルームからロビーにチャットを飛ばせなくなる こと。それが出来れば単純にチャットオプション飛ばせば信頼できて、 負荷もかからないリストが出来るんだけど・・・。 という訳で、何か良い知恵ある方、よろしくどうぞ。
配列使わんの?
使ってもいいけど、使う必要ないから使ってない。
あ、もちろん他のパラメータ管理とかには配列使ってるよ。 要は必要次第で使いますが、リストの管理には使ってませんってこと。
対戦中のプレイヤーの名前を、ロビーリストから削除していないのでは? それで行数数えたら対戦中のプレイヤーも数えてしまうよね。
317 :
名前は開発中のものです。 :05/03/09 20:06:31 ID:14YC3UR8
その「削除が効率的に出来ないんですよ」っていうのが俺が問題に
してるところね。あと、対戦中のプレイヤー数えて困るのは
“seGameStat”ね。seGameStatがきちんとロビーにいる人数だけ返して
くれれば、対戦が始まった瞬間に、リストの行数と食い違うから、
そこでリストをリセットして、点呼とれば正しいリストになるでしょ?
分かる?
普通は、リストなんて/in,/outっていうチャットコマンド用意
すればいいと思うじゃん。ロビーに入ってきたら/in、でたら
/outで。
でも、例えばプレイヤーA、B、Cってロビーにいるとするでしょ。
んで、Aがルームを作成。この時点で、まだAのチャットはロビーに
届くのね。次に、Bが対戦しようと、Aのルームに入るじゃん。
そうすると、BがseSetRoomを実行した時点で、もうAのチャットって
Bにしか届かないわけよ。そうすると、ロビーに残されたCに、
「俺は対戦始めるよ」っていうチャットコマンドが、Aから飛ばせない
わけ。そうすると、Aがチャットコマンド飛ばす以外で、Cのリストの
更新方法を考えないといけないわけよ。
で、考えたのが
>>312 の1)と2)
だけど一長一短だから、良い知恵がないかなと思いまして。
318 :
312 :05/03/09 20:29:24 ID:14YC3UR8
ゴメン、自己解決。 312の1)の方法で、Bが/out飛ばせば 良いだけだった・・・。
正直O2は仕様をもうちょっと練ってほしかった
>>317 最初から317のように何がやりたいか具体的に書いてもらわないと見てる側はさっぱりな訳ですよ。
おそらく312のレスだけでは、君の言いたかった事は誰にもうまく伝わってないよ。
実際誰からも返答無かった訳だし。
「seGameStatがきちんとロビーにいる人数だけ〜」うんぬんも
君の解釈がマニュアルと違っていただけですよね?
解決したのならそれでいいけどさ、自分の説明が不十分だったのを棚に上げて、
「あ、このバカ、俺の説明理解してねーな」みたいな態度は質問する側の態度じゃないよね。
分かる?
>>319 まだbだから意見だせば反映されるんじゃね?
>君の解釈がマニュアルと違っていただけですよね? ●seGameStat 【入力】 なし 【出力】 stat:ロビーの人数 【内容】 現在同じゲームにログインしている人数を取得します。 statはロビーの人数になってっから誤植でしょ。 ってか内容の項目と、出力の項目が食い違ってる から誤植か。
323 :
名前は開発中のものです。 :05/03/11 10:10:10 ID:aUJGUIzQ
hspdx.dllって256色しか使えないんですか? 256色以上の素材を使いたい場合は、減色するしかないんでしょうか?
325 :
323 :05/03/11 16:14:03 ID:aUJGUIzQ
>>324 ありがとうございます。
ところで、
>>110 のベンチでは、フルスクリーンモードよりウィンドウモードの方が早いのですが何故でしょう?
>>110 に限らず、ウィンドウモードの方が早いものが多いです。
現在製作中のものは、シビアな描画速度に拘らなくてはならないため苦労しています。
3D機能やスプライトなどは使用せずに、2D画像の単なるコピーと素早い更新だけ使おうと思っているのですが、効果はありますかね。
まぁ、実際にやってみた方が早いですね。やってみます。
(正直、HSPはシビアなのには向かないと思う) な、何も思ってないよ!
>>326 俺も思う。
何作るか解らないから何ともいえないけど。
なぜシビアな速度が必要なのかが気になる。
>>325 スクリプト見てないから分かんないけどディスプレイのリフレッシュレートのせいでは?
フルスクリーンでは60Hz
ウィンドウモードでは75Hz等
1秒間の描画回数が違うのでこの差が出ていると思われます。
ちゃんと同期取るようにすれば差は出ないはず…。
あとは、ボードの描画性能が16bitより32bitに最適化されているとか。
330 :
323 :05/03/11 18:56:42 ID:aUJGUIzQ
>>326-328 パチスロゲームなんですけどね。
シビアな速度というか安定した描画更新でしょうか。
視覚的なものが大きいんです。
少しでもひっかかったりすると、目押しもしずらいし、本物っぽい見え方じゃなくなってしまうので。
で、最近のDirectXでは、ウィンドウモードの方が早いという話を聞きました。
でも、低スペックマシンで試してみた所、今度はフルスクリーンの方が早かったです。
CPU性能が良ければウィンドウモードの方に軍配が上がるのかなぁ…?
331 :
323 :05/03/11 19:02:28 ID:aUJGUIzQ
>>329 ありがとうございます。
リフレッシュレートですか。
そういう話になると、もうちょっと勉強してから出直した方がよさげです。
でもリフレッシュレートって描画回数じゃなくて更新(表示)回数なのではないですか?
思いっきり間違ったこと言ってるかもしれませんが。勉強してきます。orz
同期も分からないので、とりあえず
>>324 さん推奨のプラグインいじってみますね。
329は、リフレッシュレートを待つ設定にしておくと全画面の時は描画の更新が リフレッシュレートと同期するので、ウィンドウモードより遅くなったのでは? という意味だろう。HSPDX系の同期設定はes_syncを参照のこと。 でもそれとは関係なく最近のはウィンドウモードのほうが速い、という認識で 良いかと。 ちなみに画面を綺麗に見せたいならリフレッシュレートと同期させたほうが良い。 たいしたスペックじゃなくてもDirectDrawで軽く60FPSは出るので速度はそれほど 気にしなくても良いのでは。
>>323 hmm.dllでいいんじゃねえの。
描画系だけじゃなくて音再生とかもそろってるし。
DirectX使うならこれで安定でしょ。
HSPDXAは描画がずれる、ウェイトが安定しないなどちょっと気になる点多し。 ウィンドウモードもおかしい。個人的にはHSPDXFIXの最新版をお勧めする。 hmmはワカランスマソ
ノートパソコンのせいか、HSPDX使ったゲームは俺のパソコンでは動かん。 だから、俺が遊びたくなるようなすごいゲームはHSPDXで作るな。 くだらんゲームは使ってよし。
他のプラグインならどうなのよ。 初期化がうまくいっていないだけじゃないのか。 それともDirectX自体がダメなのか。
漏れのノートはビデオメモリ2Mしかないから、それ以上使われたらアウト。
捨てろそんなn
>>336 君の遊びたくなるような凄いゲームとやら是非を教えてくれ
10日で覚えるHSPとかいう本ないかな
本を探したがる人ってよく見るけど、付属のガイドと リファレンスだけで十分じゃないか?
>>342 とりあえず欲しいってやつは結構いる。
プログラミングだけじゃなく。
初めてだったり、あんまりわかんなかったりすると。
きっかけになるし、何したらいいかわかんないって時にも役に立つし。
だからといって、頼り切るのも問題だけど。
実践ももちろん大事だけど知識もいるから。
すごい簡単にできるのにものすごい遠回りな方法でやってることだってあるし
新たな手法身につけることも出来るかもしれないし。
やっぱり、とっかかりが欲しいよ。特に、プログラム経験皆無だと。 それから、PCのない状態で読めるというのも大きいと思う。通勤電車の中とか。 ネットの講座関係はタダで読めるのが大きいんだけど、未完のまま終わってるのがちらほらあって…。 結局、オレは買わなかったけどね。
他言語の適当な解説書を買うか借りるかして、HSPだとどう実現できるか、 なんてことに挑戦するのも割と勉強になる。 ただ問題は、HSP自体の目的が、勉強ではなく目標までの近道としての 位置付けだから、真剣に勉強しないと使えない、というようなら逆に 使わないほうが幸せになれるかも知れない。
3年ぶりにHSPスレに来てみたけど、昔に比べたらマッタリした良スレになってるね。 まぁみんながんがっておくれ。
>>322 すまん。これ以上言い争うつもりはないけど説明しておく。
ゲームにログインしているプレイヤー=対戦部屋にいるプレイヤー
と君は定義を変えてしまっている。
ゲーム=ロビーと解釈するのが正しい。誤表記ではない。
まあ、でも、「ゲームにログインしてる」っていう書き方は いかにもあやふやだよね。 ロビーならロビー、部屋なら部屋で、ちゃんと統一して欲しい。
あっポコたんインしたお!
input A button "クリック",*osu stop *osu mes A stop っていうのでinputで入力された文字をボタンを押して表示するってやりたいんですが 数字は出るものの文字を入れると全部0になっちゃうんです これって何がいけないんでしょうか・・・
A = "": input A
狙い撃ち いくらなんでも等分じゃまずいだろー
変数が文字列型になって無い。
>>351 のようにするかstr A等とやるべし。
後はマニュアル読め。
x,y ;始点と終点の差 p ;基本の移動値 z=(x*x+y*y)^0.5 ;距離 px=x*p/z ;Xの移動値 py=y*p/z ;Yの移動値 でもMIA氏のとこにもっと高速なのあったはず。
357 :
名前は開発中のものです。 :05/03/13 23:11:59 ID:oBCjATBX
>>347 ゴメンこちらもこれ以上言い争う意図ないけど、
seRoomSetStatのパラメータ-3の説明には
「ゲームを終えてロビーに戻る」という表現がある。
しかも誰も「ゲーム=ロビー」なんて言っていない。
出来れば自分でse系命令を使ってプログラムしてから
意見なりなんなりして欲しい。
質問なんですけど buttonをクリックするとmousex,mouseyの値が変に?なるんですが理由がわかりません 仕様なんでしょうか?
>>358 質問するならどう変になるのか詳しく書く!
今のところ仕様。 ボタンの上にマウスがある時は、 mousex,mouseyの値はボタンの左上を(0,0) とした座標になります。
361 :
357 :05/03/14 04:47:17 ID:A6EpgUS2
訂正です。 「ゲーム=ロビーなんて言ってない」->「ゲームにログインしているプレイヤー=対戦部屋にいるプレイヤー」 「seRoomSetStat -3」->「seRoomSet -3」 頼む、ログを読み返してくれ。 そして自分でse系の命令を使って「実際に」プログラムしてくれ。 あなたみたいな優しい人は好きだが、ことse系命令に限っては、 マニュアルだけ読んで意見してくるのはありがた迷惑なんだ。
おまえらうざい
だから、要するに曖昧なマニュアルの不備でいいじゃん。 マニュアルだけ読んで意見できないのは、マニュアルが悪いでしょ。
364 :
名前は開発中のものです。 :05/03/14 12:13:22 ID:SMZhfCez
hsp使ってhalflife2みたいなゲーム作りたいんですが、可能ですかね?
可能
FPSってことなら可能。 ただ、クオリティ及びグラフィックってことなら微妙。
>>366 どう考えてもHalf-Life1のグラフィックでも無理でしょw
正直実際に作りこんでいくとなるとHSPじゃ速度も作業効率も悪すぎる。
C++等で作るのが得策。
その代わりC++、WinAPI、DirectXのそれなりの知識が要求されるから比べ物にならないくらい大変だけどね。
本気でやる気持ちが無いなら手を出さない方が無難
ゲーム性じゃなくてグラフィックを完全再現できるか? って質問なのか?
まあ、最近の3Dゲーム(FPS含む)の様な表現(シェーディングとか)できるプラグインないからな。 C++とかなら、ソース配布してるFPSとか使うのが楽だろ。 データ作るだけでも大変そうだけど。 最新のゲームの場合GPUよりCPUの方がネックになるらしい。 物理演算とかAIとかで。
シェーディングだったらforsythia3dならできるんじゃ? でもあれドキュメントがシェーディングに限らず結構知識ある人向け っぽいんで俺にはよく判らんかった。 新HGIMGはいろいろ出来そうなのでそちらに期待。
質問です。 【環境】WinXPpro SP2 【HSPver】2.61 下記の二つのファイルを作って test.as パス C:\Program Files\hsp261\common\test.AS _______________ #module "test" return #global _______________ test2.as パス デスクトップ _______________ #module "test2" #include "test.as" return #global _______________ これでtest2.asをコンパイルすると #Error:not in global mode in line 1 [C:\Program Files\hsp261\common\test.AS] #Fatal error reported. #Error:not in global mode in line 2 [hsptmp] って出ておちるんだけどなぜなの?
>>371 #module "test2"
#module "test"
return
#global
return
#global
展開するとこうなるから。
373 :
371 :05/03/16 00:01:16 ID:z/q1mVPn
>>372 おお、そうか!サンキュー
ってことはmoduleからmoduleはincludeできないんだな・・・
構築するのに
1.全体の処理の流れを書くas
2.実処理を書くas
3.汎用処理を書くas
と分けて作りたかったんだが、2.3は一緒のasにしなきゃならんなぁ。
とりあえずまとめてやってみるわー
374 :
371 :05/03/16 02:15:43 ID:z/q1mVPn
#include "test.as" #module "test2" return #globa つーかこれで良いのか。寝ようとしたら気づいた。
>>374 "全体の処理の流れを書くas"
でまとめて#includeした方が良いと思う。
-------
#include "汎用処理を書くas" (こっちを先に#include)
#include "実処理を書くas"
-------
#include先でさらに#includeしてると訳分かんなくなるし、
"実処理を書くas"をもう一つ増やしたとして、
そのモジュールでも同じ物を#include "汎用処理を書くas"してたらエラーになる。
>>375 なるほど
>>371 の展開後のソース見てわかったけど、
>>375 のように#includeしてたら
"実処理を書くas"内で"汎用処理を書くas"を#includeしていなくても
"実処理を書くas"内で"汎用処理を書くas"の処理を使えるんだね。
#includeの意味がよくわかってなかったわ。理解できた。
さっそく試してみる。
>>371 >>375 サンキュー
自分でモジュール作るときは、多重includeしてもいいように、Cのヘッダーっぽく #ifndef __MY_MODULE_AS__ #define __MY_MODULE_AS__ ・・・ #endif で囲んでるんだけど、だめかな
うn
>>335 亀レスだが、
DXAがたまに安定しないのは解る(描画がずれるかはわからん)けど、
DXFIXだって処理速度自体がDXAに比べたら遅い(自分でサンプル作って解った)。
HMMじゃ尚更遅いし、全画面でもカーソルが消えないのはかなり不便。
まあ、どっちもどっち。
>>382 カーソルって標準命令で消せなかったっけ?
勘違いしてたらごめん。
最新版のhmmはDirectX9.0b以上がインストールされてないと動かないのか?
>>383 消せるはず。
カーソル類は、別にDirectXとは関係なし。
>>384 要求環境だからなぁ。
案外、DirectXは古いバージョンのままの人とか多いからなぁ。
mouse -1 で消去 mouse で表示
たしかに、DirectXのバージョンは古いままの人はけっこういるよね。
>>382 最新のhmmは別に遅くなかったけどなぁ。
個人的には、使いやすい命令が多くて気に入っている。
古いビデオカードだと、重く遅くなるかもしれん。 まぁ、いろいろ環境考え出すと頭痛いけどね。 fixは、ある程度早くなったのはなっているが いまだに3Dはまだ最適化しきれてないからなぁ。
FIX、十分速くなったと思うが。特に問題ないレベル。 前のは遅すぎたが。 個人的にはZGPが好き。フレームレートも安定させやすいし 機能が豊富で使いやすい。
使えるプラグインは結構固定されてるな。 描画:zgp、hmm、fix、a、hgimg 音:hmm、dsoundex パッド:ckjoy、hmm よく名前が出るのはこんなとこか。 他にもオススメある?
描画としてhmmは話題には出てくるがあまり使ってるの見たことないな。
確かにそうだなぁ・・・公式ページにあるのに。 それよりも、意外と前バージョンのhspdxとか使ってる人が多い・・・ あまり、更新しない人多い?
「サブルーチンのネストが深すぎます」 に悩まされる日々。 サブルーチン内から別のサブルーチンを呼び出していて、呼び出した中でループ処理 をしているとハマるということ? すでに20以上あるサブルーチンの構成を、組みなおさない限りは解決しないのか・・・・。
gotoで飛んじゃってreturn処理してないとかじゃないの?
repeatループをreturnで抜けるのもよろしくない
>>396-397 レスをありがとうございます。
指摘をいただいたあたりは気をつけてはいるのですが、見落としがあるかもしれません。
ループ処理の回数に依存して異常が出ているようです。
(パラメータを変更してループ回数を減らすと発生しない。)
>>398 システム変数の looplev と sublev でそれぞれループと関数のネスト数が見れるから
dialog デバッグするとか。
>>386 そういう命令があったのかorz
>最新のhmmは別に遅くなかったけどなぁ。
>個人的には、使いやすい命令が多くて気に入っている。
DLしてサンプル見てみる・・・
てか、HSPDX+α派って俺だけですか…orz
401 :
名前は開発中のものです。 :2005/03/28(月) 17:08:55 ID:+HqBE1dF
DG〜とDS〜が追加されてるじゃん。知らなかったorz
>>399 >>402 おかげさまで、調査の方針は立てられそうです。
一箇所を修正すると他の部分でネストの異常が発生したりして、まだ根本解決にたどり着いていません。
ちなみに、ターン制ウォーゲームを作っています。
関数全部初期化する命令って標準命令にある?
変数じゃないのか?
406 :
404 :2005/03/28(月) 21:37:19 ID:6RrFQaD/
すみません、そうですね。 それで、あるのでしょうか?
そんな命令はない。プラグインで作ろうと思えば簡単に作れそうだが。
408 :
404 :2005/03/28(月) 21:52:23 ID:6RrFQaD/
わかりました。 どうもです。 一つ一つ戻すしかないのか…。
end
初期化ルーチン作っておけば? 変数宣言し直せば初期化されるんだから宣言もかねて。
すいませんまだ始めたばかりでよくわからなく 質問があるのですが、クリック連打するゲームを作ろうと思い 時間制限を作っているのですが、ボタンを押すと 時間がまたもとにもどります。どう改良すればいいでしょう? kai=0 mes "ボタンを連打してください" button "連打",*gopush stop *gopush count=11 repeat 11 count=count-1 await 1000 title ""+count loop dialog "あなたが押した回数は"+kai+"です" kai=kai+1 stop
count=11 ボタン押すごとにcountの中身を11にしてたら戻るに決まってるじゃん。 質問する前にもうちょっと自分の頭使って見直してから書き込め。
駄目だこりゃ
button ってのは、ボタンを押したらそこへ常に飛ぶんだろ。 常に初期化されることになるんだから、リカウントされる。 ・・・と、HSPをまともに使ったことの無い漏れが答えてみる。 ま、ループの位置も怪しいし、改造以前の問題な気もする。
>>411 問題は、開始ボタンと連打するボタンが同じボタンだという事。
つまり、「連打する=開始する」だから、押す度に新しく開始してしまう。
if 文などを使うと解決できる。
また、タイマーの方法も問題がある。
repeat 〜 loop でタイマーを作ろうとしているのはわかるが、
ボタンを押す度にループを抜けてしまうので、この方法ではタイマーにならない。
gettime を使うといいかもしれない。
button の仕様による問題なので、ちょっと難しいね。
ID:UexDUuFiwwwww
button "連打",*push gettime a,5 : gettime b,6 c=a*60+b stop *push count++ gettime a,5 : gettime b,6 d=a*60+b : e=d-c title ""+e+"秒" if e>10 : dialog ""+count+"回" stop
全然だめだな。 まず、ボタン判定の中に時間と終了判定がある。
button "連打",*push gettime a,5 : gettime b,6 c=a*60+b *main repeat title ""+e+"秒" gettime a,5 : gettime b,6 d=a*60+b : e=d-c if e>10 : dialog ""+count+"回" : end wait 1 loop *push count++ goto *main
ボタンというイベントドリブンと 時間制限というリアルタイムの 同居が違和感あるけど、まいいか
みなさん。ありがとうありがとう
HSP3.0、buttonやon〜でgosubを使えるようになったのは ありがたいんだが、(a)waitは抜けないで欲しいと思った。 そう思うのは俺だけかな? ; Example(これのボタンを連打すると分かる) button gosub "Button", *label repeat , 1 await 1000 title "約"+cnt+"秒経過しました。" loop *label return
3.0が順調に開発中
427 :
名前は開発中のものです。 :2005/04/03(日) 21:13:13 ID:X3Lm9fnF
age
#include "Srexhsp.as" #include "hmm.as" だとエラーでて #include "hmm.as" #include "Srexhsp.as" だと問題ないのはなぜ? つーか青画面でて再起動したよXP
キーを押すと、listboxにいくつかの項目を表示して選べるようにしてるんですけど、 何度かキーを押したりしてると、スクロールバーのついたlistboxがばぐるんですけど分かる人いますか? 具体的には、15行のリストがあったとして、スクロールバーが付いていると、15行目をクリックすると8行目に飛んでしまうとか。 また、listboxのp1には-1が入ることもあります。 (一瞬-1が入って選択されるから、前述の現象が起こると思う。で、-1のままの時もある)
430 :
名前は開発中のものです。 :2005/04/05(火) 13:17:03 ID:saHKkBFh
HSP今日から勉強し始めたんだけどどんな風に勉強すればいい?
作りたいもん無いの?
433 :
名前は開発中のものです。 :2005/04/05(火) 15:30:59 ID:saHKkBFh
作りたい物と言うか、どんな風に勉強したらいいのかわからない。 人のソースひたすら読むのがいいの? それとも命令をひたすら覚えたらいいの?
いや。もうしてるんじゃないか。 「勉強し始めたんだけど」 その通りにやればいいと思うよ。
一例。 とりあえず作りたい物作れ。やりたい事やれ。 わからないところが出たらマニュアル読んだり他人のソースパクったりググれ。 完成したら縮める努力をしてみろ。わからないところが出たら以下略。 やれるところまでやったら悦に浸れ。そうしたらまた新しい事を始めろ。 それの繰り返しで多分命令とかは覚えられる。
436 :
名前は開発中のものです。 :2005/04/05(火) 16:03:40 ID:saHKkBFh
>>434 やっぱ自分なりでいいですかねぇ?
>>435 作りたいもの作れと言われても、まったくしらないので
やっぱりすこしは命令覚えたほうがいいのかな。
どっかのサイトで勉強してみます。
解らないとこあったら聞いてもいいですか?
>>436 プログラミングなんていかに自分で色々なことを調べられるかが問われる趣味だから
自分で調べてどうしても解らないなら聞きなさい。
438 :
名前は開発中のものです。 :2005/04/05(火) 16:24:37 ID:saHKkBFh
>>437 どうもです。
できるだけググッってみます。それでも解らないときに協力してください。
疑問はポイントを絞らないと答えられないぞ。 漠然と判らないといわれても答えるほうも判らない。
440 :
名前は開発中のものです。 :2005/04/05(火) 19:28:35 ID:saHKkBFh
>>439 わかりました。質問するときはそうします。
>>440 HSPマニュアルの
「初心者のためのHSP入門」は一通り見たのか?
話はそれからって感じだな。
一通り勉強してみたけどまずなにを作ればいいだろう 数当てとか?
何を作るかまで人に聞くんじゃない
>443 お舞にはプログラムは向いてないんじゃないか? 何か作りたいものがあるからHSPの使い方をわざわざ覚えたんじゃないのか?
最初はそんなものだろ
俺も当時「HSPすっげー」ってだけで始めてすぐ途方にくれた
>>443 とりあえずググって真似出来そうなゲームやツールでも探して作ってみれば?
とりあえず数あては作ってみました。 テトリスでも作ってみようかな
>>443 シューティングが作れれば一人前だと思う。
ま、とりあえずお題をあげよう
32x32ドット、2〜4コマのアニメーションするキャラクター1体が
ななめ45度で、1秒間に30ドット移動し、画面端で跳ね返るスクリーンセーバー
背景は真っ黒で良いから。
スクリーンセーバーはちょっとめんどいから640x480のウィンドウでも良い。
>>448 それは、画像を表示してウィンドウの外側にでないように跳ね返るものを作ればいのですか?
>>450 それはたしかに良いとおもいましたね。
やろうと思ってたんですけどスレに活気が無かったので
ここでそれをやって結果報告と貸してもいいですか?
font"Webdings",32:s="":x=winx-32:y=winy-32:repeat:redraw 0:color:boxf
c=cnt:pos c\x*(c/x&1*-1|1)+(c/x&1*x),c\y*(c/y&1*-1|1)+(c/y&1*y)
poke s,,c/9<<1|(c/9
>>1 &1)&3+0xf7:palcolor 255:mes s:redraw:await 33:loop
453 :
450 :2005/04/06(水) 20:33:19 ID:RL7Bkojd
>>451 ここはどちらかというと、質問・雑談スレっぽいから、
そのゲームの該当スレに報告した方がいいんじゃない?
もし、HSPなアドバイスが欲しかったら、ここに移動先スレのURL貼っておけば
物好きな人(like me)が行くかもしれない。
>>453 でもスレがないのですよ。
ここじゃだめですか
スレがないって何だ? 別に「HSPで」〜を作ろうスレじゃなくて良いんだぞ。
456 :
名前は開発中のものです。 :2005/04/07(木) 05:50:36 ID:Gn25ways
>>454 仕様書(と参考程度の作りかけ)を渡すから、代わりに作って。
458 :
名前は開発中のものです。 :2005/04/07(木) 06:42:51 ID:Gn25ways
もういいから黙ってやれ。 なんかうざい。
ゲムデブが落ちてる
ゲーム肥満
462 :
名前は開発中のものです。 :2005/04/07(木) 21:48:48 ID:aDwCbseV
>>462 エスパーは居ません。ソースうpしる。
onkeyやメニューが関係ありそうだけど…。
464 :
429=462 :2005/04/07(木) 23:18:53 ID:aDwCbseV
関係ない部分を端折りました。見難いですがすみません。 screen 3,600,400,,0,500 screen 0,800,450,,0,0 color:boxf notesel data objsize 410,50 index=-1 pos 380,290:listbox index,100,data sysfont 17 color 250,200,250 boxf 320,295,370,315 pos 322,300:color:mes "検索実行" repeat stick key if (key=32)|((key=256)&(mousex>320)&(mousex<370)&(mousey>295)&(mousey<315)){gosub *start_kensaku} gosub *test await 15 loop
465 :
429=462 :2005/04/07(木) 23:19:17 ID:aDwCbseV
>>464 続き
*start_kensaku
data=""
notesel data
repeat 16
noteadd "["+cnt+"]"
loop
objprm 0,data
objsize 410,50
pos 380,290:listbox index,100,data
return
*test
gsel 3
redraw 2
color:boxf:color 255,255,255
pos 300,0
mes "index "+index
mes data
redraw 1
gsel 0
return
466 :
429=462 :2005/04/07(木) 23:23:18 ID:aDwCbseV
listboxのp2の意味がよく分からないので、とりあえず100にしてみましたが、 適当な値又は指定無しでも結果は変わりませんでした。 エンターを押すか、検索実行をクリックして、何度か実行してみると、 表現しづらいですがおかしな挙動になります。 デバッグウィンドウのindexの値からも、listbox選択中に-1が取得されたりします。 根本的にどこかが明らかにおかしそうなのですが、間違っている部分を教えてください。
>>466 原因は明らかに *start_kensaku の中で listbox をもう一個作ってるところ。
そりゃーバグりますわ。
>>466 mousexとmouseyはオブジェクト上では更新されません。
試しにawait 15の辺りにこれを入れてみてくらさい。
title ""+mousex+" "+mousey
マウス座標が更新されないから、
listbox内を選択したときに、検索ボタンのクリックが成立してしまい、
*start_kensakuに飛んでしまうので一見挙動がおかしく見えます。
469 :
468 :2005/04/08(金) 00:09:03 ID:P2pwz5ou
>>467 一番重要なところ見落としてたよ orz
>>467-469 レスありがとうございます。
やっぱりそこでしたか。
オブジェクト自体使うのが初めてでそこら辺が怪しいとは思っていたのですが。
やりたい事は伝わったと思うのですが、それを実現するためには、
・始めにlistboxを作って設置
・noteにデータを記入
・objprm 0,dataで内容を消去
という流れでいいんでしょうか?
ですが、この流れでも同様な挙動を起こすときがあります。
イマイチオブジェクトを用いたときの流れに慣れません…。
>>470 すいません。
・objprm 0,dataで内容を消去
ではなく
・objprm 0,dataで内容を上書き
でした。
listboxはこのような(
>>464-465 )場合に使われるものだと思うのですが、
一般的な、設置→更新の流れがよく分からない状態です。
まず、listbox、combox、mesbox などを配置したら、 以降は何か特別な理由が無い限り、消したり作ったりしなくていい。 (自信がない場合は、他の人が書いたソースを読むといいかも) あと、オブジェクトではなく、コントロールなので注意。 objprm で内容を書き換える際、選択が代入される変数の内容と、 実際の選択がずれる場合がある。 これを防ぐには *start_kensaku をこんな感じにするといいかも。 (選択を一時退避して、更新後に再設定) *start_kensaku data="" notesel data repeat 16 noteadd "["+cnt+"]" loop n=index objprm 0,data index=n objprm 0,index return
>>472 どうもありがとうございます。
それでも、何度か『検索実行』をクリックした後、選択し直すと選択位置が飛ぶことがあります。
(例えば[10]を選択後、『検索実行』を数回クリック、その後[15]を選択すると[7]に飛んだり)
で、本家BBSの過去ログを見てみたのですが、一度clrobjで消した後、再度listboxを作り直す方法も書かれていて、
ttp://www3.tky.3web.ne.jp/~arsene/hsp/trap/ には、「combox(listboxも同様)命令の後に「a=2」を追加する」とあるので、
472さんの退避も同時にして
clrobj 0,0
tmp_index=index
pos 380,290:listbox index,100,data
index=tmp_index
としてみたのですが、同様の症状が出ることがあります。
実際に、「ボタンを押すとlistboxの内容が書き換わる」というアプリケーションはあるので、(ソースはありません)
実現するのは不可能ではないと思うのですが…。
どこか間違っている又は違う方法があったら引き続きご教授ください。
もう面倒だから、objsend 使って直接選択インデックスを取得ってのはどう? listbox を作るのに pos 380,290:listbox dummy,100,data と、ダミー変数を指定しておいて、 ループ内で objsend 0, $188, 0, a index = stat とする。(p1 は listbox のID)
>>474 たびたびすみません。
objsendやWin32APIの事も調べてみたのですがどうもうまくいかないようでした。
で、なぜ上記の症状が起きるのか考えたところ、
>>468 さんの仰った通りのようでした。
サブルーチン内にtempカウンターを置いてみたところ、何度もサブルーチンに飛んでるようでした。
『検索実行』の位置からすばやくリストボックスにマウスを移動すると、
マウス位置が正確に取得されていなく(取得が追いつかないまま更新停止)、
『検索実行』をクリックしている状態になっていました。
noteの値をいつも変わるようにしてみたら、その事に気が付きました。
ですので、普通に
data=""
notesel data
repeat 16
noteadd "["+cnt+"]"
loop
objprm 0,data
で良さそうです。
あとは、『検索実行』の枠の位置を意図的に離すか、ボタンオブジェクトにする(これならマウス位置の取得は関係ないから)
事で解決できそうです。
色々アドバイスありがとうございました。お騒がせしました。
>>475 ginfo 0のマウス座標を
WinAPIのScreenToClient()でウィンドウ内の座標に変換するか、
ginfo 2,ginfo 5等を駆使して変換すれば何とかならんでもないよ。
HSPDXFIXで、es_syncでウェイトかけた時、たとえばes_sync 16,1とした時に なぜか「61FPSの環境」と「63FPSの環境」にくっきり分かれるんですが…。 どちらの結果も複数の環境で出ました。皆さんどうですか? 同じスクリプトで結果が変わるのは環境依存ってことでしょうか。 今出先なんでそれぞれの環境は書けませんが、何かわかったらまたレポートします。
63FPSの方が偽物。
俺のも63FPSになるPCがあったな。 ビデオカードはGeForce2MXだった。
ウェイトが16だったら62.5FPSになるんじゃ? 17,17,16,17,17,16...って繰り返せばぴったり60になるかも。
481 :
479 :2005/04/12(火) 02:23:27 ID:nQvjEkY1
>>480 いや、es_getfps使ってんだけど、家のPCの1台だけ63になって、
他の環境では61なのよ。
>>477 もそういう意味でしょ?
俺も
>>480 のような感じだと思うんだけど。
小数点以下が省かれてるから、小数点にはみ出た部分を補正しなきゃいけないと思う。
で、FPSがずれるのは、小数点以下のずれが処理速度によって微妙に違うからだと思う。
敵 ■■←障害物 ■ ■ ■■ 人 ↓ 敵 ■■←障害物 ■人 ■ ■■ 人の座標を一個づつずらして敵に近づけようとすると 障害物とかがあった場合は障害物にまっちゃうのですが回避する方法ありますか?
バリアフリーにする とは言わんから、避けさせろ。
>>483 当たり判定をこんな感じで取ればいいんじゃね?透明な障害物つくりゃいいんだよ
マジメに経路探索したほうが応用きくけど
■■
■■
■■
■■
まあ、多少馬鹿な動きしてもいいから探索作った方がいいな。 4方向の向きによる探索(正面に壁があったら左向くとか)すればいいと思う。
参考になるHP発見したので行ってきます。
488 :
477 :2005/04/13(水) 18:47:08 ID:IuPGyoKI
>>482 いあ、61FPSと63FPSの環境に分かれちゃうのが困り者なんです。
内部タイマーに環境ごとの誤差があるんでしょうか。
しかし揺らぎ無くその二つに分かれるのも変な話。
えぇけっしとるのぉ(*´Д`)ハァハァ うはっwwwおkwwwうえっwww??
3Dゲーム作成に挑戦したいんだけどキャラクタの容量はどれくらいが妥当なの?
>>488 割り切れる50FPSにしろ。たいして違いは無い。
50fpsなんてやだなあw
493 :
名前は開発中のものです。 :2005/04/14(木) 01:47:26 ID:oJQnYwXM
>>488 環境ごとに誤差があると思う。
今予想してるのはOSごとなんだけど、
誤差の出ているOSは9x系とNT系で分かれないか??
えぇけっしとるのぉ(*´Д`)ハァハァ うはっwwwおkwwwうえっwww??
496 :
名前は開発中のものです。 :2005/04/14(木) 05:52:06 ID:ilGGHvau
497 :
名前は開発中のものです。 :2005/04/15(金) 02:29:22 ID:0/emnqbw
>>493 ウチはW2kとXPだが、前者が61、後者が63になる。
前者はCPUはAthlonXP2500+、ラデ9600pro。
後者はセレ1.8GHzでビデオはオンボードの845G。
友人のPCでも61になるのと63になるのがあったけど、
ラデ系は全部61になってる気がする。
あ、いかん、逆だった。 ×ウチはW2kとXPだが ○ウチはXPとW2kだが で後を読んでくらさい。
>>497 9x、NT、XPに分かれると思うんだが。
一度サンプルをうpしてみないかい?
複数サンプルあった方が原因究明になると思うし。
500 :
497 :2005/04/15(金) 04:46:56 ID:0/emnqbw
#include "hspdxfix.as" es_ini es_screen 640 ,480 ,16,0,1 *main es_cls pos 0,0 :es_mes ""+fps es_sync 16 es_getfps fps getkey esc,27 :if esc :end await 0 goto *main これでいいかな。 結果は同じなので。
>>500 60と61をさまよう@WindowsXP
502 :
名前は開発中のものです。 :2005/04/15(金) 17:00:00 ID:LnfgqpZR
>>500 XPで、61
ゲフォFX5200だからVGA依存ではないっぽいよ?
503 :
名前は開発中のものです。 :2005/04/15(金) 17:32:47 ID:LnfgqpZR
精度が、 9x系で1ms 2kで5ms XPで10ms だと思った。 #include "hspdxfix.as" #include "llmod.as" es_ini es_screen 640 ,480 ,16,0,1 *main es_cls pos 0,0 :es_mes ""+fps es_sync 16 es_getfps fps getkey esc,27 :if esc :end await 0 prm=10 dllproc "Sleep",prm,1,D_KERNEL goto *main これで、環境依存なしでfps60にならないかな?
504 :
497 :2005/04/15(金) 22:06:24 ID:6i78VQAH
>>503 アリガトン。
でもやっぱ63FPS…orz
es_getfpsを疑うってのはどうかな。
es_getfpsの仕様かもしれん
HGIMGで 3DのMAP上の凸凹に沿ってキャラクターも上下してほしいのだが なんか方法アル?
>>504 ダメですか。
OS毎のsleepの最小単位を疑ったんですが、関係ないのかもしれないですね。
fix使った事ないしこれ以上の事はちょっと分からないので引きますね。
es_getfpsを疑うのかもしれませんね。
力になれなくてスマソ。
では。
509 :
504 :2005/04/16(土) 06:35:03 ID:dOPyr5db
>>508 ありがとうございましたorz。
で、指摘の多いes_getfpsの件は、V-syncと同期してるとどの環境でも
60KHzにするとちゃんと60FPSになるので、たぶんそこではないと思うのです。
510 :
504 :2005/04/16(土) 06:36:29 ID:dOPyr5db
60KHzじゃなかったw 60Hzですね
>>509 V-syncと同期しない場合での、fps管理がよくないんでないか?
513 :
504 :2005/04/16(土) 21:49:30 ID:whNUv8N3
>>512 500のソースに何かまずいとこありますかねorz
es_getfpsが悪いって言ってるんじゃない?
515 :
名前は開発中のものです。 :2005/04/16(土) 23:15:53 ID:95AvjJpw
そこで「DSOUNDEX.DLL」のタイマーですよ。
自前でやるの? よくわかんないけど…
>>515 dsoundexは良くても、awaitの精度がイマイチならどっちみちだめ。
ダメなヤツは何をやってもダメ
stick命令で「→」+「↑」+「スペース」キーの3つを同時押しできるように 合計値「22」を変数kyに代入してるんだけど、「スペース」キーが無視された結果が出るんですが・・・ 同様に「→」+「↓」+「スペース」でも「スペース」が無視されるし、 「ENTER」キー等でも同じように無視される組み合わせがあるんですけど これはHSPの元々の仕様なんでしょうか?
誰か〜 >507 教えてくれ〜
>>520 そんなのも解らないなら使うのやめたほうがいいと思うよ^^
>>519 repeat
stick k, 6
if k & 22 == 22: mes "Pushed"
await 1
loop
何も問題無いが
523 :
519 :2005/04/17(日) 12:56:03 ID:rcdD6t3u
#include "hgimg.as" screen 0,640,480,0 hgini setfont 16,16,16,1 texload"fontchr.bmp" gsel 0 *main hgdraw;描写処理 fprt "ky:"+ky.0,8,8 ;キー入力チェック表示 hgsync 200;ウェイト stick ky,255;キー入力チェック goto *main このプログラムで確認してるんですけど 「↑」+「→」を同時に押し続けたまま「スペース」キーを押しても「スペース」キーを反映した数値が表示されないんです。 「↑」+「←」の場合だと「スペース」キーが反映されるんですけど。 あと「スペース」キーではなくて「CTRL」キーだとどの組み合わせでも反映されるんですが・・・
525 :
名前は開発中のものです。 :2005/04/17(日) 14:18:22 ID:caZ225rT
HGIMGのオブジェクトのモードについて OBJ_GRAVITY 重力制御を有効にする ↑どんな効果があるの? 試してみたけど変化なし・・・・・・・・。
>>520 3Dマップの地面データから判定するしかないんじゃないか。
隣接する3つの点座標と進むべきベクトルから計算して…
モレにもよく分からんのだが。
2Dで考えれば、直線上で棒人間を歩かせるのと同じだから。基本的には。
/\/ ̄\
 ̄  ̄ ̄\
3Dマップを始めから1つのオブジェとして作っていたら衝突判定しかないのでは。
HGIMGにあるのか知らんが。
527 :
526 :2005/04/17(日) 15:54:41 ID:5ibk+5o2
途中で送信 スマソ _| ̄|○ → /\/ ̄\  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄\__
>>523 Nキーロールオーバーのキーボードを買え。
ハードウェアの問題をHSPのせいにすな。
return loopの中にボタン入れるとちらつくんだがどうしたらいい?orz
530 :
名前は開発中のものです。 :2005/04/17(日) 20:17:46 ID:caZ225rT
ループ内に入れなければよい
ループ前に置いといたらどうよ
Σorz スマン 助かった
533 :
名前は開発中のものです。 :2005/04/17(日) 20:49:06 ID:cIHL2a5h
ボタンとかってプログラムの流れが今どこにいるのかわからなくなるね。 これが噂に聞くOOってやつ?違う?
ObjectObject・・・ つまり第五文型?
強いて言うならイベントドリヴンだろう
でもさー、HSPはメッセージループも隠しちゃうから やっぱりメッセージ関係は弱いし、文脈も読みづらいよね。 もちろん、それが長所でもあるわけだけど。 上級者向けに、自前でメッセージディスパッチできるようにしてくれればいいのに。
逆コンパイルの方法をちょっぴりわかりやすく教えてください。
逆コンパイラを作る→逆コンパイルする
ちょっぴりわかりにくいです
HSPの実行ファイルは、「スクリプト実行エンジン+コンパイル済みスクリプト」 という構成になっているので、スクリプト実行エンジン部分は、 バージョンが違わない限り、どれも同じ。 つまり、コンパイル済みスクリプト(obj)を、コンパイル前に戻せればいい。 まず、何も書いていないスクリプトをコンパイルした時の obj を残す。(仮にobjAとする) そして、調べたい命令(stopなど)1つだけ書いたスクリプトをコンパイルして 生成された obj を、先ほどの objA とバイナリ比較する。 すると、ヘッダー部分と思われる部分が多少変化していて、 後半では 2byte (1A 42)増えているのがわかり、 この2byteが、stop のコンパイル後、というのがわかる。これを各命令ごとに繰り返す。 ただし、これはあくまで暗号化されていない場合。 それに、変数や関数が絡むとより複雑になるので、素人にはお勧めできない。
できないということがわかりました。サンクス
KojiWadaのSkratch It!やってみたんだがあれ全部一人でやったってのは ハードすぎるな。せめてBGMは分担したいな
あれはなかなかいい。
>>537 HSPの意義を著しく薄めるような真似はいかがなものかと。
>>542 出来なかったら起動なんかできません。
ランタイムを逆アセンブルとかすれば暗号は解けます。
知識と時間があれば。そこは防ぎようがないし。
2.6からは暗号化されてるんじゃない? 2.5まではフリーソフトで逆コンパイル出来たよね。
MIAがいる!!
楽をするためのツールとして使うのに初級とか上級とかはあんま関係ないんじゃ
ドキュメントでは、objsend は上級者向けの命令、っていう位置づけになってるよね。
最近HSPをかじりはじめてすごろくっぽいの作ってる。 そんでPLAYER1→PLAYE2→PLAYER1→…という動作を12回目ぐらい繰り返すと サブルーチンのネストが深すぎますって出るんだ。 *tes repeat 15 //縦の数 repeat 15//横の数 peek cd,map.yy,xx gmode 0 if cd ='0':pos ua,cc:gcopy 1 if cd ='1':pos ua,cc:gcopy 2 if cd ='2':pos ua,cc:gcopy 3 if cd ='3':pos ua,cc:gcopy 4 xx++ ua = ua +24 loop xx = 0 : ua = 0 : yy = yy + 1 : cc = cc + 24 loop xx = 0 : yy = 0 : ua = 0 : cc = 0 return ここの[//横の数]の列が原因と出る(汚くて申し訳ない)。 原因と思われるところをご指示願いたい(`・ω・´)
>>551 そこはおそらく関係ない。
gosubで飛んだ先や
repeat〜loop内でgotoしていないか確認汁。
>>551 looplevを色んなとこに入れて、ネストのチェックをしてみ
質問です。 mes表示でレトロ風ゲームのようにtextの速度に同期してピコピコ音を鳴らす、と言う 感じの表現で頭を悩ませているのですが何か上手いやり方はないものでしょうか。
配列とか
マクロでmes2とか作ればいいと思う
text は内部でウェイトしちゃうので、途中に処理を挟むことはできない。 自分で、1文字ずつ表示する処理を作ればよろし。
動画を使いたくてhmm.dllのDirectGraphics命令でゲームを作っていたんだけど 素材が増えてきてbuffer確保でエラーが出る様になってしまった。 ぐぐって調べてみたところ、どうもVRAMの容量が足りないらしい。 で、質問です。 DirectGraphicsってVRAMの容量内でしかbuffer作る事出来ないのですか? 標準命令でメモリに作ったbufferからDirectGraphicsのbuffer(dgbuffer)にコピーする方法 みたいな裏技的な方法は無いでしょうか?
SYSTEMMEMORYに確保したら? てか、どれくらい一気にVRAMに使ってるの?
>>559 640*480 を5枚(screen入れて6枚)
318*1200を2枚
106*336を1枚
でエラーが出ました。
SYSTEMメモリーに確保したいのですが、DirectGraphicsの方の命令には
確保先の指定オプションが無くて困ってます。
DirectDrawの命令では指定できるみたいなのですが、DirectGraphicsとの併用は
無理みたいなので。
今見たら、確かにSYSTEMMEMORY指定ないね。 DirectX9は指定できるけど、提供してないか。 DirectDrawからDirectGraphicsに転送できると思うが、hmmができるかわからん。 640*480→1024*512 318*1200→512*2048 106*336→128*512 で、DirectGraphicsは確保するから・・・14.25Mか。 この容量は使ってるビデオカードの範囲内?
562 :
551 :2005/04/22(金) 00:11:58 ID:1urRFBrQ
アクションゲーム作ってるんだけど BGMが終わってからループするまでに時間がかかるし、 ちょっと固まってしまう。対処法とかってあるだろうか
>>563 BGMをwavにすればいいんでないかい
>>563 MIDI?
うんと長くするって手もある。
>>564 容量でかくなるんでないかい
>>565 MIDI。
長くするのも考えたけどやはり終わりは来るわけで・・・
諦めるしかないかな
MIDIなんか5分くらいの長さでも大した容量にならないんじゃ? つーかMIDIのBGMは聞き苦しいので嫌われるぞ。
>>566 MIDIの先頭ではなにやら初期化してるから、ループさせて先頭に戻ればまた初期化して重くなる。
RPGツクールみたいに独自コントロールでループさせんと無理だな。("4小節目に戻る"とか出来た思う)
用は初期化を飛ばせばいいので
まず、初期化だけするMIDIファイルを再生させて、
それから初期化コードのないファイルをループ再生させる、とか。
それか1曲1時間ぐらいにしろw
あー質問す。 去年のコンテスト応募作品の「Skratch It」ってゲームで、 ステージ開始前、画面の一部が拡大して手前にオーバーレイ表示 されているんだけどあれってどうやってるんでしょ? mref xx ,66じゃDirectXの画面拾えないみたいなんだけど…。
>>568 >初期化だけするMIDIファイルを再生させて
なるほど。その手があったか。
ゲームに時間制限付けて
それより少し長いMIDIをながそうかと考えていたが
そのほうがいいな。激サンクス!
じゃああきらめれ
そういえば >"4小節目に戻る"とか出来た思う こんなこと出来る?ヘルプ見ても無いけど・・・ なんかのプラグインか?
だからMIDIはやめろとあれほど(ry
ネット公開だとサイズ気にしなきゃいけないからmidi使う場合もあると思う
>>573 それは「RPGツクールみたいな独自コントロールをしているソフトが」ってことじゃないの?
標準命令にそういう機能はなかったと思う。
GuruGuruSMFとかのプラグインを使えば出来るけど。
DirectMusic使ったら出来ない?
MIDIならDirectSound使わなくても効果音と同時再生出来るし。 ゲームの為にMIDI音源買うってのはもう流行らんのかの。
エクスクルーシブ使って音源を完全コントロールとか今時流行らんし そもそも音源が違ったら作曲者の想定外の音色にしかならんからな。 フリーのGM用データのBGMなんて無いほうがマシな気もしないでもない。 サイズを嫌うならmp3やoggで鳴らせばいいのではと思うけど、数Mbyteでもダメか?
map.0 = "11111" map.1 = "10001" map.2 = "10201" map.3 = "10001" map.4 = "11111" このmap.2の3列目の2に0を入れたいときは map.2 = "10001"という命令を出す以外に手は無いですか?
poke map.2, 2, '0'
いい歳してポケモンかよ(ププwww map.5 = "10001" map.2 = map.5
明らかに
>>581 の方が実行効率がいいわけだが。
他に、例えばいっぺんに書き換える時は、memset が便利。
map.2[2]=0 とかってできないっけ。
できませんが何か
dim a,1 dim c,1 dim d,1 e=0 a.0 = 200 b = 20 c.0 = 100 d.0 = 10 if a.0 + b < c.e + d.e :mes "f" stop こうするとc.e + d.eよりa.0 + bのほうが大きいはずなのに"f"が表示される。何故?
左から計算してるから。 まずa.0+b=220。次にa.0+b(220)<c.e(100)が成り立たないので0。 そして0+d.e=10になる。解がTrue(0以外)なのでmes "f"を実行する。 要するにifは式の結果が0以外なら実行する。
要するに括弧を使えってこった
説明は良く分からんかったが括弧付けたらちゃんとなった。 これで悩んでたバグが直ったわ。ありがとー
計算の順位にかかわらず括弧つけるのはくせにしといたほうがいいと思う。 とてつもなく見にくくなるなら別だけど。 言語に関係なくね。
アホか。 Cとかで a+b > c+d に括弧つけるアホなんかみたことねー。 こんなんに付けたら十分見難いわ。 HSPだけでな。言語に関係ありね。
カッコつけときゃいい、じゃなくて優先順位を考慮しましょう、でFA
格好つけるより括弧つけようぜ
無論だ!!
修行が足りん!
お前もうまい事言ってみろよ! うまい事言うよりうまい娘とイ(ry
冬に戻すのはやめてくれ。
601 :
名前は開発中のものです。 :2005/04/25(月) 14:00:18 ID:QS/ZWf29
>>591 理解出来ないならまた同じような失敗するな。
>>591 1 + 2 * 3 + 4という計算式があったとしよう。
普通は、1 + (2 * 3) + 4という計算をする。
しかし、HSP(2.x)は(1 + 2) * 3 + 4のように左から順番に計算してしまう。
11になって欲しいのに、13になってしまってるから、計算が合わず困ってしまう。
この場合も同じこと。
等号、不等号は真なら1、偽なら0っていう計算(という表現が正しいかはおいといて)。
603 :
名前は開発中のものです。 :2005/04/26(火) 00:01:16 ID:NHQHqm9N
HGIMGについて 遠くの方が青くなって描写されてないんですが、 描写範囲をひろげるにはどうすればいいっすか?
604 :
名前は開発中のものです。 :2005/04/29(金) 01:14:54 ID:xYyKUlUP
いままでエクセルマクロで簡単なプログラムしか組んだことなかったけど、 HSPに挑戦してみます。ランタイムとかフレームワークスとかいらんし、 お手軽でいい感じです。 夢はロボクラとか、CGIでプロット式ガンダムSLGとか、WIZツクールとか、 です。この連休から頑張りますー
ロボクラって何?
ロボクラッシュの略。 ロボットコンストラクションとかカルネージハートとかみたいに、 自分で操作をしないロボット対戦ゲーム。
ああなるほど。 昔のログインのロボットバトルVを思い出した。
sdim 30000,3000 で、数字通りに確保されてないようなんですが、どうにかする方法無いでしょうか。 結構大きくなりそうなテキスト出力のためのバッファなので、 普通のsdimの65535制限とか少なすぎるんですが。
変数名がないわけだが。
30000って名前の配列か。
611 :
608 :2005/04/29(金) 09:21:03 ID:BDLo1neA
失礼、 sdim buf,30000,3000 です。
右Shift/左Shiftをそれぞれ個別に感知する方法って無いですかね。 getkeyで160辺りを指定しても出来るみたいですが、9x系では使えないみたいなので。
>>611 > sdim buf,30000,3000
的外れなツッコミだったらすまんが、これだと1要素につき29999バイトまでしか
入れられないってのはわかってるよね?
いっそのこと、先に必要なサイズ用意しようとしないでnoteaddで順次ぶっこん
でいくとか。(2次元配列には使えんが)
>>608 > 普通のsdimの65535制限とか少なすぎるんですが。
こんな制限あったっけ?
>>611 30000 × 3000 = 90,000,000バイト ≒ 85.8メガバイト
HSPで使うには使いすぎ
メモリは無尽蔵にあるわけじゃないだろうに
てか、出力するからといって 馬鹿みたいにメモリ確保するのは考え直したほうがいい。
動的確保を知れ
HSPでフラッシュファイル読み込みできる?
619 :
608 :2005/04/29(金) 16:23:18 ID:BDLo1neA
最初は1次元の文字列変数(ファイル出力用バッファ)に順次放りこんでいたんですが、あっというまに65535バイト制限に引っ掛かったもので、 2次元配列にしたのは苦肉の策でした。 それで見た目通りの確保がされないようで、エラーが出まくっていました。 動的確保が何なのかと思ってマニュアルを読んでいたら、ノートパッドに限って勝手に再確保してくれるそうで、 全てノートパッドを使うように組み直したら、500kほどのファイルを1つのバッファから書き出す事が出来ました。 これだけの容量が書き出せれば充分です。色々thx.
つーか、普通そういう大量のファイル書き出しは、 適当なサイズのバッファを用意して、 オフセット付けてファイル書き込みを繰り返したりしない? 一旦メモリに置いてから書き出すのは確かに速いだろうけど、 自分は大きなサイズのメモリ確保はなるべく避けたくなる。特にHSPでは。
HSPDXFIXが速くなったというので使ってみたが、やっぱスプライト増えると ほかのプラグ印より落ち込みが激しいな。 描画以外のとこで重くなってる気がするんだがするが、内部的にどうなってんだろ。 自分のPCだとそうそう60fps割ることは無いがちょっと気になる。
623 :
483 :2005/04/30(土) 16:38:06 ID:oHxp3cJT
前、質問したんだが、 いい方法が思いつかない 助けて。 今思いついてる方法↓ 全部のルート検索し一番短いのを使う。 効率が悪いと思う・・。コレが一番普通なのか!?
よく分からんので分からんなりに考えてみたけど 1.進行方向を敵側へ向ける 2.進行方向に障害物がない場合、そこが直前の自分の位置でなければ進む 3.進行方向に障害物がある場合、進行方向を変える 4.進めた場合は、直前の位置を記憶し、1へ戻る あたりでダメだろうか
すまんが 2の”直前の自分の位置”を詳しく説明してくれ。 できれば、図でヨロシク!
戻らないようにするってことだろ?
>>625 とりあえづ
dim actionmemX,10
dim actionmemY,10
って感じで構造体とかに行動のログを記録させておけばいいんじゃねーの。
thx
HGIMG3って Direct3D対応してないとダメなのね・・・・。 2.6でがんばるか・・・・・・。
いまどきD3D使えないのか?
631 :
623 :2005/05/01(日) 11:19:59 ID:4wWEPCSp
>624 の感じで組んでみた ちゃんと目的地にいくが (行かないときもある 突然、暴走するときもあるw
632 :
名前は開発中のものです。 :2005/05/01(日) 12:04:39 ID:ziYLQmrE
>>631 これでは?
1.進行方向を敵側へ向ける
2.障害物があれば左旋回+直進を組み合わせた経路を探索
3.障害物があれば右旋回+直進を組み合わせた経路を探索
4.上の2と3で最短側の経路で移動
633 :
632 :2005/05/01(日) 12:11:05 ID:ziYLQmrE
>2.障害物があれば左旋回+直進を組み合わせた経路を探索 >3.障害物があれば右旋回+直進を組み合わせた経路を探索 2、3の経路探索のときは、直前の自分の位置を通らないことと、 一歩進むごとにまず進行方向を敵に向けて、左(右)旋回で探索すること を追加
>>631 そもそもこれって
升目のあるシミュレーションゲーム?
それともドット単位で動くリアルタイムアクション?
HSPのHSPDX使って反射レーザーを作りたいんだが | ■ \|←ここができない \ /| \/ |  ̄ ̄ ̄ ̄ ̄ ̄ ↑ ここはできた だれか教えてくれ
HSPのHSPDX使って反射レーザーを作りたいんだが | ■ \|←ここができない \ /| \/ |  ̄ ̄ ̄ ̄ ̄ ̄ ↑ ここはできた だれか良い方法を教えてくれ
二重書き込みスマソ
>>635 そういうのは、単純に変数の書き間違いかと。
if x>winx となるべきところが、 if y>winx となっているとか。
方向転換の計算式も確認。
639 :
635 :2005/05/01(日) 19:07:31 ID:EAv1K7Nr
es_checkで当たり判定やってるから 変数は使ってない 壁とかも擬似スプライトでやってる レーザーが壁に当たってたらみたいな感じで
>634 升目はないです・・・・いやあります!う〜んよくわかりません。
641 :
640 :2005/05/01(日) 19:22:12 ID:4wWEPCSp
>>639 レーザーが壁に当たったらというが、その壁の方向も考慮しているか?
ためになるなぁ・・・
>>641 もうちょっといい画像きぼんぬ
粗すぎてよくわからん
>>639 ヒットチェックした後どうやって反射方向決めてる?
レーザーが障害物の上下左右どこに当たったかちゃんと判定してる?
ダイキストラ法でも使ってみては? 再帰と全域木を考える必要があるが。 障害物の部分を重み最大にしてみたらうまくいきそうだが・・・
648 :
612 :2005/05/01(日) 23:41:04 ID:Xn/3Vf0P
やっぱりムリですかね。9x系では。
うわ、3Dだよ。すごいなあ。 反射もできない人が、よく3Dとかやるよなあ。
650 :
636 :2005/05/02(月) 07:13:13 ID:0vB1s+r/
スマソ できた
>>650 いや…。何が悪かったのか書かんと。
答えてくれた人に失礼だとは思わないのか。なんだよ、スマソって。
自己解決のヤシらもそうだ。どこをどう直したか書いてくれなきゃただの板汚し。
何の情報も持たないんだから、同じ問題を抱えた人が利用出来ないだろ。
652 :
650 :2005/05/02(月) 18:25:24 ID:0vB1s+r/
>>651 解決法みたいなの書いておくべきだったか
スマソな
簡単に説明すると 透明なスプライトを壁のすぐ横に置いただけだ
こんぐらいしか思い浮かばなかったもんだからな
でも ちゃんと反射したぞ
あと
>>650 で言ったスマソの意味は
「漏れみたいなヤシに時間を使わせてスマソ」
的な意味のつもりだった
うまく伝わらなくてスマソな
653 :
646 :2005/05/02(月) 23:02:07 ID:7qLieqlX
>647 ダイキストラ法ですか! なんかすごそうな名前だ それと、暴走の原因はプログラムミスにありました。 一応、目的地に行くことは行くので、 今のまんまで行こうかと思います。
654 :
小心者 :2005/05/05(木) 14:45:49 ID:zjuDNHhf
初心者初心者書くなウザイ
このスレには初心者しかいないから無駄 熟練者は30年くらいHSPをやり続けてる。
>>654 使う桁数分だけの数字を用意しておく。
たとえば00000〜99999までの画像を用意する。
普通にgcopy使えば?
>>654 1. buffer
2. picload
3. gsel
4. gcopy
この辺を調べると吉
いや、100000枚だな。
662 :
教える君 :2005/05/05(木) 17:08:22 ID:HkakcYHB
そんなに初心者が嫌いなら教えてやればいいのに。
答えを与えて、自分で考え成長する機会を奪い、どんどん潰してゆけばよい。
>>654 桁毎に0〜9を抜き出して、コピー(gcopy)なりする。
1の位 … score\10
10の位 … score/10\10
100の位 … score/100\10
buffer 2 :picload "img20050505144219.bmp" :score=65536
gsel 0
repeat 8
p=1 :repeat 7-cnt: p=p*10 :loop
i=score/p\10 :pos cnt*5,0 :gcopy 2,i*5,0,5,8
loop
も一つ。
buffer 2 :picload "img20050505144219.bmp" :score=65536
gsel 0
s=score :str s,8 ;文字列に変換
repeat 8
peek i,s,cnt :pos cnt*5,0 :gcopy 2,i-'0'*5,0,5,8
loop
stop
1-0だけのフォント作った方が早くない?
初心者が嫌いなわけじゃないんだが…
>>661 やべ、じゃあ最後の桁だけgcopyか、1-0のフォントで…
666 ほすぷ
文法エラーが多いので、入れておこうっと。 dup 初心者, 自分で調べられないヘタレ
HSPで格ゲーつくるにはどうもうまくいかない… 実際スープで格ゲー(せめてSFZERO並)は作れるもんなのでしょうか?
絵を動かせる以上ジャンル関係なくゲームは作れる
670 :
小心者 :2005/05/06(金) 17:58:09 ID:CdT8i2Q1
>>655-665 助言ありがとうございます。
>>662 見事ぶッ潰された感じですが綺麗な構成で解かりやすかったです。
ありがとうございました。
hspdxを始めて使用したのですが、画面を更新してもちゃんと色や画像が表示できません。 どうすればいいんでしょう…
screen 0ってやるのを忘れてるとか
ここも、たいした事ネーナ
es_screenでなくscreenを使わないといけないんですか?!
サンプルとか探して自分で考えろボケ
初心者に親身になって教えると、それでスレの大半が潰れかねないのですよ しかたないんです、本家で質問するとかがいいですよ
初心者のためにスレの大半が潰れてもいいじゃねーか。 質問する前に調べなくてもいいじゃねーか。質問こそ調べてる最中なんだから。
2行目は痛い
寛大に行こうや。 自力で本を調べたりググる気が無いやつは結局成長しないんだから。 で、仮にそういうやつに教えたとしても失うものは何も無いだろ? 万一それでも、「そいつの為に書き込む時間を失った」とか言っちゃうやつは元から書き込むな。
質問した以上くぐって調べて試行錯誤したあとから質問したにきまっていますが?そうでもなきゃこんなとこでわざわざ質問なんてしませんよwww 勝手に決めつけるような発言しかできない馬鹿には教えてもらいたくないね〜 あんたら心狭すぎwww
馬鹿は氏ね∠(´ー゚)┌
何をぐぐって何を調べて何を試行錯誤したのか全部書けと言われると黙るくせに
しっかり調べてもわからんやつはここで聞いてもわからんぞ。 バカなんだから。
まぁそうやってくだらない事言って人を馬鹿にしかできないお前らは人としてダメ人間だな〜www 俺と同類だなwww
そんなことより、
>>671 には誰が答えられる。
それこそエスパーにしか分からんよ。
原因は様々。モニタの電源が入っていない、スプライトのキャラクタが未定義だとかな。
「ちゃんと」の意味するところは何だ。
全く表示されず真っ暗なのか、パレットモードで画像の色がでたらめに表示されるって事か。
そういう意味不明な質問をするってのは試行錯誤も何もしていない証拠。
ゲームが作りたいんですが初心者なのでよくわかりません どうしたら良いんでしょうか に近いな。
「問題です。さて、何でしょう?」 というのを思い出した。
まともな質問ができないとまともな答えは貰えない。 言葉遣いだけ気を使っても無意味。よく覚えておけ。
HSPDXで加算合成ってできる? DLLとかでもよいから 教えてください
690 :
教える君 :2005/05/09(月) 23:01:36 ID:nYmtEBz7
>>685 面倒だから適当に書いたんでしょ。
もしかしたら有益な答えがあるかもって位な感覚で。
そのくらいでいいじゃん。2chなんだし。
692 :
689 :2005/05/10(火) 07:35:36 ID:qBDp5YVt
今日はじめてelseを使ったぞぉ〜!
>>691 実際、少しは相手にしてもらえたしな。
「トンカチを初めて使ったんですけど、釘が刺さりません。どうすればいいでしょう」
「釘の向きが逆なんじゃない?」
「釘の向きっていうのは、上下ですか?左右ですか?模様ですか?」
「少しは調べろボケ」
「調べた上で質問してるんですよ。勝手に決めつけるな」
みんな、優しいよ。
おまいらがみんなググれっていうから体系的な知識がついてないんだよ 本を初めから通してやってれば常識でもな 途中すっ飛ばして大検だけ合格したやつがバランス取れた知識もってないのと同じ
最近の若い衆の一部はぐぐって出てこないと調べようが無いと 本気で思ってるらしいからな。 それはそうと大検はものすごい大変らしいぞ?
>>694 のような流れでいいんだよきっと。
だって、ほんとにこれ以上に無いほど調べて、ここで聞いても誰も答えられないじゃん。
もしかしたら、「まずトンカチというのは〜」と聞いても居ない事を初めから説明するやつも現れるかもしれない。
もしかしたら凄く聞きたい部分を的確に説明しちゃうやつもいるかもしれない。
調べてきたら誰も答えられらいという事が証明するように、
「少しは調べろボケ」って言いたいやつらばかりなんだから、そう言われるまでにいかに有益情報を得られるかどうかっていうゲームみたいなもんでしょ。
2chなんかうまく利用しなきゃだめだよ。
>>659 ,696
大検は高1の範囲だったよたしか。
でもバカにするのはどうかと。
よくねえよ
努力した形跡を微塵とも見せていないくせに「ほんとにこれ以上に無いほど調べて」と言い張り、 あまつさえ「ここの住民は誰も知らない・答えられない」ことにしたがっている件について。
え、マジで言ってんのか? お前が個人的に最後まで責任を持って答えてくれる保証はどこにあるんだ? 語弊を覚悟で、ある意味無責任な回答の場なんだから、質問者だけに義務を押し付けるのはどうかと。 それに、調べてないのに「これ以上ないほど調べた」と言い張れなんて言ってないぞ。
701 :
教える君 :2005/05/11(水) 11:37:06 ID:cmdjhBet
>>691 どこぞの誰かは、試行錯誤の末、最後の手段としてここを選び質問するらしいが、
それなら明確な答えが得られる明確な質問をするべきだろう。
>>697 >もしかしたら凄く聞きたい部分を的確に説明しちゃうやつもいるかもしれない。
だから、エスパーも魔法使いも居ないんだってば!
その「聞きたい部分」を文章に込めずに誰が理解できると言うんだ。
>聞いても居ない事を初めから説明するやつも
それはモレの事ですか?
「本当に聞きたい部分」が分からんのだから
こっちとしてはあれこれ想定しならがら「本当に聞きたい部分」を引きだそうとしてるんだよ。
回答側に試行錯誤させてどうすんのよ(;´Д`)
702 :
教える君 :2005/05/11(水) 11:58:23 ID:cmdjhBet
答えは必ずある! それが得られないと言うことは質問の仕方が悪いか、スクリプトのバグだな。 あー。「出来ない、無理、仕様」というのも答え、な。 ただし、「手段」としては実現不可能だとしても 他の方法で「目的」は達成可能な場合もある。 だから、「目的」も書いておけ!と言いたいが、なぜか隠したがるヤシが多い事…
回答者に試行錯誤させるような質問は、結局損するのは質問者でしょ。
質問者も有益な回答が欲しければ試行錯誤して質問するべき。
それでもあんたみたいに「本当に聞きたい部分」を引きだそうとするのは勝手だよ。
質疑応答を何度か繰り返して解決しようとするやつがあんたのタイプ。
門前払いするのが「ググれボケ」のタイプ。
質問者も会話形式で説明した方がいい場合もある(多い)から、あんたタイプに答えてもらえたら幸運かも。
運の関わる取引だねここは。
>なぜか隠したがるヤシが多い事…
冗長になるからなるべく簡潔に書こうとするとそうなる罠。
>>671 の例は別だが。
んじゃHSPでゲーム作りたいんですけど作り方教えてください。
705 :
名前は開発中のものです。 :2005/05/11(水) 13:23:33 ID:0UDZobvt
何をすればいいか教えてください
>>704 ググれボケ
終了、聞き方がへたくそ
それでも答えてくれるやつが居たらお前の勝ち
>>706 いや、むしろテキスト数行のプログラムを出してやって、
「これをそのまま打ち込んで実行しろ」の方がいいんジャネ?
704の質問に対する答えとしては間違って無いだろうし。
708 :
704 :2005/05/11(水) 14:06:17 ID:/TZpCT3a
つーかこんな聞き方してまともな答えが返ってくると思う奴は モノ作ることなんか出来ないだろうな。 あ、名前欄に「初心者」て入れるの忘れてたw
ID:4khNnBUD ID:/TZpCT3a おまいらいい加減にしろ
質問です。 どうすればいいんでしょうか?
まずここへの書き込みをやめてください
死ねばいいと思う
むしろイキロ
716 :
704 :2005/05/12(木) 01:52:48 ID:DetW5/cX
いやすまん、もう勘弁してくんろw
違う違う。 「なるべくフリーでお願いします」 だろ。
このスレで語ることといえば プラグインの事くらいしか無いよな アルゴリズムなんかは他のスレで十分だし
720 :
名前は開発中のものです。 :2005/05/13(金) 11:54:14 ID:QSxT2xli
処理速度の速い配列の並び替えをする命令 3.0につけてほしい。
msort p1,p2,p3 p1 … 配列もしくはメモリノートパッド形式の文字列変数 p2 … 0 昇順 / 1 降順 p3 … p1のソート前の位置が入る配列変数 自動確保 省略可 とかあったら便利だな。
722 :
名前は開発中のものです。 :2005/05/13(金) 14:16:15 ID:0Af5KN5B
723 :
名前は開発中のものです。 :2005/05/13(金) 19:37:04 ID:rM85FlWD
724 :
名前は開発中のものです。 :2005/05/13(金) 23:25:11 ID:pDanhEvh
シューティングを作ろうとしてるんですけど 画像ファイルから読み込んだ自機キャラがブルブル震えて動かないんですよ。 何が原因なんでしょうか?
725 :
名前は開発中のものです。 :2005/05/13(金) 23:27:42 ID:G5Xa7QxC
>724 ソース
とりあえず704を参照のこと
728 :
名前は開発中のものです。 :2005/05/13(金) 23:40:15 ID:u55pc8t6
729 :
724 :2005/05/14(土) 00:09:05 ID:CEh7qkOd
これなんですけど。 screen 0,722,800,0 max_x=23:max_y=18:max=7:mya=7 gamedot=16 *mainlp color 0,0,0:boxf gosub *move_me await 50 goto *mainlp *move_me ;keydata input stick keydata,15,1 if keydata & 1 :mx-- if keydata & 2 :my-- if keydata & 4 :mx++ if keydata & 8 :my++ if mx < 0:mx = 0 if mx > max_x :mx = max_x if my < 0:my = 0 if my > max_y :mxy= max_y color 0,255,255 pos mx*gamedot,my*gamedot picload "kyara.jpg",1 return
redraw&gcopyしろ
731 :
名前は開発中のものです。 :2005/05/14(土) 00:37:05 ID:CEh7qkOd
>>730 すみません、まったく動きません。
具体的にはどのようなソースになるんですか?
教える君が来ましたよ。
>>731 まず、picloadはposで位置指定出来ません。
■ヒント
buffer命令で仮想画面を確保しpicload命令で画像を読み込みます。
これらの命令はループに入れてはいけません。
734 :
細木数男 :2005/05/14(土) 06:25:03 ID:f17S0Bjl
>>729 あなたねえ、ツクール地獄に落ちるわよ。(俺もプログラミングしてえなあ
とか思って、とりあえず1番簡単と噂されているHSPを選ぶも挫折し、プロ
グラミング不要のツールに走るもセンスのなさにもがき苦しむ地獄。)
まずあなたねえ、await 50って・・・。HSPLetでもやるつもり?なぜに50?
あなたの作るゲームって、なんかあんまり動きがなめらかじゃないわよ。
あと、
>>730 の意味は分からなかったようね。2ちゃんねらーはこのように
親切には教えてくれないってこと、身にしみたらいいわよ。本家で供養しな
さいってこと。あなたのゲームはきっとやたらとチラチラして目が疲れる
わよ。それと、フルスクリーンにしようとした時、全然訳分からなくなって
頭をかかえるあなたの姿が見えるわよ。screen 0,722,800,0?あなたねえ、
祖先の霊今すぐ供養しないとだめよ。
それと、これは
>>729 以外にも言いたいんだけど、「美しいプログラム」って
どういうことか知ってる?if keydata & 1 :mx--っていう書き方、やめなさい
よ。if (keydata & 1) ! 0 :mx--って書きなさいよ。これはHSPの入門書
書いた人が悪いのよ。「真」って何?って、ちゃんと教えなきゃだめよ。
HSP講座サイトをやってる人はまあ、ボランティアだから仕方ないけど。
「とりあえずif keydata & 1 :〜って書くと覚えて下さい。説明はやっかい
だから省きます」って、ひっどいわねえ。講座サイトって、そんなバカにした
説明でしょ?
あとねえ、if 〜 : 〜っていう書き方も、納得できないわねえ。if 〜 { 〜 }
って書きなさいよ。おにたまも動作の保証ができないって書いてるのに。
とにかくおにたまを供養しないとだめよ。
なんだこの気持ち悪い奴
なんだこれw
GJ
738 :
名前は開発中のものです。 :2005/05/14(土) 11:51:15 ID:t9TR85G9
if (n & 1) ! 0 ってふうに書かないとだめなの? 変になるんですか?
739 :
名前は開発中のものです。 :2005/05/14(土) 14:35:19 ID:bBc34YVk
>>734 if 〜: は現バージョンではサポートしてるよ。
if keydata & 1 :〜 は結局if (keydata & 1) ! 0 :〜 って書いてもその意味は初心者にはわからん罠。
screen 0,722,800,0 はなんでだめなんだ??
740 :
名前は開発中のものです。 :2005/05/14(土) 14:57:11 ID:oLVT9sht
ifで&ってどんな効果? ヘルプで a&b aとbがともに正しい (and) ってでてるんだけど、 if keydata & 1 ってどうなるの?
つまり&って=みたいなやつでOK? a=1 if a&1:end stop こうやったら終了したから
>>742 a=3
if a&1:end
stop
744 :
名前は開発中のものです。 :2005/05/14(土) 16:07:06 ID:dcbg+ntf
ホトスプで格闘は邪道でつか?
>>742 2進数を勉強しなさい。
stick命令がなぜ1,2,4,8,16,32,…を組み合わせた数になるのか考えれ。
a=2 :b=3
if (a&2)&(b&1) :mes "これは成り立つのかどうか考えれ。"
>>745 邪道ではない。
曲解せずに素直に格闘ゲームのことと捉えるならば努力次第。
素材用意する方が数百倍苦労すると思うが。
747 :
名前は開発中のものです。 :2005/05/14(土) 22:05:31 ID:3+k438SY
すいません、初心者なんですけど質問いいですか? stick bt,5 : k- : if k<1 : if bt&16 : ff=1 : k=3 mxv=(bt&4!0):mxv-=(bt&1!0) mx+=mxv*8 if mx<0 : mx=0 if mx>580 : mx=580 pos mx,my : gcopy 2,0,32,64,64 return ↑のスクリプトだと横移動しか出来ないんですけど 上下に移動するにはどのようなスクリプトを追加すればいいのでしょうか? 自分なりに色々試してみたんですけど、斜めに動いたりして上手く行きません。
748 :
教える君 :2005/05/14(土) 22:15:30 ID:BpL1s9m+
>>747 ではなぜx方向には動くのか考えろ。
つーか、
mxv=(bt&4!0):mxv-=(bt&1!0) などという難しいことしないで素直に
mxv=0
if (bt&1) :mxv=-1 ;←
if (bt&4) :mxv=1 ;→
とでもしておけ。上下も簡単に分かるはず。
コピペするだけじゃ身に付かんよ。
749 :
教える君 :2005/05/14(土) 22:24:02 ID:BpL1s9m+
>>747 重要なことを忘れてた。
「わたしはじめてなの。優しくしてね?」などとぬかしてると
かえって乱暴に扱われるからな。
↓
せ、セックスでしょ?そんなの何回だってやったことあるんだから!
751 :
747 :2005/05/14(土) 22:55:07 ID:3+k438SY
>>748 動きました。アリガト
ぶっちゃけ、他人のサイトからコピペしてきただけなんで、よくわかりませんでした。
あれ、HSPってパッド使えないの?
プラグイン使えば普通に使える
最近気づいたんだが、Joyforce使ってパッドをサポートしたら、 Dsoundexのtimer精度が低くなる。 というか、ループ内でカウンタとして使ってみるとわかると思うけど、カウンタが0をはさむようになる。 Joyforceが悪いのか競合が悪いのか分からないが。
プラグインなくても使えるけどね
>>750 ハァハァしますた!(;´Д`)
>>754 midiプラグイン使ってるなら#includeの順番変えてみたり
初期化命令の順番変えてみたりしたら良くなるかも。
それよりWinAPIにタイマーの精度を設定する関数か何かあったような気がする。
わーい ソースが1000行超えたー!
HSPDXFIXのes_excopyでブレンドファクターを自分で指定して 半加算を目指しているけど、どうも上手くいかない 総当りで探してもそれっぽいのが見つからん…
759 :
名前は開発中のものです。 :2005/05/15(日) 22:09:06 ID:6dcbdIwM
β掲示板にも書いてしまったんですが dim a,10,10 a.0.0=1,2,3 はエラーにならないんですが a.0.1=1,2,3 はなぜかダメなんですよね。 これはバグなんでしょうか。
半加算て?
761 :
758 :2005/05/15(日) 22:35:38 ID:44Fg7Ml+
762 :
教える君 :2005/05/15(日) 22:40:59 ID:QL9oSJSF
>>758 定数ESB_ADDを指定しα値を128に…。
ってESB_ADDだと100%の加算にしかないのか?
多分これでいける。
D3DBLEND_SRCALPHA*11+D3DBLEND_ONE = 57
加算のα合成はボードが対応していなかったりするがな。
763 :
教える君 :2005/05/15(日) 22:51:33 ID:QL9oSJSF
って。何か違う気がする。スマソ
764 :
教える君 :2005/05/15(日) 23:08:37 ID:QL9oSJSF
>>762 は*11する側が間違ってる上、定数も1つずつ少なかったようで。
ESB_ONE*11+ESB_SRCALPHA=15だから、
ESB_ADD 15でα加算できるはず。
GeForce2くらいでも対応してるはずだが、
出来なければボードが対応してない。
orz
>>756 timeBeginPeriod
timeEndPeriod
>>759 ヨのはなし?
2.61だとa.0.1=1,2,3も問題なく通るけど
いまだに加算合成できないビデオチップなんか知るかって感じだが。
768 :
名前は開発中のものです。 :2005/05/15(日) 23:22:57 ID:6dcbdIwM
>>766 3.0です。
たぶんエラーになると思うんです。
ほんとだ。出来なくなってる。 互換謳ってるんだからバグなのかな。 配列の扱いが変わったらしいからそのせいかもしれないけど。
正直互換はいらんのだけどな…
dim a,10,10 dup b,a.0.1 b = 1,2,3 だと通るし、期待通りに入った。 バグっぽいなぁ…。
ほすぷ。 配列の連続代入の件については、いつかβ掲示板で見た希ガス
773 :
名前は開発中のものです。 :2005/05/18(水) 00:30:11 ID:gxNP99lj
picload "jiki.bmp",1,mx*aa,my*aa gcopy 0,0,0,64,64 ↑みたいに書いても、表示される画像のサイズが128*128なんですけど。 64*64にするにはどうしたらいいんでしょうか?
774 :
教える君 :2005/05/18(水) 00:50:04 ID:MqEbxdb6
>>773 スマンがそれだけでは分からん。
コピー元のウィンドウID、コピー先のウィンドウIDが同じで
画像が128x128だったりしないよな…
775 :
名前は開発中のものです。 :2005/05/18(水) 01:09:42 ID:gxNP99lj
コピー元とコピー先のウインドウIDは違います。 と言うか、IDをどう変えようが128*128で表示されます。 もしかすると、デスクトップにhspのファイルと画像をフォルダの中に置いて、その中で作業してるのがいけないんでしょうか?
776 :
名前は開発中のものです。 :2005/05/18(水) 01:12:33 ID:gxNP99lj
何処においても同じでした。
buffer 2 picload "jiki.bmp",1,mx*aa,my*aa gsel 0 gmode 0,64,64 gcopy 2 stop
>>777 変わらないです。
前は普通に64ドットで表示出来たのに。
ヨか?
よならよと言え。
781 :
教える君 :2005/05/18(水) 22:58:39 ID:MqEbxdb6
そういえばpicloadって好きな場所にロード出来るんね。
>>778 だから、それだけでは分かりません。
もしかしてpicloadで指定座標に直接自機を表示してる?
その自機のファイルが128x128じゃないよな…。
778の、前はっての何だ?
783 :
773 :2005/05/18(水) 23:07:58 ID:vzl4Ria8
何とか64ドットで表示出来ました。 俺の買った本には画像を表示する方法と、文字を自機に見立てて、表示して移動させる方法しか載ってないから よくわからなかった。 次は自機から弾を発射させなくちゃならないんだが、コレも文字の弾と画像の弾じゃプログラムが全然違うんだろうなぁ。 つうか違う方の本を買えばよかった。
784 :
773 :2005/05/18(水) 23:14:20 ID:vzl4Ria8
これで出来ました↓ buffer 2,,,1 picload "jiki.bmp" gsel 0 gmode 0,64,64 pos mx,my : gcopy 2,0,0,64,64 前にこのスレで画像を表示させるにはposは使うなって言われたから使わなかったのに 使ったら出来た。
785 :
名前は開発中のものです。 :2005/05/18(水) 23:35:31 ID:fuAGEMBC
a=44 b=43 if a=<b:stop これで成り立つの?
>>785 成り立たない。
=< ではなく <= ね。
787 :
名前は開発中のものです。 :2005/05/19(木) 00:02:09 ID:tDmbp2Th
thx 順番が重要なのね。
=が入る演算子の順番は のっと いこーる != に合わせる、と考えると覚えやすい
789 :
教える君 :2005/05/19(木) 00:39:34 ID:Vv1AetED
>>784 それは、それはモレのことかー(;´Д`)
「picloadはposで位置指定出来ません。」 と書いた覚えはあるが、
「gcopyはpos指定出来ない」なんてと書いた覚えはないぞ…。
さて。
picloadとgcopyの違い、分かってますか?
>>783 pos x,y :mes "◆"
↓
pos x,y :gcopy 2,p2,p3,16,16 ;p2,p3 弾のコピー元座標
基本的にはたったこれだけだぞ。
どんな本読んでるのか気になるな…。
791 :
名前は開発中のものです。 :2005/05/19(木) 04:14:06 ID:0tyqoaBF
釣られすぎ。
>>773 はmx*aaの値が128で、my*aaの値も128だったってオチ。
>>783 基本としては…
1. 準備段階として、使用する画像は事前にbufferにほぼ全部読み込んでおく。
2. 「位置・大きさ・方法」を指定してbufferから表示したいウィンドゥに複写。
だけですのん。
このスレ、オカマが居る・・・
俺のことさ!
いや、俺だ!
シューティングでショットが敵に当たった時の当たり判定を大きくするのはどうやるんですか?
>797 ワロタ!
>>797 たぶん、敵の当り判定の範囲も、弾と同じく点でしか表現していないと思うのだけれど。
敵の当り判定の範囲とする座標、つまり左上から右下の座標を設定して、その範囲に
弾があれば命中とするのが、当り判定のうちの「点と矩形」のパターン。
「点と点」の当り判定は、弾と敵のX座標とY座標がそれぞれ同じかをif文2回とかで
処理するけど、「点と矩形」は、敵の範囲である始点と終点との間に弾の座標があるか
それぞれ2回ずつ、計4回判定することになります。
訳してくれ…
801 :
797 :2005/05/19(木) 23:49:23 ID:zUYduLvg
>>799 具体的にはどんなソースになるんですか?
やぱし、実行ファイルに暗号化して埋め込んだPNGを プラグインから読み込むのはめんどい? つーか、暗号化意味ない?
ex ey :敵左上座標 eszx eszy :敵大きさ tx ty :玉座標 if (ex<=tx)&((ex+eszx)>=tx)&(ey<=ty)&((ey+eszy)>=ty) { 当たった時の処理 } シューティング作った事無いから判らんけど点と面の判定はコレでいけるんじゃないだろうか?
804 :
名前は開発中のものです。 :2005/05/20(金) 00:50:07 ID:Ue14mcoP
>>803 敵キャラは文字でmesで表示してるんですけど、この場合は敵の大きさはどうなるんですか?
HSP製のゲームってミニゲームが多いって印象があるんですが、 作りこまれた大作にはどんなものがあるんでしょうか。 アクションやSTGでどれくらいのレベルのものができるのか知りたいです。
両方長方形の場合 左上座標:弾( tx1 , ty1 ):敵( ex1 , ey1 ) 右下座標:弾( tx2 , ty2 ):敵( ex2 , ey2 )とすると、 if ( ex1 <= tx2 ) & ( ey1 <= ty2 ) & ( tx1 <= ex2 ) & ( ty1 <= ey2 ) { 当たり } これはどう?
807 :
806 :2005/05/20(金) 01:01:13 ID:DjtPXWLg
因みに、弾が1ドットの場合 tx1 = tx2 : ty1 = ty2 で、
>>799 >>803 になると桃割れ。
808 :
名前は開発中のものです。 :2005/05/20(金) 01:33:41 ID:Ue14mcoP
>>808 もう少し詳しい情報がないとわからんが、
弾や敵の大きさはどうなってる?
とりあえず、円と円なら、
それぞれ中心の座標を ( tx , ty ) ( ex , ey ) 、半径を tr er として、
( ((tx-ex)*(tx-ex)) + ((ty-ey)*(ty-ey)) ) < ((tr+er)*(tr+er))
みたいな当たり判定になると思うがやってみそ。
810 :
名前は開発中のものです。 :2005/05/20(金) 02:02:55 ID:tKfCPu6Z
>>804 gcopyposできない君?どんな本読んでるの?
>敵の大きさはどうなるんですか
ハァ?
mesのキャラといっても16x16とか、サイズくらい適当に設定されてるだろ?
スクリプトはただのコピペではなく本を見ながら打ってますか?
スクリプトのどこで当たり判定しているか理解できますよね?
+16とかあったら適当に増やせ。それぐらいの応用できないのですか?
>>808 ひどいなこりゃ。
さすがの教える君もあきれたよ。
なにがどうダメなのか説明してくれよ。
>806のスクリプトが「バグで使えねぇぞゴルァ」と言っているようにしか聞こえないのですが。
いい加減、応用ぐらい出来るようになれ。
いや、俺の読んでる本は当たり判定のやり方は書いてあるけど、大きさを設定する事は書いてないからわかるはずが無い。 それに敵の大きさって座標で指定するわけでしょ? 俺の敵は出現位置がランダムだから良くわからない。
「教科書に書いてないからこの問題は解けるはずが無い」 応用を覚えましょう。 大きさと座標は普通関係ないよ。というかすごい発想だね。 文字で表示するなら font でサイズ指定ができる。しかもピクセル単位。 使い方は、スクリプトエディタに font と書いてその上で F1 を押してくださいな。
応用力なさ杉
池沼はほっとけ。
>>806 のヒントでわからん香具師はプログラムに向いていない。
人間、考え悩むことやめたら終わりだね。
そうね。 806に対して「駄目みたい」って何だよw 概念から考えようとしないでそのまま流用しようとして失敗してんだろ。 考える気がないならあきらめろ。
817 :
名前は開発中のものです。 :2005/05/20(金) 03:00:47 ID:Ue14mcoP
じゃあ、ランダムで出現する敵の座標の指定の仕方だけ教えてください。 そのあとは自分で考えます。
818 :
名前は開発中のものです。 :2005/05/20(金) 03:01:38 ID:Ue14mcoP
出現位置がランダムって意味ね。
>>804 敵の大きさは作り手が勝手に決めればよいだけで。
見た目と判定が一致していないと言うのは、じつはシューティングではよくある話。
例えば自機の当り判定はコクピットの部分だけとかね。
>>805 出来るかどうかという話なら大作は可能です。正直根気の問題。
ただ大量のデータを扱うときに便利なポインタや構造体が今のところ無いので、C言語
で組む場合を考えると、このあたりは回りくどく組む必要があるため不利であることは否
めません。あと、HSPはプログラムの再利用はあまり想定していない作りなので、過去の
資源をどんどん組み込んでいくという、作業の効率化の面でも不得手だと思います。
>>806 「面と面」の判定は、この場合片方が小さな弾でしょうから取り扱わないほうが無難だと
思います。ちなみに「面と面」では、片方の面の中に相手の四隅の点のどれかがある、
という状態が「当り」なわけですが、事前にどっちの面が大きいかを調べておかないと
いけません。
>>812 文字にしろ画像にしろ、任意の位置に表示するにはpos命令で指定する必要があります。
それがそのキャラクターの位置(左上)座標なのですが、本のサンプルでは変数に保持
していないのかな?
>>817 >>812 で「俺の敵は出現位置がランダムだから良くわからない」って書いてあるから
>ランダムで出現する敵の座標の指定の仕方
じゃなくて
>ランダムで出現された敵の座標の取得の仕方
という質問になるべきでは?
ランダムな位置に表示されて、座標データが破棄された状態では取得はほぼ不可能
なのだけど、破棄されていなければいずれかの変数で保持されているはずです。それ
を探してくださいな。
つーかもう質問に具体性が無くてよくわからない。 もしかして、「俺の敵は出現位置がランダムだから」っての、 そうするつもりだけどまだ出来てない、って事か? 正直付き合ってられん。
じつはその本 >dx=tx-sx.cnt : if dx<0 : dx=-dx;座標差を求める >dy=ty-sy.cnt : if dy<0 : dy=-dy >if dx<40 : if dy<30 : ef.en-:sf.cnt=0:pos sx.cnt,sy.cnt : mes "●" こういう当り判定方法してたりして(ちなみにMIAさんとこの講座のサンプル)。
>>819 そういえばそういう条件もあった。完全に忘れてたorz
サントス!
あとは面倒になったらHSPDX.DLLだなw
824 :
名前は開発中のものです。 :2005/05/20(金) 09:59:17 ID:uM4Fxykl
だからおまいら釣られすぎ。
情報量に相当した答えだけ白よ。
>>808 みたいなレスには、「そうですか」だろ。
>>817 みたいなレスには、「pos」だろ。
なるほd
HSPでSTG作りたいなら HSPDXFIXとかのDirectXプラグインを利用した方が 標準命令で作るよりも断然簡単。 STGに便利な命令が充実しているので 一度覚えちまえば標準命令で作るのが 面倒くさくて馬鹿らしくなるぞ。
俺もSTG作ってるが最初からプラグイン使用してるな。 DirectXの描画速度が欲しかったからってのもあるが、 標準命令でわざわざやる意味はあまりないと思うがどうか。
>>826 もしもその人が、目的そのものがSTGを作ることだったら、素直にツクールを薦めた
ほうがいいと思う。でもそうじゃなく、HSPでプログラミングを理解したいために、その手段
としてSTGを選択しているなら、とりあえず基礎は備えるべきだと思うのですよ。
そうしたうえで、速度や手間などで不満を感じてからでもHSPDX等を薦めるのは遅くな
いのでは。
もっともツクールで作り上げていて、ツクールでは不満をもったからHSPに手を出して
みるというのなら、いきなりでもかまわないと思います。
いやプログラム覚えるのが目的ならHSPでシューティングを作ることはない。 簡単なもので概念を理解したらほかの言語に移るべき。 楽に作りたいけどツクールじゃちょっと、って人にHSPを勧める。
HSPをプログラミング勉強の入門にするのは、茨の道だと思うんだけどね… ただゲームを作りたい、ってだけならお勧めできるんだけど。
つーか、言語はともかくアルゴリズムを勉強しる。 上の当たり判定なんてMSXの時代から変わってないし。 言語は全部覚えれば無問題w
>言語は全部覚えれば無問題w 漢だな。 つーかお前さんみたいに出来るやつは何でも出来るんだよw
HSPDXとかはDirectX使ってるっていうけど、 Cとかで書いた場合より速いのかなぁ? HSPはまず結果が見えるからプログラム入門でも向いてると思うんだけど。 まあHSPだけで他の言語の概念を知らないうちに満足しちゃったらもったいないけどさ。
>>833 CだけでDirectXを使わない場合より速い。
速いというのは、どの部分でのこと? Cで作るかHSPでつくるかのこと?
DLLが何で出来てるか考えればワカル
>>833 834の言う通り"CでDirectX使わずなら"HSPDX+HSPの方が早い。
ただ勿論C+DirectXならHSPDX+HSPは機能面でも速度面でも遠く及ばない。
3Dのゲームとか作ったら解る。HSPじゃ使い物にならない。
2Dはまぁ、普通の事するくらいなら十分使えると思うけどね
3Dでも描画関係はそれほど変わらんのじゃないか? そんなことない?
>>829 プログラミングを飯のタネにするという人になら、C系言語を薦めるのが人の道でしょう。
でも趣味ならば極端なことを言えばHSPのほうがいいと思うよ。
>>831 アルゴリズムは同感だけど、あまり異なる言語を覚えまくると、他の言語の文法で書い
てバグを生んじゃうような気がする。
HSPの挫折の要因は、プログラムの組み方にもよるけれども、行数が増えると全体が
把握できなくなるってことかな。アウトラインエディタの要素と変数管理機能を組み込ん
だエディタがあるとよいかもしれない。ついでにオブジェクトのGUI式配置機能も。
840 :
名前は開発中のものです。 :2005/05/21(土) 01:18:02 ID:m6fXCJKP
いかげんwin95で使えるようにしろよ!
なぜマイクロソフトのサポートも終わったwin95なんぞに 対応しなきゃならんのだ
843 :
名前は開発中のものです。 :2005/05/22(日) 09:53:56 ID:Fxl8yZAG
HGIMGでスプライトの画像って読み込んだ画像のみ貼り付け可能? bufferとかのやつは貼り付けられないのかなZ? それとmes を3D空間上に表示したいんだが方法あるZ?
>>843 語尾が気持ち悪い人には教えません。絶対教えません。
自己解決してください。
845 :
名前は開発中のものです。 :2005/05/22(日) 13:36:14 ID:Fxl8yZAG
じゃこっち教えて a=125 一番目は1 二番目は2 三番目は5 ってななんかんじみするにはどうすうるの?
「書き込むな」とか書いたら他の質問者が質問しにくくならんか?
ちゃんと書いてくれれば、出来る範囲でお答えします。
>>843 ,845は反例として良い見本です。
小学生は書き方に気を使ってください。
このような書き方だと お友達に聞けよ( ゚д゚)、ペッ ってなります。
答えたくないなーと思う書き込みなら なにも書き込むな。
んじゃお前答えてやれよこの厨房に
「二度と書き込むな」と書き込む必要は無い。 答えたくなければ黙ってれば済む筈。 構ってちゃんか?
質問の程度が低すぎて、正直ネタなんじゃないかと警戒してしまう。
>>843 は、まずはマニュアルを熟読してくれとしか言いようが無い。
>>845 は、桁の概念と割り算ができたら普通、思いつくだろうに…。
あと、「こうやったけどダメでした」ってのがないと、考えるの面倒だからここで答えを
聞いてるんじゃないかと勘ぐってしまう。
いや実際考えるのが面倒だから答えを貰えりゃラッキー、で 書き込んでんだろ
>>845 これで任意の進数に変換できるお^^
radix = 2 ; 基数2(2進数)以上
num_org = 1234567890 ; 変換する数(10進数)
num_tmp = num_org
num_str = ""
place_max = 64 ; 最大桁数
dim place,place_max
repeat
if cnt = place_max : break
place.cnt = num_tmp \ radix
num_tmp = num_tmp / radix
num_str = "" + place.cnt + " " + num_str
if num_tmp = 0 : break
loop
print num_org
print num_str
stop
最近良く見かけるな。 自己努力の足りない質問 ↓ 何か言われる ↓ 答える気が無いなら書き込むな このパターン。
言い訳させろ。させてください。 「二度と書き込まないでください」と書いたのは、 二度目も人を小馬鹿にしたような態度で書き込んだから。 >ってななんかんじみするにはどうすうるの? いくら何でこれはワザとだろ。 一応答えを出したのは、それ以上引っ張りたくなかったら。正直スマンカッタ。 答えたくないという意思を表示することで、 態度を改めてくれれば、という淡い期待もある。お堅いと言われればそれまでだが…。
愛だね
愛ってなんだ
ためらわないことさ
好きな食べ物はアンパンだ
じゃあ若さってなんなのかも教えてくれ。
あきらめないことさ
宇宙刑事アンパンだ!
バイキンの敵か
否、蒸着する方です
こやつめワハハ
フフフ やですよお父さんったら
スレ違いでしたら誘導願います、HSPで AltやCtrlキー+英文字キー入力で操作できるようしたいと思い aplkeyd命令の存在を知ったのですが、検索してもifやサブルーチンに飛んでる様な例が無く 使い方がさっぱり分かりません、どなかた教えて頂けませんでしょうか、 HSPヘルプの説明文の『捕獲先のオブジェクトに〜〜』って意味がわからず・・orz どうやって
>>869 プログラム板の方は消のすくつですから、ここで聞くのは間違っていません。
個人的にはゲーム制作以外でもまあ、いいんじゃないかと。
>AltやCtrlキー+英文字キー入力で操作できるようしたいと思い
何を操作したいのかさっぱり分かりません。
操作対象によってはapl〜命令では都合が悪いかも知れません。
apl〜命令は特定のウィンドウ内の、特定のコントロール(ボタンや入力欄等)を操作するものです。
要は、他の起動中のアプリを操作したいときに使います。
それぞれのアプリに合わせてスクリプトを組まなければないません。
>>869 HSPでいうオブジェクトとは、button命令やlistbox命令、input命令などで作られるウィンドゥ
を構成する一連のパーツ群のことです。
aplkey(d,u)命令は、これらオブジェクトにキー情報を送信して、あたかもユーザーが
そのように操作したかのように動作させる命令です。
ユーザーが押しているキーを知るにはgetkey命令を使用します。
#module #define global SC_SHIFT1 #define global SC_CTRL2 #define global SC_ALT4 #deffunc scAdd int,int mref key,0 : mref sc,1 if init == 0 : dim table,256,2 : init=1 table.0.len = key,sc : len++ return #deffunc scCheck mref result, 64 : pushed = -1 psc = 0 : repeat 3 : getkey c, cnt+16 : psc += c<<cnt : loop repeat len key = table.0.cnt : sc = table.1.cnt getkey c, key : if (c!=0)&&(sc==psc) : pushed = cnt : break loop if lastpushed == pushed : pushed = -1 : else : lastpushed = pushed result = pushed return #global mes "Ctrl + A か Shift + Ctrl + B" scAdd 'A', SC_CTRL scAdd 'B', SC_SHIFT | SC_CTRL *MainLoop wait 10 scCheck : on stat goto *A, *B goto *MainLoop *A : mes "Ctrl + A pushed" : goto *MainLoop *B : mes "Shift + Ctrl + B pushed" : goto *MainLoop
>>870 >>871 ありがとうございます、
どうやら想像していたものとは少し違うし、難しいと分かりました;
ゲーム内の情報窓表示や特殊動作に使おうと思っていたのですが
用途に向いてないようですね、、
>>872 ありがとうございます、しかし私にはレベルが高すぎて…orz
保存していつか分かる日が来たら何らかの応用させて頂きますね、
今の所は871さんの仰るとおり、getkeyで頑張ってみますね、
どうもお騒がせしました、(_ _;
じゃあちょっとスレ違いに便乗して質問させてください。 就職時に「C/C++とHSPが出来ます」と言った方がいいのでしょうか、 それともHSPが出来るとは言わない方がいいのでしょうか。 また、その時に提出物として、HSP製の作品を提出するのはまずいでしょうか?
ビジネスアプリの世界でHSPって言っても「ナニソレ」って言われるだけだと 思うが、言ったところで「ププー」とか言われる訳ではない。 あと新卒だったら、場所にも拠るけど必ずしも技術力だけで決まる わけじゃないので何とも。ある程度のものを仕上げられる、という点を 評価されるかも知れんから、それなりのものだったHSP製でも何でも 提出してみたら。
あの。HSPでマウスのクリック・押しっぱ・離しを識別する命令や方法 どなかた知ってたら教えて下さい。Cでは有るからHSPでも多分有るよね… なんか検索するとマウス・アクションってキーワードで鬼の検索結果 ○| ̄|_
>>876 windowsメッセージ捕まえたいならHSP3で。
それ以外でなら、小難しいプラグイン使うか、getkey使って自前で処理する。
それともその「自前処理」の方法を聞いてるんだろうか…
ちなみに、Cの命令って何?
878 :
876 :2005/05/25(水) 10:10:08 ID:7NAHi7Lw
>>877 レスどうもです。Windowsメッセージほど明確なものでなく
自前処理…擬似的にそうする方法を知りたいです。○| ̄|_
クリックだけであらかた遊べるゲームの作成なのですが、
クリックしっぱなし=移動中に各ボタンにマウスが乗ると
ボタンまで押した判定になる事に気付き…;
フラグ処理でできそうな気がするのにできず、数時間経つので
どなたか構造の理論だけでもいいので救助を・・・○| ̄|_
>ちなみに、Cの命令って何?
ダイアログベース?のC++の練習中にmk_mousedawn?って感じの
マウスの数パターンの識別方法をみかけて便利そうだと記憶に、
>>875 どうもありがとう。
新卒じゃないので、提出物は、windowsアプリ(ゲーム)をHSPで、それ以外(まだ考えてない)をBCCでコンソールアプリでも作ろうかなと思います。
でも、
>言ったところで「ププー」とか言われる訳ではない。
これ聞いて安心しました。
>>878 getkey でマウスのボタンが押されたのを感知したら、
マウスの座標を保存して、「押されてる」フラグをON
getkey でマウスのボタンが押されていないのにもかかわらず
「押されてる」フラグがONになってると、離されたという意味なので、
その時点でのマウスの座標を取得して、保存してあった座標と比較。
同じ座標=クリック 違う座標=ドラッグ
どういう動作にしたいかによると思うが、画面のボタンについては、 押された瞬間じゃなくて、離された瞬間に動作させれば良いのでは。 普通のウィンドウズのボタンみたいに。 ボタンの上で押される=ボタン凹む (かつマウスカーソルがボタンから出ないでフォーカスしたまま)ボタンの上で離される=作動
ID god キタ━━━━(゚∀゚)━━━━ッ!!
あと、自力でクリックを検知するには、 押されてから離されるまでの時間を計算して、ある程度短い時間(クリック認定制限時間)内 だったらクリックされたと判定すれば良いと桃割れ。
すげえゴッドマジンガーだ
>>878 downとupを得るサブルーチンならすぐにでも貼れるけど。
要る?それとも今後のために自力でやる?つーか貼るわ…(;´Д`) 後はガンガレ
repeat :wait 1
gosub get_mkbutton
if down_L :mes "down"
if up_L :mes "up"
loop
*get_mkbutton
getkey mkL,1
up_L=0 :down_L=0
if mkL{
if down_L.1=0 :down_L=1,1
}else{
if down_L.1 :up_L=1 :down_L.1=0
}
return
>>880 押されたとき監視、離したとき実行は意外と知られていないクリックの基本動作ですね。
で、クリックとドラッグの判別ですが、座標の違いをシビアにすると、場合によっては
ドラッグしまくりというイラつく仕様になります。多少のズレはクリックと処理するのが
好まれ。
887 :
878 :2005/05/25(水) 16:57:38 ID:7NAHi7Lw
>>880 >>881 >>882 >>885
ありがとうございます・・!
stick判定からifで範囲識別しているんですが
バッファ描画の小窓が移動式なので操作範囲と被るんで
ちょっと不安ですが…助言のおかげでなんとかなりそうです。感謝!
>>874 >>879 「C++が出来ます」と言おう
今から作るなら、Cでウィンドウズアプリを一個作れば
他のスクリプト言語もそうだけど、一人で使う分には便利でも
他人が読み書きできないと、全く意味がない場合があるから
是非「Rubyが出来ます!」と言おう!
ゴッドの言葉だ。心せよ。
しかし、日が変わればゴッドはゴッドでなくなってしまうのだ。
プログラムをタスクトレイに常駐させたいんだが、
ttp://etisia.at.infoseek.co.jp/soft.html ここのhsplmas Ver1.12を使ってファイルのインクルードまでは出来たものの、
解説がいまいち分からん・・助けてくださいつД`)・゚・。・゚゚・*:.。..。.:*・゚
traysend p1,p2,p3
タスクトレイにアイコンを表示
タスクトレイにEXEアイコンを表示します。
文字列p1でツールチップ用のテキストを指定します。
数値p2でトレイアイコンのIDを指定します。この値は
dllがトレイアイコンのマウスクリックを感知するのに
必要です。p2=0の場合は何もせずにstat=0を返します。
数値p3はEXEアイコンのインデックスを指定します。
アイコンを表示している時点で呼び出すと、
ツールチップテキストを更新できます。
パラメータ:
p1 - ツールチップ用のテキスト(63文字まで)
p2 - トレイアイコンを識別するID(1~65535)
p3 - EXEアイコンのインデックス(省略時0)
戻り値:
stat = 0 : 正常終了
893 :
教える君 :2005/05/26(木) 00:47:10 ID:/+6gEGJl
>>892 少しぐらいいろいろ試せしてみれ。
何がわからんのかもよー分からんが、
traysend "HSP_test",1,0
とりあえずこれで動く。
p1 トレイにマウスカーソルを乗せたときに表示されるチップの文字
p2 トレイアイコンを複数表示する場合の識別番号 …1個した出来ないのは仕様か?
p3 HSPアイコンを複数アイコンに書き換えた場合のアイコン番号。とりあえず 0
>>892 解説のどこがわからないのか書かないと、答えようがない。
traysend "Hoge",100, 3
だと、IDが100で、チップテキストが"Hoge"で、アイコンは実行ファイルの3番目のアイコンを使う。
IDは0以外なら何でもいい。最後の引数の意味がわからないなら省略でいい。
それにしても、そのプラグイン、あんまり良いラッピングじゃないね。
トレイアイコンのID意味ないじゃん。複数のアイコンの追加を想定してないのか?
チェック用関数と、トレイアイコン削除関数を同じにする意味もわかんないし。
個人的には、今後の為にAPIを勉強する事をお勧めする。
HSP2.6系だとウィンドウメッセージはとってこれないから、トレイアイコンは難しいけど。
>>893 >>894 レスありがとうございます。
IDを0にしていたのが原因で、エラーがでていました。。。
トレイアイコンに右クリックメニュー追加(終了など)は無理でしょうか
やっぱりWIN32APIを勉強するしかないのかなぁ_| ̄|○
896 :
教える君 :2005/05/26(木) 03:16:31 ID:/+6gEGJl
>>895 まあ、もちついてマニュアル嫁
サンプルもな。
repeat
wait 5
traystat 1
if stat = 1 : dialog "右クリックされた"
if stat = 2 : dialog "左クリックされた"
if stat = 3 : dialog "左ダブルクリックされた"
loop
ダブルクリックの前に必ず、クリック( stat = 2 )が来るので注意。
メニューは別のプラグイン。
ゲームが作れると聞いて飛んできました
ごめんそれうそ
( @u@)
まんこ
901 :
名前は開発中のものです。 :2005/06/02(木) 19:39:10 ID:1+rbQ0v3
ま
た
ん
き
か
HSPって音量変えられる?
何の怨霊ですか
貞子じゃないのか
910 :
906 :2005/06/03(金) 19:35:26 ID:IAWAEcOi
引数って、今まで「いんすう」って読んでたけど 正しくは「ひきすう」って本当ですか?
本当です。 訓読み+音読みで構成されるので、違和感がありますが、 このような読み方を、湯桶(ゆとう)読みといいます。
然り
>>912 どうもです。
・・・ホントだったのか・・・軽くショックorz
俺も昔そう読んで友人に笑われた。 914には2chも少し役に立ったなw
3Dゲームを作りたいんだがプラグインは何が良いと思う?
教えて君はこういう風にお願いしないとダメじゃん。 「何がいいのでしょうか、この哀れな豚めに教えてください」
何がいいでしょうか、この哀れな豚めに教えてください
_. -ッ'"  ̄ ̄`' ー-、 /、.....!......._,,::;;:'::::::::::::::ヽ i´厂`''''"´ `ー、‐::-::;;l }ノ-、 ,. -‐-、 ヽ;::::::::l l ̄二'ー 'フ,ニニ.ーrー}-レ ''7 l : i.__゚〉r、::..ヽ.__゚ノ レ''}ノf´/ `''r-- ノ:::`ー---‐'′:l-イ l `_ ____,、 :l|::::| 教えてあげません . ヽ. ― /:::|:リ ヽ. ,. -'-‐''"´| ,.へ, r} ̄ _,,.. -‐ ''"フ‐''"_∠,`ー- ...,,_ -‐ノハ ̄ _.=''´/ --`i '''' ー-′ / l / / '′ -ー{ ,.ヘ. '´_,.‐'′
>>916 そういうこと言うヤツは
「12歳からはじめる、わくわくHSP 3Dゲームプログラミング教室」読んで最初から勉強しろ。
はくりょくまんてん スリーディー
迫 力 満 点 の 3 D ゲームが、
キ ミ に も 作 れ る! プログラムが書けると、
楽しいぞっ!
だ、そうだ。
HGIMGでポリライン使えればいいのになー
3Dゲームはプログラムより、素材の準備の方がキツい・・・・・。
先輩たちゴメソ あんなにヤメロって言われているのに HSPでツール作っちゃった公開しちゃった 後悔はしていない
小物GUIツールならHSPかDelphiが一番楽だと思ってる。 HSPでそれなりのものを作ろうとすると、API叩きまくりだけど。
後悔しちゃった 公開はしていない の間違い?
AMDDRAW.HPIの最新版、持っている人居ませんか?Yahoo!ブリーフケースにageて下さい。 検索しても入手不能。
いまさらなぜAMDDRAW.HPI?
AM系は命令名が長杉
DirectXの世代も古そうだが… 前もってたけど最新版じゃないしどっか行っちゃったな
>>929 #define AM_new(%1,%2,%3) AMdFindCharacter %1,0,%2,%3
#define AM_trans AMdSetRenderState D3DRENDERSTATE_SRCBLEND,D3DBLEND_SRCALPHA,D3DRENDERSTATE_DESTBLEND,D3DBLEND_INVSRCALPHA
#define AM_gsel AMdSelectSurface
とか。
>>927 まあ、モレが気に入らないのはうp場所指定してきたことかな。んじゃ…
932 :
名前は開発中のものです。 :2005/06/07(火) 19:18:42 ID:xQwvfLU8
DownLoad Dekireba OK
HSP3(β9)使ってるが、色々と機能が増えていて2.61より断然( ・∀・)イイ!
5年ぶりくらいにHSPで遊んでみようと思ったけど 移行期の今から始めるのはタイミング悪いかな。 3の正式リリース後も、2系を使い続ける予定の人 います?
935 :
ぷにたま :2005/06/08(水) 10:02:01 ID:uWbSmbOC
2.61で作っても問題ないだろ。 3で互換性があるように書き換えてもいいし #include "hsp261cmp.as" ↑すればいい訳だし
ノシ 特に使いたい新機能がなければすぐに移行する理由もないんで しばらく様子見。
text命令が消えたわけだが、文字を1つずつ表示するにはどうする?
普通に1文字ずつ置いていく。 というか、そもそも text はモーダルだからあんまり好きじゃなかった。
HMM.DLLのDirectDrawのDDBLENDGCOPYは動作がおかしいです。ブレンド率が 反映されていない。
HMMのDirectDrawには「DDBLENDGCOPY」がありますが、半透明合成の命令のはずなのに 半透明合成が何故か出来ません。ブレンド率を指定しても全然反映されていなくて。 赤、緑、青すべて0にすると消えます。
何故か書き込みが 反映されていないと持ったら1-100までしか表示されていなかった・・!
DirectDrawには一応アルファブレンド、回転等の描画が出来るかのようなインターフェイスがあるが そんな凝ったことすんならもうDirect3D使った方がええよ、という考えが蔓延り、 結局実装されないまま現在に至る。
dsoundexを使ってるんだけど、mp3ファイルをpackfileにいれてexe作ると必ず再生するとこで "問題が発生したため終了します"ってなる… packfileにいれなければ正常に動くし、wavだとpackfileにいれてもエラーしないんだけど 何故でしょう?
>943 人に尋ねる前に説明をきちんと読め それぐらいのことも出来んのか?
なんでそんな生意気なんだよ
マターリ逝こうぜ
DDBLENDGCOPYは機能してるけどなぁ。 でも、DirectDrawは遅いからDGGCOPYの方がいいじゃねーの。 hmmはいいプラグインなんだけどな。
自動移動とかスプライトとかにおんぶに抱っこなので 俺はHSPDX系ばかりですw
HSP3がまだβという事でDLしてこなかったけど、
>>933 がイイって言うから遊び目的でいじってみようかな
950 :
939 :2005/06/12(日) 16:52:24 ID:PFkVwSU+
画像サイズでかくすると一応半透明っぽくなっていますが なんか汚くなっている部分があるし、R,G,B全部63にしても 黄色っぽくなっていて、完全に合成されていません。 やっぱりBUG!? VGAはELSA GLADIAC 544 AGP 128MBです。
そうそう、D3D使えYO そのビデオカードなら問題ないだろ
HSPで感動するようなゲームつくるのって不可能な気がするのはなぜだろう
あんたはどんなゲームだと感動するのか
>953 発想が貧困だからじゃないか? 多分何使ってもつくるのムリ。
HSPじゃなくてもゲームで感動したことなんてないな
感動にもいろいろあるしな
「ゲーム」ってだけで一括りにして扱うのが間違い。
>>956 みたいな悟りたい盛りの思春期君が陥り易い
システムビープ使ってMML再現してみた。 FFのクリスタルのテーマ流してみてちょっと感動した。 で、マンドクサくなってきて飽きた。
FPS自動調整のルーチンが出来た時は感動したよ。そっから先に進んでないが。
>>960 どんなルーチン?
教えてくれませんか?
まー気にするな
>>956 みたいな悟りたい盛りの思春期君が陥り易い。
なんだか昔の自分のことにみたいでワラタ
ああ、誰だって痛い厨房時代を通過してくるのさ
でも時が経たないと痛かったことに気づけない
覚えているかい〜少年の〜日のことを〜 暖かい〜温もりの〜中で目覚めた〜朝を〜
ただ明日へと 明日へと永遠に 永遠になんだろう、とずっと疑問に思っていた。 テレビサイズで切れてるだけで、実際は 永遠に、の後言葉があると思っていたリア消時代。
そしてリア工の俺がいる
まあ痛い時代を謳歌したまえ 工房時代も楽しかったな。 今の楽しいが。
>>969 は
「今も楽しいが」といいたいんとちゃうかと。
ああそうだ。まちがえた
>>961 普通にタイマー使って1フレームの時間計って
それによってwaitの量を調節してFPSを安定させるって感じで
特別な事は何もして無いんだけどおいらがヘボなので
何か色々不具合が出てなかなか上手くいかなかったから
上手くいった時は感動したって話ですorz 適当に抜粋するとこんな↓感じです
target_fps = 60 //目標FPS
*MAIN
timer
now_time = stat //現在の時間
dtime = now_time - pre_time //1フレーム時間
pre_time = now_time //1フレーム前の時間
dfps = 1000000 / target_fps + fps_hosei
fps_hosei = dfps \ 10000 //10ms単位で補正
dfps = dfps / 10000 *10 //10ms単位にする
if dfps>=dtime { cpu_wait++ }
if dfps<=dtime { cpu_wait-- }
// 描画処理 //
repeat cpu_wait
// 計算処理 //
asleep2 1:await 0//WAIT
loop
goto *MAIN
描画が間に合わなかったら"移動計算だけする"ってのがミソなんだろうけど HSPDXには無かったからなぁ。 HSPDXFIXにはあるんかの…。
追加された気がする
>>948 俺はHSPDX系ばかり
自動移動って、一度設定した方向、後で変えられないよね…?
そう思ってSTG作り頓挫したままにしてる俺
>自動移動って、一度設定した方向、後で変えられないよね…? え、変えられないの? なんかできそうだけど。
つーかケツイみたいな変化球でも撃つのか? 弾なら基本的に直線運動で事足りると思うけど。 他の用途?
>>976 スプライト毎に、出現してからのフレーム値を持たせて、
その値で行動を決めればいい。
dup Ecnt,…
if Ecnt=10 :es_adir …
if Ecnt=30 :es_adir …
if Ecnt=50 :es_adir …
Ecnt++
とか。
新しいバージョンのHSPDXFIXは一周の精度が4096に上がって嬉しい。 STG製作中なんだけど、自機以外の移動は全部es_adirで設定している。 途中で方向や速度を変える弾も敵機もみんなこれ。
そろそろ次スレの季節ですか。
ZGPも結構速いし機能豊富なので2DSTGにも使えるよ
当方2.6を使っておりますが、 某デスクトップマスコットの様にディスプレイに画像だけを描画したいんですが、 bgscrだと、どうしても矩形の背景も描画されてしまいます。 どうすれば良いでしょうか。 確か、標準命令だけで上記の事をやったデモソフトをコンテストで見かけた事があるのですが、 残念ながら何処にあったか忘れてしまいました。 なので具体的に表現する事が出来ません。すみません。
ヒント:リージョン
>>984 ありがとうございます。
本当は『ありがとうございます。』を400個タイプしたんですが、
文字数制限がある為にこんな短い文でこの気持ちを伝えざるをえない為、本当に残念です。
嘘だけど。
でもありがとう マジ助かった
hsp2.6でapi使えるよね? 今Cの開発環境が入れれないので、代わりにhsp使おうと思ってるけど、どう? 他に良い手は無い?
>>986 使えるが、結構面倒。というか、あんまり使う必要が無いようになってる。
もちろん、使わないと出来ない事もあるし、プラグインで拡張できるけどね。
フリーの開発環境なら、それこそ他にも色々あるよ。
C++ならBorland C++ Compiler+BccDevとか、Visual C++ 2005 Express Edition のベータ版とか。
RADならDelphiが簡単だし、eclipseやNetBeansでJavaっていう手もある。C#も色々あるし。
Visual C++ 2005 Express Edition は未だに使い方がわからん。 BCC+BccDEVはいいね。
gccはどうぞぬか?
991 :
名前は開発中のものです。 :2005/06/18(土) 23:55:34 ID:V/dNd6Ay
hspdx使ってるけど、敵弾をカーブさせるのが大変。
1個とか2個とかなら別に問題ないけど、50個とか出来ないんだけど。
因みに
>>979 のやり方じゃ変化しない。
ただ次に現れる敵の動きが変わるだけ。
1個2個ができて50個が出来ない理由がわからないw
敵弾は数が多いのでhspdxのスプライトに全てをゆだねるのが普通。
基本的に直線のみ。スプライトを生んだらそれっきりにする。
基本は
>>979 のやり方でいい。
数十数百のキャラクタが同時に動く(玉がはね回るなど)
スクリーンセーバーが作れるぐらいでないと話にならない。配列は扱えて当然。
dim Scnt,512 (512=最大スプライト数)
スプライト発生時にScnt.no=0する(noはes_newなどで得たスプライトNo)
-----
*main_loop
repeat 512 (スプライトの最大数)
dup Ecnt,Scnt.cnt
キャラ毎に処理の振り分け
if 曲がる敵弾 :gosub enm_shot1
if …
Ecnt++
loop
goto main_loop
-----
*enm_shot1
>>979
次スレ立てられんかった ↓誰かよろしく
おいらも立てれなかった。 誰かよろしこ。 で、暇なんで偽オブジェクト思考型のスクリプトの流れを考えてみた。 ちょっと聞いてくれ。 大雑把に説明すると、 0.osの代わりにオブジェクトを管理するスクリプトを作成、モジュール化 1.onclickで専用ラベルに飛び、管理モジュールを呼び出す (それ以前にオブジェクトを配置(描画?)、管理モジュールに座標、処理を渡すラベル等を送る必要がある) 2.管理モジュールがmousex mouseyで座標を所得、 座標から処理を渡すべきオブジェクトを割り出し、gotoで処理を渡す 3.オブジェクトの処理を実行、その後、必ずネストを抜け出してからstopを実行する必要がある (ネストレベルを確認してからstopを実行するモジュールを作ると無難) 4.かんりるーちんさんはちょっとおねんね こんな感じ。 文字列変数から、処理を渡すラベルを参照できないのが難所。 もしかしてこの手法は既出? 既出でなかったら厨房でこんな事考えれる俺は天災wwwっうぇっうぇっwwっぅうぇええぇぇっっwww
>>996 サンプルとか作ってくれないと意味ワカランぞと
1000
(`・ω・´) シャキーン
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。