HSP - Hot Soup Processor [11]
( ,,,)
.( ,,) スクリプト言語 HotSoupProcessor について
( ,,). ゲーム製作の視点から、また〜りと語り合うスレ。
, -──- 、
(,;::-──-; )-、
.|` ̄ ̄ ̄´;;|ヽ l * 質問する前に検索してみる事
l; :::;;;l-' / * ヲチ、ネタなどはスレ違い
,-ヽ───.'-、´.. * 歴代スレ、関連サイトは
>>2-4 あたり
ヽ ──── '
ONION software (本家)
http://www.onionsoft.net/
Q&A
Q HSPで○○は作れますか?
A あなたの努力と根気次第です。じゃんけんからRPGまで、
ありとあらゆるゲームが作成可能です。
Q 構造体は使えますか?
A 使えません。但し、モジュール変数という型が用意されています。
Windows API を呼び出す際は、構造体の変わりに配列を使用します。
Q ポインタはありますか?
A 文法上では正式にサポートされていませんが、
varptr などの関数で変数のポインタを取得できます。
え、何スレタイミス?
正しくは 12 ですね
>>9 n n
(ヨ ) ( E)
/ | _、_ _、_ | ヽ
\ \/( ,_ノ` )/( <_,` )ヽ/ / good job!!
\(uu / uu)/
| ∧ /
ワダコウジは神だな
やつしかいない
ほかはゴミ
すみません、ドラクエを作りたいのですが、どこにソース落ちてますか?
13 :
12:2006/03/26(日) 00:17:13 ID:nED8Drk2
すみません。
自己解決しました。
つまんね
15 :
名前は開発中のものです。:2006/03/29(水) 16:28:15 ID:lZvyyUZU
age
HSPTVの掲示板にすごい釣り師がいるな。
あれは本当にひどいな。
ネタじゃないとしたら、どういう人間が書いてるんだろう。
おそろしい。
真面目にモジュール作って献上した奴もコワイ。
ネタだとしてもネタじゃないとしても
バカ以外の何者でもないだろw
奴が乗り込んできたっぽい書き込みしようと思ったが面倒になったw
>>20 何言ってんの??
どうしてやる前からあきらめてるんですか!!!!!!!
もう少しがんばってください!!!!!
…。
(;´∀`)
23 :
名前は開発中のものです。:2006/03/30(木) 18:34:41 ID:NoQIIUZZ
mp3ストリーミングを保存するソフトを作ってるんだが、
送られてきたストリーミングデータをmp3に戻すにはどうすればいいんだ?
mp3のフォーマットを調べそのとおりに並べるだけ。
わかった。やってみる
26 :
名前は開発中のものです。:2006/03/30(木) 22:17:31 ID:EnYLjVFU
deleteコマンドで複数指定した場合一つでも存在してないと
エラーでちゃうんですがエラーを出さなくする方法教えてください。
お願いします。
>>26 HSPスクリプトエディタで"delete"と書いて、カーソルをそこにあわせたあと
F1キーを押すといいと思うよ。
28 :
名前は開発中のものです。:2006/03/30(木) 23:29:29 ID:EnYLjVFU
Helpでは調べたのですがよくわかりませんでした。
>>26 delete命令を実行する前に exist命令でファイルの有無を確認するようにしてください。
>>26 deleteコマンドで複数指定ってとこが良くわからないけど
これワイルドカード指定できるのか?
とりあえず、エラーの発生自体を抑制したいなら、
onerror 〜 でエラートラップでもすれば?
あんまり良くないんだけど。
31 :
名前は開発中のものです。:2006/03/31(金) 00:26:26 ID:ix+YnEXv
onerror *test
delete "c:\\test\\est.txt"
*test
exist "c:\\test\\test.txt"
こんな感じでおkですか?
32 :
名前は開発中のものです。:2006/03/31(金) 00:36:06 ID:ix+YnEXv
できました。ありがとうございます。
>>31 なんでやねん! onerrorもexistも使いどころが全然違う。
…ちょっとなごんだが。(´ω`)
そのスクリプトみたいに、消すファイルの名前がちゃんとわかってる状況なら
エラートラップの必要もなくて、
fname="c:\\test\\test.txt"
exist fname //指定ファイルがあるかどーかチェック
if (strsize != -1) : delete fname //あるんなら削除。ないなら、何もしない。
ちう流れ。 (´ω`) …ってできたってか。
34 :
名前は開発中のものです。:2006/03/31(金) 01:02:18 ID:ix+YnEXv
pos 0,100:button gosub "開始",*start
pos 65,100: button gosub "終了",*shut
stop
*start
onerror *test
delete "c:\\test\\1.txt"
delete "c:\\test\\2.txt"
delete "c:\\test\\3.txt"
delete "c:\\test\\4.txt"
delete "c:\\test\\1.bmp"
delete "c:\\test\\2.doc"
*test
dialog "おそらく削除は完了しました。",0,"REMOVER"
stop
*shut
end
これで問題ありませんでした。
35 :
名前は開発中のものです。:2006/03/31(金) 01:03:51 ID:ix+YnEXv
この部分
delete "c:\\test\\1.txt"
delete "c:\\test\\2.txt"
delete "c:\\test\\3.txt"
delete "c:\\test\\4.txt"
delete "c:\\test\\1.bmp"
delete "c:\\test\\2.doc"
を外部TXTファイルからこのリストを読み込ませることできますか?
36 :
名前は開発中のものです。:2006/03/31(金) 01:11:14 ID:ix+YnEXv
>>34 そのスクリプトだと、例えば"1.txt"がない場合、
"2.txt"以降はスルーされるんじゃないか?
>>35 外部TXTファイルから云々は
notesel バッファ変数
noteload 外部ファイル名
行数 = notemax
repeat 行数
noteget fname,cnt
(削除処理)
loop
て感じで。(´ω`) おがんばり
38 :
名前は開発中のものです。:2006/03/31(金) 01:18:32 ID:ix+YnEXv
スルーさせないにはどうすればいいのでしょうか?
>>38 エラートラップについては忘れてクレ。むしろ使うな。
話戻ってしまうけど、参考までに(´ω`)
goto *main
#deffunc exdelete str _EDfname
exist _EDfname
if (strsize !=-1): delete _EDfname
return
*main
pos 0,100:button gosub "開始",*start
;(中略)
*start
exdelete "c:\\test\\1.txt"
exdelete "c:\\test\\2.txt"
;(以下略)
40 :
名前は開発中のものです。:2006/03/31(金) 01:42:57 ID:ix+YnEXv
改善したら見事どうさしました。
ありがとうございます。
txtから読み込みをする方はできませんでしたが
>>40 ヒントどころか、ほぼ答えだったんだが。 ガッツが足りないな。
「exdelete」の羅列のところを書き換え。
notesel tmpdat
noteload "filelist.txt"
l= notemax
repeat l
noteget fname,cnt
exdelete fname
loop
んで、filelist.txtには
c:\\test\\1.txt
c:\\test\\2.txt
(以下略)
とか書いて保存。
丸写しだけで終わらず、理解できるようおがんばり。(´ω`)y-~~
42 :
名前は開発中のものです。:2006/03/31(金) 08:37:23 ID:ix+YnEXv
*main
notesel tmpdat
noteload "filelist.txt"
l= notemax
repeat l
でやりましたが今度は無反応になってしまいます。
どこを改善すればいいのでしょうか?
noteget fname,cnt
exdelete
loop
こうしましたが
/*
>>42 何をしたか良く分からんけど、exdeleteのファイル名の指定がないのはイカンね。
説明のしかたが悪かったかね… (´ω`) すまんの
34のスクリプトを、簡単な形に修正。
削除するファイルの名前を1行に1つずつ記述したfilelist.txtが、別途必要ですよ。*/
;(exdelete定義はヤメタ)
pos 0,100:button gosub "開始",*start
pos 65,100: button gosub "終了",*shut
stop
*start
notesel tmpdat ; 削除ファイルリストTXTを読み込むバッファを指定
noteload "filelist.txt" ; バッファにリストTXT読み込み★
l= notemax ; リストTXTの行数を得る
repeat l ; リストTXTの行数分、repeat〜loop内の操作を繰り返し
noteget fname,cnt ; ・(1)リストTXTの行(削除するファイルの記述)を読んで、fnameに代入
exist fname ; ・(2)削除するファイル(fname)の有無をチェック
if (strsize != -1) : delete fname ;・(3)ファイルが存在しなくない(=ある)なら削除
loop ; 上記(1)〜(3)の操作を繰り返し
dialog "おそらく削除は完了しました。",0,"REMOVER"
return
*shut
end
/* ★のとこ、スクリプトと同じディレクトリという前提だったけど
パスが違うとかなら、noteload "c:\\test\\filelist.txt" とかに適宜変更しておくれ。*/
HSPで作成したRPG系のゲームでソース付きで公開されてるのってありますか?
47 :
名前は開発中のものです。:2006/03/31(金) 17:56:43 ID:R9oOhD9q
TXTの読み込みを教えてもらったものですが私は
>>44ではありません。
フォルダの中身ごとってHSP削除できるんですか?
48 :
名前は開発中のものです。:2006/03/31(金) 18:29:24 ID:obbSzcGS
うろ覚えだがAPI使ったらできるはず。
本家の旧ベータ掲示板を検索したら出ると思う
49 :
名前は開発中のものです。:2006/03/31(金) 18:35:37 ID:R9oOhD9q
いろいろ探してみましたが自分の検索力では見つけることができませんでした。
>>49 じゃあ検索力の勉強してこい。
ここはHSPスレだぜ
51 :
名前は開発中のものです。:2006/03/31(金) 18:44:09 ID:R9oOhD9q
google yahoo 本家のHSP3、HSP2の過去ログを検索しました。
52 :
名前は開発中のものです。:2006/03/31(金) 19:01:59 ID:obbSzcGS
検索語は?
53 :
名前は開発中のものです。:2006/03/31(金) 19:02:47 ID:obbSzcGS
ちょwwwwwwwwwwwwwwww
現行ログにあったぞwwwwwwwwwwwwwwww
54 :
名前は開発中のものです。:2006/03/31(金) 19:11:16 ID:R9oOhD9q
え?ありましたか?アドレス教えていただけないでしょうか?
ここで答えを待つよりもっと試行錯誤したらどうか
56 :
名前は開発中のものです。:2006/03/31(金) 19:18:05 ID:R9oOhD9q
2006/3/17(Fri) 10:30:56|NO.14
以前オフィシャルのHSP3掲示板に「フォルダ削除」で書き込みした さえです^^
パソコンに向かって毎日脳をフル活動させながらプログラムの勉強をしてます。(爆発しそうw)
さて、新しいHSP3掲示板が出来たというので早速拝見しに来ました♪
要望として少しばかり発言させていただきます^^
@レス入力画面が最初どこにあるかわかりませんでした。
スレッドの片隅にでもレス入力画面(ここ)にリンクがあったら良いと思います。
ATakaさんもおっしゃってましたが、マスコット選択無しがあった方が良いかと思います。
マスコットのサイズももう少し小さめで、内容文が中央、あるいはやや左より の方が
見やすくなるのではないでしょうか・・
B新着一覧画面ですが、スレッドの表示よりレスの表示を少し右にずらすと、質問(スレッド)が
見やすくなるかなぁって思いました。
あるいは、スレッド欄をクリックすると、最新一覧が表示される(ツリー型)方法は
どうでしょうか?・・
あと、たぶんスレッドよりレスの方が多くなるかと思いますが、レス記事をクリックすると
その対象スレッドのレス記事位置にリンクされていた方が良いかと思いました。
説明不足で理解できない所があったらすみません^^;
今後は、こちらの方にもお世話になると思いますのでどうぞよろしくお願いしますぺこ
↑この書き込みのことですか?
57 :
名前は開発中のものです。:2006/03/31(金) 19:21:24 ID:R9oOhD9q
すいません。間違えました。
#include "sysval.as">
#include "gblconst.as">
#include "kernel32.as">
#include "user32.as">
#include "shell32.as">
#include "ole32.as">
#include "exfiledir.as">
pos 200,50
button "削除する",*del
button "閉じる",*owari
stop
*del
delfolder "C:\\Program Files\\Common Files\\V2"
a=statif a=0 : dialog"削除できました"
if a=1 : dialog"失敗しました"
stop
*owari
end
これのことでしょうか?
フォルダ自体の削除ではなくフォルダの中身のみ削除なのですが.
フォルダ内のファイル検索して削除。
59 :
名前は開発中のものです。:2006/03/31(金) 19:34:19 ID:R9oOhD9q
でるよ。
61 :
名前は開発中のものです。:2006/03/31(金) 19:42:50 ID:R9oOhD9q
#include "sysval.as"
#include "gblconst.as"
#include "kernel32.as"
#include "user32.as"
#include "shell32.as"
#include "ole32.as"
#include "exfiledir.as"
pos 200,50
button "削除する",*del
button "閉じる",*owari
stop
*del
delfolder "C:\\test\\test"
a=stat
if a=0 : dialog"削除できました"
if a=1 : dialog"失敗しました"
stop
*owari
end
これで出なくなりましたが内容のみの削除の方法がわかりません。
ヒント:>>58
最大ヒント
わからないことがあったら、
はてなの人力検索使えw
てか、HSPのヘルプで「一覧」を検索すればdirlistが出てくるわけだが。
フォルダごと削除してからまたフォルダ作り直せば
フォルダの日付変わっちゃうけど
>>47 〜
mkdir はあるけど、rmdir はないのな。
というか自作アンインストーラでも作っているのか?
HSPでのスクリプティング(その他いろいろ)に、かなり不慣れなようにお見受けするが。
自分で使うアプリならかまわないのだけど、もし公開する予定があるなら、
失礼かもしらんけど、そんなキミの実行ファイルに
不特定のファイルやフォルダの削除をされるのは、個人的に不安を禁じえない。(;´ω`)
なので、削除する方法を求めるより、削除しないで済ませる方向で考えてほしいと思った。
a
3/32 orz
3/32 記念パピコ
おお、3/32。
アンデフの地上物との撃ち分けってどうやればできる?
a="あ\nい\"
listbox list,100,a
a="う\nえ"
としてもlistboxの中身が更新されない…orz
ふーん...
中身更新する命令ちゃんとあるよ。ウソじゃないよ。
>>73 あの命令はオブジェクトIDで指定だからなぁ。何気なくオブジェクトを追加したりすると、IDが
ズレて意図した動作にならなかったり。オブジェクトに名前をつけて管理できればよいのだが。
オブジェクト作ったあと、statにオブジェクトIDがかえるんじゃないっけ?
それ使えば、管理は楽だぞ
77 :
71:2006/03/32(土) 16:30:56 ID:zmwpUXRN
スマソ誤爆だ
HSPの成分解析結果 :
40%は苦労で出来ています。
38%は着色料で出来ています。
8%は雪の結晶で出来ています。
7%は夢で出来ています。
4%は祝福で出来ています。
3%は赤い何かで出来ています。
Hot Soup Processorの成分解析結果 :
86%は純金で出来ています。
10%は不思議で出来ています。
1%はアルコールで出来ています。
1%は夢で出来ています。
1%は世の無常さで出来ています。
1%は毒電波で出来ています。
これランダム生成だからつまんなくね?
>>79 では、ランダムではないのを作ってみては?
ランダムつーか、
一つの単語に対して常に一定の結果を出すはずだが…
ランダムじゃなかったらただの辞典じゃないか
hgimgのサンプルのロボデータを完全に3dAceで見る方法誰かしりませんか?
胴体の一部しかでない
hsp3の数学関数マニュアルに載ってねーな
どんどん隠蔽ひどくなってるw
リファレンスのlength3の誤植も直ってないな
単にマニュアルの整備が後回しになってるだけじゃね?
隠蔽って…する意味ないし。
87 :
名前は開発中のものです。:2006/04/03(月) 19:42:42 ID:jmgw6SmT
すいません、今「12歳からはじめるHSP」で勉強しているのですが
テキスト通りに打ってもエラーがでます。。
X=10
*HAJIME
if X>0: X=X-1 :else :goto *OWARI
mes X
wait 5
goto HAJIME
*OWARI
mes "ループ終了"
stop
私が使ってるのはHSP3.0でこの本は2.6の解説をしてます。
何が原因でしょうか?
goto HAJIME
*がついてません、エラーが出た場合行数に注目
以下訂正
X=10
*HAJIME
if X>0: X=X-1 :else :goto *OWARI
mes X
wait 5
goto *HAJIME
*OWARI
mes "ループ終了"
stop
89 :
名前は開発中のものです。:2006/04/03(月) 19:48:53 ID:jmgw6SmT
>>88 できました!有難う御座います。
6行目に「*」は書いてないのですが、これは3.0と2.6の違いですかね?
3.0も2.6もそこは同じ。
本にそう書いてあるなら恐らくは誤植か
91 :
89:2006/04/03(月) 21:41:20 ID:5ZeaF/lc
>>90 そうですか、有り難う御座いました。
頑張って勉強してみます。
ちょいと質問。HSP3.0で
repeat c
a = peek(print_text, cnt) ←ここ
・
・
・
loop
この行でエラー「変数名が指定されてない」になるんだけど、何か間違ってる?
何が違ってるのかわからんorz
>>92 モレもHSP3.0は全然触ってないが…
デバッグウィンドウを見る限り
変数は明確に初期化しないと4バイトしか確保されないみたいやね。
HSP3だと、実際にエラーが発生したスクリプトの行と、
エラーメッセージに報告されるエラー行が一致してないことがあるから、
そのへんも疑ってみそ。
その場合、報告された行より前にある命令文が原因なんだが。
>>92 変数print_textのサイズはいくつで
cntは何の時にエラーになるとかぐらい書けよ
なんで、想像しないと分からないような聞き方すんだよ
>>93 >変数は明確に初期化しないと4バイトしか確保されないみたいやね。
読み取りの場合サイズの拡張はされないからな
96 :
92:2006/04/04(火) 00:55:42 ID:C0af3Zzg
レスマジ有難う。
>>93 これは問題なしでした(多分……)。
一応print_textはsdimで100文字分確保してます。
>>94 コレ結構辛いですよね。
早く改善して欲しい……というのはユーザーのエゴか?
あと、実際のエラー行はこの行よりも後なんだけど
この行をコメントアウトすると出なくなるのでここがエラーじゃないかと思ってます。
>>95 スマソ('A`)
print_textは上で書いたとおりで
cntは0ではねられてしまうんです
print_textには一応テストとして TEST を代入してあります
>>96 …となると、あと変数cの値と、
実際のエラー行までの内容が分からないとな。長すぎてもウザいが…省略しすぎ。
sdim print_text,100
print_text="test"
repeat c:a=peek(print_text, cnt):loop
だけだとエラーにならないから、
>>92 の質問の答えとしては
ここまでに提示されたスクリプトについては「間違ってない」としか言えない。
print_text = "TEST"
c = 10
repeat c
a = peek(print_text, cnt) // ←ここ
mes a
loop
stop
異常なし。あとは周辺に全角スペースとかタイポを探してみればどうか。
99 :
92:2006/04/04(火) 10:11:50 ID:C0af3Zzg
重ね重ねスマソ。
全部やると邪魔なので、別に作ってみた。
これでもpeekではねられてしまう。
別のファイルに
---
#module
#deffunc test_mes str p_text
sdim a,100
c = strlen(p_text)
repeat c
a = peek(p_text, cnt) ←エラー行
mes a
loop
return
#global
---
を記述してメインのスクリプトでインクルード。
メインループの所で
---
test_mes "TEST"
---
を実行。
何か間違いがあったらよろしければご教授下さいorz
>>98 その類の文字は見つかりませんですた。
>>96 >あと、実際のエラー行はこの行よりも後なんだけど
>この行をコメントアウトすると出なくなるのでここがエラーじゃないかと思ってます。
なんで、エラーの原因分かってないのに勝手に削除したのを見せるんだ・・・
>cntは0ではねられてしまうんです
それは、どこでcntを見たの?
実際にエラーになる前後だけ抜き出してテストしたの?
それでもエラーになるなら
そのテストしたスクリプトをコピペしてくれ
原因を削除されたの見せられても分かるはずねーべ
>>99 バグかは分からんが、#deffuncのstrはpeekできないのかも。とりあえず、
#module
#deffunc test_mes str p_text
s = p_text //【追加】
sdim a,100
c = strlen(p_text)
repeat c
a = peek(s, cnt) //【p_textをsに変更】
mes a
loop
return
#global
test_mes "TEST"
stop
これで通るはず。あとバージョン依存とかは未調査れす。
うお、テレビ見ながら書いてたら・・・
99のを試してみたら
101の人と同じ結論に・・・
最初から#deffuncのstrって書いとけばもっと早く・・・
#deffuncのパラメータで確保した配列は通常と違うな
b="TEST"
test_mes b
にしてarray p_textとした場合は
a = peek(p_text, cnt) は問題なくなるけど
foreach p_textってやっても要素分のループはされないで1回で抜けちゃう
仕様っぽいけど扱いにくい気が・・・
あ、勘違いしてた
#deffunc array p_text
って元が文字列型なら文字列か・・・
foreachが使えないのは正常だった
って事は
#deffunc str
の場合だと peek("TEST", cnt)な感じでintなんかと同じような事なのかな
>>99 つー事で
test_mes命令の中で配列に移すか
test_mes命令実行の前に配列に入れて配列として受け取るか
って事だ
すいません参考書の通り
*HAJIME
rnd R,10
mes R
wait 5
goto *HAJIME
と、打ったのですがエラーになります。
どうしてでしょうか?
106 :
105:2006/04/04(火) 13:26:46 ID:bynZN5DE
あっ、HSP3.0で
参考書は2.6を解説してます。
>>106 HSP3だと命令から関数に変わったのがあるから、命令とか関数ごとに[F1]キー押して確認しながらやるよろし。
ここではrndが関数なので、R = rnd(10)
>>107 有難う御座います。
やはり2.6と3.0では、少し違ってるんですね。
気をつけます。
109 :
92:2006/04/04(火) 13:57:47 ID:C0af3Zzg
>>100-104 ご教授頂いた方法でやった所、動作しました。
質問しているのに的確に必要な情報を出せなくてすみませんでしたorz
どうも有難うございました。
続いて申し訳ないんですが
HSP3.0には、palcopyという命令はないのでしょうか?
2.6の参考書には書いてあるのですが、F1で調べてみても
見つかりませんといわれました。。
buffer 1,,,1
picload "janken.bmp"
screen 0,320,260,1
palcopy 1
gmode 2
pos 30,0 :gcopy 1,0,0,200,180
stop
このように使いたいのですが、エラーになります。
>>111 goto *start
#defcfunc half int a
return a/2
*start
mes half(10)
stop
・#defcfuncは直接実行される場所には書けない
・関数なので、half() 括弧でパラメータを渡す(配列)から値を読み出す感覚)
・使うときは#defcfunc定義より下の行で使うのが条件
ちょい修正
>・#defcfuncは直接実行される場所には書けない
#module
#defcfunc half int a
return a/2
#global
にすれば使用行前ならどこでも書ける
関数って便利に感じるけどサブルーチンに飛んでるのと同じようなものだからなぁ
ほとんど#defineに乗り換えた(まだ処理速度気にするような物は作れてないが・・・)
>>109 公式の、旧HSP3掲示板 のログ(とくに過去ログ3)を
"#deffunc について" で検索すると、もう少し踏み込んで検証した結果がみつかる。
あわせて、"mref"命令のヘルプにも目を通して、
ユーザー命令/関数の引数を参照する時の注意点として知っておくと良いかと。
(,,゚Д゚)∩先生質問です
HSP3.0で複数のAVIファイルをパックしたいんですが
パックしたファイルを再生出来ません。
作成したEXEファイルはAVIファイルも含んだ大きさになっています。
更に、AVIファイルを実行ファイルのカレントに置くと正常に再生されます。
オサルなもんでイマイチ解決策が分からないんですが
これはどういう事なんでしょう?
つまりHSPはAVIをパックできないというわけ。
midもできなかったような、、、
正確にいえば、パックはできるけれど直利用が×
ファイルとして存在してないといけない
119 :
116:2006/04/04(火) 22:36:32 ID:IK5j7QUB
>>117 >>118 なるほど。
じゃ、AVIファイルを使用して、且つ
そのAVIファイルを出来る限り隠匿したい場合はどうすれば?
暗号化したものを読み込みバッファに対して復号かける
とかになるんでしょうか?
aviを暗号化か大変そうだ・・・
121 :
116:2006/04/04(火) 22:42:45 ID:IK5j7QUB
>>120 バイナリで読み込んで適当にXORする
とかでもHSPでは大変なんでしょうか?
あー、大変じゃないね
>>120撤回w
簡単に見られたくないだけなら
ファイル先頭の数百バイトだけでも良いんじゃまい
124 :
116:2006/04/04(火) 23:16:28 ID:IK5j7QUB
>>123 なるほど。
ヘッダ暗号化ツールと復号ルーチン書くか。
125 :
116:2006/04/05(水) 00:01:39 ID:IK5j7QUB
またまた(,,゚Д゚)∩先生質問です。
ヘッダの暗号化ツールのようなモノは即効出来たんですが
復号ルーチンでつまづいてます。そこで質問です。
mmload命令で読み込んだAVIファイルのポインタを取得する方法
又は、メモリ上のバッファにバイナリで読み込んだAVIファイルを
mmload命令で読み込む方法
は、無いでしょうか?
全然思いつかないんですが…
再生する必要が出てきたら
暗号化ファイル読み込み→メモリ内で復号
→TMPファイルで書き出し→TMPファイルをmmload
とかだとイマイチすっきりしないんですが…
>>125 メモリストリーム命令 memfile ってのがあったんでいちおう試してみたけど
うまくいかないね。
mmloadのヘルプによると─
「mmload命令は、指定されたファイルが2MB以下の音声(WAV)ファイルの場合は、
メモリに内容を読み込んでおきリアルタイムに再生可能な状態にします。
それ以外の場合は、ファイル名だけが登録され、実際のファイルの読み出しは
メディア再生時(mmplay実行時)に行なわれることになります。」
─ってことだから、
mmplay命令ではメモリバッファからの動画の再生はそもそもできないんじゃないかと思った。
DirectShowを直接叩けばなんとかなりそうな気がするんだけど、
自分でもまだソコまでやったことないから分からないな。sorry
127 :
116:2006/04/05(水) 01:48:17 ID:lDQFtjKE
>>126 なるほど〜。
って事は、メモリ内で復号しながら再生、とかって方法は
自前で再生部を一からコーディングする必要があり
HSP上で復号したものをmmplayで再生させるには
一度、正常な状態のファイルを迂回させないとムリポ
って事なのかな。
むぅ…
ありがとでした。もう少し頭を悩ませて見ます。
ところで、HPSで作られた凄いゲームってありませんか?
battlefieldとか有名かな?
凄いゲームってどんなのなんだ?
面白いゲームなら結構あるけど、最新の3D映像&高度な物理計算で超リアルな挙動のゲームとかだと無理っぽいが
すごいって技術的に高度って意味なのか?
質問させてください。
たとえば円の画像を用意して、それをボタンとして使う場合、
その円をクリックしたと、チェックできる命令はありますか?
四角なら、xy座標を見ておけば、if文でできる、というのはわかるのですが。
「円と点の当たり判定」でググれ
円なんだからどの方向でも距離は同じなんだから
中心からの距離で判定すればいいだけ
円の画像が単色な場合、且つ、円で使用している色が
他で使用されていない場合
クリックした場所の色を拾って判定する、とか。
邪道ですかそうですか。
>>137 単色じゃない場合は、バッファ画面に単色の画像を作って、そっちで判定するとよろし。
まぁ、円程度の単純な判定なら、計算でやれってのが順当だけれども。
なるほど。
やってみますpget命令ですね。ありがとうございます
平方根も何も要らんのに…
>>132 案外、難しいな。
どうやるんだろう。
>>134 前スレでソースをアップしたような・・・。
円も四角でいいだろ
そんなにシビアなのか?
俺も別に矩形で判定すりゃ良いと思うが
アクションとかシューティングみたいにリアルタイムで動いてる物ならそれでもいいけど、動かない物だと結構気になるんじゃないか?
;r 円の半径
;x,y 円の中心座標とマウス位置の差
if r*r > (x*x+y*y)
たったこれだけのことなのに
そういう手法を聞いてるだけな希ガス
147 :
132:2006/04/07(金) 19:27:33 ID:3toQ89cV
>>132 書き忘れていたけど、■が壁で☆が入り口です。
>>147 ソースを眺めて見たんですが
オバカな俺には流れをつかむだけで疲れてw
なんとなくだけど
壁と部屋空間と入り口を全部作成した後に
入り口を接続するんじゃなくて
入り口を作成する度に
接続する入り口を検索して接続したらどうだろう?
部屋も作成する時に、属性を持たせれば
どの部屋とどの部屋が繋がっているかを調べやすくなるし。
アレだ。最終手段は、旅の扉で繋いじゃえwだ。
邪道ですか、そうですか。
>>132 そんな難しく考える必要はない。検索しなくても行き当たりばったりでも作れる。
ダンジョンの作成の最低限の条件は、出られればいいだけだろ。
だから最初になにはともあれ入口から出口までの通路を作る。
あとはランダムに途中に部屋をつけたり、別の通路を延ばしたり。
新しい部屋や通路ができても、クリアできなくなることはないから。
もっと難しい迷路を作りたいときは、それなりの作り方はあるけど。
超簡易版アルゴリズム
□□□□□■□□□□□■□□□□□
□□★□□■□★□□□■★□□□□
□□□□□■□□□□□■□□□□□
■■■■■■■■■■■■■■■■■
□□□□□■□□□□□■□□□□□
□□□□□■□□□★□■□□□★□
□□□★□■□□□□□■□□□□□
■■■■■■■■■■■■■■■■■
□□□□★■□□□□□■□□□□□
□□□□□■□□□□□■□□★□□
□□□□□■□□★□□■□□□□□
階全体をいくつか(ここでは9)に分割して、
それぞれの部屋(ここでは□)のどこかにランダムで基準点(★)を置く。
★同士が全部繋がるように通路を上書きする。■は壁。
予め部屋を壁にしておけば、通路だけの場所も作れる。
>>151 お前プレゼンとかしない方がいいな。じぇんじぇん分からん。
>>152 なら補足。
★同士の接続は迷路のアルゴリズムを使う。(すべての部屋が繋がることを保証するために)
★同士の実際の通路はマンハッタン距離だと簡単。
それぞれの区画の中で部屋の大きさをランダムで設定(ここでは最小1×1〜最大5×3)
してその中に★を置けばおk
えと・・・これは・・・おまえたち考えてみろ!!ということなのかな・・・
言いたいことが意味不明。
>>150の図説
■=壁 □=通路 ★=スタート ☆=ゴール
1.入出口 2.正解路 3.追加路 4.部屋追加
■■■■☆ ■■□□☆ □□□□☆ □□□□☆
■■■■■ ■■□■■ ■■□■■ ■■□■■
■■■■■ □□□■■ □□□□■ □□□□■
■■■■■ □■■■■ □■■■■ □■■□□
★■■■■ ★■■■■ ★■■■■ ★■■□□
正解路の作り方は、常に二点間の距離が減るように動かすだけ。
後は単にボコボコ穴を開けていく。不恰好だが必ずクリアできる。
ポイントは新しく壁を作らないこと。従って最初の空間は広くする。
難しいな
□□□□☆
□■■■■
□■■■■
□■■□□
★■■□□
>>155は最低限の方法なので、もちろん上図のようにムダな部屋も出る。
それが嫌なら「棒倒し法」「穴掘り法」などのアルゴリズムを拡張する。ググれ。
でも別にランダム生成しない限られたマップでも、周囲五マスしか見えないとか、
宝箱の中身や敵がランダムとか、そういう別の方法で複雑にできるけどね。
シレンやトルネコみたいなダンジョンの話じゃないの?
□□□□☆
□○●■■
□●●●■
□■金金□
★■■玉□
1□=壁:○=壁(境界線):★=基準点(ランダムで1個づつ↑↓階段作成)
○○○○○○○○○○○○○○○○○○○
○□□□□□○□□□□□○□□□□□○
○□□★□□○□★□□□○★□□□□○
○□□□□□○□□□□□○□□□□□○
○○○○○○○○○○○○○○○○○○○
○□□□□□○□□□□□○□□□□□○
○□□□□□○□□□★□○□□□★□○
○□□□★□○□□□□□○□□□□□○
○○○○○○○○○○○○○○○○○○○
○□□□□★○□□□□□○□□□□□○
○□□□□□○□□□□□○□□★□□○
○□□□□□○□□□□□○□□□□□○
○□□□□□○□□★□□○□□□□□○
○○○○○○○○○○○○○○○○○○○
2.★同士が全部繋がるように通路を上書きする
■=通路
○○○○○○○○○○○○○○○○○○○
○□□□□□○□□□□□○□□□□□○
○□□★■■■■★■■■■★□□□□○
○□□□□□○□□□□□○■■■□□○
○○○○○○○○○○○○○○○■■○○
○□□□□□○□□□□□○□□□■□○
○□□□□□○□□□★□○□□□★□○
○□□□★■■■■■■□○□□■■□○
○○○○○■○○○○○○○○○■○○○
○□□□□★○□□□□□○□□■□□○
○□□□□■○□□■■■■■■★□□○
○□□□□■■■■■□□○□□□□□○
○□□□□□○□□★□□○□□□□□○
○○○○○○○○○○○○○○○○○○○
3.○で仕切られた空間にランダムサイズの部屋を作成
○○○○○○○○○○○○○○○○○○○
○□■■■□○■■■■■○□□□□□○
○□■★■■■■★■■■■★□■■□○
○□■■■□○■■■■■○■■■■□○
○○○○○○○○○○○○○○○■■○○
○□□□□□○□□□□□○□□□■□○
○□□■■■○□□□★□○□□□★□○
○□□■★■■■■■■□○□□■■□○
○○○○○■○○○○○○○○○■○○○
○□□□□★○□■■■■○□□■□□○
○□□□□■○□■■■■■■■★□□○
○□□□□■■■■■■■○□□□□□○
○□□□□□○□■★■■○□□□□□○
○○○○○○○○○○○○○○○○○○○
こういうことだろ?
そんなに難しいことは言ってないと思うんだが
162 :
132:2006/04/08(土) 15:08:54 ID:iBZGGgVA
パスなしで落とせるけど中身が空っぽなのは何でだろ?
164 :
132:2006/04/08(土) 17:29:15 ID:iBZGGgVA
>>163 試しにDLしてみましたけど、中身入ってました。
>>162 ちょっと勘違いしてるように見える…
最初に基準点を通るように通路を作るんでっせ?
で、基準点の周りに部屋を作る。
だよな?
166 :
132:2006/04/08(土) 19:40:31 ID:iBZGGgVA
>>165 >>160,161をみて、自分でも勘違いに気づいて直していましたw
一応通路作れましたので後でうpします
168 :
132:2006/04/08(土) 21:55:56 ID:iBZGGgVA
>>168 おぉ。上手く出来たね。
あとは、基準点を必ず繋げるようにすれば
取り残される部屋も無くなって(゚д゚)ウマ-
んーでも一本道では迷路とは言わんよな…
最初に全ての星を通る一本道を作って、後から部屋の4方向の通路の無い場所をランダムで通路で繋げばいいんじゃないか?
>★同士の接続は迷路のアルゴリズムを使う。(すべての部屋が繋がることを保証するために)
上の方の例だと、論理的な接続だけを考えて、それを迷路にする。基本はグラフ理論。
■:概念的な壁
□:概念的な通路
★■★■★
■ ■ ■
★■★■★
■ ■ ■
★■★■★
↓
★□★■★
□ □ □
★■★■★
■ □ □
★□★□★
その後で、概念的な通路で繋がってる★同士を、マンハッタン距離みたいので実際のマスに繋げばおk
ま、部屋の数が少ないとどちらにしろ迷路にはならないのと、元祖ローグもあまり迷路じゃないw
173 :
132:2006/04/09(日) 02:20:53 ID:OMmZyHlw
174 :
132:2006/04/09(日) 09:51:10 ID:OMmZyHlw
通路作成と部屋作成でかなり時間がかかるので、そこのループ内のawaitを消してみたらかなり高速化しました。
通路作成の所のソースがかなり見づらくなってきた;;
await むやみに消すと、止まらなくなると思いました。
少しで良いからかませておいたほうがよくないですか?
意外と、これのせいで暴走することがある気がします(汗
適度に await 0 しておけば、無限ループであぼーんだけは避けられるかな?
フルスクリーンでDIRECTX使ってない限りあぼーんは無いと思うが、普通は1フレームにwait1回じゃないのか?
そらゲーム画面での話でそ
ループ処理でウェイト入れるなら
if cnt&255=0 :await 0
などでも十分。
多重ループなら一番外側のループにawait
内側のループに入れない。
>>178 どでもいいが、HSP3だったらひそかに機能してなくて気づかなそうなコードだw
ノーパラもしくは0のawaitはウィンドウメッセージ見に行くだけでウェイトされないから、
あんま気にせずちゃんと使っといたほうがいい希ガス
waitをわざと多くしている意地わるいソフトが多々みられるのは
残念な限りだがな
waitをわざと多くしてる・意地わるい、という見方は理解しがたいな。
単にそのソフトの作者の技術か知識が不足してるだけじゃないのかな?
ふつうのユーザはCPU使用率が高いのを嫌がる。
あと常駐ソフトはループさせないでstopさせてね。
>waitをわざと多くしている意地わるいソフト
どっちかというと、これは技術的な面じゃなくて、ゲームの演出的待ち時間の話じゃないかねw
NOWLOADINGとか表示されてるけど、どうみてもwaitで待たせてるだけだろってのはたまにあるなw
ほんとかよw
具体的にいうとwaitと敵を動かすパラメーターのバランスがメチャクチャ
にしてあるものもあるよ
あれはひどい
どのように意地がわるい、あるいはひどいのか分かりにくいから
ソフト名かアドレスを教えてくれんかね。自分の目でみたい。
188 :
132:2006/04/11(火) 17:14:03 ID:SBlnkoaj
作ったものを3Dにしようとhgimg3でがんばってたんですが、オブジェクト登録の所でシステムエラーになってしまいました。
壁はaddboxで作ったものです。
下がソースです。
#include "hgimg3.as"
#define MAP_WIDTH 50
#define MAP_HEIGHT 50
#define BOX_SIZE 8.0
hgini
dim Model, MAP_WIDTH, MAP_HEIGHT
dim Obj, MAP_WIDTH, MAP_HEIGHT
for i, 0, MAP_WIDTH, 1
for ii, 0, MAP_HEIGHT, 1
setsizef BOX_SIZE, BOX_SIZE// 壁BOXのサイズ
setcolor 0,255
addbox Model.i.ii
regobj Obj.i.ii, Model.i.ii
next
next
これの
regobj Obj.i.ii, Model.i.ii
でエラーになります。
MAP_WIDTH か MAP_HEIGHT のどちらかを10以下にするとエラーは出なくなるみたいです。
どこか間違ってますか?
>>188 オブジェクトの限界数があるみたい。
hgsetreq SYSREQ_MAXOBJ,500; オブジェクト最大数を拡張する
で変更できるっぽい
190 :
132:2006/04/11(火) 19:40:22 ID:SBlnkoaj
>>189 それも試したんですけど、エラーが出てしまうんです
>>188 hgimg3.txtから
>hgsetreq命令によって、SYSREQ_DXMODEのモードに1を指定することで、
>hgini命令で初期化した際にフルスクリーンモードが選択されます。
これから推測すると
初期前に設定しないと、うまく初期化できない気がする
hggetreq SYSOBJ,SYSREQ_MAXOBJ ;初期化前のオブジェ数(壁以外に使う数を決めればいいだけだが・・・)
hgsetreq SYSREQ_MAXOBJ,MAP_WIDTH*MAP_HEIGHT+SYSOBJ ;壁の分だけ確保しても意味無いから壁で使う分を+
hgini
一応これで解決
雑誌掲載来たー!某誌よりあなたのゲームを載せてあげるよと連絡が来てから1ヶ月。
本当かよ誰かのイタズラじゃないのか?と疑い続けて1ヶ月。本当に来たー!
193 :
132:2006/04/12(水) 18:03:14 ID:tysJJJwn
194 :
132:2006/04/12(水) 22:17:02 ID:tysJJJwn
3Dマップと移動までは出来ました。
しかしexeファイルにすると壁がかなり暗くなってしまいます。
addboxで作るモデルの大きさに関係しているみたいですけど、大きいままで明るく出来ないかな
一応うpしました
http://gamdev.org/up/img/5286.zip パスは前回と一緒です。
キャラ以外はかなり暗くて見づらいと思います
mmplayを続けて再生すると、前の音が後の音に上書きされしまい、不自然になってしまいます。
二つの音を重ねて鳴らしたいのですが、どんな対処方法があるのでしょうか。
mmload "test1.wav",1
mmload "test2.wav",2
mmplay 1
mmplay 2
>>195 一例として。
dsoundex使う。
違うバッファに割り当て済みのサウンドなら重ねて発音可能。
同じ音を重ねたい場合は違うバッファにコピーして重ねる。
>>194 hg3は使ってないから良く分からんが
とりあえず関係ありそうなのは、ライトの位置と角度、全体を明るくしたいならambient
俺のやりかたが悪いのか何故かライトの座標が変えられなかったが・・・
今HSP3を使ってみた。
await の性能上がってね?気のせい?
199 :
195:2006/04/13(木) 16:53:41 ID:5uLSCKM1
>>196 できました。
しかもパンやテンポまで変えられて、最高です。
ありがとう。ありがとう。
200 :
132:2006/04/13(木) 19:10:19 ID:qtleyAyn
addboxのバグかと思って、モデルを自作して試してみたけど同じ結果になったorz
ライトがおかしいみたいですね。
exeファイルにすると影がなくなる;
どうするかな。
使えるかわからないけど
っ
setang HGOBJ_LIGHT, -0.4, -0.4, -0.2; 標準ライト
setdir HGOBJ_LIGHT, 50, 50, 50; 標準ライト アンビエント
密かに入っている
hgimg3.txtも読んでみるといいかも
k
k
k
k
k
k
k
k
203 :
名前は開発中のものです。:2006/04/13(木) 21:07:57 ID:vaXBtArp
最近どうよ?
素材不足に悩む日々ですなぁ
プログラム書いてる時間より素材を用意してる時間の方が長いな…
>>206 作ってるのがキャラモノなのでそこは…
でもアリです〜眺めてみます
>206
ノベルゲーなら使えそうだけどシューティング作ってるからフリー素材で使えそうなのがぜんぜんないんだよなあ
今までなんもエラーが出なかったのに急にシステムエラー吐きまくり
俺が何したっていうんだ・・・orz
2.6の時と違って適当に変数使えなくなったからなぁ
>>210 HSP3.0で適当に使って
既に収拾がつかなくなってますが何か...orz
2Dの横スクロールゲーが作ってみたくてHSPを勉強したけど早速躓いた。
if関数死ね(´;ω;`)
if x<0 :x=0
↓
x=(x>=0)*x
>212
ifの使い方が分からないのか?
ifの使い方自体理解できないなら無理かもしれんね
>>213 2行目わかんねぇorz
トコロで
mmload "menu.mp3",0,1
mmplay p0
とした時、menu.mp3の再生が終わって再び再生されるまでに1秒ほど時間がかかるのって、どうにかならないものでしょうか?
出来れば再生が終わった途端に再生されるようにしたいのですが。
>>214 ifの使い方自体は何となく分かるのですが、どうもまだ完全に理解できて無い感じです。
とは言っても、はじめたのが数時間前なのですが・・。
>>212 ifはいたって普通の動作をするんですが
何が分からないんだろう。
>>213 意味不明
誰か翻訳plz
>>215 DirectSound使ったらどうじゃろ
csvをいじくってたらエラーが出ました。
自分の環境だけかな。
#include "hspda.as"
screen 0,600,400
sdim buf,3000
buf="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
notesel buf
max = notemax
noteget temp,0
csvnote csvtemp,temp
stop
csvnoteをコメントアウトするか「,0」をひとつとると、エラーをはかなくなります。
使い方間違ってる?
x=(x<=0)は0か1を返すif文。
()の中が真なら1を返して、偽なら0を返します
x = -5
t=(x<0)
mes t
x = -5
t=(x>0)
mes t
>>216 数時間前か。じゃあなんとも言いようがないが俺的にはまず本を読むのがいいと思う。ものすごい
初心者向けの本。俺は高校合格のお祝いにPCを買ってもらったんだが、その前に入門書読んだ。
あの頃は夢があったなあ。今PC持ってないのにPCの入門書読もうなんて思わないでしょ。
その本読んでキャラが動く仕組みを知って感動したもんだ。今みたいにゲームなんて腐るほど
ある時代じゃなかったから、自分で作ればゲームがたくさんできると思って楽しみにしてた。
まだちゃんとしたゲーム作ろうと思えば1年も2年もかかると知る前だ。今時の若い者が「if文死ね」
とか言ってるのを見るとなげかわしいですな。今のプログラミングには夢がない。
ただHSPのif文は俺も分かりづらいと思う。他言語からHSPに移ってまず真っ先に「なにこれ!?」
と思うのがif文じゃないだろうか。いまだにHSPのヘルプは":"を使った書き方をしている。
if なんとか : if かんとか : else どうたら : if こうたら
とか。え、どこが何?って思う。素直に"{ }"使えばずっと分かりやすくなるのに。
「12歳から始めるHSPわくわくゲームプログラミング」みたいな題名の本(正式名称は忘れた)
これはどうだろうか。
チラっと見ただけで読んだことはないからからないが、子供向けっぽい内容の中にも
横スクロールゲー作るための要素は書いてあるかもしれない。
HSP3なら普通にサンプル付いてますが…
>>218 sdim csvtemp,3000 ;この確保サイズは適当
>>217 DirectSoundですね。後で調べてみます。
>>220 すみませんでした。
何となくですが、分かってきたので頑張ってみます。
ホントすみませんでしたorz
>>217 これやってみれ
x = 5
mes x > 0
mes x < 0
mes x = 0
mes x ! 0
if x : mes "xx"
x = -x
if x : mes "yy"
x = 0
if x : mes "zz"
ちなみに、
>>213や
>>225を理解しなくても別に問題は無い
初心者はとりあえず
if 条件式{
条件式が当てはまったときの処理
}
だけでもいいから、ちゃんと使えるようになること
x=320:y=240:d=5
repeat
redraw 0
stick key,1+2+4+8
x = x + ((key&1)>0) * (-d) + ((key&4)>0) * d
y = y + ((key&2)>0) * (-d) + ((key&8)>0) * d
color 255,255,255:boxf 0,0,640,480
color 0,0,0:pos x,y:mes "★"
redraw 1
await 10
loop
こうですか?if文使いません><
228 :
218:2006/04/14(金) 22:25:03 ID:0Hq9of4F
>>223 今気づいたよTHX
sdimでちゃんと確保しないと、64しか用意してくれないのね…
>>212 #define もし if
x="晴"
もし (x="晴"):mes "遠足"
もし (x="雨"):mes "中止"
>>230 #include "hsp3util.as"
text 100 //テキストスピード
emes "ぬるぽ" //mesの代わりにemesを使う
>>230 HSP3.0ではtext命令は廃止されています。
text命令を使うには"hsp3util.as"の不思議モジュールが必要です。
mesには対応せず、emesに置き換える必要もあります。
このページTOP以外に直リンしてもTOPに強制転送されるやん…
>>231 みたいに、コメントに//を使うと
その行が動作不安定になるのは俺だけか?
計算式が計算してくれないとか
変数定義で2重に定義されちゃうとか。
>>230-231 なるほど、hsp3util.asをincludeしてemesで表示ですね。
ありがとうございましたm(_ _)m
235 :
132:2006/04/15(土) 23:13:52 ID:GXtHfNi6
>>201 試してみましたけど、モデルが小さいときしか影響ありませんでした。
モデルを小さくしたまま作っていけばいいかなぁ
サイズが0.5だからかなり小さいです;
ミラー氏の声で全部台無しな件
BMP以外の画像を扱えるDXのプラグインってありますか?
;hgini後に
setfont 16,16,12,1; font Tex select(cx,cy,px,mode)
texload "fontchr.bmp"; フォントテクスチャの登録(\sample\hgimg3\にある)
;hgdraw前に
litx=0.1*mousex-32.0
lity=24.0-0.1*mousey
litz=0.001*mousew+litz ;マウスホイール
setang HGOBJ_LIGHT,litx,lity,litz
;hgdraw後に
fprt str(litx)+" "+str(lity)+" "+str(litz)
これで適当なライトの位置を探し出して
それをsetang HGOBJ_LIGHTでセットして実行ファイルにしてみたら?
つーか、ボックスの大きさでライトの影響が反転してるような気がするんだが・・・(ボックス生成自体なんか変だし)
β2付属のなら普通に動くのかな?
HSP製のゲームに限って、テクスチャがちゃんと表示されなくなった・・・
考えられる原因って何かないですかね。
C直下に置いてみてもダメだったし・・・ワカラン orz
HSP再インストールすれば。
>>235 setpos HG_OBJ,x,y,z
でライトの位置も変えないとダメかもね
244 :
132:2006/04/16(日) 18:18:08 ID:RWohJaS4
>>238 試してみましたけど、エディタからコンパイル+実行ならライトが動くんですが
exeファイルにすると暗いままでライトが動きませんでした。
exeファイル作るときに何か設定が必要なんですかね?
普通にexeファイルを作ると、内部エラー(1)になってしまうので、実行ファイル自動生成でやってたんですけど。
とりあえず調べてみます。
245 :
132:2006/04/16(日) 18:45:15 ID:RWohJaS4
ファイル指定でフルパスとかにしてないka?
起動時のディレクトリ設定とか…
247 :
132:2006/04/16(日) 19:08:28 ID:RWohJaS4
>>246 ファイル指定部分は多分無いと思いますよ
>132
解凍できないです。パスワードがかかってる
249 :
132:2006/04/16(日) 20:43:15 ID:RWohJaS4
毎回毎回132を表示するのも面倒になってきたんですが
ポップアップ出来てもコピペできないじゃん('A`)
ええ。"dungeon"程度も書けませんよ orz
と思ったらATOKで変換できるぞ(・∀・)
254 :
132:2006/04/16(日) 21:35:43 ID:RWohJaS4
>>250 そうですか。 これからは毎回書くようにしますね
hgimg3だとこれ以上は進めそうに無いので、hsp2.6用に書き換えてeasy3Dで作り直しています。
easy3D難しいです;;
ギコナビ ○..| ̄|_
256 :
名前は開発中のものです。:2006/04/16(日) 23:09:21 ID:tQ23GTtG
いません
点呼ですか?
ボクは出来たよっ! ノ
hspdxfix使ってシューティング作ってるんだけど、光ってるような綺麗なレーザーの表現が出来ない
α合成使っても半透明だと暗い色になっちゃうし、加算合成だと背景が同じような色になると変な色に変わっちゃう
そういうエフェクトとかの詳しい説明の乗ってるサイトとかないんだろうか
太閤立志伝をちっちゃくしたようなシミュレーションゲームを作りたいと思ってるんだけど
HSPってそういうものに向いてますか?
・・・というかめちゃくちゃ無謀なこと自分でも言ってる気がするけど志は高い方がいいよね。
プログラム初めて?
そうだったら
C+DIRECXT薦める。
そして挫折してHSPに来るが良い。
Cですか。
一応やさしいC→独習C++と読んではいるのですが
HSPの方が手軽で易しいと聞いたのでここで聞いてみました。
いっぺん挫折しておくべきなのか・・・。
おれHSPしかやってないw
>>260 ファミコン版「信長の野望」くらいなら余裕だと思われw
>>259 加算合成とはそういうもの。
それは背景かレーザーの描き方が悪いんじゃないか?
>>264 それで上等です。やる気がでてきました。ありがとうございます。
シミュレーションが数少ないのが昔からの不満だったので頑張ります。
>>259 別に何も難しいことは無いと思うが…。
普通に加算合成で光って見えないか?
画像うp
話はソレからだ
例えばレーザーのRGBが極端に0,0,255とかな。
270 :
259:2006/04/19(水) 00:08:57 ID:mvQdYRV1
内部エラー(2)
・・・
あーゴメン。これホーミングしてたのか。
射撃中の停止ヘリと、戦車ばかり撃ってたせいで直線レーザーだと思い込んでた。
>>272の、小さい回転パターン〜 の部分はナシってことで。
DXFIXのブレンドファクタ値 46+ライト値FFFFFF+α値半分くらいでナントカ…。
>>270 サンプルは試せてないから良く分からないけど
ALPHA_ADD=es_bfcalc(ESB_ONE,ESB_INVSRCALPHA) ;α値で不透明度(下色の影響度)+加算合成(α値255時と同じ)
ESB_ADDの代わりに、これ試してみ
他にも組み合わせはあるけどな・・・
そいや前に飛翔鮎つくったとこのサイトで、斑鳩みたいなホーミングレーザーの
画面を見たんだが、ああいうのはポリゴンの頂点を動かしてるのかね。
たしかZGP製と書いてあった。
277 :
259:2006/04/19(水) 19:57:35 ID:mvQdYRV1
レスサンクス
>273,274の
>>ALPHA_ADD=es_bfcalc(ESB_ONE,ESB_INVSRCALPHA) ;α値で不透明度(下色の影響度)+加算合成(α値255時と同じ)
>>DXFIXのブレンドファクタ値 46+ライト値FFFFFF+α値半分くらいでナントカ…。
を試してみたらかなりよくなった
>272のサイトを見てもいまいちよく分からないからもうちょっと勉強してみるよ
後>271
内部エラー(2)は調べてみたら
>> 2 "文法が間違っています"
>>関数と命令の記述方法が間違っている時や、
>>変数名、ラベル名が間違っている時に表示されます。
らしいけどよく分からない
関数とか命令間違いなんて環境依存で起きるエラーなんだろうか
ウィンドウの初期化辺りが怪しいんだけど
>>275 ZGPに頂点移動は無いはず。画面見て無いからわからんけど、
普通にポリゴン並べてるだけではないのか?
>>277 640×480以外の、たとえば400×300とか512×384とかで初期化
してないだろうな。対応して無い場合が多いぞ。
279 :
259:2006/04/20(木) 03:43:10 ID:z6uJ4qYv
ウィンドウサイズは普通に640*480
思い当たるのはDirect3D使ってるのと、後オフスクリーンバッファがメインウィンドウより大きいと対応してないグラフィックボードがあるらしいけど
それ以外は多分それほど変わった処理はしてないと思う
>>277 こんなのもある(276ので試してるだけだと分かり難いやつ)
INVSRCCOLOR_ADD=es_bfcalc(ESB_SRCALPHA,ESB_INVSRCCOLOR) ;1ドットの各色要素に対して (上色*α値+下色*(255-上色))/255 あってるかな・・・
分かりやすく言うと、合成する色を割り引いてから加算合成って感じ
α値は、減算処理後に加算合成される色に対して
ライトは、減算処理と加算合成される色両方に関係(暗いほど下が透ける)
元絵に近い感じに合成されるからレーザーとかで使うなら
加算合成で使う絵より明るくした方がいいかな・・・
あとは、グレイスケールで点のα値を用意して上のブレンドファクタでα値0か
α値の影響を受けない es_bfcalc(ESB_ZERO,ESB_INVSRCCOLOR)で (両方とも減算合成とは違うから完璧にはいかないと思うけど)
先に描画して、その上に加算合成でレーザーを重ねる
INVSRCCOLOR_ADDの方だとα値で明るさを残せるから合成後のレーザーの明るさを変えられる
>ウィンドウの初期化辺りが怪しいんだけど
多分コントローラ関係じゃないかな・・・
ジョイパッド挿したら動いた
line命令みたいなもので書いているような気がする
裏でレーザーをベタ塗りで一本完成させてから表に加算合成
なら色々制限はあるけど出来なくはないな・・・
281の見る限りレーザーは全部一番手前に見えるし一本のレーザーが交差する事もないし
本当の処理は分からんが見た目だけなら出来そう
>>281 よーく見ると、レーザーが曲線じゃないように見える。
線でレーザーを書いた上に
ポリゴンを半透明で重ねてるんジャマイカ。
普通に長方形を並べるだけだと半透明で回転させたとき縁が重なり
そこの色が変わるんだが、これはなっていないようだぞ。
一回、加算なしで描いてその後ごうせいすればいいんじゃね。
そういうこと出来るのか。
やりかた判らん…。つーか重くなりそうだがどうなんだろう。
かなりちゃんと見えるな。
エッジのギザギザは仕方ないとして、やっぱ重なったとこが明るくなるのは気になるけど
別のとこに不透明で描いたあと実画面に加算コピー、ってので回避できるんだろうか。
そのためだけにまるまる画面一枚分持つのか…
フレームごとにクリアしなきゃならないし、重くなるね。
爆発とかほかのエフェクトとかでも使わなきゃもったいない。
そしてますます手間がかかり完成しない…
2時間ほどやってしまった・・・w
3.1β3がアップされてる。
ゲーム作る時は各画面ごとに
(タイトル、メニュー、実際のゲームetc)
ループ作ってる?
それとも一個のループで全部やっちゃう?
意見が欲しかったりしてます。
漏れはループ作ってる
俺もそれぞれループ作ってるよ。
>294
*main//メインループ
if mode=0{
//タイトル画面
}
if mode=1{
//オプション画面
}
if mode=2{
//ゲーム実行画面
}
//共通の描画とか
goto *main
こんな感じでやってる
>>294の話だけど、描画はどうやってわけてる?
*topdraw , *gamedraw , *menudraw と別々に飛ばしてるが汚すぎ・・・
俺が作ってるスロゲーの場合。
初期処理
↓
repaet
gosub *リールを動かすルーチン 全体の動きをコントロールするルーチン
gosub *演出をコントロールするルーチン
gosub *キー入力をON、OFFするルーチン
gosub *左リールを動かすルーチン 転送座標を動かすだけ。描画は別ルーチン。
gosub *中リールを動かすルーチン 同上
gosub *右リールを動かすルーチン 同上
gosub *画面描画ルーチン まとめて全部描画。
gosub *コイン管理ルーチン
gosub *サウンドコントローラー
await
loop
全部まとめてloopさせてますね。
全体の同期が取り易いんで。
>>294 別々にしてる
>>299 メニューやタイトルはどこに入るの?
初期処理にタイトル画面を含むなら
別々にしてるってことじゃ?
>>300 メニュー?無い。
タイトル?もっと無い。
ローディング画面は付けてあるが
作ってるのがスロ画面なので
メニューなんてイラネ。
ifが効かなくることってある?
どうもすり抜けてるようなんだけど・・・
実数をifで使ってるとバグる事があるって掲示板でみたことあるな
>>303 それで毎フレーム書き直すのか。
負荷大きそうだな。あとベクトルの数値関係が難しそうだw
307 :
304:2006/04/24(月) 01:56:40 ID:fWdRXll3
>>305 実数は混じってないけど、やっぱり何かしらのバグかなぁ
>>304 どうせ
×if (x=0) : 〜
○if (x==0) : 〜
とかしてるんじゃねーの
小出し乙
>308
304じゃないけど
>>×if (x=0) : 〜
のなにが悪いのかさっぱり分からない
このやり方で今まで特に問題ないけど
if a=>10 :
if 10<a-1 :
式の優先度を見誤ったり単純な記述ミスはありがち。
そーいやHSPでは==と=の優先度はどうなってんだろ。
画面の消去がされなくて、全部残る・・・
背景処理忘れてる?
背景は真っ暗だけどBG用っぽいファイルはある・・・
>>308 なにが、どうせなんだ?
>>307 俺も意味不明の if 判定になった事あった
そのときは
if 式 :命令 : else : 命令
でやってた所を
if 式 { :命令 } else { 命令 }
{}の方に変えたら問題なくなった。
本当にこれが原因だったのかは今じゃ分からないが・・・
あと、絶対にこの数値になるはずって思ってるところで、落とし穴にはまってる事もあるよ
statにエラーか正常か返ってくるはずが何も返ってきてないとか・・・
今、これ書きながら2.61のマニュアル見てたら {} で囲んだ一行 if は保障しないって書いてあった
その場合はその if も : じゃなくて {} を使ってくれだって
俺が、不都合出たのは3.0aだったが・・・
げ!
>if 式 { :命令 } else { 命令 }
if 式 { 命令 } else { 命令 }
: が見えなかった……
>>308 マニュアルから
if分の所に
(C言語やJavaと同じように「=」「!」を「==」「!=」のように記述することも可能です)
HSPじゃ if (x=0) こっちが通常じゃねーの?
とりあえず、再現性のあるソースを出してくれ。話はそれからだ。
うを、寝こけてたらレスがこんなに・・・スマン
これから会社なんでソースは帰ってから
ところで2.6系のifってネスト限界あったっけ
>>313 手抜きなスクロール処理のせいです。すみません。
処理書いてるときに、バッファ縦サイズが2の階乗値でないこともあって、
他のPCでもうまく動くか自分でも不安になった部分です。
//
//4096x268 パノラマ画像をBGBUF(=3)に転送
buffer HSPBUF , 4096,268
picload ".\\dat\\IB_azumaya.jpg",0
es_buffer BGBUF, 2, $000000, 0, 1
//
この背景読み込み処理が、HSPDXFIXのes_buffer 命令の
注意事項(↓)にひっかかってしまったようです。
---------------------------------------------------------
オフスクリーンバッファに転送できる最大画像サイズは、
グラフィックボードによって異なり、主に
1.縦横ともに画面解像度以上のサイズで作成できる
2.横は画面解像度と同サイズまで、縦はそれ以上のサイズで作成できる
3.縦横ともに画面解像度と同サイズまで
---------------------------------------------------------
読み込んだ背景は、毎フレーム、以下の処理で更新する
という方法だったのですが。…どう対処したものかな…
//
pos 0,64
es_excopy BGBUF, rollx,0, ROLLW,ROLLH, 800,536
//
//rollxはRxとして画面にステータス表示している値。
//ROLLW,ROLLHは(400,268)〜(100,67)まで、同比率で変化する、変倍コピーのサイズ値。
>>318 俺のは
>1.縦横ともに画面解像度以上のサイズで作成できる
これなんだけど、MAXテクスチャサイズが2048*2048(RADEON 9800)・・・
これって少ない方なの?
>>318 もう一つ
家の環境だと ラップアドレッシング を使う場合縦横共に2の累乗じゃないと クランプアドレッシング になる
310のを直してって事じゃなくて、環境依存度(4096*268のロール描画)が高いんじゃない?って事で・・・
(2048の画像にして一応画面の書き換えは出来てるから、半分は横線だけの背景だけどw)
>>320 グラボ性能に詳しくないため、テクスチャサイズの大小については分かりませんが
とりあえず、「3.縦横ともに画面解像度と同サイズまで」の環境を想定して
スクリプトを書くべきだと気づきました。
>>321 検証までしていただいて、助かります。
スクロールまわりの処理を修正して、依存度を下げてみようと思います。
3.0aがでたのっていつだっけ?
>>323 スターリンが絶賛してたから、50年以上前じゃね?
ハラショー
更新履歴に書いてあった・・・w
328 :
名前は開発中のものです。:2006/04/27(木) 00:38:52 ID:WQRlu6Mi
流れをぶった切って(,,゚Д゚)∩先生質問です
HSPDXFIXを使用してゲーム作ってるんですが
全体の速度調節として
es_syncの後のウェイトに1を入れると遅すぎてダメで
0を入れると早すぎてダメなんですが
上手いこと速度調節するにはどうしたらいいんでしょう?
別に速度調節用のforループでも作って調節するしかないんでしょうか?
awaitをwaitにしてみるとか意味なさそうな事はしてみたんですがダメっした。
es_sync のパラメータ p1,p2を
es_sync -16, 0 (あるいは es_sync -17, 0) あたりにしてもダメなんでしょうか
330 :
名前は開発中のものです。:2006/04/27(木) 00:48:54 ID:WQRlu6Mi
自己解決しますた。
es_timer命令初めて使ってみたw
331 :
名前は開発中のものです。:2006/04/27(木) 00:49:44 ID:WQRlu6Mi
>>329 おや。なんですか?それは。
ちょっと試してみます。
情報サンクス♪
332 :
名前は開発中のものです。:2006/04/27(木) 00:57:25 ID:WQRlu6Mi
報告。
>>329の場合だと遅くてダメでした。
es_syncのマイナスの使い方が少し分かりました。
ありがとでした〜。
>>327 RADEON 9000proにて、前のはだめですたが今回はおkですた。
>>327 うちの環境が悪いとは思うんですが
WinXPProSP1-P4(2.8E)-1GByte-GeForce6600GT128MB(ForceWare81.98)
にて、10分程度遊んだ所でゲームがフリーズ
OS巻き添えにしながら落ちてしまいますた。
その他は問題ナッシング。
報告でした。
>>333 報告ダンケです。少し安心できました。
>>334 と思ったらOSごとフリーズ…。
つぎはぎだらけの完成度の低いスクリプトのせいで…
申し訳ございません。
ちょっと自分でも耐久テストしてみます。
336 :
HSP撲殺委員会:2006/04/27(木) 02:18:40 ID:/bvXftjS
>>335 こっちもとりあえず動いたけど10分も試してないw
XPpro、RADEON9600pro
ところでプラグインを下位フォルダに入れるって可能だったのか。
339 :
HSP撲殺委員会:2006/04/27(木) 19:29:04 ID:/bvXftjS
menu.ax(メニュー)とgame.axにわけて作成してます
runでファイルを読み込むと一度ウインドウが消えてまた作成されてしまいます
これって仕様なのですか?ウインドウの位置も変わり困ってます
axobj ie, "Shell.Explorer.2",640,480
ie->"Navigate" "
http://www.onionsoft.net/hsp/"
#define OLECMDID_CUT 11 ; 切り取り ctrl+x
#define OLECMDID_COPY 12 ; コピー ctrl+c
#define OLECMDID_PASTE 13 ; 貼り付け ctrl+v
#define OLECMDID_UNDO 15 ; 元に戻す ctrl+z
#define OLECMDID_DELETE 33 ; 削除 del
onkey gosub *pushkey
stop
*pushkey
if iparam=46 {ie->"ExecWB" OLECMDID_DELETE,0,0:return}
getkey ctrl,17 ; ctrl
getkey key_c,67 ; c
getkey key_v,86 ; v
getkey key_x,88 ; x
getkey key_z,90 ; z
if(ctrl & key_c){ie->"ExecWB" OLECMDID_COPY,0,0:return}
if(ctrl & key_v){ie->"ExecWB" OLECMDID_PASTE,0,0:return}
if(ctrl & key_x){ie->"ExecWB" OLECMDID_CUT,0,0:return}
if(ctrl & key_z){ie->"ExecWB" OLECMDID_UNDO,0,0:return}
return
このソースでDelキーやCtrl+zは動くんだが、
コピペや切り取りができないのは漏れだけ・・・?
//前は動いてたはずなのにorz
>>341 むかし品家BBSで話題に勝ったときは、げtけy)とかで無理やり実現してたよ
原因判明
IEのセキュリティ設定を自分で変更したの忘れてた・・・orz
DirectSoundExtensionを使って、soundフォルダ内のmenu.mp3を再生させたいのですが、どうも上手くいきません。
ソースは
#include "dsoundex.as"
ds_init
ds_load "sound/menu.mp3",0
ds_loop p0
といった感じなのですが、ドコに問題があるのでしょうか?
ご指摘よろしくお願いします。
>>344 「上手くいきません」の指すところが、
どう上手くいかないのか分かりにくくて判断に迷うのですが、
エラーが発生しないのにまったく音が鳴らないのだと想定しましてー
「HSP から DirectSound を使用できるようにするプラグインです。
このプラグインを使用することで、大きな WAVE ファイルの再生、音声の多重合成、
切れ目の無いループ再生、パン・音量・再生速度の変更などをリアルタイムに行うことができます。」
…ということで、.mp3は取り扱い対象外かと。
>>345 >エラーが発生しないのにまったく音が鳴らないのだと想定しましてー
ごめんなさい、その通りです。
mp3をwavに変換する事によって解決しました。
ありがとうございました。
すみません、もうひとつ質問させて下さい。
背景を真っ黒にしたい場合、ヘルプを参照すると
「color 0,0,0」
となっているのですが、実際に使ってみると真っ白のままです。
何かインクルードしなければならないファイルがあるのでしょうか?
それとも別の命令で出来るのでしょうか?
>>347 とりあえずそれは現在の色を変えるだけだから、
boxf とか cls とか使れ。
>>348 むかーしに勉強した事なのですっかり忘れてましたorz
どうもありがとうございました。
>>344 mp3でも鳴ると思うんだけど…
漏れは訳も分からず人のソース(前に土日スレで出てた「ふたご塔」って作品)コピペしてる
だけだけど、ちゃんと鳴るよ。
ds_loop 0
じゃ駄目なのかな?
>>254 まぁ、もう遅いだろうけど
addboxに問題があってライトの不都合が出てたらしい
そんで、それを修正したのがUPされてる
試してないけど・・・
352 :
345:2006/05/01(月) 20:43:25 ID:o0aFYamC
…ホントだ。dsoundex.txtに書いてあった。
★★★ ADPCMやMP3(MPEG-Audio)も読み込むことができますが、 ★★★
★★★ デコード後のファイルサイズ分のメモリを消費します。 ★★★
★★★ 大きなデータを読み込むのは控えましょう。 ★★★
自分で確認するために読み込んだmp3ファイル(BGM)はds_loadに失敗したんで
dsoundexでは使えないんだと思い込んでしまった。
確認不足なまま適当なこと言ってゴメン。>344
「デコード後のファイルサイズ」の大小でds_loadの成否が分かれると思うのだけど
その点についての記述はなさそう。
>>352-
>>350 いえ、回答頂けただけでも嬉しいです。
ただヤッパリ
ds_loop 0でもds_loop p0でも鳴りませんね。
とりあえずこのまま進めてみたいと思います。
ありがとうございました。
354 :
132:2006/05/02(火) 19:53:24 ID:GEvT0KzB
>>351 数日前に、それを使ってみたらできましたよ。
今は違うゲーム作りをしているので、ダンジョン作りを再開したらまた来ると思います。
>352
mp3の読み込みを色々試して見たんだけど容量も関係ないっぽい
高音質で容量多いファイルでも成功したり低音質低容量でも失敗したり基準がまったくわからない
圧縮方法とかが影響してるんだろうか
VBR/CBRは?
>356
どっちでも関係ないっぽい
Rip!AudiCOFREEVer使って自分でWAVEからエンコードしてみたけどどうもこのソフトを使った場合どうやっても再生できないっぽいな
最低音質CBRで800kbyteのファイルでも読み込み失敗するし
358 :
ウル:2006/05/06(土) 22:53:08 ID:Xr/95anG
ギャルゲーの文字みたくコメントでるようなのが作れない…
日本語でおk
360 :
ウル:2006/05/07(日) 00:17:16 ID:5kUdwmnH
アニメーション作りかたがいまいちわからない画像をただうえからしたまで下げるだけなんだがヘルプミーですトホホ
まず句読点や助詞の使い方を覚えろ。
ギャルゲー話題にするってことは少なくとも高校生以上だろうとは予想されるが、
それにしては書き込みが頭悪すぎるぞ。
ゲームばかりやってないで本を読め。
高校生とは限らんぞ
俺なんかリア厨のとき天使たちの午g(ry
オープンソースがバージョン2では使えるのに、
バージョン3では使えなくなるんですが、
原因はなんでしょうか?
ソース自体がver.3に対応してないんじゃね?
365 :
ウル:2006/05/07(日) 11:23:27 ID:5kUdwmnH
スマソ 文字の画像でアニメショーン作ったら画像が切れた
すみません。sndloadでmpegムービーを読み込んでsndで再生する方法を採るとめっちゃ重くてタイトルバーをちょっとつまんだだけで固まったりしちゃうんですけど
何か軽快にムービーを再生できるような方法もしくはプラグイン等はないものでしょうか。
よろしくお願いします。
2.61使ってるんですけどなんとかなりませんか…。
ありがとうございます。早速確認してみます。
>>372 38 "外部DLLの呼び出しに失敗しました"
外部DLLの関数呼び出しの先のアドレス取得に失敗した場合に表示されます。
だそうだ。
dsoundex.hpiが無いんジャマイカ
だな。取敢えず、作った実行ファイルと同じフォルダにDLLをコピーしてみそ。>372
>>371ですが実際hmm.dllを試してみたところ本当に期待通りの効果をあげることができました。どうもありがとうございました。
>>373 >>374 レス遅れて申し訳ありません。
dsoundex.hpiも必要だったんですね。
ありがとうございました。
377 :
名前は開発中のものです。:2006/05/13(土) 00:38:25 ID:/E17UIpq
Ver2.61で「複数のテキストファイルをexeに組み込むと繋がっちゃう」不具合は修正されていますか?
>>377 以前のバージョンの話は知らんが、少なくとも261では繋がらんぞ?
つーか、んなの聞くより自分で確かめた方が早いだろ
>>377 もういりませんって言ってるだろ。いい加減にしろ
?
別なファイルを同じ変数に読み込んでるとかじゃねぇだろうなw
SHADEや六角等で作った3Dモデルをテクスチャ付いたまま
読み込む事ってできないのでしょうか?
HSPでまたテクスチャ張りなおすのはあまりにも辛いのですが。
>>383 プラグインによるけど、Xファイルなら、そのまま使えるし、プラグイン独自形式にも変換するツールがある
Easy3Dなら六角大王ファイルも変換して使える
HSP3は実数を整数より左に書かなくちゃいけないという制約があるせいで
今この変数は実数なのか、整数なのかって意識しながら1行1行書かなきゃ
らならん。薄氷を踏む思いだ。やってられん。なんでこんな変な仕様に
したんだろ。
そういう仕様じゃないと文字列に数値を連結できなくなるから。
なんつーか実数なんて使わんなぁ
<<16で馴れちゃってるから。
3D使うなら必須なんだろうけどさ…
>>385 おにたまの実力不足です。
実数が3で入っただけでも奇跡と思って諦めて他の言語を習得しましょう。
例えば変数aに "testval = 123" と代入しておいて
その値を条件式としてどうにかしてifみたいな感じで使うことは可能?
if a : … を if testval = 123 : …
という風にみなしてほしいんだけど…。
何がしたいのかっつうと
スクリプトを別ファイルに書いてて
スクリプト内に複数の「イベント」とそのイベントを実行する条件式を書いておいて
ループ毎にメモリノートパッドに代入した条件式が書いてある行を見に行って評価したい
ってことなんだが多分難しいんだろうな…。
>>390 前半部分のは良い方法を思いつかないけど、後半部分の件。
自分も今、そういうの作ろうとしてるけど、ポインタの考え方の応用というか、
変数の参照を、名前でなく、引数を通して間接的に参照するようにしたら
比較的簡単に実装できそうだなとか考えてる。
testHP = parm(1)
testMP = parm(2) みたいな。
327氏のようにプラグインをサブフォルダにまとめて格納したいんですが、
どうすれば良いのでしょうか。
#regcmdってのを使ってみたんですが、出来ることは出来るんですが
最初に変なエラーが出てしまって…。
>>390 (ガンビットみたいなのをやりたいんかな?)
別ファイルの内容をメインのプログラムで
決まった書式で書くんならできるだろうね
っていうか、ループごとにメモリノートパッドを
読みにいくのは効率が悪いんじゃ?
セーブロードの時以外は条件や行動を
配列の中に取っておけばいいだけだし
394 :
391:2006/05/23(火) 16:44:08 ID:hjOPS5XU
レス有難う。
>>390 やはりそれしかないっすかね。
正直管理がマンドイ…
>>393 ガンビット…わからなかったのでググってみたけどFF12ですかね?
あーいうのじゃなくて、シナリオデータとして
-----
evenum 50 ;イベントナンバー50
condition charaLP < 100,sys_time < 60000 ;キャラのLPが100未満かつ残り時間60秒未満
message "万事休すか…!" ;メッセージ表示
eveend ;イベントナンバー50ここまで
-----
みたいなものを複数作っていて、
condition行に書いた条件式が満たされたら
その下のmessage行にジャンプして、
各行を解釈しながらイベントを進行させる…っていうのがやりたいと思ってる。
メモリノートパッドについては考えてみます(´Д`;)
395 :
394:2006/05/23(火) 16:45:21 ID:hjOPS5XU
やべぇ、名前欄もレス番もずれてるorz
名前 391 → 390
×
>>390 → ○
>>391 スマソ('A`)
evalとかそんな話じゃないのかね。
HSPなら中間コードみたいなのに変換しておけばできそうな気がしないでもないが。
>>392 .ASファイルを直接編集
HSPDXFIX.ASなら
#uselib "hspdxfix.dll"
を
#uselib "bin\\hspdxfix.dll"
もっとスマートなやり方があるかも知れないけど
ヘルプに
>EXEファイル作成の際にPACKFILEに入れて、1つのEXEファイルにすることはできません。拡張プラグインを使用するEXEファイルを作成した場合は、EXEファイルと同じディレクトリに拡張プラグインを置いてください。
って、あるから仕様外になるのかも・・・
>>394 instr,strmid,getstrとかで
行ごとにどんな文字列があるか調べて、それによって
文字列を分解して変数に格納したり、処理を変えたりしたらいいんでない?
if instr(text,0,"condition") ! -1{
めんどいので略w
}
とかな感じで
あと、そういうのならメモリノートパッドでいいと思う
399 :
392:2006/05/23(火) 18:13:22 ID:72LEgXLd
>>397 上手くいきました。
ありがとうございました〜。
HSPで簡易インタプリタつくりゃいいじゃなーい
>>390 if a(0) = a(1) : … 二つに変数を分解すれば簡単。
「testval」とか連想配列にしたいなら#defineで代用。
もっと本格的にやりたいならinterpreterパターンで。
あ、HSP3だと連想配列できるんだった。
a(testval)=123:if a(testvar)=123:mes "a"
クラスも無いHSPでインタプリタパターン?アホか。
インタプリタパターンがどんなものかも分かってない低脳が知ったかかよ。
笑えるw
>>402 >a(testval)=123:if a(testvar)=123:mes "a"
それは笑うところ?
HSP3の連想配列ってどうやって使うの
ヘルプに載ってないし…
単に
a("test")=10
などとしてもエラーになるだけだし。
>>405 未実装だ。HSP3公開時に公式に載ってたぞたしか
HSP3には馴れてないからえっ連想配列使えるの?と
>>394用のサンプルを連想配列用に書き直したのに。
もう一回書くわ('A`)
condition charaLP,<,100
---------------------
*命令処理ルーチン
;notegetとgetstrを駆使して、命令名と引数を分解。
;変数funcに命令名を、変数p1〜に引数を格納
if func="message" :gosub *message
if func="condition" :gosub *condition
:
return
---------------------
*condition
*@b
if p1="charaLP" :i=charaLP ;ゲーム内の変数分だけ用意する
if p1="charaMP" :i=charaMP
if p1="sys_time" :i=sys_time
:
c_val=0 :x=0+p3
if p2=">" :c_val=i>x
if p2="<" :c_val=i<x
:
if c_val=0 :return
;最終的にc_valが1なら成り立つ
;if p4!="" :p1=p4: p2=p5: p3=p6: goto *@back でもう一回条件判断
return
成り立たなかったら、
シナリオ行を+=1し、飛ばすなり何なり汁
ホスプロはNG推奨だなこりゃ
if文を羅列するよりは、
"message" → cmd=1
"condition" → cmd=2
といった感じに、前処理で命令と引数を整数化して
on cmd goto 〜 で処理するほうが良いかと。
412 :
394:2006/05/25(木) 23:14:40 ID:c1auN3wV
やっと来れました(´Д`;)
>>408 をを、わざわざソース有難うございます。
>>410 アドバイス有難うございます。
ちょっくらデータを整えて、やってみたいと思います。
他の皆様も、いろいろ有難うございました。
やってみたらまた顔出します。
413 :
411:2006/05/25(木) 23:51:16 ID:DTI3us1a
すみません。23:36以前のexeファイルはボス撃破後にデータ不足で
エラー終了してしまいます。
タイムスタンプが23:37以降ならば修正版です。
中間コード
(
#define CMD_MESSAGE 1
if func="message" :cmd=CMD_MESSAGE
など
)
を作ろうと思ったら文字列比較は結局必要になるよ。
そのほうがオリジナルスクリプト上では
messageはmessageのままで良いので可読性も上がる。
STG程スピードを要求しないなら文字列比較のままでも良いけど。
;---準備段階
sdim funcstr , 3000
funcstr="nop______message__conditionif_______go_______to_______goto_____gosub____"
;(この場合、命令名の最長文字数が 9なので、他の命令の並びもそれに合わせる)
;(html中だと半角スペースが飛ぶので、代わりに'_'で埋めてあります。)
;---デコード
func="goto"
cmd=instr( funcstr , 0 , func ) / 9
mes "\""+func+"\" → "+cmd
/* データを作成する人間が、命令名を正しく入力しなければいけなかったり、
"goto"に対する"go","to"のように、重複する文字列を含む場合、
funcstr中での並びに気をつけないといけない、などの前提がありますが
自分は、おおむね上記のような方法で数値にしています。
funcstr文字列の長さが短いほうが数値化する速度もあがるとみて、
各命令名を1〜3文字で済ませていますが。*/
トークンの取得はCOMから正規表現使うと楽かも。
comtest8.hsp参照。
HSP以外でやった方が楽かも
MMORPGみたいに3Dゲームでマウスクリックでキャラ移動ができるようにする講座載せてるサイトとかありませんかね。
参考にできるならHSPでなくてもいいんですが。
420 :
名前は開発中のものです。:2006/05/28(日) 22:13:18 ID:KJFlJ4UI
最近HSPを始めてみてスロットを作ろうと思ったのですが、行き詰まってしまったので
質問させていただきます。
←↓→をおして1ラインのスロットを作ってみたのですが、3つとも停止しているのか
いたら当たり判定へ飛ぶというところで行き詰まってしまいました。
よろしければヒントかなにか教えてください。
左から、一つずつ、止まる仕様にしなさい。
そうすれば左から一つずつ処理して、残った分は、まだ止まってないって処理だけですむ。
一番簡単にするならこんなところかと。
それ以外はどれから止めるのか、で、個々に処理を分岐させていくようにルーチンプログラムを組むとか。
手間だけどw
>420
当たり判定が全てとまった時のみなら
スロットを回した瞬間にrool=3
一つ止めるごとにroll--
rool=0の場合スロットが停止状態だから判定でいいんじゃないか?
423 :
422:2006/05/28(日) 23:05:06 ID:pQPkynbl
>422はスペルミスってるけどいじる変数は全部一緒ね
>>421 左から順押しは作れたのですが、ばらばらに押しても止めれるように
できるやつを今作ってみています。
*start
if st(0)=st(1) & st(2)=-99:goto *owari これが終わりへ飛ぶ処理
onkey gosub *inkey
cls 0
for s,0,3,1
if cou(s)>9 :cou(s)=0
next
font "MS ゴシック",70
pos 80,50:mes a(cou(0))
pos 180,50:mes b(cou(1))
pos 280,50:mes c(cou(2))
for s,0,3,1
if st(s)=-99:sp++:else:cou(s)++
next
for s,03,1
if st(s)=-99:s
wait 30
goto *start
*inkey
if iparam=49:st(0)=-99
if iparam=50:st(1)=-99
if iparam=51:st(2)=-99
return
2行目のやつを考えてみたのですけどもなかなか上手くいきません。
>>422 それでちょっと考えてみます。
追記で
a,b,cは1〜10のランダムの数字を入れて
couっての要素番号です
426 :
420:2006/05/29(月) 00:08:36 ID:6gBWhafZ
自己解決しました。板汚しすみませんでした
0=0 & -99=-99
でも終了って事に気づいたか
iparamとwparamの違いも
>font
聞き込みが途中で切れてる・・・
>font "MS ゴシック",70
これは最初に設定すればいい
>onkey gosub *inkey
メインループ前に一回実行するもの
ここでは、キー入力を見てない
その後のawait,stopでキーを見てる
429 :
420:2006/05/29(月) 00:54:36 ID:6gBWhafZ
できたとおもっていましたができていませんでした^^;
f st(0)=-99 & st(1)=-99 & st(2)=-99
って風にしてできたと思ったんですけど無理でした・・・。
430 :
名前は開発中のものです。:2006/05/29(月) 01:09:48 ID:zRSJKdB1
少しスレ違いかも知れませんが質問させてください。
今現在、HSPは特にゲームメーカーなどでプログラムとして使われて
いるのでしょうか?
それとも個人単位での作成範囲で留まっているのが現状でしょうか?
なぜこれを聞いたかというと当方はVBでプログラムを初めて1〜2年は
修学して簡単なツールまで作れるようになったのですが間を開けて
グラフィックの方に力を付けてきて今年になってHSP3.0の存在を知りHSPのゲーム作りには
特に短期でも仕上げれる特徴に魅力を感じVBを捨ててHSPを本格的に勉強し将来は職業でも
役に立ちたいと思っているので質問しました。長文ですが宜しくお願いします。
>>430 HSP3は2.6までのプラグイン大部分が使えなくなった関係もありまだまだ普及途中な感じ。
仮想配列も未実装だしな
>>402 HSP2.6でも趣味や同人のみでの範囲。
こういうのは就職には何の役にも立たんよ。
ツールが主ならVBの方が遥かにマシだし短期に仕上がるはず。
VB以上のモノに躊躇していたんでは職業プログラマには向いてないかも知れないし
そもそもプログラマなんて好きこのんでやる仕事では…('A`)
432 :
某作者:2006/05/29(月) 01:57:44 ID:KfyOoN0T
>>420 まず状態フラグを以下の4つ作ります。
Flag1:左リールの状態
Flag2:中リールの状態
Flag3:右リールの状態
Flag4:ゲームの状態
1〜3は言わずもがななので言いませんが
キモはFlag4にあります。
例えば、リールの回転開始時(1ゲーム開始時)に4をセット。
リールを止める毎に-1していくと全リール停止時には1になります。
そこで、メインループの中にでも
if Flag4=1{
ここに全リール停止時に一回だけ実行したいコード
Flag4=0
}
とかってやると、全リール停止後一回だけ実行されるのでオススメ?
停止順にも左右されないし。
奥さん!どうですか?
>>430 職業としてプログラミングをするのであれば
HSPとかVBなんて何のハッタリにもなりません。
ただ、VCもそうですが
プログラムというものの勉強にはなります。
作り方とか流れとかですかね。
どっち方面のプログラマになりたいのか分からないので
オススメはコレってのは言えませんが
やって無駄になるものでもないので
適当に遊んでみると良いカモ。
433 :
名前は開発中のものです。:2006/05/29(月) 03:54:45 ID:fslpirHT
>>430
某大学で用いられているという話はありますよ。
案外これから普及していくかもしれません。
ただ、C言語から作られているのでCを超える事は出来ないそうです。
>>426 そこはあってる
font "MS ゴシック",70:dim st,10:dim cou,10
*start2
onkey gosub *inkey
for s,0,10,1:a(s)=rnd(10):b(s)=rnd(10):c(s)=rnd(10):next
*start
if st(0)=-99 & st(1)=-99 & st(2)=-99:goto *owari
cls 0
for s,0,3,1
if cou(s)>9 :cou(s)=0
next
pos 80,50:mes a(cou(0))
pos 180,50:mes b(cou(1))
pos 280,50:mes c(cou(2))
for s,0,3,1
if st(s)=-99:sp++:else:cou(s)++
next
wait 30
goto *start
*inkey
if iparam=49:st(0)=-99
if iparam=50:st(1)=-99
if iparam=51:st(2)=-99
return
*owari
for s,0,3,1:st(s)=0:next
onkey 0:wait 100:onkey goto *start2
stop
一定の速度を保ちたいならonkeyは使わない方がいいかも、押されたら残りwaitが無視されるから
435 :
名前は開発中のものです。:2006/05/29(月) 14:45:27 ID:mlmmeZsG
>>430 同人では結構あるみたいだけどメーカーが使うなんてありえない。だってフリーソフトだぜ?
バグがあってもその製品のせいにされちゃう。原因を調べてHSPあるいはプラグインのせい
だと分かっても直せとは言えない。それに、メーカーは実行速度のテストとかするんだぜ?
なんでCとかでできるものを、わざわざインタープリタのHSPでやるんだよ。
あと、HSPってプロが使おうと思ったらやってられねえよ。
2.61:固定少数、演算子の優先順位なし
3:実数を整数より左に書かなくちゃいけないという変な仕様、if key&4!=0〜 ←バグる
dim a(10,10):a(0,0)=1.23 ←バグる
ぜひ面接で「使える言語は?」って聞かれて「HSPです」って答えてどうなったか報告して
ほしい。
もともとHSPはWINDOWS用のフリーの開発言語としてすごい存在感があった。
2000年ごろまではフリーのBCCも無かったし、C#も。
フリーのゲーム開発用言語は日本語が使いにくいGCCか、HSPも含むいくつかの
スクリプト言語しか選択肢がなかった。
でも内部でdirectxとかウインドウズの機能呼び出して、プログラムは
スクリプト解析の部分だけなのにMicorsoftに怒られないんかなとか
昔から疑問だった。
C#がずっと商用でHSPがC#並みの強力な言語体系を身につけたらどうなったかしらんけど。
>>438 優先順位とちゃうの
if (key&4)!=0〜
実数の配列はこれ
ddim
> 実数を整数より左に書かなくちゃいけない
詳しく
プロが仕事で使うことはないだろうけど
趣味でなら使ってるかもしれんぞ
>でも内部でdirectxとかウインドウズの機能呼び出して、プログラムは
>スクリプト解析の部分だけなのにMicorsoftに怒られないんかなとか
これはまた香ばしい釣りですね。
DirectXを使うのがなぜいけなのかな?
似たような問題無かったっけ…GIFとか
>438
なるほど。桁数の大きい入れ物が左側になきゃいけないって
ことでしょう。cだと左辺に合わせられるみたい。
double d=1.1234567;
double d2=0.0;
int i=10;
d2 = i + d;
printf("%f\n",d2);
実行結果は11.123457になる。
HSP3は本当は結果を入れる変数に合わせて計算のワークエリアを
とればいいんだろうけど、計算式で最初に見つけた変数に
型を合わせちゃうんでしょう。だから小さい入れ物が最初に出てくると、
あとはそれに合わせて丸められてしまうと。
cでも左辺の型に合わせるっていま試してみるまで知らなかった。
HSP3でもこういう仕様だと理解すべきでしょう。
>>441 フリーでやってる人が
仕事で使ってるってカキコをどっかで見たよ
HSPでやった方が簡単な時だけだろうけどね
447 :
411:2006/05/30(火) 07:07:56 ID:wxU49lOI
>>436-437 動作確認ご協力ありがとうございます。
とりあえず動いているようで安心しました。
おそらく、ほとんどの人の場合、不具合が発生しても、
自分の環境のほうに問題があると考えてしまって、
報告をあげてもらうまでに至らないことが多いと思いますが、
不具合の報告をしてもらって、その原因が判明した場合は、
(
>>318-322のように)環境依存度の高い処理の情報を共有できる─などの、
有意義な展開が期待できますので、
不具合発生している方おられましたら、よろしくお願いします。
スキル・知識等の不足により、解決できない場合が多いかもしれませんが ;- -)
448 :
430:2006/05/30(火) 16:36:03 ID:7Q/mYcoo
遅レスですが予想以上に数々の親炙な返事をありがとうございます。
みなさんの返事では職業的に使えるどうかは概ね厳しい意見なので、まずは
趣味範囲でもHSPを学んでいこうと思います。何よりコンテストやユーザー同士の
情報交換がプログラムでここまで分かりやすく多種多様活性化しているのは
稀なので励みになります。では
知らない言語や開発環境の初心者向けサイトを
時々でいいから、見てみるといいかもね
趣味の範囲に限るんなら
何かに行き詰るまでHSPでいいと思うけど
>445
>cだと左辺に合わせられるみたい。
何言ってんだお前。
Cでは整数と浮動小数点数の四則演算は、整数が左辺、右辺どちらにあろうと、
整数が浮動小数点数に変換されて計算されるんだよ。
どんな実験したら左辺の型にあわせられるとかアホな結果を導き出せるんだよ。
気になったんだが、HSPって優先順位無しにまだ左から順番に計算処理してんの?
だとしたら、相当タコな仕様なんだが。
>>451 HSP3から優先順位は付いた
てか、括弧つければいいやん
優先順位だの型混合計算だの
そのへんはスキルや慣れでカバーできる部分だと思うがね。
ヘタレの泣き言にしか聞こえん
整数+実数=整数とかになっちゃうのは、知ってれば対処はできるんだがちと不便な気がする
>>445 450も書いてるけど、計算結果は左辺の型がどうこうで確定するわけじゃないぞ。
オペランドが一つ処理されるごとに型が決まるから、気をつけないと小数点切り捨てのバグに引っかかったりする。
そういうのを避けるのがキャスト演算子。HSPには無いのか?
使ってないから知らん。
とりあえずHSP3ならコレ使っとけ
int(p1)
double(p1)
str(p1)
精度の高い型優先か左辺優先かなんて、ルールさえ知ってれば実装する上で
大して違わない気がするが、慣れていないと思わぬところで躓いたりするのかもね。
キャストで明示しなくても好きな型で取れるところなんか、HSP的で悪くないと思うが
>>451 聞く前に仕様読めタコ
やだね:p
>>453 HSPはヘタレのための言語ってのが唯一の売りだろうが。
俺のようなプログラムがめんどくさいヘタレでもゲーム作れたからな。
俺のように毎回、数学赤点ギリギリでもゲームを作れたからな。
移動すると向きも変わる自機を表示して、弾も出せるようになった
俺に現在立ちはだかる関門はマップチップ。
なんてややこしいんだ。まるでパズルだ。
これにドット単位のスクロールだの属性だのを組み合わせると
俺の脳のキャパシティを超えて理解不能に陥ってしまふ。
おれも演算子の優先はたいした問題ではないと思うけど
HSPなら a+b*c ですむが
C言語なら (a+b)*c
でカッコが必要になるときがある
>>463 (a+b)*cの演算結果を狙うんなら
a+b*cなんて書き方は普通しない。
HSPで望みどおりの結果が得られるとしても
そんな書き方は間違ってる。
と思うぞ。
>>462 今の若いもんは。
昔はさあ、MSX2でドット単位のスクロールしてるゲーム見て「これって、どうやったらでき
るんだろう」って思うわけだよ。今みたいにインターネットでちょちょい、と検索すればすぐ
分かる時代じゃないわけ。で、神保町の本屋街駆けずり回ってMSXテクニカルハンドブック
買うわけだよ。ドット単位のスクロールなんてマシン語(アセンブリ言語)使わなきゃできない
んだよ。
それでも「どうしても俺もやりたい」って思わせてくれるいい時代じゃった。今PS2のゲーム
見て「俺でも努力すりゃこんなのが作れる!」って絶対思わないわけでしょ。
まあ、まずはマップチップの大きさでスクロールするところを脳内でシミュレートしてみ
ればいいんではないかの。チップが16*16ドットだったら16ドット単位とか。それなら簡単
じゃろう?実際にプログラミングしてもいいし、ノートに落書きするのが一番いいのかな。
で、次にじゃあ1ドット、2ドット単位にスクロールするにはどうしたらいいのか考えてみれば
いいんでないかの。
俺も昔ガキの頃ルーチンだけひたすら妄想してたんで
HSPを知ったらすぐゲーム作れたよw
>>465 まあまあ。
キモチは分かるが今の若いモンに「テクニカルハンドブック」
なんて言ってもわからんですよ。
確かにテクハン、スバラシイけどね。
つうか、お前年寄りの癖にまだHSPなんか使ってるのかよ。
まったく今の古いモンは・・・
PC買ったばかりの初心者だろうが
プロのプログラマだろうが
HSPを使って悪いことなどない
470 :
ソニーのMSX2持ってたよ:2006/06/03(土) 12:35:56 ID:/9SUc/1Y
ログオン時にHSPエラー3 ってのが出るんですが、
最近入れたのは
Avast! と Xguard ってセキュだけで
どちらも関係ないみたいなのですが、
何か確認するところとかありますか?
HSPは教育用言語としては最低のレベルだから
プログラマとして生きていく気があるならオススメしない。
フリー・シェア問わず創作趣味な人が使う分には最適。
"最適"では無い
反論するなら根拠も示さなきゃただの野次だ
・タコな実数仕様
・クソ重い処理速度
・開発環境の使いづらさ
・構造体やクラスがない
ミニゲームならともかく、公開するレベルのフリーウェア作る分には十分支障があります。はい。
HSPでつくられてる物しらみつぶしに探していって全部潰していけばいいんじゃね?
HSPは糞だから公開すんな屑って。
そうすれば誰も文句も批判も言わなくなるんじゃね?平和でよさそうだ。
たぶん現状で一番2Dゲーが作りやすいのはJavaかな。
3DはVC+++DirectXが相変わらずの鉄板なんだろう。
>>474 ・タコな実数仕様
そういうものだ
・クソ重い処理速度
ムーアの法則が解決w
・開発環境の使いづらさ
これは認めよう
・構造体やクラスがない
贅沢言うなボケ
配列があれば十分だ
>>476 # たぶん現状で一番2Dゲーが作りやすいのはJavaかな。
つHSPLet
処理が重いって
画像処理とか思考ルーチンとかせん限り十分だと思うが。
どーしてもしたいってヤシはそういった部分をDLL化するし、
運が良ければ目的のプラグインが公開されているのでそれを利用させてもらう。
> 公開するレベルのフリーウェア
そもそも何を作ろうと思ったの?
超大作RPG?フォトショライクなグラフィックツール?
>>477 おいおい、HSPで一番致命的なのが構造体が無いことなんだぞ。
とっつきやすい言語仕様っていう利点なんかあっさり吹き飛ぶ。
俺もVBからHSPに乗り換えようとして、構造体が無いのを知って華麗にスルー。
今はBCCとDXライブラリでゲーム組んでるよ。
ついでに、ムーアの法則はすでに頭打ち。量子コンピュータでも実用化されりゃ別だけど、数年は無理だろう。
>>478 処理速度が遅いってのは、古いPCを考慮するときに問題になる。
いくら自分のPCがGHz級CPU詰んでるったって、エンドユーザーはMHzクラスかも知らんし。
ま、処理が遅いと「いかにして向上させるか」っていう勉強にはなるけど・・・
普通にアクション系ゲーム作るなら、画面にオブジェクトとかポリゴンとか数千〜万単位で表示するから、
ループかませる時に処理速度が足りなくなってアウト。
5万ループ/frame(60FPS)で処理落ちじゃ話にならないよ。ソーティングでも厳しいことになる。
WindowsGUIベースのアプリならHSPが楽なのかも知れないけど(個人的には、それならVB使う)
>>479 > 俺もVBからHSPに乗り換えようとして、構造体が無いのを知って華麗にスルー。
> 今はBCCとDXライブラリでゲーム組んでるよ。
前々から疑問に思ってたんだけど、なんでそういう人間がこのスレ見てるんだろうか。
”華麗にスルー”しきれてないじゃん。
別にHSPに限らず、言語系スレは一通り見てるから。
じゃあ、HSP使わなければいいじゃん
頭の悪いレス・・・日本語も読めないのかよ。
華麗にスルーできてないって指摘だけは上手かったのに
後がぐだぐだだな・・・
どんなゲームが作りたいんだ?
俺が一瞬でHSPで作ってやるよ。
よく多言語使いの人がHSP叩くのに、構造体を引き合いに出すけど、
現状でもモジュール変数使えば、構造体の真似事はできるし
そもそも初心者向けだからこそ、構造体がないんだと認識してるのだけど。
まぁ…それはともかく、本当に知りたいのは、
なぜスルーしたはずのHSPを気にかけているのか?という点なんだけど。
どうでもいい存在なら、書き込みするまでにも至らないよね。
多言語を使っててもなお「HSPを叩いておかねば!」と思えるくらいの
存在ではあるということ?
構造体がないことががそんなに大げさな問題かねぇ・・?
変数の名前のつけ方工夫するとかでダメですか?
訂正:
多言語じゃなくて 他言語でした。
ミスタイプsorry
>>486 まぁ実際どうでもいいんだけどね。半分暇つぶし(言えるほどヒマじゃ無いが)
>>474だってスルーされりゃ後は放置するつもりだったけど、なんか噛み付かれたから。
構造体を使う必要がないのと、存在しないのとは別問題。
初心者向けに構造体無しで開発できるようにしておくのはいいが、存在しないんじゃ・・・
俺はC++もVBもHSPもアセンブラ(あまり使えないけど)もそれぞれ良さがあると思ってる。もちろん、欠点も沢山ある。
その欠点を認識しないでHSP最高!と思ってるアホが多いなぁ、って感じるだけだよ。
>>487 他言語に 触って分かる 無駄苦労
どうせアレだろ?
他の言語でゲーム作れない | 作っても誰にも注目されない香具師が、
HSPで簡単に作られたゲームに嫉妬してファビョってるだけw
噛み付かれたとか表現が出てくる時点で痛いな・・・
スルーできないくらい興味深々ってことはわかった。
まあ実際はD言語が最強なんだけどね。
言語そのものの話題だったらム板行けよ
>>490 HSPで簡単に作られたゲームは嫉妬する価値も無いほどカスゲームなので嫉妬しようが無いだろ
かといって、HSPの大作は明らかに他の言語の方が楽になっちゃうからその反論はムリだろ。
>>495 馬鹿だな、グラフでボクシングみたいな名作もあるじゃないか。
っていうか、ゲームが簡単に作れるって考えてる時点でたかが知れてるな・・・
土日スレレベルのミニゲームすら作れない初心者の戯言だろう。
>>496 詭弁のガイドラインでも読んでこい。当てはまりすぎてる。
>>495 そもそも、いかに最高の「プログラミング言語」を使っても、
ゲームの面白さが高まるわけじゃないからw
まぁ、3Dで超画面キレー=超面白ぇゲームと思ってる
世の中の単細胞さんはそんなもんでしょうがね。
>>489 流れを見る限り、先に噛み付いたのは…ゴホゴホ
とりあえず。
HSP使いでそんな「HSP最高!」みたいに偉そうにしてる人間そんなにいるかな?
とか新たな疑問が沸いたし、
知りたかった点はいまいち分からなかったけど、
…本当の所は知りようがないし、まぁいいや。
愛憎裏返しなんだなぁと、良い方に捉えておきます。
>>497 騙されたと思ってやってみれ。
ホントに騙されるかも知れんが、それは俺の意図するところではない。
>>498 「HSPで実装が難しいから、面倒だから、処理が重過ぎるから、この仕様はやめよう」
と考えたこと絶対あるだろ。
あるなら、HSPを使ってる所為で面白さを損なってることになるが。
>>498 ヤレヤレ、お前も詭弁論者か。まとめてガイドライン読んでこい。
その単文で2箇所も当てはまるなんて、ある意味天才だぞ。
>>499 >フリー・シェア問わず創作趣味な人が使う分には最適。
に
>"最適"では無い
ときて
>反論するなら根拠も示さなきゃただの野次だ
だから、知ってることを書いただけで、噛み付いた訳じゃないよ。
平たく言えば
>>471みたいな奴。まだデメリットを認めてる分マシだけど。
知りたかった所ってのはモジュール変数と構造体?
HSP詳しくないので答えられまへん。
>>500 だーかーらー、それが面白いか面白くないかは問題じゃないの。
詭弁のガイドライン2:ごくまれな反例をとりあげる
だって言いたいの。
で?
>>502 私が一体何に対して詭弁してるのかさっぱりなんだが
君が華麗にスルーできなかった事実への詭弁を今述べていることは分かる。
>>504 >華麗にスルーできなかった事実
残念ながら、その指摘自体が詭弁17:論点をすりかえる、だから無意味。
ついでに14:細かい部分のミスを指摘し相手を無知と認識させる、も一部混ざってるな。
一々説明するのもアホらしくなってきた。お前は中学生か?
日本語も理解できないのか、つまんないからもういいや
やたらレスが進んでると思ったら
変なヤツが湧いてたのか
>>506 11:レッテル貼りをする
13:勝利宣言をする
これ以上笑わせないでくれ。
詭弁の意味くらい調べてこようね。
つまんねーやつに絡んでこっちまでつまんなくなった。
エロ動画でも見てくるか。
しっかし、こんなこと書いてる俺も一部詭弁が混ざってて、
突かれたら間違いって認めなきゃならんところも結構あるのに、
それに気付かれずほったらかしってのも何だかなあ。
どうでもいいところだけ突っついてくるし。
結局、まともに話せる人間だったのはiOiUgZAqだけか。
>>509 何でガイドラインが存在するのか考えようね。
ヤレヤレ、アホに絡まれるとはついてない。
>501
そこまで高度なことするならC使えばいい
>>「HSPで実装が難しいから、面倒だから、処理が重過ぎるから、この仕様はやめよう」
こういう事を考えないレベルで簡単にできるのがHSPのいい所なんだし、HPSの限界まで使っても足りないようなゲームを作れるなら他の言語も習得できるだろうし
資料を示さず自論が支持されていると思わせる
一見関係ありそうで関係ない話を始める
知能障害を起こす
自分の見解を述べずに人格批判をする
ありえない解決策を図る
レッテル貼りをする
勝利宣言をする
新しい概念が全て正しいのだとミスリードする
>>512 列挙するならバカでもできる。
個別に指摘してごらん。
>>510 > まともに話せる人間だった
過去形にされたぁ (TーT) Still alive
揚げ足取り合戦には興味ないので、100人の村でも見ますよ。
文句ばっか足れてるのは、自分の技量がないだけじゃないの?
>>511 ではHSPは最適ではないということで宜しいかね?
ありえない解決策を図る
→”華麗にスルー”しきれてないじゃん。
→別にHSPに限らず、言語系スレは一通り見てるから。
一見関係ありそうで関係ない話を始める
→さっきから揚げ足取りがお好きなようでw
資料を示さず自論が支持されていると思わせる
>>497 知能障害を起こす
→詭弁のガイドラインでも読んでこい。当てはまりすぎてる。
自分の見解を述べずに人格批判をする
→私が一体何に対して詭弁してるのかさっぱりなんだが
→一々説明するのもアホらしくなってきた。お前は中学生か?
レッテル貼りをする
→一々説明するのもアホらしくなってきた。お前は中学生か?
勝利宣言をする
>>510 新しい概念が全て正しいのだとミスリードする
→詭弁のガイドラインでも読んでこい。当てはまりすぎてる。
こんなもんでいいか。
>>517 お疲れさん。
レスすんの面倒だからやめた。合ってる間違ってるの判断はご自由に。
さて、俺も100人の村でも見るか。
以上、基本的に痛い奴の立ち去り方は皆同じというサンプルスレでした。
そーゆー貴方も、しゃしゃり出て適当なことを書き散らす十分痛い奴ですからぁ、残念!
r'::::::::i
トーf/__
/ イ| 、ヽ
//_〉 l_l i_ノ、
\\ (_ニノ 〉____〉〉 〉
/ } / ,_-‐、
/\/,ー 'ヾ i"_Y 〈i
〈 < / ゝ^-'"
\i"ヽ、 \\ //
├ i\i カ ,、
|_,,i ノ_ソ ) ゝ
なんかどっちもどっちな希ガス
ま、おまいらモチツケ
って書き込み時間見てなかったorz
終わったあとじゃねぇかw
ではHSPは最適ではないということで宜しいかね?
>>524 いいんでない?
>>471の最適という言葉は不適当だと思ったし。
続いて、くるくるドカンというか、掟ポルシェを見ますよ。
何でお前らの日記が載ってんの?チャットする気か?
HSPが気になって気になってレスしないと気がすまないのだけはわかった。
やっぱHSPって厨が多いなw
Cはもっと多いけどw
スリムドカン
HSPで3Dしようと思ったら普通はプラグイン使うわけで
1ポリゴン毎の管理なんてせんよ。5万ループなんてしない。
HSPスレなのに、たくさん新規レスが増えていてびっくりした。
こういう話題がツボなのか。
HSPで作られた3Dのゲームなんてあるの?
534 :
470:2006/06/04(日) 21:21:03 ID:/4zg3QQK
とりあえずその2つ外してみれば。
スタートアップや自動実行も確認しる。
HSP製の常駐系ソフト入れてないか?
メモリークリーナーだとか...
>>534 シャロムの箱入り娘、Mファン見て解いただろ
537 :
470:2006/06/05(月) 19:44:55 ID:lMa8t1VE
情報ありがとう。
Mファンは8年くらいは定期購読してたと思うけど、
お話こんにちわ!ってコーナーがお気に入りだったよ。
タコの海岸物語とか、魔物クエストとか、LastWarとか
Adnisとか、いろいろ打ってた。
5年後、ネットが普及して、LastWar2か何かが
1分くらいでDLできた時には、感動と同時に寂しいものがあったよ。
これいうとまた、過疎がどうだのネタ提供がどうだの言うやつが沸きそうだが
>>537 皮肉が通じてないな。懐古話を展開するためのネタふりじゃねーのに。
しつこくageてまで ゲ製でする質問ではないことに気づけ。
>538
過疎ってるんだから別にいいじゃん
話題変えたいなら自分でネタ提供しろ
ギザギザハートさんなんだろきっと。
>>539 過疎ってるってお前…他の人気ある板のスレと比べたら過疎かもしれんが
ゲ製板内で同時期に立ったスレのなかでは、勢い24(現時点)で上位にあるぞ。
あと、話題変えたいなどと訴えた覚えはないしな。
御託うざー(><
ああ、スルーしてスマンかった。すねるな。
>>540 ここはお前、タランチュラ…もとい、オッサンだらけだな!
>>544 ごめん、そのレス膨らませらんない。難しすぎるよ。
オヤジギャグだとつっこんでくれよ!><
>>544 まだ厳しいなぁ。
よし、ライフライン…50:50、使います。
あれ…? 3÷2=1.5ですよね?
小数点以下切り上げなんですかッ? み∂!おぃっ!! →乱闘
整数での演算に慣れすぎると、こんな落とし穴に嵌まるおそれがある。
HSP使いの皆も、どうか気をつけて欲しい…。
スレ伸びてるから何があったかと思ったら・・・アホかw
漏れが前に本家に書いたバグありスクリプトが
そのまんまコピペしてあるサイトを見つけてワロタw
隠遁(いんとん)生活してたんで知らなかったよ。
VisualStudio Express EditionsてVBもタダで組めるのね。
だから最近HSPスレも少なくなっていたのか…
VBはず〜っと避けて生きてきたけど勉強しなきゃならないかなあ。
忙しくなるぞ。
>>419 こうやれば、出来るだろうってのは、前から考えてて
実際やってみたら一応出来た、地面が平らのしかやってないけど・・・
スクリーン座標>3D座標 の座標変換が出来れば難しくは無い
(hgimg3は変換命令ないけどhgimg3の命令使って結構簡単に実装できる)
1、マウス座標をカメラからの距離1.0の3D座標に変換して ベクトルX,Y,Zを出す(カメラの座標は足さない)
2、地面からカメラまでの高さを出す
3、2で出した高さを ベクトルYで割る
4、3で出した商に 1で使った距離(1.0)を足して、1で出したベクトルX,Y,Zを掛けてカメラ座標を足す
とりあえず、これでクリックした3D座標は出せる(後はこれに向かって移動させればいい)
地面に高低差とか、地面との間に障害物がある時なんかを考えると面倒くさそう・・・
コンテストって意外といいソフトあるのね。
一つ一つ試してる。すごく時間がかかるけど楽しい。
HSPってクラスにも対応しないでなんで3とかまで行ってんだろう???
>577
C++厨乙。
やたら制限のある言語やツールは
その制限ゆえに一工夫も二工夫もしようともがく人たちを生む
質問あるのですが画面を敷き詰めているマップチップを
全部スプライトで描くという手法は普通なのでしょうか?
いたって、普通。
プラグインから提供されるいわゆる「スプライト機能」を使う必要はないんじゃ。
普通にコピーして並べればいい。
>563
初めはそれをやっていたのですが
揺らめく海面とかアニメーションしているマップチップを再現するのに
スプライトだと簡単だったので。
普通と聞いて安心しました。力技っぽい感じがしたので。
ああ、自動アニメーションさせるならたしかにラクだな。
ifで挫折しました。
克服しました。
配列変数で挫折しました。
ありがとうございました。
スプライトって意味ないと思うんだが
わかりにくくしてるだけだと思う
結局、画面全体は描き直すわけだから
初心者はアニメの管理自分でできないから
自動にまかせてるのではないだろうか。
画面が640×480pxでチップサイズ32×32pxだと、縦20×横15=300チップ必要。
アニメが楽というメリットは魅力だけど
裏バッファから640×480pxを1回で転送する場合に比べたら負荷が大きそうだな。
?
スプライトがわかりにくい?
なぜだ。俺みたいなめんどくさがりには最高に便利なんだが…
STGやACTにはすっごく便利だけど
それ以外のゲームでは特に必要ないかも知らんね
それかHSPだけでSTG作ったことがある人にとっては
プラグイン側の仕様覚えるの('A`)マンドクサというだけのことかも知らん
575 :
名前は開発中のものです。:2006/06/07(水) 22:13:09 ID:C7IpM9K5
>>556 中でも良いソフトあった?
ところでHSPファンブックがようやく夏ごろ発売されるみたい。
ファンブックって?
>>574 俺は初めて作ったSTGがプラグインベッタリだったんだよなー
配列変数の概念は分かったけど、使い方がいまいち分からなス
HSPビギナーズクラブ以外に、分かりやすい解説があれば教えて頂けませんか?
>>578 配列にテキトーに数値をちりばめて
1.配列の中の一番小さい数値を探す
2.順番に並べ替えてみる
3.一個取り出し、そこから後の数値を前に移動させる
4.配列を2個使ってx座標、y座標とし、何か表示してみる(circleかboxfでいいから
5.4を動かしてみる
とかやってみたらいいと思うよ
>>578 ビギナーズクラブとやらの説明は読む気にならなかった。
こっちのほうがまだマシ。
http://homepage1.nifty.com/takanon/hsp/010.html わからないものを無理して覚えようと講座サイト読むよりも、
この解説ページのように、
身の丈にあった範囲でスクリプト書いてみたほうが早いと思った。
2Dの横スクロールゲーが作りたいのなら
・自機を動かす
・敵を1体だしてみる
くらいのとこまで、作ってみる。 したら、
・敵を複数だす
と進みたくなるはずで、そのときになら配列も無理なく理解できるかと。
つまりは、頭でうだうだ考えてないで、手ぇ動かせ、と。
難しそうだと思っていたPERLの勉強を始めてみたら
HSPと文法が似ているせいか割と覚えやすい。
うれしい誤算だ。でも今から覚えるのって
PERLとPHPどっちが将来役に立つんだろ。
>>579-
>>580 何だか短くて読み易そうですね。
詳しい情報ありがとうございましたm(_ _)m
RNDの文法が間違ってる。詳細はヘルプ嫁。
時々エラー行がズレることがあるから
前後の行にも注意すること。
>>586 そこの講座のインデックスに
>HSPの最新版はv3.0ですが、ここの解説ではv2.6(または2.61)を前提としております。
という一文があったぞ。
HSPver2.xとver3.xでは一部の文法やルールが変わっていて完全な互換性はない。
詳しい変更点はマニュアルのアップデートガイドを参照してもらうとして、
モジュールを使えばある程度の互換性は取り戻すことはできる。
が、2.xは今後更新は望めないだろうから、
新しい文法を覚えて3.xに対応した入門サイトで勉強したほうがいいかもしれない。
以下HSP3向けの学習サイト
ttp://hspcenter.com/ ttp://www.rinku.zaq.ne.jp/ultimate/
>>587 なるほど、詳しい解説ありがとうございます。
やはりこういうモノは、最新の教材を使ったほうがよさそうですね。
わざわざサイトまで教えて頂いてありがとうございました。
HSPが無かったら…
もしHSPが無かったら・・・
ウワゴトのように繰り返す589の意識は既に
>>590 こんな記述でどうだろうか
exist "HSP"
if strsize=-1 : 〜
593 :
554:2006/06/12(月) 23:53:29 ID:KYOqUtfW
>2、地面からカメラまでの高さを出す
カメラじゃ無くて、カメラから1.0離れた所のカーソル3D座標の高さだった(1にカメラを足せばいいだけだけど)
594 :
554:2006/06/13(火) 00:38:52 ID:PMLVoRSk
Sugeeeeeeeeeeeeee
もう自信なくした
HSPユーザーが減った
>>595 まぁ、あわてるな
Sugeeeeって思ったのは全てhgimg3の部分だろう
俺のやってることは、座標変換と、角度や座標の差分を
小さくしていく作業と、そこに表示物を置いてるに過ぎない
(座標変換が出来れば、後は難しい事してない)
やっぱHSPはあった方がいいや
599 :
名前は開発中のものです。:2006/06/14(水) 18:39:47 ID:56DkHy2I
おもしろいスクリプトきぼんぬ
mes "面白いスクリプト"
;HSP3用 参考 yokohama.cool.ne.jp/chokuto/advanced/capturescreen.html
#uselib "gdi32.dll"
#func CreateDC "CreateDCA" sptr,sptr,sptr,int
#func DeleteDC "DeleteDC" int
#func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int
#define ma(%1=100) wait %1
sx = ginfo_dispx : sy = ginfo_dispy
c=-1: f=0: r=0: s=0: x=sx/2-128 : y=sy/2-8: w=0
m="Zpv!jt!b!cjh!gppm!nbo/!IbIbIbIb/"
screen 0,0,0,2,0,0:ma
bgscr 1, sx, sy, 2, 0,0,sx,sy : buffer 2, sx, sy
CreateDC "DISPLAY", 0, 0, 0: hdcScreen = stat
BitBlt hdc, 0, 0, sx, sy, hdcScreen, 0, 0, $CC0020
DeleteDC hdcScreen : gsel 1,2 : color 0,0,200
repeat : redraw 0: on f goto *f0,*f1
*f0
pos 0,r : boxf 0,0,sx,r : gcopy 2,0,0,sx,sy-r
s+=1 : r+=s : if r>sy:f=1:w=100:color 255,255,255
goto *fz
*f1
pos x,y:x+=8 :c++ : if c>31:break
mes strf("%c",peek(m,c)-1)
*fz
redraw 1:await w
loop
ma: end
>>601 メッセージが気にくわない。
でも、一瞬びびって面白かった。
HSPEXTの三角関数命令はなぜsin cos atanになってるの?
tanではなくatanである理由はなに?
STG作るためのものだから割り切ってるんでしょ
>>605 詳しくお聞きしたい
当方、atanとtanの違いもよくわからないんですが
STGで弾をだすのは三平方の定理を応用してやってるので
rangeX = targetX - myX;
rangeY = targetY - myY;
angle = atan(rangeY / rangeX);
x += cos(angle) * speed;
y += sin(angle) * speed;
これで定型(あってればね)かな。調べればごろごろしてるからぐぐってくださいな。
>>607 さんくす
atanを使うのが定型になってるようですね
tanとatanは逆なだけ
HSPでタスク処理って実現できるものなんでしょうか?
STG作っておられる方が多いようですが、
みなさんはどうやっているのか気になる…
タスク処理ってなに
タスク処理(タスクシステム?)は、よくわかんないけど、
状態用の変数をifで判定して、gosub するだけじゃダメなんだろうか。
ごめん、タスクシステムの事です。
>>613 沢山の種類の敵味方が出たら破綻しないか?
「あなた」とは1個のバカである?
俺敵キャラとかスプライト番号で管理してるんだが
みんなどうやってんだろう.
・イベントを発生させることと、イベントの処理自体とを明確に分ける
・イベントの処理に優先順位をつける
この基本概念さえ押さえとけば、あとは各自、言語の特性にあわせた実装を
思い思いにとれば良いと思うよ俺は。
618
敵キャラとスプライトは別じゃないかな
一つの敵キャラで何枚もスプライト持つこともあるし
だいたい、敵キャラが出てくる時点ですでにおかしい。
画面上に表示されるすべてのスプライトは味方であるべき。
>>621 いやその場合は複数の敵キャラ扱いしてるよ。
画面上ではひとつでも。
最近HSP始めたんすけど、参考書を買うかどうかで悩んでいます。
HSPのスクリプトは結構ネットに載ってあるので、金出してまで参考書買う
メリットはあるのかなぁ〜と思ってるんですが、何か俺が気付いてないよう
なメリットみたいなもんてありますかね?
>>625 なるほど。それも確かにそうですねw ただそれ以外に技術的(?)なメリット
なんてのはないですかね?あとやっぱりネットには書いてないような
スクリプトも参考書なら多数載ってたりとかするんですかね?複数質問
ホント申し訳ないです。
DamareGaki
>>624 俺は最初に参考書買って覚えたんだが、後でネット検索してみて
全部載ってるジャンって思った。
と言うか、ネットのHSP講座みたいな方が作るソフトの目的がはっきりしてて
本よりも良いような気がする。
ネット見て理解出来てるんなら、本は必要ないと思うよ。
検索してもHSP2.6用のサンプルばかりでコピペは出来んな。
覚えたいってなら自分でコード打つことも重要。
>>624 何もわからない初心者のうちは、本も役に立つんじゃないかな。
まぁ、買うべきかどうか判断に迷う(買わねば!と思えない)、
メリットがないと感じる程度の物なら、いらないんだろうね。
書店に出向き、本の内容を見て、自分の力量の伸びの見込みと比較した上で(※)、
自分で判断すれば良いと思う。
(※ ある程度HSPを使いこなし、ネットの情報も活用できるようになって、
自分の力量が本の内容のレベルを超えたら役に立たなくなるので。)
…ただ、本を買わずに済ませるのなら、
本に載ってそうな事、ネットで調べられる程度の事を
「これこれこういう事はできますか?」
「どうやってやればいいですか?」 と、
こういうとこで質問しまくるのだけはカンベンな! コんグ
>>628サン。おぉ、それを懸念してました。とても参考になりました。ありがとうです。
>>629サン。2.6のコードが多いのですか…情報助かります。
>>230サン。一応簡単なドラクエのような戦闘プログラム(?)なら何も見なくても
できるという感じです。(ま〜だまだですが)。もちろん本も読まずにそんな
質問もしません。あと情報ホント感謝です。最後にみなさん丁寧にありがとうでした。
助かりました。
632 :
名前は開発中のものです。:2006/06/22(木) 13:05:22 ID:RUwC2ij+
乗り遅れだけど一応書くぜ
v3.0になって色々仕様変わったから丁度v3.0の本も出てるわけだし
購入するなら今のうちだと思う。
ネットで検索するよりも本だと必要な情報がすぐ見つかる。本には載ってない情報は
ネットに頼るって感じかな。つうかHSPはプログラムだし末永く付き合うには本の方が
後で色々と都合がつき易いと思う。
うちは「HSP3プログラミング入門-オフィシャル」を購入したけど3D関連については申し訳ない
程度の情報しか掲載されてないので別冊の「12歳からはじめるHSP 3Dゲームプログラミング教室」
とか購入する方がいいかも知れない。まあうちは2Dで十分だけどね。
>>632 うちも入門オフィシャル買った。1〜4章まであるんだが
1章と2章は公式サイトの初心者コーナーとほとんど同じで、リファレンスはむしろ公式の方が速く検索できる。
3,4章あたりで実際にプログラム作り乗ってる感じ?
(少なくともオフィシャルは)外にでるときに読むとかそういうことがない限り、いらないと思う。
634 :
名前は開発中のものです。:2006/06/22(木) 23:53:30 ID:NNJTkBPZ
キャラをジャンプさせることが難しくてできません。サンプルを見ても理解できません。
何か簡単にジャンプさせる方法はありますか。
それだけじゃ教えようが無い。なぜそれで答えを得られると思うのか不思議。
636 :
名前は開発中のものです。:2006/06/23(金) 00:01:50 ID:k7bOrnTE
すいませんでした。もっと詳しく説明します。
キャラがジャンプをしてはくれるのですが、下がってきてくれないのです。
それでもわからんw
Y座標の加減がおかしいんだろうけど。
ジャンプルーチンのソース出せば?
>>632さん、ありがとうございます。非常に助かりました。
12歳から始める〜というのを買ってみようと思います。
本当に助かります。
>>633さんも同じく参考になります。
ありがとうです。
>>636 予め地面を作っておく。変数0=limit(変数0、下限、上限)
1、時間を進める
2、ジャンプボタンが押されてるかどうか+変数1が0であるか確認する
変数1を1にする。変数が1なら上昇、変数が1でなければ下降。
変数2に1を足す
3、下記参照
4、最初に戻る
1、時間を進める
2、上記参照
3、ジャンプボタンが離されるor変数2が20になる
変数1を2にする
着地判定したら変数1を0にする
4、最初に戻る
こんなかんじでだめ?
は、読み直したらなんかまずーだ。
2、はジャンプボタンが押されてるか+(変数が0or1)だね。さらに下降は変数0の近くにおいとかないと
着地判定は地面作成のところで
if変数1!1 :変数0-=下降分
変数0’=変数0
変数0=lim(変数0、下限、上限)
if変数0!変数0’ :変数1=0
で多分いけると思う。確認はしてない。
こうですか?わかりません><
#define STAND 0
#define ASCENT 1
#define DESCENT 2
chr_x = 100:chr_y = 200:chr_state = STAND
repeat
stick key, 1 + 4 + 16
if chr_state = DESCENT {
chr_y += chr_move:chr_move++
if chr_y > 200:chr_y = 200:chr_state = STAND
}
if key & 16 {
if chr_state = STAND {
chr_state = ASCENT:chr_move = 15
} else:if chr_state = ASCENT {
chr_y -= chr_move:chr_move--
if chr_move < 1:chr_move = 0:chr_state = DESCENT
}
} else:if chr_state = ASCENT:chr_state = DESCENT
chr_x -= (key & 1)* 5:chr_x += ((key & 4)= 4)* 5
redraw 0:palcolor 7:boxf:pos chr_x, chr_y:palcolor 0:mes "人":redraw 1
await 30:loop
操作方法:スペースと←→
下から5行目のifのあとにスムーズに降りるように書くの忘れてるね
if key & 16 {
中略
}else :{
if chr_state = ASCENT: chr_move=-1
chr_state = DESCENT ↑これが抜けてる
}
それ以外は組めてるジャン。見づらいけど
ジャンプ途中でキー離したら真下に落ちるんじゃ・・
マリオみたいに放物線を描くジャンプはむつかしいな
644 :
名前は開発中のものです。:2006/06/23(金) 20:45:28 ID:k7bOrnTE
645 :
名前は開発中のものです。:2006/06/23(金) 22:28:42 ID:k7bOrnTE
すいません。これで●が右から左に動きながらジャンプすることはできますか。
いくらやっても無理なんです。
x=500
y=100
repeat
cls
pos x,y
mes "●"
x=x-1
getkey spece,32
if spece=1:y=y-3
await 1
loop
>>645 君に分かるように教えるほうが無理なんです。
x=500:y=100
repeat:cls:pos x,y:mes "●":x=x-1:getkey spece,32
if spece=1{y=y-3}else{if y<100:y=y+3}
await 1:loop
自分で上昇させたんだから下降させるのもやらなきゃダメだろ・・・
>>645 とりあえず君はこの土日、人に聞かずにいじくりまわいてみることを進める
説明しようがないぐらい色々わかってないと思われるぞ。
>>643 >641のを参考に説明するなら
下降する加速度をchr_moveで設定するのではなく、
ASCENTとDESCENTの間に10個ぐらい放物線を描くように速度変化つけるようにすれば
力技だが単純。
ジャンプボタンが離されるか一定の上昇をしたら
chr_stateを1から2へ。2の場合はそこそこ上昇
次にループした場合に
chr_stateが2なら3へ。3の場合はちょっと上昇
以下略
見たいな感じで。
>643
マリオもちゃんとした放物線は書いてないと思った
一定の時間押してる間は直線的に上がっていたと思う
(離された時の処理は2種類あるように見えたけど・・・)
#define JMPADD 5 ;最小ジャンプ値
#define JMPSPD 300 ;ジャンプの加速度変化量
cls 4 :buffer 1,640,480 :cls 4 :gsel 0:x=320:y=400
repeat :redraw 0 :gmode 4,,,5 :pos 0,0:gcopy 1,0,0,640,640:stick ky,$ff
if (ky&16){;jmpfジャンプフラグ addjmpジャンプ移動量(1000倍) kyjmp押し続け有効カウント
if jmpf=0 or kyjmp<20{ jmpf=1 :addjmp=-JMPADD*1000 :kyjmp++}
}else{if jmpf{kyjmp=20} }
if ky&1{addx=limit(addx-300/(jmpf+1),-3000,3000)}else{if ky&4{addx=limit(addx+300/(jmpf+1),-3000,3000)}else{if jmpf=0{addx=int(0.9*addx)}}}
x+=addx/1000
if jmpf=1{
y+=addjmp/1000 :addjmp+=JMPSPD
if y>=400{jmpf=0:kyjmp=0:y=400}
}
color 255,255,255 :pos x,y :mes "T" :wait 1 :redraw 1 :loop
650 :
名前は開発中のものです。:2006/06/24(土) 20:45:52 ID:N2Gy+fkt
わかりました。いろいろといじくってみます。
今HSPセンターってとこでHSP勉強してるんだけど、スクリンセーバーの
あたりからわかんなくなっちゃって><; もっと簡単なサイトないかな?
HSPに付属されてる入門講座みたいなのは一通り把握したんだけど…
>>651 センターより分かりやすいサイトか…みたことないな。
わかりやすい説明を求めるなら、それこそ、
少し前で話題になってる本の「12才から〜」のシリーズを買ったほうが良さそうだが。
というか、ゲームじゃなくてスクリーンセーバーが作りたいのか?
そうでなければ、読み飛ばして
ブロック崩しの説明に進んでもかまわない内容だと思うぞ。
dir_cmdlineやstrmidの説明ははしょられてるな。ヘルプ見ろということか。入門者はその
時点で嫌になるな。
ブロック崩しだが、変数xxxの説明が一切ないな。こんなのが1番分かりやすいサイトだ
ってんならもうただで講座サイトで勉強するのはあきらめてさっさと本買った方がいいな。
プログラミングをあきらめた方がお得
>>652 やっぱり本か〜。まぁブロック崩しもわからなかったけど…とりあえず
情報ありがとうッス。
>>653 なんてこった^^;そんなに説明飛ばされてるんすか…そしてやっぱり本すか。
でもよかった、一番わかりやすいのもわからないのかと思ってたよ。
助かったよありがとう。
ところでxxxって何すか?ヘルプ見ても教えてくれなかった…。
あと12歳から〜ってのはHSP3.0の参考書なんすか?
恐縮ですがご教授くだされ
>あと12歳から〜ってのはHSP3.0の参考書なんすか?
自分で調べろ無能PGが。
>>657 アマゾンで見たんだが、表紙にはHSPとしか書いてなかったから
ここで聞いてるんだよ…
>>658 ぽかーん・・・
Googleってしってまちゅか?><
>>659 いろいろ調べたらヤフーショッピングに乗ってましたね…。
調べが足りなかった><;申し訳ないです。
サッカーのゲームを作りたいんだけど
この画像の上のやつで計算とかして、下で表示ってのは普通だよね?
計算で選手とかを表示する位置をだすのがめんどいんで不安・・・
http://u.pic.to/x6ln
[重要]PCからのアクセス制限について
--------------------------------------------------------------------------------
2月24日AMごろよりアクセスしづらい状況が続いており、ご利用のお客様には大変ご迷惑をおかけしております。
現在のサーバ負荷の主な原因といたしましては、一部のお客様が無差別に画像URLにリクエストを送り、存在するURLをチェックするというような行為を行っているために過剰なアクセスが集中していることによります。
そこで、暫定的な負荷対策として、PM7:00〜AM4:00の間はPCからのアクセスを制限することにいたしました。(携帯端末での閲覧は従来通り問題なく行えます。)
ご利用のお客様には大変ご不便をおかけしますが、何卒ご了承くださいませ。
>>661 YOU、答える人間に無駄な手間かけさせるなYO!
はげどぅですぅ><
664 :
名前は開発中のものです。:2006/06/26(月) 16:40:20 ID:QPjMulxO
簡易的なノベルエンジンの制作をテストしてたんだが、稀に表示されないページがあるバグが発生した。
コメントも何もないゴミ以下のソースだが短いので訂正もせず出すことに何ら躊躇しない。
ノベルゲーエンジンのスクリプトの仕様は
m…ゲームの開始
n…改ページ待ち
しか実装していない。m,nは一行に記述する
例)
m
ゲームスタート
n
とみせかけて
n
終了
665 :
名前は開発中のものです。:2006/06/26(月) 16:41:02 ID:QPjMulxO
buffer 2
;dialog ,16
;if stat=0 : end
gsel
notesel text
noteload "simple.txt"
repeat notemax
if fc=6 : fc=1
noteget temp,cnt
if temp="m" : fc=1 : continue
if temp="img" : fc=2 : continue
if temp="center" : fc=3 : continue
if temp="left" : fc=4 : continue
if temp="right" : fc=5 : continue
if temp="n" {
repeat//実質的なメインループ
stick key
if key&256 : break
await 30
loop//ここまで
cls
fc=6
;continue
}
666 :
名前は開発中のものです。:2006/06/26(月) 16:42:49 ID:QPjMulxO
if temp="end" : stop
if fc=1 : mes temp
if fc=2 : pos 0,0 : picload temp : fc=1
if fc=3 : pos 200,0 : picload temp : fc=1
if fc=4 : pos 400,0 : picload temp : fc=1
if fc=5 : pos 0,0 : picload temp : fc=1
await 1
loop
end
> バグが発生した
だから?デバグを人にやらすな。
> 稀に表示されない
これが発生するスクリプトは?
668 :
名前は開発中のものです。:2006/06/26(月) 17:13:31 ID:QPjMulxO
言い方変えても、人にデバグさせるだけじゃねえか。
で、どのページがひょうじされへんのん?
そこが問題やねぇ。
671 :
661:2006/06/26(月) 18:44:51 ID:o7LiGkjS
長い行が表示されないみたいね。
解決方法はわからん。
ちょっと待ってナ
>>671 質問変わっとるし。(#-_-) 何を使えばって…
よくそれで3Dゲームを作ろうと思い立ったもんだと感心する。
確かにあれこれ考えるより、行動したほうが良いとは思うけど
どのプラグインを使うか、とか、
大まかなプログラムのイメージくらいは考えてから動こうぜ。
…そこまで何も分からないレベルなんだったら
「12歳からはじめる、わくわくHSP 3Dゲームプログラミング教室」
を使うといいと思うよっっ!
http://www.rutles.net/books/110.html 12歳以下だったらあきらめてネ!
あと >594氏あたりを参考にするとイイカモ!
原因わかんね。
675 :
661:2006/06/26(月) 19:45:56 ID:X5p3zbof
>>673 レスありがとう
質問変わったのは3Dで表示したほうが楽かなって思ったので。
携帯からだったので、プラグインって言葉が思い出せなくて何をっていう質問になってしまいました。
ともかくありがとう!!
>>675 …すごい忘れっぷりだな、ぉぃ。(;-_-)
若年性痴呆とかには気をつけろょ…。
手近なとこでは
\hsp30\sample\hgimg\ (mesh_x.hsp)
\hsp30\sample\hgimg3\
あたりのスクリプトも参考になるべ。
677 :
名前は開発中のものです。:2006/06/26(月) 20:13:30 ID:QPjMulxO
>>674 文字列変数って宣言しないと容量に制限あるんだっけ?
じゃあそれ回りで引っかかってるのかな…?
体よくデバッグさせてしまったようですまない
>677
一行の文字数が多すぎて切れてる以外全てtxt通り表示されてるよ。
n
n
こうなってるのが3箇所ぐらいあって、そこは何も表示されてない
3Dの方が楽ってマジかよw
680 :
名前は開発中のものです。:2006/06/26(月) 22:19:12 ID:QPjMulxO
>>678 「彼女の手元から鋭い剣が零れ落ちて、それが自分の心臓に突き刺さるのがゆっくりと見えた。」
という文(最初の方です)が脱落しているのを確認しました。
スクリプトの中身を逐次読み出していく変数tempをsdimで確保したら正常に動作しました。
やはり睨んだとおりだったようです。お騒がせしました。
681 :
名前は開発中のものです。:2006/06/26(月) 22:25:16 ID:QPjMulxO
すいません。間違いました。全然改善されていません。
tempを大きめに確保しても改善される気配がありません。改行を入れると表示されるのですが…
原因が分かりませんね…
ちょっとまて、それ殺人じゃね?
>>681 全然それらしき不具合が再現しないんだが。
mesした文字列が右端で折り返さないことをバグと言ってる?
バグった状態のスクリーンショットでもupしてくれんかね
684 :
名前は開発中のものです。:2006/06/26(月) 23:02:26 ID:QPjMulxO
HSP 3.0 で実験 (HSP には詳しくないので間違ってたらゴメン)
試したコード
;;;;;;;;;;;;;;;;;;;;;
; xxx.hsp
notesel text
noteload "simple.txt"
noteget temp,0
if temp=="abcdefg" {
mes "** " + temp
}
;;;;;;;;;;;;;;;;;;;;;
; simple.txt
人口100万人以上の大都市でありながら豊かな自然が各所に残され、
;;;;;;;;;;;;;;;;;;;;;
simple.txt の行の内容によって
if temp=="abcdefg" { の段階で
temp が未定義変数の状態になる場合があるみたい。
未定義の変数と文字列の比較は常に true になるっぽくて if 文の中が
実行されるらしい
noteget の後で比較の前に、n = strlen(temp) とか temp を使う命令をいれてあげると
正常に動くかも。
>
>>665 のコードでは if temp="m" : fc=1 : continue の continue が実行される
から表示されない
if temp="m" : fc=1 : continue の上に
if cnt=70:dialog ""+temp
これを付け加えたところ、正常に動作した。
また、問題の行の文章を短く改変すると問題なく動作した。
688 :
名前は開発中のものです。:2006/06/27(火) 00:42:24 ID:/0V9LxsN
>>685 仰るとおりにしましたところうまく行きました。
あなたこそ稀代の名ハッカーですね。
>>686 やはり不具合だったんですね…
>>687 ありがとうございました
690 :
名前は開発中のものです。:2006/06/27(火) 17:15:09 ID:18wzoNdC
>>689 ふざけないでくださいっ!!
シナリオが電波なのは俺が一番分かってるよ…('A`)
ちゃんと消しておきましたので。皆さんありがとうございました。
Nscripterでがんばろうと思います。
感想言われたらキレるって意味わかんねwwwwwww
シナリオじゃなくてお前本人が電波じゃねぇかwwwwwwっうぇwっうぇwww
692 :
名前は開発中のものです。:2006/06/27(火) 18:51:31 ID:18wzoNdC
>>689 ありがとうございます!!
自分としては始めて作品らしい作品を書いた思い入れの強い作品ですので、
そういってもらえるととてもうれしいですし励みになります!
是非僕のホームページにも感想を300字以内で書き込んでくださいね!
これでおk?
>>691
> 668 名前:名前は開発中のものです。[] 投稿日:2006/06/26(月) 17:13:31 ID:QPjMulxO
> すまない。俺にはどこに原因が潜んでいるのか思考が及びも付かないので、
> 誰かクレバーな方がミラクルな解決策を提示してくれないかなということです。
>
http://gamdev.org/up/img/6279.lzh > スクリプトはこれ。
困り果ててるのとプライドと嘘が入り混じったこの幼児性がたまらないw
どうせまた別のところでつまずくだろうがな('A`)
HSPのバグじゃデバッグつらいね。
>>690 それはおいといて、長文でも2回は読みなおしたよ!
697 :
名前は開発中のものです。:2006/06/27(火) 21:15:33 ID:18wzoNdC
>>693 ありがとうございます!
>>694 ふざけないでくださいっ!!
>>695 お、おだてたって何もでないんだからねっ!!!
……ありがとっ(///)
また分からないことがありましたら質問しに来るかもしれません。
今後ともよろしく^^
ところで線分と短形の当たり判定と、
標準命令で正確に狙い撃ちをするプログラムを組まなければいけない状況が発生したら
皆さんならどんなスクリプトを組みますか?
2ちゃん風吹かすのが礼儀だと思ってるなら
もう、やめような。
> 皆さんならどんなスクリプトを組みますか?
…なんだつまずいてるじゃん('A`)
・・・発言の一つ一つが痛々しいな
スマン
まぁなんだ、その、ネタ振りです。
何か逆にウザいな
ごめん調子に乗りすぎた
僕2chは得意ではないので
>>697 > ところで線分と短形の当たり判定と、
一応ツッコんでおくが、「矩形」だろ。
矩形……やべ、ずっと勘違いしてました
ていうかこのスレ意外と住人多いね
くけーーーーーっ!!
クケダイちゃん
708 :
697:2006/06/28(水) 17:08:50 ID:ppzly9JN
なんか失速してるな。
標準命令での狙い撃ちに関してはこんなスクリプト組んでみたんだけど。
あまり精度が高くないように感じたので…
repeat
x=mousex
y=mousey
stick key
if key&256 : break
await 30
loop
dx=x-320
dy=y-240
d=sqrt(dx*dx+dy*dy)
vx=dx*10/d
vy=dy*10/d
repeat
pset 320+vx*cnt,240+vy*cnt
await 100
loop
だから、何?
せめて"〜して下さい"って言えよ…
ヒント:vx,vy
なんか俺とことん嫌われてるみたいだな……
ごめんヒントがわからない
お前はコミュニケーション能力が足らなさ過ぎる。
712 :
名前は開発中のものです。:2006/06/28(水) 19:19:37 ID:pP7OW8l0
>>710気にすんなって。そのなんだ少し空気が読めないだけだ。
なんつーか少し頭が悪いだけなんだ。
だから気にすんな。
>>710 キャラの演じ方に失敗してるのと、最初の質問の仕方が
バグの出る場所まで探させたのが原因だな
679の質問は自分が必要だから聞きたいのか、たんに自分のやりかたに
疑問があるから聞きたいのか、はっきりしない
708のスクリプトはdx,dy vx,vyを実数で扱えばそれだけで精度は上がる
後は、角度を使うやつ
d=atan(dy,dx)
vx=cos(d)*10
vy=sin(d)*10
線分と矩形って、線分の交差判定を辺の数繰り返すだけじゃないの?
(矩形と点の判定でやるとかもあるだろうけど・・・)
>>711 俺もそう思う。キャラづけに失敗した。
ノープランでスマン
>>712 >>713 atanか。タンジェントの逆数だな。
めがっさ使えるにょろね。ありがとう。
線分の交差判定だと線分が矩形に含まれる場合駄目じゃん?
座標を比較して判定でいけそうだね。
なんら貴兄らの知的好奇心を満たすことの出来ない質問ですまなかった。
結局は答えを得たもん勝ちだ。
だからモレは汚れ役を買って教える君に釘を刺しているというのに…
>>714 >線分の交差判定だと線分が矩形に含まれる場合駄目じゃん?
線分が徐々に矩形に近づいていく様子をイメージしてごらん。
私は君のことが好きだ。
にょろじゃねえぞ
別にキャラ作りなんてしなくていいのにw
うるせーにょろ
はるひおたうざす
にょろってハルヒネタだったのか。
今の所LAN内だけを考えてますが、HSP3でオンラインゲームを作りたいです。
通信関連のプラグインでおすすめありますか?
標準の「hspsock」を使ってみたのですが、どうも調子が悪いです。
わかりません(><)
>>723 LAN環境下でのネットゲーならhspsockで作ったことあるお。
通信自体はサンプルスクリプト研究すればなんとかなるとおも。
726 :
723:2006/06/29(木) 00:14:36 ID:u1eRM2xc
>>725 あら、いけるのですか・・・
プログラムと環境見直してみます(古いパソコンでしたので)
ちなみに「どうも調子が悪いです。」というのは
1秒に遅れるデータ回数が少ないという意味です
>1秒に遅れるデータ回数が少ないという意味です
最初から書けよ
>>727 困ってて動揺してるからそこまで考えがまわらなかったんだろ?
イヤミな小役人の様なチンケなキャラに堕して生きてんじゃねえよ。
最初から間違いをしないように正せば良いというなら、貧乏臭いオマエの母親の臭いマンコに精子が入らねえようにフタしときゃ良かったな。
そうすりゃ間違ってオマエが世にひり出される事が無かっただろうからな。
何かの受け売りなのか知らないけど、
その挑発の仕方、果てしなくダサいな。
大抵の人は怒る前にまず笑うぞ。
ものすごい一生懸命に罵ってるなあw
>>728 情報を小出しにして余計な手間を掛けさせるから頭に来たんだろ?
以下同文
まぁ>723の文章から
”「どうも調子が悪いです。」というのは 1秒に送れるデータ回数が少ないという意味”
を読み取れるヤツはおらんわな。エスパーくらいか。
もし>728が>723の質問に答えてやろうと少しでも考えていたなら
ID:7vp0S6qJ の憤りも理解できただろうに。
以下同文
むしろ728がここまで怒ってる理由がよく分からないw
734 :
723:2006/06/29(木) 17:06:47 ID:u1eRM2xc
>>723 理由はともかくhspsockは駄目そうなので
他におすすめ教えてください
↓
>>725 hspsockで作れますよ
↓
>>726 え、作れるのですか・・・挑戦してみます
ちなみに駄目だった理由は
って流れのはずだったのですが・・・
変な誤解を招いてすみません
そう言われると確かにそんな流れに見えるな
>>734 ダメだった理由書かないと、他を紹介しても同じくダメな事もあるし
725の人は、734がダメだとした所を、妥協して使ってたのかもしれない
そのぐらいの事は、考えて質問した方がいい
つーかこういう質問するときは、何が問題なのかとか
どう動かしたいのかくらい最初から書くべきだろ
※ 注 意 事 項
以下のル−ルは『より早い問題解決』のため、試行錯誤された結果です。
これを読めない・読まない・守れない教えてくんは、解答を期待してはいけません。
1. 努力を放棄すること
いやしくも「教えてくん」たるもの、努力をしてはならない。
過去ログを読んだり、検索してはいけない。
「英語は苦手なので、分かりません。」は、高く評価できる。
辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、正しい「教えてくん」である。
また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。
「サッパリ」という単語が「やる気の無さ」を効果的に表現している。
「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてくん」失格である。
2. 情報を開示しないこと
使用OSや、機器構成などの必須の情報を知らせてはならない。
マザーボード名やBIOSのバージョンも同様だ。
具体的なアプリ名やバージョンも隠蔽すべきだ。
「DVD再生ソフト」のように曖昧に表記しておけばよい。
反対に「前から欲しいと思っていた○○」とか「安売りされていた ○○」等の「どうでもいい情報」は、どんどん書いてやれ。
トラブルの場合は、状況を正確に記述してはならない。
「なんだかうまく動きません。」とか「エラーが出ます。」等と具体的なことは何も書かないことが重要である。
また、自分の試してみた事も具体的に書いてはいけない。
考えられる組合せのマトリックスを作成し、状況を整理するなどもってのほかである。
最悪の場合、それだけで問題が解決してしまうこともあるのだ。
「いろいろやってみたけど、動きません。」が理想的だ。
3. 答える人間のことを考えないこと
「教えてくん」は、孤高の戦士である。
相手のことを考えるようでは教えてくん失格というものだ。
以下のような行動が、望ましい。
初心者であることを高らかに宣言し、初心者向けの丁寧で分かりやすい説明を強要する。
専門用語の使用を禁じておくとさらに効果的である。
簡潔な説明を禁じられたヲタクどもは、同じ内容を説明するのに、何倍もの労力を強いられる。
自分は努力せず、相手には多大な努力をさせることこそが「教えてくん」の真骨頂である。マルチポストも有効である。
そのBBSを信用していないことを明確に示せる。
「どうせ、お前らじゃ分からんだろう。」という意志表示として高く評価できる。
もちろんマルチポストの非礼をあらかじめ詫びてはならない。
それでは、単なる「急いでいる人」になってしまう。
それは、教えてくんではない。質問のタイトルは、「教えてください。」で良い。
タイトルを読んだだけでは「何に関する質問」か全く分からない。
そういう努力は、答える人間にさせれば良いのだ。
とにかく、答える人間が答えやすいように気を使って質問してはならない。
傲慢で不遜な態度が必須である。「聞きたいことがあります。」など、プロの仕事であろう。
最後に、言うまでも無いことだとは思うが、答えてくれた人達に礼の言葉を返すなど言語道断である。
せっかく「教えてくん」を貫いてきたのに、最後にお礼を言っているようでは、画竜点睛を欠いていると言わざるを得ない。
質問だけしておいて、後はシカトが基本である。
上級テクニックとして、「そんなことはもう試しました。」とか、「そこまで初心者じゃありません。」などと言って、回答者の神経を逆なでしておけば完璧である。
以上のことを踏まえて質問すれば、君も立派な「教えてくん」である。
ビバ!教えてくん! 教えてくんに栄光あれ!!
長い。あぼーん。
…上記2つ
いわゆる「教えてくん」の行動を皮肉った文章のコピペだけど。
文中にあるような教えてくんの要素が質問の中にいくつも現れている場合、
その数が多いほど、質問に答えようとした人を苛立たせることになる。
(好々爺のように"丸い"人柄なら平静でいられるのだろうけど。)
で、その結果、良くてスルー、悪ければ罵倒されることになるわけで。
思い当たる人は注意すべし。
a = rudeness_of_questioner ; 質問者の無礼さ
b = patience_of_respondent ; 答える人の忍耐
if a > b : goto *batou ; 罵倒する
if a >(b/2) : goto *through ; スルーする
goto *answer ; 答える
むやみに煽る奴もどうかしてる。
1に書いてあること守ってくれればいい。
HSPでオンライン といえば
昔、HSP/O2にユーザー登録したなぁ。
そのまま何もせずにずっと放置してたけど、なにか作ってみるかな。
)
(
,, ) )
゙ミ;;;;;,_ (
ミ;;;;;;;;、;:..,,.,,,,,
i;i;i;i; '',',;^′..ヽ
゙ゞy、、;:..、) }
.¨.、,_,,、_,,r_,ノ′
/;:;":;.:;";i; '',',;;;_~;;;′.ヽ
゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、}
".¨ー=v ''‐ .:v、,,、_,r_,ノ′
/;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ
゙{y、、;:...:,:.:.、;、;:.:,:.:. ._ .、) 、}
".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′
/i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ
゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、}
ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
今心電図みたいなの作ってるんですけど、これでやったら心電図ぽくないん
ですが、
screen 0,450,350
kabea=110
kabeb=110
randomize
cls 4
*top
color 255,0,0
sukima=rnd(29)-14
kabea=kabea+sukima
if kabea<30 : kabea=30
if kabea>200 : kabea=200
line 449,0,449,kabea
pos 0,0
gcopy 0,1,0,449,350
wait 5
goto *top
続き…
この「color 0,0,0 line 449,0,449,349」ってのを入れると心電図ぽく
なるんですよ。どっちも下地は黒なのになんでこんなにも変わるんですかね?
screen 0,450,350
kabea=110
kabeb=110
randomize
cls 4
*top
color 0,0,0
line 449,0,449,349
color 255,0,0
sukima=rnd(29)-14
kabea=kabea+sukima
if kabea<30 : kabea=30
if kabea>200 : kabea=200
line 449,0,449,kabea
pos 0,0
gcopy 0,1,0,449,350
wait 5
goto *top
ヒント
pos 0,0
gcopy 0,1,0,449,350
>>747 書き込みありがとうございます。しかし、せっかくヒントを与えられている
のにまだわかりません(;;)これさえわかれば次に進めるんでが…。
どうか教えていただけないでしょうか?
"ABCDEF"
上のA〜Fまでの6文字のうち、
B〜Fまでの5文字を、左に1こずらしてAの位置にコピーすると〜
"BCDEFF"
こうなります。
"BCDEF "
こう(右端が勝手に空白に)なるのではありません。
「ブロック転送のひみつ」より
>>749 なるほど、やっと理解できました!ありがとうございます。
感謝しきれません。本当に助かりました。
なんかまた本家荒れそうだ。
repeat
stick k,15
switch k
case 1 : mes k : swbreak
case 2 : mes k : swbreak
case 4 : mes k : swbreak
case 8 : mes k : swbreak
swend
await 16
loop
HSP3ですが、キーを押したら押した番号が表示されるはずなのに
これを実行した瞬間8が表示されます。
何が間違ってるのでしょうか?
実際に実行しているソースにはcase 0 があるってオチは無いだろうな?
>>752昔作ったの
repeat
cls
repeat 121
getkey key,cnt
if (key = 1) : mes cnt
loop
wait 1
loop
>>751 本家とはここですよね?
ところでHSPで一番作るのが難しいと思われるゲームのジャンルは
なんでしょうか?プログラムの長さとかは関係なく、複雑なもので
>>752 そのままコピペしたが、HSP3.1b2で異常なし。
>>755 おそらく公式HPのHSP3掲示板のこと。
本家と言ってしまうと、この場(2ch)では別の意味にとられることがあるので不適切かな。
もう一つの質問の答えは、すでにキミの心の中にある。
答えはいつも私の胸に・・・
>>756 「HSPTV掲示板」だったらいいのかな。
どうなるかと期待してたのに、荒れることもなく収束してしまった。
おもんね(´ω`)
>>752 実際にそのスクリプトを実行した?
3.0aで問題出ないぞ
で、8が表示されるって事は k に実際8が入らないと8と表示されない
だからswitchには問題ない(少なくても752のは)
>>758 スマンのう…。
2chだと、いわゆる本スレと分派スレ、のような状態があるんで
それが頭にあると解釈に迷うけぇ。
もすこし短くするとしたら「公式」じゃろか。
個人的には [北]6:4[険・他] (相手方への歩み寄りを評価)
>>756 なるほど。心の中ですか(笑)
じゃああれか…。丁寧にどうもでした。
感謝感謝
>>760 「公式」か。了解。
> 個人的には [北]6:4[険・他] (相手方への歩み寄りを評価)
どういう意味だろうかと1分間固まった(ぉ
(ぉ を使うヤツは中学生とバレバレだよ
そうなのか?
「(ぉ」というネット用語が使われ始めたころ
今の中学生は生まれてないのにw
いまさら使う奴は中学生くらいだろう
俺はわからなかったなぁ(ぉ
普段から中学生との接触が多い人ですか?(ゎ
ネトゲあたりで(ζ
中学生と同レベルで遊んでるとか?(ぃ
少なくともバレバレだよなんていうほど断言できるのはエスパーにちがいない
中学生だとかで煽りだすようなお方だ。
さぞかし立派な大人なんだろうぜ。
ほら、中学生だったろ?
>>769 おまいが「中学生日記」が大好きだということはよーくわかった。
だが…
出演の中学生は、全員役名ではなく本名で出演していることは知っていたかな?
そいつただの荒らしだからほっとけよ
みんな大人が悪いんだ、とかな('A`)
, ;,勹
ノノ `'ミ
/ y ,,,,, ,,, ミ
/ 彡 `゚ ゚' l
〃 彡 "二二つ
| 彡 ~~~~ミ はいはい、わしのせい わしのせい
,-‐― |ll 川| ll || ll|ミ―-、
/ |ll | ヽ
/ z W`丶ノW ヽ
/ \\ / / |
/ 大 \`i / / 人 |
「エスパー」を使うのは40歳以上(光速エスパー)
それより若いのなら「ニュータイプ」を使うはず。
バーババババビューンと空を行く〜
いや40は行ってねえから
つーかなんでそこまで戻るんだよ。
エスパー魔美とかあるだろ。
日本の誇るスーパーヒーロー
エスパー伊東を忘れるな
エスパイのおっぱい
何なんだこの流れは
H(エ)S(ス)P(パー)ってこと?なるほど。40歳以上はBASICの時代をなつかしみHSPerとなり、
オブジェクト指向だのポインターだの訳分からないことを言ってる若人はニュータイプだと。
んーマンダム。
>>752キーボードによるとかそんなんじゃね?実は
>>752が実行させる時の操作はALT+P、
↓、Enterで↓がキーボードバッファに残ってるとか。それかPCが壊れかけてて勝手に↓が
入力されるとか。俺のPCも時々勝手にスクロールするもん。
とりあえずstick使うのあきらめてgetkeyにしてみれば?それかなんかプラグイン使うとか。
>>755MDの魂斗羅ハードコア。横スクロールのゲームかと思ったらある時は縦スクロール、
ある時は3D。多関節キャラ出まくりで回転機能使いまくり。技術力の塊。ほんと昔のコナミ
は職人だった。
マ板のHSPスレで質問したのですが、正しい答えを得られなかったのでコチラで質問させて下さい
HSPの場合、プログラム言語ではなく、スクリプト言語という扱いになりますが
HSPで作られたソフトには「プログラマー:○○さん」と書くべきでしょうか?
それとも、やはりスクリプト言語ですから「スクリプター:○○さん」と書くべきでしょうか?
ヘリコプター:○○さん
ACアダプター:○○さん
コッチもかーッ!!
ム板のHSPスレ見て笑い転げたwマジで腹いてぇw
違う板で同じようなレス返されてるER+NjMft萌えw
786 :
782:2006/07/07(金) 02:35:32 ID:+HT0OPGH
激ワロタw
俺はマ板見てないのにwww
普通に「作者」でいいだろ
同様にあほな答えが返ってくるってのが答えだよ
そういうあほな質問だってことだw
>>781 プログラマーで良い
perlでもJabaScriptでもツクールでも吉里吉里でもプログラマでよい
スクリプターではやはり映画やドラマの台本係の意味合いが強い
>>789 ありがとうございます!!
なるほど、スクリプターはソチラの方向ですか。
まともな回答ありがとうございました。
プロレベルじゃないのならプロは取るべきだと思うな
ごめん、その冗談笑えない
そろそろコンテスト開催の発表があってもおかしくないと思うけど、
今年はやらないの?
や ら な い か
ゲームセンターあらしでナイスバディのプログラマーが出てきて「プロのグラマーか。どうり
でグラマーだと思った」ってあらしが言ってた。
ずいぶんとなつかしいな。
ゲームセンターあらしって、何も知らないでタイトルだけ読むと、ちゃんとした営業妨害だよな
エレクトリックサンダーなんてもってのほかだしな。
ってHSPのネタはどうした。
ムーンサルトり
801 :
名前は開発中のものです。:2006/07/15(土) 19:43:34 ID:cvrMDST3
コンテスト2006の発表きたな
キター
3Dアクションゲーム(FPS)を作りたいのですが、
HSP3.0標準の"hgimg.as"の仕様がニガテです。
他にオススメの3D用のってありませんか?
ZGP
あれってHSP2しか使えないんじゃなかったっけ?
テレビつまんね
確かに、HSPTVにはもうちょっと期待していたんだが
存在すら忘れてた件
俺も忘れとった
お前ら、コンテストに慣性バリバリの少し手抜きなゲーム投下するので見ててください。
でもいつ投下するかは書かないという罠。
tvでブロックくずしやってたら、cpu温度がガンガン
上がってきた。こんなもん載せるなよw
812 :
名前は開発中のものです。:2006/07/17(月) 18:59:42 ID:Zz14kpks
今年もコンテストあった!
http://hsp.tv/contest2006/ 7月15日〜 コンテストページ仮オープン
8月1日 コンテストページ正式公開
8月1日 応募受付開始
8月1日〜10月31日 作品応募受付期間
11月1日〜11月15日 応募締切、一次審査期間
12月1日 最終選考発表
既出
815 :
名前は開発中のものです。:2006/07/17(月) 21:58:23 ID:kea3Vr+Q
2Dシューティングゲーム作ろうと思ってDirectX使おうとしているのですが
DLLって何個かあるけど、実行速度の違いとかやっぱあるの?
おすすめありますか?
とりあえず俺はHSPDXFIX
>>815,816
HSPDXFIX はバグがあるけど サポート切れてるから微妙だよ。
(どのプラグインも十分速度速い − 先読みの時間差ぐらいじゃない?)
FIXのサポートが切れてるって
どこみて言ってるんだ?
hspdxaと勘違いしてるんじゃ
>>817 お前は一度FIXの作者さんとこ行って来い
つい最近もバグ修正されたのが上がってるから
(BBSの方に)
一緒にコンパイルされない#includeは無いんだろうか。
#additionでも無理っぽいし。
どういう意味? 使われないモジュールを含めない機能は
もう付いてた気がするけど。
チューハンターQか・・・
HSPコンテスト開催が公表されたが、さて今年はどうするか。ショートって、やってみようか
な。でも4096バイトじゃ難しいよなー。ぶっちゃけ最初に買ったPCはVIC-1001だ。標準で
メモリが3.5KBしかなかった。それに比べりゃ500バイトも多いわけで。でも今時VICの標準
メモリレベルのゲーム作ったって誰も見向きもしないわけで。その当時だからそんなしょう
もないゲームでも臭いベーマガ見て打ち込んだんで。
近頃のナウなヤングはショートってどうしてんの?やっぱstart.axの中身を解析とかするの?
wikiにテクニックが書いてあるね。
それ以外も、検索すれば出てくるよ。
コード量に制限があるだけで、メモリは何メガ使ってもOKだから
>>827 そうだよね。
コンパイルすれば100kbぐらいにはなるが、コンパイル前の容量なら4kbなんて結構書けるよ。
H-1グランプリ
優勝賞金2000万とかなら頑張るんだが
それだと最初から金のあるヤツが勝つ。
評価の低かったワースト20の作者が罰金一万円ずつ払う。
優勝者は合計20万円を賞金として受け取る。
というのは冗談だが、
結果発表の前に受賞者にメールで知らせるアレ、マジで良くないよな。
今回からはドキドキ発表会にして欲しい
うんうん
賛成
採点競技の結果発表って下位の発表から始めて
1位狙ってたひとが3位とか2位とかの発表を受けて
ガッカリ顔みたいなパターンが多いな
「それでは1位を発表します」
ったって消去法で1位はアイツで確定じゃん
全然ドキドキないよ みたいな
HSPの場合だと受賞の言葉を発表時に掲載するために
事前にメールで知らせてるのかな
賞金狙うならeb!のコンテストにしな
めざせ賞金1おくまんえん
#fpbit命令って、どんな事に使ったりするのでしょうか?
あんなことやそんなことやこんなこと
理解しました。
どうもです。
839偽者です。
#fpbit自体の概念は理解できるのですが、どういった場合に使用するのでしょうか?
そんなことやあんなことやこんなこと
わかりやすい解説ありがとうございました。
#fpbitって3.0で探したらなかったから何かと思ったら
hsp2の固定小数のビット精度設定か・・・
って、思いっきり精度設定ってあるのに
どんな時に使うのかわからない?
整数部は100ぐらいで小数部は出来るだけ多くしたいとかあるだろ
てか、固定少数自体が分かってない?
もういいです!何なんですかこのスレは!
・・・アレ、面白く無かったですか?
>>843 837の偽者ですが、詳しい説明ありがとうございました
もう少し基礎的な部分も勉強するようにします
#もしパラメータを改行できたら
;改行しないとき
mes a+b+c+d+e
dialog "メッセージ",0,"タイトル"
;改行するとき
mes a+_
b+_
c+_
d+_
e
dialog "メッセージ",
0,
"タイトル"
#要はABのパクリ
教えてエロい人。
放物線の弾道シミュレートについて、hspで解説をしているサイト等ご存じありませんでしょうか?
初速と角度を与えてやると、物体がどんな軌跡を描いてどこまで飛ぶか、と言う奴です。
以前確かどこかで見かけたような気がするのですが、どうにも見つかりません。
ご存じの方いらっしゃいましたら、URLなど教えて下さりませ。
適当に言うが開発wikiにあったりしないかな
重すぎだろ、このサイト
誰が書いたのかもよくわからん本家Wikiよりいいと思う
HSPはメモリリークしないのが最大の利点かな
その気になれば、Windowsにぶん殴られるくらいメモリもハンドルも
公式は夏でも普段と変わらんな
なんかflashがネイティブコード作れるようになって速さが最高で10倍になったそうだが
HSPはネガティブコードが作れます
あんまりにも暇だからクソゲー作ってみようと思いました。
HSPの基礎勉強するに当たって、皆さんは何から始めました?
C++にほんの少し齧っただけ。その他知識は皆無。
とりあえずreadmeからの初心者コースは一通りやりました。
モジュールと新規関数使うと絶対クソゲーなんか作れないから注意しろ
HSP2.55の本にあったシューティングゲームのサンプルを、
全部手打ちで打ち込んで、少しずつ数値を変えたり、
ヘルプを見たりして、使えるようになっていった13の夏
HSP2.55の本にあったシューティングゲームのサンプルすら理解不能で
全部自分で考えて1から少しずつ作っていって完成させて、後で本をみたら
理解できるようになっていて、ほとんど同じアルゴリズムだった3年前の夏
>>863 プログラムそのものが初めての人間なら、まあ大体そんな物だよな。
他人のソースどころか、付属のドキュメント類さえ意味不明。
その段階を超えれば、プログラムが楽しくなってくる。
866 :
名前は開発中のものです。:2006/07/28(金) 18:35:14 ID:91hhiLHG
>>863 俺も理解不能だったが、
とりあえず、動かしたくて、手打ちしてみた。
最初は感動だったなぁ
まずは
mes でしょ
そして
picload
〜〜〜〜
MIA氏のdsoundexで、
ds_load命令のことなんですが
EXEファイルにするまでは読み込めるのですが、
EXEファイルにしたあと全く読み込んでくれなくなりました。
これはプラグイン側のバグによるものではないですよね?
>>867 俺は消防の頃にCで挫折した人間だったから、mesよりprint派だった。
でもその後はやっぱり
picload
入門書レベルで挫折してたらカス以下だな.。
小学生でも理解できる入門書があったらバカ売れなんだけどね
え? 絵本?
擬人化した言語たんがマシンに犯されながら教える本がいい
>>868 そのプラグインを使って、ちゃんと動いてるアプリも多数あることを考えると、
スクリプトかEXE作成で自分がミスをしていると思ったほうが良いんでないかな。(やんわり)
>>873 やっぱりそうですよね。
ちょっとプログラム見直すのに飽きて
アフォなこと言ってました。
MIA氏に申し訳ない。
アスキーラーニングシステムの「入門BASIC」は、当時消防の俺に
プログラムへの扉を開いてくれた名著だった。
マシン「ほら、picloadするんだ」
HSP「だめえええ画像表示しちゃうのおお」
>>879 EXE作成手順ですか。
どうも。確認してみます。
スクリーンセーバーの実行ファイル作って全て正常に動いてるんですが、HSPエディタからの時と同様にAlt+F4で終了しないと終わってくれない
ヘルプにはマウス動かしたら終了する処理を入れなくていいとか書いてあるが
アレって、マウスを1ピクセルでも動かしたら終了するようになってるよね。遊び域が全然無い。
Win3.1の付属スクリーンセーバーかよwとオモタ
浮動少数にベクトルがわからんぬ
アルゴリズム組むのにHSPは駄目なのか
スプライトじゃなんか物足りない気がするのに。
誘導レーザーの旋回可能範囲を決めるサブルーチンに費やした時間は三日。
それでもまだ完成せず。
誰かたすけて
遊び域をつくるには開始時のマウス座標を格納しといて、現在の座標から開始時の座標
を引く処理をループにいれる。
そして差の絶対値がある程度に達すると終了するってことでいいかな?
差が充分でない時に座標を更新したい場合
ループの中に例えば一秒ごとに現在の座標を開始時の座標を格納しておいた
変数に代入する処理を入れればいいのかな
886 :
名前は開発中のものです。:2006/07/30(日) 01:15:56 ID:Ba1YZPbg
それより自分のソースを上げるとかしたほうがいい
>>884 >アルゴリズム組むのにHSPは駄目なのか
それHSPと全然関係ないから
>それでもまだ完成せず。
>誰かたすけて
本気で聞きたいなら何処まで出来て
どこで躓いてるか具体的に示せ
>>888 スマソ・・・聞き方がなってなかった。
自分が今つまづいている所はロックオン誘導弾で、ベクトル
を使って旋回可能範囲をもとめて移動させる所。
sqrt関数で三平方を使って敵と弾の距離を計算してdに代入。
0以上ならvx1=x距離×弾速÷d、vy1=y距離×弾速÷dで敵方向の速度ベクトルを求めて。
次に↓で右回りの速度ベクトルを求めて
rad=円周率π*旋回範囲/180
右回りのx速度ベクトルvx2=cos(rad)*移動前の弾x座標-sin(rad)*移動前の弾y座標
右回りのy速度ベクトルvy2=sin(rad)* 〃 弾x座標-cos(rad)* 〃 弾y座標
そして
if (移動前の弾x座標*vx1+移動前の弾y座標*vy1>=移動前の弾x座標*vx2+移動前の弾y座標*vy2){
弾のx移動値vx.er=vx1:弾のy移動値vy.er=vy1
}
で右旋回可能範囲内なら曲がるようにしたんだけど、どうやら俺の勘違いで配列がおかしいっぽくて。
vx.er=vx1:vy.er=vy1の部分に問題があるみたいで。
erにはロックオンされた敵の番号を入れてるんだけど、何度試しても違う型の配列変数に代入して
いますというエラーメッセージが出てしまう・・・。
厨な質問でホントスマソ
890 :
886:2006/07/30(日) 08:19:54 ID:Ba1YZPbg
>>889 エラーメッセージそのまんまで、vx1,vy1が整数ってオチが最有力。(
>>445付近参照)
もしくは既に整数型配列になってる。
ddim a, 2
a.0 = 0; 整数型の配列に変身する
a.1 = 0.0; エラー
>>890 wait 10は100msのウエイト。
stickはウエイト中にキーが押されても取りこぼす。
893 :
886:2006/07/30(日) 10:11:32 ID:Ba1YZPbg
>>892 ありがとうございます。
スムーズに落ちるようにして途中で上から落ちるものがたまらないように
するにはどこがおかしいのですかね・・・・。
そこがなかなかわかりません。
なんでマウスを動かしても終了してくれないのかと。ヘルプのキツツキ!
誰か、何かを押したりマウス動かしたりしたら終了するスクリプト書いてください。
>>893 42〜48行の *otiruルーチンの if Y(z)> 25 { 〜 }の処理が間違い。
・15個の落ちるもののうち、1つが着地すると、落ちるもの全部が再配置されてしまっているが
着地した1つだけを再配置すれば良い。
・その再配置の際、速度 S() が0になると また溜まるので。最低速度を1にする。
というふうに、該当部分(42〜48行)7行を以下の5行に差し替え。
if Y(z)>25 {
X(z)=rnd(19)
Y(z)=1
S(z)=rnd(4) + 1
}
>>894 その前に HSP3.0フォルダの \sample\ssaver\arusave.hsp を確認してみるべし。
>>889 891で答え出てるみたいだけど
debugウィンドウ表示をONにして
配列vx,vy と変数vx1,vy1の型を確認
実数型を使う必要があると思うから整数型になってる方を実数形に
自機か弾の座標が整数型で、x,y距離が整数になってたりしない?
>>894 ループ中にwaitを入れてないとかって落ちはないよな?
後は
#packopt type 2
を設定してるかどうか
898 :
889:2006/07/30(日) 12:01:45 ID:Lv7cdIGE
>>891 >>896 なるほ・・・
ddim命令で実数型配列に、double関数で実数型変数にしなきゃいけないみたい・・・。
型を確認してみたらやはりdoubleとintがごっちゃになってた。
そして二人ともありがとう!
899 :
886:2006/07/30(日) 19:47:24 ID:Ba1YZPbg
>>895 ありがとうございます。
スムーズに動きました。この後当たり判定などのプログラムを組むに当たって、
つまづいた場合はまた質問させていただきたいと思います。
900 :
894:2006/07/30(日) 21:19:59 ID:JfsTBeMA
いろいろ試した結果、wait 100があるために終了しないようです。
await 10を100回に変えたら終了するようになりました。
皆さん、ありがとうございました。
>>900 これは単なる感だけど
ある程度連続した時間内のマウス座標を見てるのかも
一定の時間を越えたら動いた事にならないとか
(waitからwait間の移動を見てるっぽい)
>>901 たぶんそうだと思う。wait100だといくら高速にマウスを動かしてもダメだったが、wait数下げると微妙に遅れて終わったりする
awaitにすると敏感になる。イっちゃうのかな?
今シューティングゲームを創ろうとしてるんですが、
buffer 1
picload "flogs.bmp"
buffer 2
picload "back2.bmp"
screen 0,480,320
zikix=240 : zikiy=160
gmode 2
;ここからループ
*rupu
redraw 0
pos 0,0 : gcopy 2,0,0,480,320 ;背景コピー
stick ky,31
if (ky&1)=1 : zikix=zikix-8 : if zikix<0 : zikix=0
if (ky&4)=4 : zikix=zikix+8 : if zikix>448 : zikix=448
if (ky&2)=2 : zikiy=zikiy-8 : if zikiy<0 : zikiy=0
if (ky&8)=8 : zikiy=zikiy+8 : if zikiy>288 : zikiy=288
pos zikix,zikiy
gcopy 1,0,0,32,32
redraw 1
await 30
goto *rupu
この参考書のプログラムで、どうして(ky&1)=1の=1が必要なのか
わかりません。&の後の1でもう計算結果が1になってるからわざわざ
また書かなくていいんじゃないかなと思いまして。
すみません、初歩的すぎる質問でm(_ _)m
=1を付けると、プログラムリストの見た目が縦に揃って綺麗だから。
>>904 聞き方が悪かったのであれば聞きなおします。
なのでどうか教えていただけませんでしょうか?
if文の意味がわかってないのでは?
(ky&1)=1
てのは、「(ky&1)の結果が1だったら」って意味だぞ。
&の意味もわかってないっぽいのでそれはヘルプ見れ。
904の答えも場合によっては正しいけどこの場合は違うなw
>>903 >わかりません。&の後の1でもう計算結果が1になってるからわざわざ
>また書かなくていいんじゃないかなと思いまして。
hsp3.0a以降の事しか知らない
なくても正常動作はする
hspの ifは 計算結果が 0の場合だけ else だから出来る事だけどね・・・
普通は比較結果が0か1を見るから (ky&8)=8 の書き方でも問題はない
hsp3以前のバージョン場合は必要だったのかもしれない
ちょい修正
>hsp3.0a以降の事しか知らない
hsp3.0a以降の事しか知らないけど、
アレなんか俺のほうが勘違いしてた?
ハズカスイ
すまんこ
>>903 まぁ、そのスクリプト場合は
変数kyのビット0 (1,2,3)のON/OFFを調べたいだけなので必要ないな。
むしろ、 =1 (=2,=4,=8) を書くと、書かない場合よりも処理時間が若干長くなるので、
書かないほうがいいだろね。シューティングってことだし。
911 :
904:2006/07/31(月) 10:18:14 ID:+ZtOeoW7
なんだよ、俺マジレスしたつもりなのにw
HSPに限らず、if文の判定基準は式の右辺と左辺が等しいかどうか。これはわかるよな?
0だったら偽、それ以外は真とかいうのはHSPインタプリタの仕様であって
文法の意味を理解する上ではどうでもいいこと。
だからどのif文にもきちんと=を書いてる。
そして文のスタイルが揃っていると、後で読み返すときに同じ処理やってることがわかりやすい。
ここだけ=1が取れてると、
「あれ?なんでこの行だけ短いん?」
「あー、HSPのifは0以外が真だっけ」
「でも他の言語に移植するとき困るかもなぁ・・・」
と雑念が入るかもしれない。
ここまで理解したうえで、処理速度等の問題で=をとるなら、それはアリだけど。
>>906>>907>>910>>911 丁寧にありがとうございます。みなさんのおかげでやっと理解すること
ができました。本当に助かりました。ky&1で二つのビットを調べて
その結果が1だったらということなのですね。
>>902 HSPで作ったスクリーンセーバーは wait や await を20回以上通らないと
マウスやキーボードの動きを検出しないらしい。
(ダブルクリックして起動後、誤ってすぐ終了するのを防ぐため)
スクリプトの最初に
repeat 20 : await 1 : loop
を入れておけば終了しないことはなくなる。
それマニュアルに載ってる?
バッチリファイルのようなウィンドウをHSP2.61で作成するにはどうしたらよいのですか?
>>915 >バッチリファイルのようなウィンドウをHSP2.61で作成するにはどうしたらよいのですか?
バッチリファイルって何ですか?
これはワラタw
ためしにrepeat n :await 1:loopを入れてみた
n=20×
n=29×
n=30◯
n=29のときでもwaitとかが1回入ると可能になる
どうやら、30回以上のwaitかawaitを行わないといけないようです
HSPの仕様はブラックボックス テストで決定される。
>>914 マニュアルは知らないけど、hspsdkのhsp3win.cppには書いてある。
手元にある物は918が書いてるように30回になってるけど。
出すぎだろw
924 :
913:2006/07/31(月) 21:36:11 ID:rR6sldoR
>>918 >>920 失礼、30でしたか。ver.2.6のころは20だったので。
だいぶ前に某サイト(今はない)でたまたま知ったんだけど、
なんでマニュアルやサンプルに載ってないんだろう。
テトリスにチョこっと味付けしたようなのを作ろうと思うんですが、
著作権とかに絡まれるんでしょうか?
ゲームのルールとかプログラムのアルゴリズムに著作権は無い
>>925 5年ぐらい前はなんか言われたらしいけど
今は名前変えればルールを真似しただけならいいらしい
ありがd
これで作り始められます
921で915のマルチがバレたw
次のレスで必ずバッチリファイルって何?って聞かれてる時点で気づかんのかねえw
頭おかしいのか?
これで今日の夜もバッチリさw
皆バッチリファイルでググったなw
どこで「バッチリファイル」という名前を知ったのか知りたいw
バッチリ バシシ
そりゃバッチシだろうがw
たぶんXPの「コマンドプロンプト」のような
キャプションバーのことを指してるんだと思ふ。
それにしてもワロスw
クロスwww
それなんて宝箱だよ
バッチリファイル=バッチファイルだったのかー
HSPコンテストの応募作品が公開されはじめた。
ショート1発目で前回の優勝者てw
クオリティ高いわ
/\___/ヽ
//~ ~\:::::\
. | (○) (○) .:|
| ,,ノ(、_, )ヽ、,, .::::|
. | `-=ニ=- ' .:::::::| 出展やめるわ
\ `ニニ´ .:::::/
/`ー‐--‐‐―´\
すげ〜
漏れもがんばらんと・・・
俺も出展やーめた
あんなに投下されたら一人舞台だな。
クオリティは高いがちょっとしらける。
参加者じゃないから、ショートより一般での大作に期待。
アイデア勝負にかけるかな。
プログラムテクニック以前の問題になるけど。
ショートの方凄すぎだろ
マジでどうやってるのかソース公開して欲しいぜ
HSP3になってから変形コピーとかgrectとか出来るようになったからなぁ。
全部公開してるように見えるけど気のせいか
952 :
949:2006/08/04(金) 18:55:16 ID:s6g9YR7n
>>951 よく見てなかった。俺アホスw
これは勉強になるな
一回優勝したやつはオープン参加にすべきだろ普通は
タイトル防衛戦
挑戦者募集中^^
少なくとも1度賞取ったソフトをバージョンアップしてまた出す
ような見苦しいまねはやめてほすぃ。
あと審査員も出品してもいいけど(しないと明らかに華がなく
なるだろうから)、すべての賞を辞退するくらいの男気はほすぃ。
自分が参加してなくても萎えるから。
同意だけど、なんだろう、なんていうか・・・
ふとレスを見返すと、負け犬の遠吠えなんだよな。俺ら。
同意もできんw
おいおいお前ら
何いっぱつめからしょげてるんだよ?
いつからそんな根性なしになったんだ?
どれ、噂のショート作品とやらをみてくるよ ノシ
>>949 万華鏡はだいたい想像がつくよ。sp○○○○○tのは全然分かんないけど、たぶんどれも
似たようなアルゴリズムだと思うなあ。似たようなアルゴリズムのやつ大量にUPしてもいい
のかと。まあHSPコンテストは懐が深いからなあ。たぶんsp○○○○○tのは全部入賞する
でしょ。
>>955 >少なくとも1度賞取ったソフトをバージョンアップしてまた出す
>ような見苦しいまねはやめてほすぃ。
え、そんなのあったっけ?でもまあいいんじゃないの?HSPコンテストはなんでもありだから
な。藻前も古いゲームのアイデアをパクッて絵と音を現代風にアレンジしただけでしかも
ソースは他人のをパクッたのをちょろちょろっと改造しただけで主人公が裸の幼女のゲーム
でも作ればいいんじゃね?それで入賞できても何年もたってるのに俺からこんなふうに
こんな所に書かれるけどなウケケケケ。その古いゲームパクッた作者のサイトはその後
完全に更新停止してるけどなムキョキョキョキョ。
>あと審査員も出品してもいいけど(しないと明らかに華がなく
>なるだろうから)、すべての賞を辞退するくらいの男気はほすぃ。
バカな!じゃあなんのためにタダで審査員やってるんだ!?ばからしくて審査員なんて
やってられねえぜ!お前はsp○○○○○tとmi○の張り合い見たくないのか?
裸の幼女より私立小学校の制服を着た10歳くらいの女の子がいいな
ショートの方のアレだけど
前回のインパクトもあるし優勝はないんじゃない?
普通に誰かがゲーム作る希ガス
一連のあの投下は挑戦状に見えてきますた
逆にチャレンジ精神がわいてきた
今度はどう考えてもとれんだろ。
インパクトが前回のように無い。
初代の大作RPGのひとも翌年は取れなかったしね。
同レベルなら新しい風の方が有利だろうね
お前らの前向きさに嫉妬、頑張れ
ショートのはソース公開してるんだから見せつけるばっかじゃなく
HSP使ってる奴は参考にしてくれ!みたいな物を感じるしな
賞狙いばっかでも無い気がする
誰の目にも留まる所に公開してHSPの発展に役立ちたいという信念が見え隠れしているんでないかという俺の妄想
そもそも賞狙いなんてやついるのかw
>>967 横綱の胸を借りるつもりで行けっちゅうことかいな。
負けで元々、勝てば金星。
そう思ったら気は楽やわな。ま、別に気負うつもりはないけど。
自分レベルでも入賞できないかなあとか思ってるなら最初から出すな。
提示されてるものがあるんだから、それを超えるものを出そうと何故思わない?
超えられるかは知らんが自分の力を出し切るまでよ
スクリプトの頭でscreenでウィンドウサイズを指定すると、
一瞬パッとデフォルトサイズ(640x480?)のウィンドウが
表示されてからリサイズされますよね
ウィンドウが表示される段階で任意の位置、サイズで
設定できるような方法は無いですか?
これが気になって昔っからHSP使いたくても使えないんだけど・・・
実行形式を作るときに初期のウィンドウサイズを指定する所があるじゃん。
↑と同じ所で、非表示で起動も出来るんだから、サイズ変更とかしてからgselで表示というのも出来るじゃん。
と言ってもまだ使ってないから分かんないか。
あ、ホントだ・・・
ありがとう、ご迷惑おかけしました
前使った時はHSP1.0くらいでそんな設定は
無かったような気がするんだけど、だいぶ進化したのね
すまん
ソース公開してるサイトをいくつか教えて
1.0は96年のようなので10年前ってこと?
なんかliteなスープもあったなぁ。