11/06/30 01:16:54.99
どうも、ありがとう。でも、どちらも既に知ってるサイトでした・・・
個人的には、体力のバーの表示の仕方とか、弾を全方位に撃つ方法とか、横アクションゲームの基礎とか
これができると、アレを作れそうだなみたいな、そういう技術が知りたいかなぁーと
コンテストに応募してくる人は、どこで習ってるのかなぁ?やっぱり他の言語で取得した知識なのかな?
201:192
11/06/30 06:18:44.53
>>193
㌧ 了解
202:デフォルトの名無しさん
11/06/30 08:01:33.33
>>200
URLリンク(hariko.hariko.com)
URLリンク(hsp.tv)
URLリンク(oirahakobito.seesaa.net)
URLリンク(hsp.tv)で、弾幕で検索
本は、最新HSP3.2プログラミング入門―オフィシャル
HSP3でつくる簡単3Dゲーム」
12歳からはじめるHSP3.0わくわくゲームプログラミング教室
12歳からはじめるHSP 3Dゲームプログラミング教室
など参考にするといい
203:デフォルトの名無しさん
11/06/30 17:16:16.98
こんにちは、初めましてです。
HSP初めて触る少し質問をさても頂きたく思います。
HSPの前進させるキー操作のところを、加速度センサーを使った、
リアルタイムでの歩行動作をさせることは可能なのでしょうか?
プログラムの書き方しだいかもしれませんが、どうぞご回答よろしくお願いします。
環境としては、OSはvista 今のところはHSP3です。
204:デフォルトの名無しさん
11/06/30 20:23:39.94
>>202
どうもありがとう。初見のものもありました
紹介してもらった感想としては、やっぱりゲームスクリプト集のような超便利なサイトや書籍はないみたいですね
天は自ら助くる者を助くという言葉がありますけど、プログラムの世界でも初心者に楽して上達させてはくれないみたいです・・・
でも逆に、初心者がポンポンと判子絵のようにゲームを作ることが本当に良いことなのかということも考えてしまった
ただでさえフリーゲームがネットに溢れてるのに、ちっとも面白くないゴミのような作品が増えて誰が得をするのか?と
ネットは玉石混合と言われてるけど、さらに砂漠の中から指輪を拾うような状況になるのはよくないことだし
お使いイベントや王道シナリオが陳腐化し、フリーの絵や音楽を目にするたびにウンザリしてしまうんじゃないかと思った
205:デフォルトの名無しさん
11/06/30 20:31:10.91
hsp3imp.dllの質問です。
_hspprm@16( 0, 0, 0, NULL )
_hspprm@16( $102, 0, 0, "test.ax" )
_hspini@16( $100, 300, 200, 0 )
_hspexec@16( 0,0,0,0 )
_hspbye@16( 0,0,0,0 )
こんな感じでHSPスクリプトを実行できるのは分かったんですけど、
どうやったらUWSCの変数を参照させられるでしょうか。
メッセージのやり取りでも出来ればいいんですが、UWSC側でメッセージを受信できないので、
直接変数を渡してHSPスクリプトで書き換えたいんですけど。
UWSC以外でも、hsp3imp.dll で呼び出したスクリプトとやり取りする方法はあるんでしょうか。
変数や関数呼び出しで。
206:デフォルトの名無しさん
11/06/30 23:22:54.27
>>203
あなたの言う「加速度センサー」とは何か?
キーボード・マウス以外の周辺機器をHSPで利用するには、専用のDLLが必要。
あなたの加速度センサーのDLLがHSPで利用可能か私には分からない。
「リアルタイムでの歩行動作をさせる」とは何を動作させるのか?
あなたはパソコンにロボットなどを接続してその制御をしたいのか?
あるいは3D・2Dゲームのキャラクターを画面の中で動かしたいという事か?
>>205
あなたの質問はおそらくこのスレ向きではない
207:デフォルトの名無しさん
11/07/02 18:59:22.40
>>206
なんかそれ翻訳したみたいだな
208:デフォルトの名無しさん
11/07/04 20:50:40.02
>>203の書き方が翻訳したみたいだったから合わせた
209:デフォルトの名無しさん
11/07/06 21:15:57.88
へえ
210:デフォルトの名無しさん
11/07/08 22:09:06.28
多次元配列の初期化代入はどうやるの
一次元なら a = 1,2,3....でできるけど・・・
211:デフォルトの名無しさん
11/07/09 11:39:58.25
多次元配列の初期化代入は多分不可能だがこういう事なら出来る
dim a, 3, 2
x = 0, 1, 2, 3, 4, 5
memcpy a, x, 24, 0
repeat 2
cnt1 = cnt
repeat 3
mes a(cnt,cnt1)
loop
loop
あまりややこしい事はしない方が結果楽だけどな
212:デフォルトの名無しさん
11/07/09 13:30:48.49
>>211
あーやっぱ反復構造利用しないとダメですか
ありがとうございました
213:デフォルトの名無しさん
11/07/09 16:18:58.84
a(0)=1,2,3...
a(1)=1,2,3...
a(2)=1,2,3...
初期化代入って呼ぶのかどうか
214:デフォルトの名無しさん
11/07/09 19:48:43.10
>>213
それって今でも出来たっけ?
昔はできた気がするけど…
215:デフォルトの名無しさん
11/07/09 23:21:58.52
HSPのテストバージョンにHSPDishがついてたんだけど
これでどうやってAndroidで動かすんだ??
216:デフォルトの名無しさん
11/07/09 23:46:53.91
>>214
できなかったわ知らなかった
というかどうなってんのこれ
dim arr, 3, 3
arr(0) = 1,1,1
arr(1) = 2,2 //これ以上多いとエラー
arr(2) = 3 //これ以上多いとエラー
repeat 9
mes ""+arr( cnt/3, cnt\3 )
loop
217:デフォルトの名無しさん
11/07/10 00:05:57.65
dim arr, 3, 3
arr(0) = 1,1,1 // arr(x,0), arr(x+1,0), arr(x+2,0)に代入
arr(1) = 2,2 // arr(x,0), arr(x+1,0)に代入
arr(2) = 3 // arr(x,0)に代入
repeat 3
mes ""+arr(cnt, 0)+" "+arr(cnt, 1)+" "+arr(cnt, 2)
loop
218:デフォルトの名無しさん
11/07/10 00:22:52.67
>>217
おかげで添字が逆だったのを思い出した
dim arr, 3, 3
arr(0,0) = 1,1,1
arr(0,1) = 2,2,2
arr(0,2) = 3,3,3
repeat 3
mes ""+arr(cnt, 0)+" "+arr(cnt, 1)+" "+arr(cnt, 2)
loop
219:デフォルトの名無しさん
11/07/10 03:12:00.69
配列は苦手だわ
めまいする
220:デフォルトの名無しさん
11/07/10 03:16:03.75
添字が逆なのはマジ嫌がられ
221:デフォルトの名無しさん
11/07/10 12:42:19.60
え?
222:デフォルトの名無しさん
11/07/10 20:42:40.84
配列初期かもできない分言語なんかやってるひといるのw
223:デフォルトの名無しさん
11/07/10 20:59:37.88
>>217
何ぞこの糞仕様w
分かり難いわwww
224:デフォルトの名無しさん
11/07/10 21:40:26.17
#module
#deffunc foo int a
return
#deffunc bar int a
return
#global
上記のようなものがあるとして
foo という関数を module 外から見えなくする方法があれば教えてください
225:デフォルトの名無しさん
11/07/10 22:00:36.60
無いんじゃね
226:デフォルトの名無しさん
11/07/10 22:25:10.37
HSPにそんな高度な機能はないだろ。
227:デフォルトの名無しさん
11/07/10 22:27:37.64
知れば知るほどいやになる言語hsp
だが残念なことにpygameもstaerrubyも糞過ぎてこれしか選択肢がない
228:デフォルトの名無しさん
11/07/10 22:42:04.69
選択肢が偏りすぎてる件
229:デフォルトの名無しさん
11/07/10 22:43:19.26
>>224
同名の関数があるのが困るってだけならこれでおk
#define foo foo_no_hontou_no_namae_ha_nagai
#deffunc foo_no_hontou_no_namae_ha_nagai int a
return
230:デフォルトの名無しさん
11/07/10 22:47:07.01
高度な機能は亡き者にする姿勢ってどうにかならないのかな~
プログラムに慣れて来たら卒業したくなる言語って悲しいんだけどw
231:デフォルトの名無しさん
11/07/10 23:42:59.00
DXライブラリはヴィジュアルスタヂオの知識が必要
lgpは手軽だが画像読み込みばぐや画面サイズに制約があり微妙
pugameはideと日本語の扱いがロクにできない
starrubyだかdxrubyはエラーログすらでねえ
232:デフォルトの名無しさん
11/07/10 23:56:35.00
VS使える言語はいろいろ便利でいいよな
233:デフォルトの名無しさん
11/07/10 23:59:36.93
一体HSPに何を求めてるんだ。
234:デフォルトの名無しさん
11/07/11 00:08:41.70
ラベルの撤去
235:デフォルトの名無しさん
11/07/11 09:28:57.41
>>224
#deffunc local foo int a
236:デフォルトの名無しさん
11/07/11 09:52:21.42
>>235
消えるには消えるけど@モジュール名付けないといけないから嫌なんだよな
おまけに local してない同名の命令が先にあると結局だめだし
237:デフォルトの名無しさん
11/07/12 20:19:41.70
>>231
つMMF
238:デフォルトの名無しさん
11/07/15 19:18:20.91
自分の書いたプログラムみてたら単調な命令ばかりで行数が無駄に多いことに気付いた
頭のいい人間なら熟考した上でrepeatや配列をつかったエレガントな文を書くんだろうな
でも俺アホだからそういうの思いつかないんだよな。だからソースは他人に絶対見られたくない
おまえらはどうよ?
239:デフォルトの名無しさん
11/07/15 19:28:55.75
単調な命令ばかりで行数も五千行になったけど別に「見られたくない!」とまでは思わないなあ
変数の単語の使い方が間違ってたら恥ずかしいな、とは思うけど
ぶっちゃけ変数だけでもかなり色々出来るしわざわざムリしてまで難しい命令を使う事は無いと思うよ
誰かに教える事を前提とするならちょっと考えなきゃいけないのかもしれないけど
240:デフォルトの名無しさん
11/07/15 21:51:57.87
他人の書いたソースは無駄も含めて色々勉強になる
ソースを公開してくれるのはありがたい
知らない命令つかってたりしてな
無駄が多いと気付いたんなら>>238のスキルが上がってきた証拠じゃね?
241:デフォルトの名無しさん
11/07/15 22:08:36.16
じきに local がずらっと並んでエディタがどこまでも横スクロールするようになる
242:デフォルトの名無しさん
11/07/15 22:45:24.70
ふ~ん
243:デフォルトの名無しさん
11/07/15 23:22:58.22
無駄が多いと気づいたなら、書きなおして無駄を減らせばいいだけでしょ
244:デフォルトの名無しさん
11/07/16 05:58:06.28
>>238
ループでまとめたほうがすっきりすると思っていたが、
マクロ生活のマクロ見て愕然とした。
シンプルな記述で羅列したほうがめちゃめちゃすっきりしてた。
245:デフォルトの名無しさん
11/07/16 12:51:30.08
動いてるところだけ見てもコードの汚さなんて分からないんだから
無駄でも冗長でも別にいいんだよ、モジュール化に限界のあるHSPでは
それは十分許される
246:デフォルトの名無しさん
11/07/16 23:03:08.50
みんな優しいな
247:デフォルトの名無しさん
11/07/17 21:15:33.61
プログラムってさ、書いてるうちにブラックボックス的なコードになってたりするよね?
248:デフォルトの名無しさん
11/07/17 22:44:00.86
hgimg3で、objchildにより何かの子になっているobjectが
delobjで消去できないのは仕様でしょうか?
ドキュメントにあるとおり、delobjに親を指定すれば子もろとも消えるのですが
公式に打ち上げれば修正されるのでしょうか?
249:デフォルトの名無しさん
11/07/18 19:58:38.09
hgimg3は資料が少なすぎて使う気になれない
ユーザーを増やそうという気概も感じられない
そんなhgimg3に手を出したのなら
公式のサポートなどあてにしない孤高のプログラマとなり
自分の知恵と力で道を切り拓くべき
わりとマジで
250:デフォルトの名無しさん
11/07/19 01:16:38.68
>>248
delobj前に親子設定破棄
251:デフォルトの名無しさん
11/07/19 02:02:11.76
>>247
だから俺は12個に分けた
252:デフォルトの名無しさん
11/07/19 15:52:41.34
プログラミング全般に言えることなんだけど
ネット資料がいろいろと少なすぎるから
結局金払ってマニュアル本なり英語のサイト漁らないといけない
253:デフォルトの名無しさん
11/07/20 15:45:48.63
ぷよぷよのようなゲームを作ろうと思っているのですが、
↑キーを押した時に時計回りにブロックを回転させる操作をしたいと
考えています。
しかし、1度↑キーを押しブロックが時計回り(左上)へ移動した後に
もう一度↑キーを押すとそのまま左上へ行ってどこかへ行ってしまいます。
ブロックの中心を軸にその周りを回る方法を知りたいのですが、
参考にするといいサイトなどあるでしょうか?
254:デフォルトの名無しさん
11/07/20 21:43:26.01
早く誰か答えなさい…
255:デフォルトの名無しさん
11/07/20 21:55:22.20
ソースコードをupすれば、誰か答えるだろう…
256:253
11/07/21 10:30:11.14
ソースコードはとあるサイトにあったソースを元に改ざんしているのですが
まだ調べが甘かったようです。
質問しておいて失礼ですが、
気になるサイト(ソース付き)を見つけたのでひとまず
そのソースをいじりながら勉強をしてみます。
お騒がせしましたm(_ _)m
また行き詰ったらお邪魔しにくるかもしれませんが・・w
257:デフォルトの名無しさん
11/07/21 18:16:39.76
コピペで試行錯誤するのは止めとけ
技術は全く身につかないし、時間の無駄
258:デフォルトの名無しさん
11/07/21 19:35:07.24
hspletRPGを作りたいってとき
セーブデータってどこに保存されるの・・・?
259:デフォルトの名無しさん
11/07/22 15:06:51.73
ぷよぷよよりテトリスの方がソースたくさんネット上に置いてありそうだけどな
構造も似てるし参考にはなるだろ
知りたいのは落ちてくるブロックの回し方なわけだし
まあそこで苦労してるようじゃ連鎖過程でさらに苦労しろうだな
260:デフォルトの名無しさん
11/07/22 22:55:50.16
newmod してできたモジュール変数のインデックスを知る方法はありますか?
261:デフォルトの名無しさん
11/07/22 23:04:52.10
>モジュール変数のインデックス
なにそれおいしいの
262:デフォルトの名無しさん
11/07/23 02:34:12.56
>>261
newmod を繰り返すと配列見たいのがどんどん伸びていって delmod をすると歯抜けになる
その後で newmod すると抜けてた部分が埋まるんだよ
そうなると新しく newmod された部分がどれなのか調べるのが面倒なんさ
263:デフォルトの名無しさん
11/07/23 03:24:47.96
みんな無限ループエラーの時のデバックどうやってる?
ゲームがフリーズするから普通に変な動きした時よりエラー箇所探すのめんどくさい
264:デフォルトの名無しさん
11/07/23 08:56:31.30
>>260
このwikiの「モジュール変数の配列番号を取得する」は違う?
↓
URLリンク(hspdev-wiki.net)
265:260
11/07/23 14:21:52.52
>>264
探していたのはまさしくコレです
ありがとうございました
266:デフォルトの名無しさん
11/07/23 22:04:05.56
>>265
いえいえ
ひょ~~~~
267:デフォルトの名無しさん
11/07/24 01:41:38.90
>>263
wait,awaitなんかの待機処理入れて動作見たり、ループ脱出条件の変数を出力して監視したり。
268:デフォルトの名無しさん
11/07/24 20:18:02.50
MIDI音源の再生について質問です。
前のパソコンでも使っていたシーケンスソフトで快適に再生できていたファイルがもたつき、音が途切れ途切れになるなどの症状が出ていて困っています。
重い常駐ソフトも特になく、ソフトからエクスポートしたファイルをWindowsMediaPlayerで再生してもスピードが0.3~0.4秒前後不安定(遅い)で、以前は正しく発音されていた部分が途切れたり消えたりします。
ソフト上でも同様です。デバイスの確認や診断も行なってみましたが、異常なし
・現在
OS:Windows7 Home Premium 32-bit (6.1, Build 7600 )
Procerror:AMD Athlon(tm) II X2 255 Processor (2 CPUs), 3.1 GHz
Memory:2048MB RAM
Page File:786MB 2795MB availableDirectX:DirectX 11
Sound Devices
Description:スピーカー(Realtek High Definition Audio)
Driver Name:RTKVHDA.sys
HW Accel Level:Basic
EAX(tm) 2.0 Listen/src:No, No
I3DL(tm) Listen/src:No, No
------------------
・以前
OS:WindowsXP Home Edition(5.1, Build 2600)SP2
Procerror:Intel(R) Celeron(R) CPU 2.80GHz
Memory:256MB RAM
Page File:274MB 337MB available
DirectX:DirectX 9.0c
Sound Devices
Description:Realtek AC97 Audio
Driver Name:ALCXWDM.SYS
HW Accel Level:Full
EAX(tm) 2.0 Listen/src:Yes, Yes
I3DL(tm) Listen/src:Yes, Yes
お願いします
269:デフォルトの名無しさん
11/07/24 22:10:02.62
メディアプレーヤーでそれってことはHSP全然関係ないよね
ここで聞く事じゃないと思うけど
XPで使ってたソフトそのまま使ってるの?
OSアップデートしたら過去アプリ使えなくなるのは珍しい事じゃないよ
互換モードで使ってみ
それ以上のことはグーグル先生に
270:デフォルトの名無しさん
11/07/25 09:53:51.51
windows7だとareo周り?
後はDirectSound関係かな?
271:デフォルトの名無しさん
11/07/25 17:38:19.23
>>188
2007年のプログラムコンテストに反乱軍記っていうソフトを作った人がいたよー
272:デフォルトの名無しさん
11/07/26 15:20:51.96
repeat~wait 10~ loopと書くよりも、label~wait 10~ goto labelで記述した方が
体感的にキーの入りがいいように感じるのですが、みなさんはどうでしょうか?
世間的にgoto文は多用すべきでないと言われてるので、repeat文で書いてます・・・
273:デフォルトの名無しさん
11/07/26 15:53:12.81
HSPだけに限って言えばrepeat~loopは意外と使い難い局面が多々あるので
gotoと場合によって使い分ければいい
俺はメインループはgotoでサブルーチン内でだけrepeat~loopを使うようにしてる
ちなみに処理速度だけならrepeat~loopの方が若干速いからキー入力云々は気のせいだろ
274:デフォルトの名無しさん
11/07/26 18:17:44.39
モジュール変数を知って今まで苦労していた部分が楽になった
が、今まで楽に出来ていた部分で苦労するようになったw
275:デフォルトの名無しさん
11/07/26 19:04:25.64
苦労した成果
#module hoge a, b
#deffunc swap_var var x, var y, local z
z=x : x=y : y=z
return
#modinit int a_, int b_
a=a_ : b=b_
return
#modfunc hoge_print
mes strf("a=%d b=%d", a, b)
return
#modfunc hoge_swap_ var a_, var b_
swap_var a, a_
swap_var b, b_
return
#modfunc hoge_swap var target
hoge_swap_ target, a, b
return
#global
newmod x, hoge, 1, 2
newmod x, hoge, 3, 4
newmod y, hoge, 5, 6
hoge_swap x.1, y.0
foreach x
hoge_print x.cnt
loop
hoge_print y.0
276:デフォルトの名無しさん
11/07/26 19:06:47.55
>>272
カウンタが有るか無いかぐらいの差しかないよ
てかゲームで使うならawaitな
>>274
多次元配列は一次元配列より倍近く重いから一フレームで大量に扱う物にモジュール変数は不利になるから注意
277:デフォルトの名無しさん
11/07/26 22:01:47.68
>>275
モジュール変数というかメンバ変数?を使いこなせるなら
もうC++やC#を使った方が楽かもなw
278:272
11/07/26 22:09:16.96
タイトル画面でスタートキーを押したにもかかわらず、受け付けてくれないことが多々ありまして、
出鼻を挫かれたプレーヤーが少しイラっとされるんじゃあないかと思ったんですよ・・・
279:デフォルトの名無しさん
11/07/26 22:31:13.83
>>272
repeat~loopはgotoでループ抜けるとネストが残ったままになるから、
gotoでループするとかdoとかwhileを使った方がいいらしいな。
280:デフォルトの名無しさん
11/07/27 00:43:30.28
ついでに氷もたのむ
281:デフォルトの名無しさん
11/07/27 03:00:18.23
>>278
それはループ処理かキー入力取得自体に問題があるんじゃないのか?
30fps程度で動かしてたとしても、非同期のキー入力を取りこぼす事は普通ありえないぞ
282:デフォルトの名無しさん
11/07/27 12:27:51.48
gotoしてる文、ループ時の条件文がスルーされてるってオチだったりして
283:デフォルトの名無しさん
11/07/27 13:24:38.84
ネストが残るてどういう意味なん?
メモリにゴミでも溜まるんかい?
284:デフォルトの名無しさん
11/07/27 13:56:12.76
repeat -1
gosub *nest_houti
loop
*nest_houti
stop ; repeatブロックの中のまま、gosubで飛んだまま
285:デフォルトの名無しさん
11/07/27 20:12:50.69
え?
286:デフォルトの名無しさん
11/07/27 21:56:17.47
それはいいんじゃね?
つかHSPにも関数ブロックみたいなのがほすい。returnし忘れとかやめて~
287:デフォルトの名無しさん
11/07/28 10:01:31.30
>>284の何が危ないのかわからないんだったら、
gotoによるループをオススメする
288:デフォルトの名無しさん
11/07/28 10:25:55.25
ミスを誘う仕様っぽいけど今更どうしようもないだろw
289:デフォルトの名無しさん
11/07/28 17:22:41.04
gosubでreturnしないなんて、初心者の漏れでもやったことない
290:デフォルトの名無しさん
11/07/28 17:52:06.98
他人のコード理解しないままコピペしてたら起こり得る
291:デフォルトの名無しさん
11/07/28 19:53:53.35
自分のスクリプトを確認してみたら、gosubで飛んだラベルから条件分岐で別のラベルにgotoする処理もあるんだけど
その場合もネストがなんたらで危ないのか?別に、エラー吐いたりフリーズしたり不具合もでたことないんだけど・・・
292:デフォルトの名無しさん
11/07/28 20:23:16.56
grotateで画像が乱れるとお悩みのあなたに embed_grotate !
これがあればアルファチャンネル付き画像だってグリグリ回せちゃいます
今なら外部DLL一切不要
一家に一台 embed_grotate !!!
● 特長
grotate とそのまま置き換え可能
外部DLLが不要
画像が乱れにくい
アルファブレンドコピーができる
アルファブレンドコピーモードの際に半透明合成時のブレンド率も適用される
(アルファチャンネル付きの画像をフェードイン、フェードアウトできる)
● grotateと異なる点
転送先、転送元いずれかがパレットモード時には動作しない
grotateよりも低速(約80%~60%)
アルファブレンドコピーモードの際の動作が異なる
● 使い方
1.embed_grotate.hsp を HSP の common フォルダにいれる
2.embed_grotate.hs を HSP の hsphelp フォルダにいれる
3.#include "embed_grotate.hsp" と記述する
4.grotate のかわりに embed_grotate と記述する
プラグイン作ったので宣伝してみました
URLリンク(simasuzu.web.fc2.com)
293:デフォルトの名無しさん
11/07/29 01:53:44.66
>>291
ややこしいがそのgoto先の中でreturnしてればおk
自分が見易い形に整理していった結果そうなったならそれでいいんだろう
294:デフォルトの名無しさん
11/07/29 05:48:59.55
gosubしたらreturnで戻ってこないと、(スタック?に記録された戻り値が解消されないまま?だから)
それがどんどん溜まるとエラーになってプログラムが落ちる場合もあるという理解でいいんですかね?
URLリンク(hsp.tv)
295:デフォルトの名無しさん
11/07/29 12:57:07.22
#cmpopt varinit 1 ってみんな使ってない?
人様のモジュール使うとき自前で変数の初期化するの面倒なんだが
296:292
11/07/29 17:29:14.21
ver1.4 できました
処理速度が grotate とほぼ同等になりました
描画領域の計算が正確になりました(タイルパターンの描画にも使えるようになりました)
297:デフォルトの名無しさん
11/07/29 23:49:51.81
ここは宣伝スレじゃないんで^^
298:デフォルトの名無しさん
11/07/30 11:09:21.31
>>283
これを実行してみればわかる
i=0
*main
repeat
i++
cls
mes i
goto *main
loop
299:デフォルトの名無しさん
11/07/30 12:28:05.19
せめてwaitを
300:デフォルトの名無しさん
11/07/30 13:51:27.70
いらないだろ
301:デフォルトの名無しさん
11/07/30 18:30:01.53
looplev
sublev
地味すぎるシステム変数たち
302:272
11/07/30 18:33:55.24
repeat
stick a
if a=16:goto *main
wait 10
loop
というふうに書いてました。あまり良くないようなのでgoto文に変えることにします。
質問に答えてくれた方々、どうもありがとうございました。
303:デフォルトの名無しさん
11/07/30 19:15:17.91
>>302
お前全然意味分かってないだろw
goto使うなっつってるのにwww
304:デフォルトの名無しさん
11/07/30 21:35:00.05
repeatをgotoに変えるんだろ
repeat使うなら
*main
mes b
b++
repeat
stick a
if (a&16):break
wait 1
loop
goto *main
こんな感じ
if (a&16) にしたのはa=16じゃスペース以外も押されてるとtrueにならない
後stickやgetkey命令は先行入力が効かないみたいだから
wait 10だとポンと押して離すとwait中に入力終わっててキー検出できない
305:デフォルトの名無しさん
11/07/31 00:37:56.73
まじgoto廃止しろよ・・・
306:デフォルトの名無しさん
11/07/31 08:48:47.01
>>305
goto廃止したら、for、whileといったマクロも使えなくなるぞ。
んなことより、goto使うとおかしくなるrepeatを無くせよ。
307:デフォルトの名無しさん
11/07/31 08:59:42.10
基本的な文法くらい素でサポートしろよなw
今更だが、マクロで拡張するという考えがまずかった
308:272
11/07/31 10:12:26.83
>>304
ありがとうございます。この問題は解決できました。
でもrepeat文の使い方がまずい文が他にもたくさんあって、
今の自分の力では、もう手がつけられなくなっちゃいました・・・
309:デフォルトの名無しさん
11/07/31 13:46:04.08
即席でギャグとして作ってみたw
#undef repeat
#undef loop
#undef break
#undef continue
#undef cnt
#define repeat(%1=-1,%2=0) %trepeat %i=0%c%s1%s2 *%i%c cnt=%p3+%2%c if (%p3>=(%p2)) & ((%p2)>=0):goto *%i%i0%c
#define loop %trepeat *%o%c%p4++%c goto *%p1%c*%o%o0%o0%o0%o0
#define break %trepeat goto *%p1%c
#define _continue_ cnt+1
#define continue(%1=_continue_) %trepeat %p5=%1-%p3:goto *%p2%c
これならネストの問題もなく動くでしょ
310:デフォルトの名無しさん
11/07/31 22:52:04.34
これが速攻で組めるとは…
俺もまだまだだな
311:デフォルトの名無しさん
11/08/01 10:47:46.22
cだなc
312:デフォルトの名無しさん
11/08/04 23:24:27.01
>>309
C厨乙
313:デフォルトの名無しさん
11/08/07 06:14:20.55
ちょっとお聞きしたいのですが、HSPってもしかして本来飛ばすはずの次の処理とか結構読んじゃったりする?
ってスレ流し読みした感じだともしかしてgoto使ってるのがわるいのか
処理順でもバグってるのかこれ・・・
314:デフォルトの名無しさん
11/08/07 06:16:46.71
sageてしまったのでage
315:デフォルトの名無しさん
11/08/07 10:58:54.01
>>313
そういうバグは聞いたことないよ。
316:デフォルトの名無しさん
11/08/07 12:13:23.94
短絡評価はもともと無いよ
317:デフォルトの名無しさん
11/08/07 12:28:59.86
自分の思うように動かないと
処理系のバグだと考える
実に初心者スレにふさわしいレス
…みんな一度は通る道だよね
318:デフォルトの名無しさん
11/08/07 12:31:20.36
俺も幼稚園の頃はそうだったわ
319:デフォルトの名無しさん
11/08/07 12:49:55.33
swbreak?
320:デフォルトの名無しさん
11/08/07 15:10:28.83
>>315
ありませんか・・・すいません。
間違いようがない処理のはずなんですがなぜかバグる。
色々略してますが
if flag = 0{
処理
flag =1
}
程度の物なのになぜかflagが1の時にも処理が実行されてしまいます
321:デフォルトの名無しさん
11/08/07 15:15:02.94
>>320
実行可能で現象が再現する最小のソースを用意してくれ
322:デフォルトの名無しさん
11/08/07 15:17:07.95
flag が local で宣言されてるとかじゃね?
local は毎度初期化されるから
323:デフォルトの名無しさん
11/08/07 15:41:58.82
タイプミスとか
いや、笑いごとでなくて
324:デフォルトの名無しさん
11/08/07 15:44:22.11
ちょっともう一度最低限に削ってテストとタイプミスチェックしてみます
だめならコード張ってみます
325:デフォルトの名無しさん
11/08/07 15:47:49.85
randomize
flag = rnd(2); 0=白,1=黒
dim arr,8,8; 8x8の二次元配列
i = 0: j = 0: xx = 0: yy = 0;
;配列を0で初期化
repeat 8
repeat 8
arr(i,j) = 0
j+=1
loop
i+=1
j=0
loop
;配列を0で初期化終了
arr(3,3) = 1: arr(4,4) = 1;白駒配置
arr(4,3) = 2: arr(3,4) = 2;黒駒配置
*game
redraw 2
cls 0
326:デフォルトの名無しさん
11/08/07 15:49:37.76
i = 0: j = 0: x = 20: y = 20
repeat 8
repeat 8
pos x,y
mes arr(i,j)
y+=50: j+=1
loop
x+=50: y=20: i+=1: j=0
loop
if xx!="":pos 420,100:mes xx
if yy!="":pos 470,100:mes yy
if flag = 0: pos 450,50: mes "白のターンです"
if flag = 1: pos 450,50: mes "黒のターンです"
redraw 1
onclick goto *click_wait
stop
327:デフォルトの名無しさん
11/08/07 15:51:04.94
*click_wait
xx = mousex
yy = mousey
i = 0: j = 0
while(i<=8)
while(j<=8)
if xx > (j*50) & xx < ((j+1)*50) & yy > (i*50) & yy < ((i+1)*50){
if arr(i,j) = 0{
arr(j,i) = flag + 1
if flag = 0 {
flag = 1
}else{
flag = 0
}
}
}
j+=1
wend
i+=1: j=0
wend
goto *game
328:デフォルトの名無しさん
11/08/07 15:53:23.68
実際にバグるというのは、なぜか普通にクリックする分には0→1or2に変わればそれ以上変わらないのですが、
ダブルクリックや高速でクリックしまくると1→2→1→...と切り替わってしまったりするんです
329:デフォルトの名無しさん
11/08/07 16:19:55.31
クリックしたときに押下状態を更新する。
メインループでその状態を見るって感じでいいかと。
330:デフォルトの名無しさん
11/08/07 16:29:15.03
>>328
> if arr(i,j) = 0{
> arr(j,i) = flag + 1
ダブルクリックとか関係なく
この部分 i,j と j,i の順序が変わってるからじゃね?
331:デフォルトの名無しさん
11/08/07 16:32:07.39
>>330
うわ・・・馬鹿すぎるorz
すいません、その処理のほうのjとiを入れ替えた後、その条件式のiとjを入れ替え忘れていました
本当にご迷惑をおかけしてすみませんでした ありがとうございました
332:デフォルトの名無しさん
11/08/07 19:24:24.02
なんかほのぼのした
333:デフォルトの名無しさん
11/08/07 21:54:12.63
まあ解決してなにより
334:デフォルトの名無しさん
11/08/08 00:11:49.09
HSPなんかやるよりもC#で書いた方が余程マシじゃね?
HSPなんか何にも良いことないじゃん。
335:デフォルトの名無しさん
11/08/08 05:46:53.52
ああ、そうだね
336:デフォルトの名無しさん
11/08/08 06:15:26.92
言語仕様や開発環境でHSPが勝てる点は一切無いだろうね
でもC#は非ネイティブという致命的欠陥がある
337:デフォルトの名無しさん
11/08/08 06:27:41.45
HSPはエディタが前触れも無く異常終了するのが難点
338:デフォルトの名無しさん
11/08/08 09:30:39.71
HSPだって非ネイティブじゃないの?
339:デフォルトの名無しさん
11/08/08 10:58:07.33
ワロス
340:デフォルトの名無しさん
11/08/08 11:04:01.41
>>337
3.3rc1にしなよ
エディタもバージョンアップしてるから
341:デフォルトの名無しさん
11/08/08 11:07:15.82
たしかに公式掲示板の質問でそれやるならHSP使わない方が
はるかに楽だろうというのはよくあるけどな
342:デフォルトの名無しさん
11/08/08 14:17:39.27
module 内で初めて実行されたかどうかのフラグを使いたいんだけど下の使い方でいいの?
今のチェックをすり抜けてるだけで実際には未初期化の変数使ってるから後のバージョンでエラーにされる?
#cmpopt varinit 1
#module test_module
#deffunc dummy ; varinit 1 のエラー回避用
is_initialized=0
return
#deffunc run_once ; この関数が一回だけ呼ばれるようにしたい
if is_initialized : return ; varinit 1 のとき関数 dummy を消すとここでエラーになる
mes "initialize"
is_initialized=1
return
#deffunc hoge
run_once
mes "hoge"
return
#deffunc huga
run_once
mes "huga"
return
#global
hoge
huga
hoge
343:デフォルトの名無しさん
11/08/08 15:38:29.50
>>342
考え方は○ですが dummy を一度呼んでおきましょう
#global
dummy
hoge
huga
hoge
344:デフォルトの名無しさん
11/08/08 17:12:45.19
入門書では教えてないような命令を多く使ってるのね。
これで初心者って、みんなすごいね!
345:デフォルトの名無しさん
11/08/08 18:18:18.30
>>344
いろんな命令を使ってみるといいよ
慣れてきたら使わずに書くほうが難しくなるよ
module とか使わずにプログラム書ける人すげーって思うもん
346:デフォルトの名無しさん
11/08/08 18:25:11.29
こんなのは #deffunc 使わないとかえって難しい
; ハノイの塔を解くプログラム
hanoi 4, "A", "B", "C"
stop
#deffunc hanoi int disc, str from, str to, str free
if disc<=0 : return
hanoi disc-1, from, free, to
mes strf("disc %d : from %s to %s", disc, from, to)
hanoi disc-1, free, to, from
return
347:デフォルトの名無しさん
11/08/08 18:30:59.68
>>334
C#なんかやるよりもC++で書いた方が余程マシじゃね?
C#なんか何にも良い事ないじゃん。
348:デフォルトの名無しさん
11/08/08 19:17:51.01
じゃあC++やればいいじゃんw
349:デフォルトの名無しさん
11/08/08 19:40:49.09
そういえば、5年位前にネットで7行くらいのテトリスみたことあったけど
HSPだと何行くらいかかるんだろうな
350:デフォルトの名無しさん
11/08/08 19:51:26.35
テトリスならHSPの弱点が影響しにくいから
他言語とそんなに違いは出ないかと
351:デフォルトの名無しさん
11/08/08 20:32:56.90
>>343
ありがとうございます
一度 dummy を呼ぶようにします
352:デフォルトの名無しさん
11/08/09 00:55:26.99
>>350
ソース解説なんぞいくらでも転がってるからがんばれは移植できそうだよな
時間掛かりそうだなあ・・・
353:デフォルトの名無しさん
11/08/09 13:49:24.88
>>351
moduleを別ファイルにしてるなら
そっちにdummyを追加な
includeすれば実行されるし
354:デフォルトの名無しさん
11/08/09 22:41:43.14
おれを無視するなよ・・・
355:デフォルトの名無しさん
11/08/09 23:31:30.40
>>354
どのレスがお前やねん・・・
356:デフォルトの名無しさん
11/08/10 01:59:30.98
夏休みどすな
357:デフォルトの名無しさん
11/08/12 12:20:49.69
ですねw
358:デフォルトの名無しさん
11/08/13 13:28:39.67
盆休み保守
359:デフォルトの名無しさん
11/08/13 15:02:21.99
なんでか、盆休みのほうがかきこみすくないね
360:デフォルトの名無しさん
11/08/13 15:07:31.62
embed_grotate ver1.9
URLリンク(simasuzu.web.fc2.com)
#cmpopt varinit 1 に対応したよ
ファイルサイズが小さくなったよ
361:デフォルトの名無しさん
11/08/13 16:46:45.36
>>360
おつかれさん
機会があったら使ってみるよ
362:デフォルトの名無しさん
11/08/16 12:35:27.48
>>359
不思議だよね
363:デフォルトの名無しさん
11/08/16 15:27:53.61
オッサン達は帰省やら家庭のことでむしろ忙しいのかもしれぬ。
コンテストの投稿者みてたら、キャリア5年前後の10代が多いようだ。
ベーシック(HSP)は、オッサンホイホイだと思っていただけに以外だった。
364:デフォルトの名無しさん
11/08/16 19:47:40.19
コンテスト期間の後半を待ってみ
オッサンがいっぱい来るから
365:デフォルトの名無しさん
11/08/16 19:49:09.87
>>363
おっさんならまず「BASIC」でググるような気がする・・・
そして互換BASICに流れる気がする・・・
366:デフォルトの名無しさん
11/08/17 01:57:22.71
見た目はあんまりBASICっぽくないよな
泥臭さはBASICより酷いが
367:デフォルトの名無しさん
11/08/17 21:17:14.69
セーブがうまいことできないけど
やりようによっちゃ普通のRPGみたいにできるもんだね
368:デフォルトの名無しさん
11/08/17 22:04:43.55
notesaveとかbsave使えよ
369:デフォルトの名無しさん
11/08/17 23:34:27.09
そこはvsaveだろ
370:デフォルトの名無しさん
11/08/18 01:23:49.10
vsaveっていう命令もあったのか。標準命令じゃなかったので知らなかった。
便利そうだから今度使ってみる。サンクス。
371:デフォルトの名無しさん
11/08/18 09:28:14.82
皆さんは、モニタの画面解像度をどのくらいにしてますでしょうか?
自分は、1027x768が丁度いいと思っているのですが、昔のHSP製のゲームの場合
ウィンドウが小さくなってしまって遊びづらい物も数多くあります。
(とはいえ、画面の解像度をいちいち800x600に変更したくはありませんよね?)
これからゲームを作る場合、スクリーンのサイズをなるべく大きなものにして
32x32で描いていたキャラクターを倍にしたほうがよいのでしょうか?
あともう一つ気になったのですが、さらに高解像度にしたところ画像が歪んで見えました。
(アイコンが横長だったり、縦長になったりなんとなく比率が違うように感じました。)
将来的には、どの解像度を基準にしてプログラムを作ったらよいのでしょうか?
372:デフォルトの名無しさん
11/08/18 11:09:00.44
>>371
幾つかのウィンドウサイズに変更可能にしておいてユーザに選ばせるのが一番楽
373:668
11/08/18 16:28:13.44
自分がユーザーなら>>372
374:デフォルトの名無しさん
11/08/18 17:59:18.41
668ってなに?
375:デフォルトの名無しさん
11/08/19 11:14:34.31
コンテストスレで使ったコテの消し忘れだな
376:デフォルトの名無しさん
11/08/21 14:46:28.40
へえ
377:デフォルトの名無しさん
11/08/21 22:11:52.15
test
378:デフォルトの名無しさん
11/08/22 17:35:57.59
mes "test"
379:デフォルトの名無しさん
11/08/22 21:55:14.26
test
380:デフォルトの名無しさん
11/08/22 22:51:41.51
そろそろsageる事くらい覚えたらどうかね
381:デフォルトの名無しさん
11/08/22 23:47:02.10
>>342 は dummy をユーザーが呼び出す可能性を考えると
is_initialized@test_module = 0
;~~~~~~~~~~~~~↑↓別ファイル(でなくてもいいけど)
#cmpopt varinit 1
#module test_module
とする方がより安全かなと今思った
382:デフォルトの名無しさん
11/08/25 16:25:30.48
383:デフォルトの名無しさん
11/08/25 23:53:38.83
>>382
それは、全角スペースが原因です。
384:デフォルトの名無しさん
11/08/26 13:35:53.91
復活!
385:デフォルトの名無しさん
11/08/28 21:58:03.04
へえ
386: 忍法帖【Lv=2,xxxP】
11/08/28 22:04:50.85
mes "test"
387:デフォルトの名無しさん
11/08/29 09:37:46.58
>>386
テストはこっちでやって
[TEST] 書きこみテスト 専用スレッド 38 [確認]
スレリンク(software板)
388:デフォルトの名無しさん
11/08/29 10:01:15.46
テストって何のためにやってるの?
389:デフォルトの名無しさん
11/08/29 20:20:17.20
勉強した内容を理解してるかの確認のためじゃね?
390:デフォルトの名無しさん
11/08/31 07:39:47.68
_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
.______________ __
|韓国はなぜ反日か? | |検索|←をクリック!!
391:デフォルトの名無しさん
11/08/31 22:03:52.33
今HSPでメトロノーム作ってるんだけど、音の間隔が安定しなくて
全然使い物にならない・・・
392:デフォルトの名無しさん
11/08/31 22:22:45.26
wait とか await だけだとバラつくよ
393:デフォルトの名無しさん
11/08/31 22:30:20.55
await使ってる
他になんか間隔あけれる命令ある?
394:デフォルトの名無しさん
11/08/31 22:56:57.49
>>388
勉強的な理由→勉強できたかの確認
プログラミング的な理由→バグの洗い出し&改良点の確認
395:デフォルトの名無しさん
11/08/31 22:59:46.02
>>393
いっそ
#uselib "winmm.dll"
#cfunc global timer "timeGetTime"
みたいにしてtimer()で時間を取り出して、
現在時間-開始時間がなんとかミリ秒の整数倍なら云々といったルーチンはどうだい?
内部で間隔を開ける発想のawaitとかと違って正確にリズムを刻める
音ゲーづくりにも役立つと思う
396:デフォルトの名無しさん
11/09/01 00:04:20.15
>>393
×あけれる
○あけられる
397:393
11/09/01 01:25:34.42
>>396
ごめんなさい
ぼくがまちがってました・・・
398:デフォルトの名無しさん
11/09/01 05:00:13.14
_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
______________ __
|韓国はなぜ反日か? .| |検索|←をクリック!!
399:デフォルトの名無しさん
11/09/01 07:58:54.14
そんなのいちいち指摘しなくてもいい気がするけどね
400:デフォルトの名無しさん
11/09/01 14:29:24.06
イライラ迷路を作ってるけど、あたり判定をする命令が書けないorz
401:デフォルトの名無しさん
11/09/01 14:56:59.68
>>400
当たり判定用の buffer を作って
pget すればおk
402:デフォルトの名無しさん
11/09/01 15:43:29.46
>>400
キー操作でマウス動かせるソフトでズルできないようにすればももっと完璧だな
403:デフォルトの名無しさん
11/09/01 20:08:36.96
>>393
WM_TIMERを使うとか?
正確とは言い難いけどなw
404:デフォルトの名無しさん
11/09/01 22:12:56.66
返信してくれた方ありがとうございます
>>395
鳴ボタン押した時間取得して、
それから設定時間経過したら音を鳴らすってことですよね?
で、次は音鳴らした瞬間の時間から設定時間まで
の繰り返しってことですよね?
>>396
申し訳ない
>>403
なるべく精度高めたいからなぁ…
参考にしてみます