HSP - Hot Soup Processor [7]
>1乙。
これも欲しかった。
( ,,,)
.( ,,) スクリプト言語 HotSoupProcessor について
( ,,). ゲーム製作の視点から、また〜りと語り合うスレ。
, -──- 、
(,;::-──-; )-、
.|` ̄ ̄ ̄´;;|ヽ l * 質問する前に検索してみる事
l; :::;;;l-' / * ヲチ、ネタなどはスレ違い
,-ヽ───.'-、´.. * 前スレ、関連サイトは
>>2-5 あたり
ヽ ──── '
ONION software (本家)
http://www.onionsoft.net/
5 :
これもな:04/06/10 18:32 ID:7um3L0o/
Q&A
Q HSPで○○は作れますか?
A あなたの努力次第ではじゃんけんゲームのような単純な物から、
RPG,シューティング,アクション,アドベンチャー,シミュレーション,パズルなど、
ありとあらゆるゲームが作成可能です。
Q 構造体は使えますか?
A 使えません。
Q.ポインタはありますか?
A.ありません。
>>1 乙。10get。
HSPで大作と呼ばれるようなものを作らないか?
じゃあ、とりあえず目標はフリージアってことで。
フリージアって何
秋葉のモニタ屋?
絵浪漫のタイトルだろ?
全然わからん
十兵衛ちゃんの敵キャラだろ
dim char.10:dup clv,char.0:dup chp,char.1:dup catk,char.2:dup cdef,char.3
dup chit,char.4:dup cspd,char.5:dup catkitm,char.6:dup cdefitm,char.7
dup clatk,char.8:dup chatk,char.9:clv = 1:chp = 100:catk = 10:cdef = 5:chit = 50
cspd = 40:catkitm = 0:cdefitm = 0:clatk = (catk + (catkitm/2)):chatk = (catk + catkitm)
dim mons.10:dup mno,mons.0:dup mhp,mons.1:dup matk,mons.2
dup mdef,mons.3:dup mhit,mons.4:dup mspd,mons.5
mno = 1:mhp = 100:mlatk = 8:mhatk = 14:mdef = 4:mhit = 60:mspd = 40
*mainmes "charcter"+"LV:"+clv+" HP:"+chp+" atk:"+clatk+"-"+chatk+" def:"+cdef+" hit:"+chit+" spd:"+cspd
mes "monster: "+mhp:if (mhp <= 0) and (chp <= 0) :{dialog "引き分け" :end}
if mhp <= 0 :{dialog "あなたの勝ち" :end}:if chp <= 0 :{dialog "敵の勝ち" :end}
pos 0,100 : button ""+no,*attack:stop
*attackno+:randomize:pos 0,0 : cls:tempspdlen = 50 + (chit - mspd)
if tempspdlen > 0:rnd tempspd,100
if tempspd >= tempspdlen :{mes "自→敵 miss" : goto defence}
tempatk = 0:atklen = chatk - clatk:if atklen > 0 : rnd tempatk,atklen
tempatk += clatk:damage = tempatk - mdef:if damage <=0 : damage = 0
mhp = mhp - damage:mes "自→敵 damage: "+damage
*defencetempspdlen = 0:tempspdlen = 50 + (mhit - cspd)
if tempspdlen > 0:rnd tempspd,100
if tempspd >= tempspdlen :{mes "敵→自 miss" : goto main}
tempatk = 0:atklen = mhatk - mlatk:if atklen > 0 : rnd tempatk,atklen
tempatk += mlatk:damage = tempatk - cdef
if damage <=0 : damage = 0:chp = chp - damage
mes "敵→自 damage: "+damage:goto main
dim char.10:dup clv,char.0:dup chp,char.1:dup catk,char.2:dup cdef,char.3
dup chit,char.4:dup cspd,char.5:dup catkitm,char.6:dup cdefitm,char.7
dup clatk,char.8:dup chatk,char.9:clv = 1:chp = 100:catk = 10:cdef = 5:chit = 50
cspd = 40:catkitm = 0:cdefitm = 0:clatk = (catk + (catkitm/2)):chatk = (catk + catkitm)
dim mons.10:dup mno,mons.0:dup mhp,mons.1:dup matk,mons.2
dup mdef,mons.3:dup mhit,mons.4:dup mspd,mons.5
mno = 1:mhp = 100:mlatk = 8:mhatk = 14:mdef = 4:mhit = 60:mspd = 40
*main
mes "charcter"+"LV:"+clv+" HP:"+chp+" atk:"+clatk+"-"+chatk+" def:"+cdef+" hit:"+chit+" spd:"+cspd
mes "monster: "+mhp:if (mhp <= 0) and (chp <= 0) :{dialog "引き分け" :end}
if mhp <= 0 :{dialog "あなたの勝ち" :end}:if chp <= 0 :{dialog "敵の勝ち" :end}
pos 0,100 : button ""+no,*attack:stop
*attack
no+:randomize:pos 0,0 : cls:tempspdlen = 50 + (chit - mspd)
if tempspdlen > 0:rnd tempspd,100
if tempspd >= tempspdlen :{mes "自→敵 miss" : goto defence}
tempatk = 0:atklen = chatk - clatk:if atklen > 0 : rnd tempatk,atklen
tempatk += clatk:damage = tempatk - mdef:if damage <=0 : damage = 0
mhp = mhp - damage:mes "自→敵 damage: "+damage
*defence
tempspdlen = 0:tempspdlen = 50 + (mhit - cspd)
if tempspdlen > 0:rnd tempspd,100
if tempspd >= tempspdlen :{mes "敵→自 miss" : goto main}
tempatk = 0:atklen = mhatk - mlatk:if atklen > 0 : rnd tempatk,atklen
tempatk += mlatk:damage = tempatk - cdef
if damage <=0 : damage = 0:chp = chp - damage
mes "敵→自 damage: "+damage:goto main
ミスってたんでもいっかい
>>16 確かに大作みたいだな。これだけの規模のものを作り上げたのは単純に凄い。
でも、ちょっと見ただけだが恥ずかしくて出来そうにないw。
まあ今更RPGなんかやりたくないってのもあるが…。
>>19 動かんぞ?
21 :
名前は開発中のものです。:04/06/11 21:44 ID:zyNTuUaS
HSPで池田大作フリージアサポート200%なゲームをつくるのか、
これはある意味、革命と言えよう。
22 :
名前は開発中のものです。:04/06/11 22:17 ID:XGmRpL5C
ゲーム製作とか飽きたし死にたい
極端だな
みんなでゲームを作ろう!ってなスレで、
ちゃんと完成したのを見たことが無い。
最初のうちは意見(妄想)をわいわい出し合いスレも盛り上がる。
↓
そして実作業。この時点で当初の熱気も冷め、
1日辺りの書きこみが10レスぐらいになる。
↓
それまで毎日のように出没していた
>>1があまりに書きこまないようになる。
「忙しくて・・・」「テストで・・・」等言い訳を口に仕出す。
この頃には1日0〜3レスぐらいの過疎スレになる。
↓
>>1が書きこまなくなる。
>>1に対してのスレ住人の罵詈雑言。
↓
レス数600〜700辺りでDAT落ち。
こんなのばかり。
2ちゃんねらーが協力して完成したゲームってあるのか?
現在進行形で作られてるのはあるよ
>>24 HSPでは無いがFREE TRAIN。
基礎作ったのは一人らしいが皆でプラグイン作りまくって今じゃ市販の物より凝った物になってる。
俺も箱庭作って遊んでる。
27 :
名前は開発中のものです。:04/06/12 07:53 ID:fgYDHLNc
>>24 そもそもネットで共同製作ってのが無理が歩きがするけど
>>26みたいに拡張的な考え方じゃないと
28 :
名前は開発中のものです。:04/06/12 10:04 ID:YGmjXM2E
>無理が歩きがする
ワロタヨ!
>>28 そういう稚拙な煽りは、ム板のHSPスレでどうぞ。
ジャンルは何だ?
RPGはイヤだな('A`)
素材製作だけになりそうだ。
>22
生きろ!
32 :
名前は開発中のものです。:04/06/12 18:03 ID:s5SBBeHf
FreeTrainってマジすげえな・・・。
ム板のHSPスレ荒れてますね。
フリージア・・・
つまらないフリーソフトスレで叩かれていたやつかw
声が駄目だなこれは
HSPLetって拡張DLL使えないのか…
どの程度の物まで作れるのか想像が出来ない
「HSPでFLASHみたいな事が出来る」点はめっちゃ惹かれるんだけど
そりゃ、DLLはWindows標準のだからね・・・
39 :
名前は開発中のものです。:04/06/13 17:22 ID:OGW7SdQu
プラグインイラネ
40 :
名前は開発中のものです。:04/06/14 19:10 ID:dXBdDKFx
このスレ平和ですね
平和っていうより人が少ないだけの気が・・・
とりあえず本でも買って作ってみようと思うんだけど、どの本が良いの?
「はじめて読む8086」
>>42 別に買う必要はないと思うが、あえて買うなら古本屋で「HSPプログラミング入門」を買う。
バージョン古いけど気にしない。新しいの買っても、新機能を使いこなせるほど書いてない。
結局、自分で試行錯誤する部分とか他人のソースながめるとかが多くなるので、無駄金使う必要なし。
46 :
名前は開発中のものです。:04/06/14 20:59 ID:8RpBAych
金持ちなら全部買ってもいいぞ。逆引きも便利だし。
HSPだけはやめておけ
ここも荒らされるのか?
IDが出るだけマシかもしれん
なんかうらみでもあるんすかねえ!
51 :
名前は開発中のものです。:04/06/14 22:24 ID:dXBdDKFx
-=- エムソフトだから"安心"です -=-
>>48 大丈夫。
ム板のクズはIDの出るスレでIDを自在に切り替えられないスキルの
DQNしかいないし。
モデムの電源入れ直すだけやん・・・。
55 :
名前は開発中のものです。:04/06/15 08:43 ID:S9EP3D1z
>>54 知らなきゃやれないよ。
漏れもシランカッタ
ここは大変高度なインターネットですね。
じゃあ俺がモデム切らずにID変えてみせよう
58 :
57:04/06/15 10:11 ID:H/ns5IIP
ほいよ
59 :
57:04/06/15 10:12 ID:owgGM3c5
おりゃ
60 :
57:04/06/15 10:13 ID:bOGj0et1
ラスト
61 :
57:04/06/15 10:14 ID:bOGj0et1
どうよ。繋ぎ直してたらこんな頻度で書き込みできねーべ?
わかったからここでやるなよ…。
ま、話が一段落してたところだったからいいじゃん
何か話題無いのかよ(´・ω・`)
ゲーム作ってます。コンテスト開催して下さい。おにたま
どうせ落選だよ
俺 うるさい死ね ゲーム作んな殺すぞ
ごめんね。おれはじめてぷろぐらみんぐしたから、ごめんね
許さない
ゆるす
コンテストいつ位になるんだろうな。
72 :
おにたま:04/06/16 01:23 ID:pnFhApXD
みなさんのクソゲーを1つ1つチェックしていくのはもううんざりです。
2回目はありません。
>>72キタ━━━━━━(゚∀゚)━━━━━━ !!
てめーおにたま
審査は全部俺に押しつけたくせに何言ってやがる
きききききっちん
きっちん
かかかかかみたま
かみたま
相手:使える言語何?
漏れ:HSPかな。
相手:何それ?
あまりにも知名度が低すぎる(つд`)
とにかくもんのすげぇモノを作って「Cなんて糞だZEEEE!!」
と言ってやろうじゃぁないか。
作るのは良いけどCなんて糞とかいう必要はないが。。。
78 :
名前は開発中のものです。:04/06/16 17:32 ID:uDQfbeLy
ユーザーの強烈なコンプレックスが問題だな
HSPでロードのダイアログを表示させたときに
save.dat
をロードさせるように表示させるのってどうやんの?
dialog "dat",16
じゃファイル名のところが空欄のままなんでマズー
先に「save.datを選択してください」と表示するのは
カコワルイのでパスしたいんだけど
すげぇものってなんだ?ウィンドウズか?ファイナルファンタジーか?
どっちも絶対作りたくないなw
OSなんか作れねえが
1億人参加型MMORPG
>>76 Cなんて糞っていうなら、その糞で出来てるHSPを使うなと(ry
まぁ、野菜は堆肥があるからこそ美味くできるって考え方もあるが
>>79 ヘルプ軽く見た感じ、できないっぽいね。
でも、ロードするファイルがsave.datと決まってるなら
ダイアログ出して選ばせずに直接ロードしてしまうとかはだめなのか。
GetOpenFileName()
>>85 いろんなところにあるsave.datを読みたいんだろ。
>>79 ちょっと見た目は悪いがこれで出来るぞ。
dialog ";save.dat",16
90 :
79:04/06/17 00:36 ID:H5zzlJFp
>>85-89 dクス
>>85 なるほど、2.55のloadlibのサンプルの奴だな
>>88 質問時点でHSPを始めて30分しか触ってない香具師なんで許せ
>質問時点でHSPを始めて30分しか触ってない香具師なんで許せ
まったくもって許せぬヽ( `Д´)ノ
92 :
88:04/06/17 00:58 ID:hV9VjxMv
>>91 調べるのに慣れた人間なら、30分もあれば、HSPのヘルプ程度なら
ざっと目を通すくらいはできるだろうから、許そうや。
「HSPから始めました」というわけではなさそうだし。
>>89 の方法で良いのなら
dialog "dat;save.dat",16
あたりが親切じゃね?
漏れはてっきり、いきなり「開く」ボタン押してもそのまま動くのを期待してるのだと思てた。
わかった。ゆるす。
まとめページにここ載ったな・・・。
ちょい質問。3Dダンジョンの作り方おしえてほしい。
画面表示じゃなくてマップのほうね。ディープダンジョンみたいなドアも1マスってのじゃなく、
ウィザードリーみたいなマップ管理方が希望です。
マスとマスの間に壁とかドアとかあるやつね。
ウィズ方式だったら、マスごとにどの方向に壁or扉があるか指定するとかかねえ。
これなら一方通行壁とかもできるし…。
想像で言ってるだけだが…。
北に壁がある=1 東に壁がある=2 南に壁がある=4 西に壁がある=8
みたいな感じで2進数で管理
97 :
94:04/06/17 05:51 ID:NDd2+ZKY
フルポリゴンで作ってカメラのみ動かすってのは可能かな
>>94 均質な格子状のマップで、壁の座標(とりあえず奇数)を表示上潰せば、
両方同じようなもん。
メリット:統一的に扱える
デメリット:基本的に(奇数,奇数)位置のデータが無駄
ウィズ形式なマップだったら
マス目にドアや壁の情報を持たせたほうが絶対楽。
壁も1マスにすると、移動するたびに2歩移動しなきゃならん。
画面表示するときもめんどくさくて頭痛くなってくる。やめとけ。
>>100 トポロジー的感覚を身につけよう。
表示も偶奇を見れば良いだけだし。
壁の両面を違うものにするとかだったら、1マスに4壁必要だと思うが。
単純な場合は2壁で十分。
どっちでも良いと思うが、ます目ごとの管理のほうがダイレクトだとは思う。
int g3DMapData[2][8][8]; // 縦の壁と横の壁に分けて、8x8マスのマップ情報を格納
(中略)
if( g3DMapData[ (*dirc)&1 ][ ((*y)+(*dirc==kSouth))&7 ][ ((*x)+(*dirc==kEast))&7 ]==0 ){
switch( *dirc )
{
case kNorth: *y = ( --(*y) ) & 7; break;
case kEast: *x = ( ++(*x) ) & 7; break;
case kSouth: *y = ( ++(*y) ) & 7; break;
case kWest: *x = ( --(*x) ) & 7; break;
}
}
(以下略)
Wiz形式ですので参考までにどぞ。・・・C廚とか言うんじゃねーぞ。HSP知らないんだから。
だれかHSPとCが分かる奴翻訳してくれ。
dim g3DMapData, 2, 8, 8 // 縦の壁と横の壁に分けて、8x8マスのマップ情報を格納
(中略)
l = dirc & 1
m = (y+(dirc==kSouth))&7
n = (x+(dirc==kEast))&7
if(g3DMapData.l.m.n == 0 ){
switch dirc
case kNorth: y--: y = y & 7: swbreak
case kEast: x++: x = x & 7: swbreak
case kSouth: y++: y = y & 7: swbreak
case kWest: x--: x = x & 7: swbreak
swend
(以下略)
>>103 dircは何?キー入力情報?
あとkNorthとかにも何が入ってるのかわからん。説明キボンヌ。
>>104 thx。またご迷惑をおかけするかも。
>>105 じゃ補足をば。kNorthは0、kEastは1、kSouthは2、kWestは3と定義されている。
dircは進行方向で0〜3の値を取る。要するにdircには、上記の四つの方向のうち一つを入れる。
ちなみに上記は、移動時の壁の有無を判断しているだけ。向いている方向の壁を検索して、
配列に格納するのは以下の通り(忘れてたよ)。これは画面描画の際に必要だ。
改行が多いって怒られたから、詰めたら、輪をかけて読みづらくなった点は勘弁。
int insight[8][7];
(中略)
switch( dirc ){
case kNorth: for(i=7;i>1;i--){ for(j=0;j<i;j++){ insight[i][j] = g3DMapData[i&1^1][(y-(i-2)/2 )&7][(x-(i-1)/2+j)&7]; }}break;
case kSouth: for(i=7;i>1;i--){ for(j=0;j<i;j++){ insight[i][j] = g3DMapData[i&1^1][(y+(i-1)/2 )&7][(x+(i )/2-j)&7]; }}break;
case kEast: for(i=7;i>1;i--){ for(j=0;j<i;j++){ insight[i][j] = g3DMapData[i&1 ][(y-(i-1)/2+j)&7][(x+(i-1)/2 )&7]; }}break;
case kWest: for(i=7;i>1;i--){ for(j=0;j<i;j++){ insight[i][j] = g3DMapData[i&1 ][(y+(i )/2-j)&7][(x-(i-2)/2 )&7]; }}break;
}
(以下省略)
107 :
名前は開発中のものです。:04/06/19 02:43 ID:IvNIuL+o
HSPをXPにインストールしたあと「HSP入門」にしたがって新規のフォルダー内に
hsed2.exe、hsp2.exe、hspcmp.dll、hsp2ttl.jpg の4つをコピーし次にフォルダー内の
hsed2.exeをクリックしてファイルー新規作成でエディターを開き半角でタブを押した後
picload "HSP2TTL.JPG"を入力しF5を押してみたが期待される画像は出ずに
error 13 at line 1 [???] 画像ファイルがありません
という表示がでてきます。なにが悪いんでしょうか?
>>107 新規作成した場合は、一度ファイルを保存してからじゃないと、
実行時のフォルダが、画像ファイルのあるフォルダと
違うのでエラーがでる。
(たぶん、「マイドキュメント」フォルダで実行されているので、
そこにhsptmpとかできてるはず。それは消して良い。)
1. 新規のフォルダをつくる。
2. そのフォルダにhsed2.exe などをコピーする。
3. コピーされたhsed2.exeを実行する。
4. 1.で作ったフォルダ内に、ファイルを適当な名前(test.as等)で保存する。
5. ソースを書く。picload "HSP2TTL.JPG"
6. F5を押す。
4と5の順番は逆でもいい。
110 :
名前は開発中のものです。:04/06/19 08:12 ID:IvNIuL+o
質問1
/ ̄ \
/ ノ ノ人ヽ )
|§(┃┃§
|§`ァ┬ '§
たとえばこんなAAを表示するとき一行ずつmes ""ではさまないといけないのですか?
一気にまとめて表示できるとうれしいんですが
質問2 AAの一部ですがこんなメッセージがでます。そうすればいいんでしょう。
mes " j l | | |'"´ l / \l l::::l |:: |"
mes " _,.-''"´| l | l-‐‐‐‐‐‐‐--,/ | |`ヽ|::::|"
stop
Error 19 at line 1 0で除算しました
質問2 同じくこんなメッセージがでます
mes " 〈 / .:! .::i i ::;/ ::. ,イ ,ィ:. i: i: | 〉`´"
mes " ∨! .::l .:::i-|‐'"!|:::::::.. / !`メ+:::、_ /:: l:: .. l∨"
stop
Error 1 at line 2 解釈できないHSPコードです
mes {"
/ ̄ \
/ ノ ノ人ヽ )
|§(┃┃§
|§`ァ┬ '§
"}
stop
mes "〜"の〜の中にある"を\"に変える
マニュアル読めや…
>>110 \nで改行する方法もある。
mes " / ̄ \\n / ノ ノ人ヽ )\n |§(┃┃§\n |§`ァ┬ '§"
113 :
名前は開発中のものです。:04/06/19 10:17 ID:IvNIuL+o
>>111,
>>112 本当にご親切にありがとうございます。マニュアルは「文字列」を読めばよかったのか。
アスキーアートに\を使ってる場合\\に書き換えないといけないわけですね?
ところでより複雑なAAがうまく表示されません
マニュアルを見てもよくわからないのでご迷惑でしょうが再度お聞きします
mes {"
_,,-ー'"´キキキキi| \ヽ,/. , 、、、ヽ_ヽヾ ':`レ' ヽ
<"キキキキキキキキキi| `Y /i |'、 ,、ヽ,-'ヾ_,,ゝ i 、::::'i, ヽ
..ヾキキキキキキキキキi| |, i T'_| ヽi ヽ| ,/|)::;;`l'|ヾV/|:. `ト-、,_
ヾキキキキキキキキi| !i、 | i,'|l´i゚;ヽ ` ヽ'、_;;ノ'|/∧,|:::.. ヾ::..`''ー--、,,_
ヾ,キキキキキキ,ソ `ヽi、 |、iゞシ, """' |´ ::::|;;:::::.... `'''::::::::::: `>
`'ーキ'⌒'/ `ヽi/|ヾ、 ` __, ,イ :::,i;;;;;;;::::::..... __,, ,/
`ヽ i、 ,/ ..::::/丶、 ,∠_,i ..::/;;;;;_,,-ー'´ ̄/l Y
ヽ`, / .:::::/ _,`>'´;;;;;;/ ..:/>'´ ζ:::::|.. ヽ、
. ', ', ,/ ..::/_,-ーy「;;;;;;;;;;;;;;;;/ ..:,イ _,,,,-ーfー';;;`Y::.... `ーt
. ', ',_ _,,,メ´ ....,,-'´ く ミ,〉:::;;;;;;;/ .;;/´,-'´ _ _,う;;;;;;;;;;;;;;ヽ:::... /
',.l`'、 ,,,--'´ ̄ _,,-ー'´ . f´ ,メ;;;__;;/ ..:::/´「_,-'´γ´;;;;;;;;;;;;;;;;;;;;;;;;〉:::::.. /
"}
stop
これなんかはエディター上では微妙にデフォルメされますし(今のところMS P ゴシックで表示するのが一番まともですが
それでも2ちゃんでの見え方と少し違います。)さらにF5するとまったく意味不明の絵になってしまいます。
font "MS Pゴシック", 15
mes " _,,-ー'\"´キキキキi| \ヽ,/. , 、、、ヽ_ヽヾ ':`レ' ヽ "
mes "<\"キキキキキキキキキi| `Y /i |'、 ,、ヽ,-'ヾ_,,ゝ i 、::::'i, ヽ "
mes "..ヾキキキキキキキキキi| |, i T'_| ヽi ヽ| ,/|)::;;`l'|ヾV/|:. `ト-、,_ "
mes " ヾキキキキキキキキi| !i、 | i,'|l´i゚;ヽ ` ヽ'、_;;ノ'|/∧,|:::.. ヾ::..`''ー--、,,_ "
mes " ヾ,キキキキキキ,ソ `ヽi、 |、iゞシ, \"\"\"' |´ ::::|;;:::::.... `'''::::::::::: `> "
mes " `'ーキ'⌒'/ `ヽi/|ヾ、 ` __, ,イ :::,i;;;;;;;::::::..... __,, ,/ "
mes " `ヽ i、 ,/ ..::::/丶、 ,∠_,i ..::/;;;;;_,,-ー'´ ̄/l Y "
mes " ヽ`, / .:::::/ _,`>'´;;;;;;/ ..:/>'´ ζ:::::|.. ヽ、 "
mes " . ', ', ,/ ..::/_,-ーy「;;;;;;;;;;;;;;;;/ ..:,イ _,,,,-ーfー';;;`Y::.... `ーt "
mes " . ', ',_ _,,,メ´ ....,,-'´ く ミ,〉:::;;;;;;;/ .;;/´,-'´ _ _,う;;;;;;;;;;;;;;ヽ:::... / "
mes " ',.l`'、 ,,,--'´ ̄ _,,-ー'´ . f´ ,メ;;;__;;/ ..:::/´「_,-'´γ´;;;;;;;;;;;;;;;;;;;;;;;;〉:::::.. / "
stop
質問するまでのプロセス
(1)マニュアルを何度も読む
(2)色々弄ったりして試行錯誤する
(3)質問する
>>114 ありがとうございます。試行錯誤はしてるんですがマニュアルのどこが
問題に該当するのかわからないもので申し訳ない。
すると大き目のAAは一行ずつmes ではさまなければいけないわけですか?
ちょっと面倒な気がするんですけど慣れれば問題ないってことですか?
あと数箇所に
>>113になかった\が出現してるのはなにか意味が
あるのでしょうか
{"〜"}の中のコロン、セミコロンが
命令: 命令2
命令 ;コメント
のように解釈されて
:が改行になって、;から改行までが無視されてる。
・1行にまとめる(
>>112)
・全部の行でmes ""を書く
が無難。
一気に表示するなら、
a = "": notesel a
noteadd "1行目"
noteadd "2行目"
mes a
のようにするか、redraw 0とredraw 1で挟む。
"〜"の中にある"は\"にする必要がある。
(2.スクリプト記述の基本→文字列)
font "",12
Fname = "ファイル名.txt"
LineTop = 0
LineEnd = 11
dim AAData,65535
dim LineData,1024
exist Fname
FileSize = strsize
if FileSize>0 {
bload Fname,AAData,FileSize
notesel AAData
notemax LineMax
repeat LineEnd,LineTop
if cnt>LineMax : break
noteget LineData,cnt
mes LineData
loop
}
stop
120 :
名前は開発中のものです。:04/06/19 16:39 ID:IvNIuL+o
>>119 おそらくAAの別の表示法をおしえて下さったのだろうとだと理解して
>>113 あるいは
>>114の画像領域11行を
notepadでテクストファイルにしてエディタと同じフォルダに保存し
>>119の全文をエディタにペーストし
ファイル名を書き換えF5を押しましたが
>>113 、
>>114どちらの場合も(さらにmes ""をすべて除いても))
Error 1 at Line 11 解釈できないHSPコードです
のメッセージがでます。今コマンドの意味を理解しようとしている最中ですが私が勘違いをしているので
あればうまくいかない教えていただけませんか?
122 :
名前は開発中のものです。:04/06/19 20:28 ID:IvNIuL+o
>>121 できました!うまくいかなかったのはそのままコピペすると
11行以降例えば bload Fname,AAData,FileSize の頭に
?? という無駄な字がなぜか
現れていたのに気づかなかったせいでした。
それらをすべて削除したらうまくいきました。
かなり使えそうなテクですね。\も"も関係なく表示する
みたいだし。ありがとうございました。
>>119 font "",12
Fname = "ファイル名.txt"
LineTop = 0
LineEnd =50
dim AAData,65535
dim LineData,1024
exist Fname
FileSize = strsize
if FileSize>0 {
bload Fname,AAData,FileSize
notesel AAData
notemax LineMax
repeat LineEnd,LineTop
if cnt>LineMax : break
noteget LineData,cnt
mes LineData
loop
}
stop
>>123 そういう使い方は期待していなかったです。
変数を利用し、前置きと本体を空けている意味を汲み取ってほしかった…
全体を表示させることが目的ではなく、複数のAAを記録したファイルから
抜き出して使えるように意識したつもりだったんです。
インデントも余計なことだったみたいですね、すみません。
>>123 安易な改変をしてごめんなさい。ただ
>>113も元絵は数十行あったものを削った
もので適当な一枚のAAを表示するためには50行くらいあったほうが便利だったもので、、、
それで、もしAAがn枚あったらそれらを全部ひとつのTextファイルにまとめそのうち任意のp枚目の
始まる行を配列 a(.p-1) で定義しておけば
>>123のプログラム前半のところを
LineTop = a.(p-1)
LineEnd =(a.p)-1
とすればp枚目のAAだけが表示される。こんな感じで使えばいいのでしょうか。
たしかにそれは便利そうですが、それが
>>123さんの意図であると理解してよろしいのでしょうか。
126 :
名前は開発中のものです。:04/06/20 06:43 ID:FrgacYhj
128 :
124:04/06/20 11:18 ID:xjCu374N
>>123 が
>>113 本人であるなら問題はないよ。
>>113 以外なら、
>>123 にとって有益でないと思ったので。
>>125 は 定義内容がよく分からないけど、意図は汲み取ってもらえてると判断します。
あとHSPでは配列の添字に数式は使えなかったと思う。
temp = p-1
LineTop = a.temp
とすればいいかな。
余計な気を使わせたみたいで申し訳ない。がんがってください。
>>128 はい113=123=私です
いろいろな方からレスをいただきHSPを始めたばかりのの私には大変勉強になりました。
おそらく一人じゃ到底絶対
>>119のようなプログラムは書けないと思います。
ありがとうございました。
コンテスト開催は結構だが
入賞商品を今度はもうちょっと豪華にしてほしいなー。
現金とか図書券のほうがいいわ。
>>130 同じ時間ならゲーム作るよりバイトしたほうが金になると思うぞ。
いや、商品がしょぼいってのは結構思ってる人いるだろ
むしろ商品なしの方が俺はいいと思う
賞品期待してる奴いたのか…
祭りに参加できるだけで楽しいよな。ID e++カコイイ
今年はいけそう。
賞品よりもHSPの公式ページで紹介されるとか
(おにたま氏をはじめ)色々な人にコメントされる
という様な事が嬉しい、賞に入れればいいけど
「ホットちゃんとスープちゃんのホットスープがのみたい!」
というゲームをコンテストに出そうと試案中なんだけど…
タイトルしか決まってない…どういうゲームにしようかな…
そりゃもちろん、あったかぁ〜いお汁を飲むために振動する卵を(ry
来たかコンテスト・・・・。去年は駄目だったが今年こそは!!
去年入賞したけど経験が浅いってことへのお情けチックで逆に恥ずかしかったよ(´・ω:;.:...
とか言いつつ今年も出そう
すげえの考えた!
Windowsに入ってるゲームを簡単に起動できるアプリ。
ゲーム君って名前で出そうかな。
HGIMG、浮動小数点めんどくさいから整数でやらせてくれないかな…w
浮動小数がイヤでZGP使ってる俺。
不動小数点数がめんどくさいってどういうことだ?
HSPだと添え字つけないと小数として認識しないとか、そういう部分じゃないかな
>>141 ゲーム以外にもメモ帳とか電卓とか起動できるとすごいかもっ!!
>>143 数字じゃなくて文字として扱うから単純な計算も面倒になる
148 :
おにたま:04/06/24 00:17 ID:Wni5X1x1
今年は、よほど独創性に自信のあるものかすでに何年もかけて作りこんでいる
ものだけ応募して下さい。
他は見ません。
そう言いたくなる気持ちも分かる
>>141 そんなもんシロートが形に出来るわけねーだろ。
サンプルにあるようなただの習作を送ってくるのだけはマジで勘弁。
送る意味がわからん。
小学生とかもいるんだし仕方ないだろうな。
とりあえず参加賞は無くしたほうが良いと思うけど。
初心者部門でも作るか
>>153 去年は初めて1ヶ月の初心者が、有象無象を圧倒したゲームを出して入賞してる事実。
つまり、初心者でも出来る奴は出来るし、駄目な奴はどれだけやっても駄目。
むしろ長くやってて駄目な奴多すぎ。
それってどれのこと?
>>154 > むしろ長くやってて駄目な奴多すぎ。
まったくだ。激しく同意。
例えば・・・・
俺とか俺とか俺とか、それに加えて俺とか。
あと思いつくのは俺ぐらい。
/\___/ヽ ヽ
/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
/`ー‐--‐‐―´\ぁあ
>>154 例外はいるよ、でも一ヶ月って自己申告よね
>>154 初心者って、プログラム自体が全くの初心者なん?それはないやろ
天才に近い人ならありえる
162 :
155:04/06/25 20:12 ID:cz063CqI
>>158 thx.
これは明らかに初心者では無いなあw
>>158のやつだが、プログラム自体の初心者かどうかはしらん、ツーかむしろ違うだろ。
HSP自体は自称1ヶ月ってな話。
前々から気になってたんだけど、HSP本のたまねぎの絵が
スライムにしか見えない。
スク工ア工二シクスに怒られたりしないんだろか。
3DRPGを作るツワモノがいないだろうか。
というプログラム始めて3日の戯言。
3Dのアクションなら作ってるよ。
RPGはパス。
ただ単にショボい絵描きがキャラ作ってぐりぐりやってみたいだけなのですが
素材屋にでもなるか
|λ....
それなら格闘のほうが良いんじゃない?
手っ取り早くキャラをグリグリ動かすなら格闘とかアクションのほうが向いてるな。
アクションと格ゲか、、、技でも考えるか、、
百段落しっ
フェードアウトってどうやってやるんですか?
フェードアウトのやり方調べたんですけど、パレットモードでやると絵がおかしくなってしまうのですが、
パレットモード以外でやる方法はないんですか?
>>174 > パレットモードでやると絵がおかしくなってしまう
> パレットモード以外でやる方法はないんですか?
フルカラーでやればいいんじゃないのか
とりあえずパレットモード以外(フルカラーモード)でやる方法
dialog "jpg;bmp;mag", 16, "Picture files"
if stat = 0: end
screen 0: picload refstr
buffer 2, winx, winy: cls 4
gsel 0
repeat 51, 1
pos 0, 0: gmode 3,,,cnt*5: gcopy 2, 0, 0, winx, winy
wait 1
loop
stop
すごすぎてわからない
_| ̄|○
なんかよく分からないところをいじったら使えるようになりました!
ありがとうございました。gmodeで半透明に出来るなんて知りませんでした。
そりゃマニュアル読んでなければ知らないだろうね。
せっかくソース提示してくれたんだから、気になったところで片っ端からF1押せばいいだけなのにね。
>>180 マニュアル読んでない人はF1の使い方も知らないと思う。
普通のアプリとかゲームならまだしもプログラムでマニュアル読まない奴は失格だろ。
うかつだった・・・○rz
* ヲチ、ネタなどはスレ違い
なにこれ?
ちょっとめんどくさそうなのでやってないが…。
本家からのリンクは申し込めば、たいがいのページはリンクしてくれる、
すごいゲーム作っても、申し込まなければ、本家からリンク依頼されることなどない。
本家の考え的にはHSP関連で宣伝したいユーザーには分け隔てなく協力する、という感じだろう。
>>183 こーゆー何がどうなってんのか掴みづらいゲームは苦手だ、ゲームって感じがしない
てか、これちょっと前に話題に出たカードゲームの人やん
本家からリンクされると、厨ももれなく付いてくる!
これどうやってるんですか?
とか聞かれそうだよな。
コエー リンクなんてタノメネー
心配しなくても貴方は聞かれませんから!残念!
192は質問厨でFA?
じゃぁ俺が聞いてやろう。
これどうやってやるんですか?
正直、一見したところ自分の作りかけゲームと似ててアセッタ。
やってみたらシステムが違ってたんでチョト安心。
183のことか?
どんな内容かよくわからん…
マウスで二点をクリックしてその間の距離x,yをドット単位で表示するって
ソフト作りたいんですがどうすればいいでしょう?
line , pset , mousex , mousey
onclick か stick か getkey
を使えば作れると思う。
それらの命令を使ってもイマイチ作り方が分かりません。。。
つまり線引きたいのか距離を求めたいのかどっちなんだろ
距離を求めたいのです。
点1から点2までは x方向に100ドット y方向に200ドットって感じで
マウスクリックされた時にカーソルの座標を変数に退避して、
比較した結果を表示するだけなのでは?
なにがわからんの?
距離の絶対値を求めたいのかと思ったら、YX座標差分かよ。
逝ってよし
HSPって10個くらい命令が分かればゲームが作れるって本当ですか?
作れない僕はアイデアがないのでそうか。
命令の数をいくつ使おうが構わないと思わない?
自分の作りたいものを作るために命令の数を気にしますか?
数当てゲームなら10個くらいでできるかもな
>>205 キミは“作れない”のではなく“作らない”のだと気が付きたまえ
;
>>198 ;適当に改造して使え
onclick *getMouse
stop
*getMouse
ttlMsg = "x1:" + x + " y1:" + y ;前にクリックした点
ttlMsg += " / x2:" + mousex + " y2:" + mousey ;今クリックした点
dx = x-mousex ;距離 X
dy = y-mousey ;距離 Y
if dx<0 : dx = -dx
if dy<0 : dy = -dy
ttlMsg += " / dx:" + dx + " dy:" + dy
title ttlMsg
x = mousex
y = mousey
stop
みんななんだかんだいって親切だな(藁
ここって本当にいい人ばかりですよ
悪い意味でね。
いい悪いなんてどうでもいい。品質によらず答えが得られればそれで。
得たものをそのままにするか昇華させるかは使う人次第。
むやみに精鋭主義っぽいことをよく口にする人がいるが、低レベルでの底上げは
別に無駄とは思わんよ。特にこんな場所じゃね。
低レベルな質問するやつは、その時点でダメだと思うが。
自分で調べたり試行錯誤できないやつは問題外だろ。
「少し高レベルなのをやろうとして検討も立てられず挫折し止めてしまう。」
ことを期待して教えてるわけだが。
考えずに質問する馬鹿は消えて欲しい。
そういえば「どんな調べ方をすれば良いか」を質問する奴はいないな…
タイトルバーに現在の時刻、年、月、日、曜日を表示させるスクリプトで、
時刻を2桁にしたいのですが、これでは無理みたいです…。どうすればいいでしょうか?
/*時間表示の発展*/
screen 0,320,0;ウィンドウのサイズを調整
;曜日の関数
sdim ODW,7,7
ODW.0="日曜"
ODW.1="月曜"
ODW.2="火曜"
ODW.3="水曜"
ODW.4="木曜"
ODW.5="金曜"
ODW.6="土曜"
*TIME
gettime year,0;年取得「year」に代入
gettime month,1;月取得「month」に代入
gettime odw2,2;曜日取得「odw2」に代入
gettime day,3;日取得「day」に代入
gettime hour,4;時取得「hour」に代入
gettime minute,5;分取得「minute」に代入
gettime second,6;秒取得「second」に代入
str hour,2:str minute,2:str second,2;時間を全て2桁に変更
title "今の時間は"+hour+":"+minute+":"+second+" 今日は"+year+"/"+month+"/"+day+"("+ODW.odw2+"日)";タイトルに表示
wait 100
goto *TIME
100で剰余取れ
>>217 int hour:int minute:int second
を *TIME の次の行に入れてみ?
gettimeを繰り返し同じ変数で使うためには、いったん文字列型に変換したものを
数値型に戻してやる必要があるだろ?
220 :
名前は開発中のものです。:04/07/01 13:27 ID:m+/uT8hH
フルスクリーンのゲーム中に使えるツールを作るにはどうすればいいんですか?
ゴミレベルどもがあげんな
222 :
名前は開発中のものです。:04/07/01 14:50 ID:S5zu2Amh
>>220 どうゆうツールなのか解らんが、 listbox じゃダメか?
ageるやつには教えないのがルール
マ板逝け
(´_` )。。○(またsage厨か・・・)
ここは質問するやつもsageじゃないとイカンのかよ・・白んかったぜ
226 :
名前は開発中のものです。:04/07/01 16:52 ID:AUY2dIBn
じゃage
>>219 有難う御座いました
いま本見たら(変数は違いますが)、
hour=0:minute=0:second=0というのがありましたラベルのあとに。
228 :
名前は開発中のものです。:04/07/02 12:32 ID:HmaAkL9+
そゆことで〜^^
クズども沈んでろ
231 :
名前は開発中のものです。:04/07/02 15:13 ID:HmaAkL9+
232 :
名前は開発中のものです。:04/07/02 15:21 ID:KRyGDsPC
うるせー馬鹿
233 :
名前は開発中のものです。:04/07/02 18:36 ID:93YoT3Fw
文字列変数の内容の一部を削除する命令ってありますか?
a="abcdefghi"
これのeとfを削除して
a="abcdghi"
に変えるという意味です。
命令リファレンスで探したところ、
それらしいのは
notesel
というのしか無かったのですが、
a="abcdefghi"
notesel a
notedel 5
mes a
stop
とやっても、変わっていません。
何か方法はないでしょうか
234 :
233:04/07/02 18:37 ID:93YoT3Fw
すみません
>命令リファレンスで探したところ、
>それらしいのは
>notesel
>というのしか無かったのですが、
noteselじゃなくてnotedelでした
( ´Д`)strmid
( ´Д`)getstr
237 :
233:04/07/02 21:10 ID:93YoT3Fw
>>235 strmidでやってみても、
文字列の一部をコピーするだけみたいなんですが・・・。
a="abcdefghi"
strmid b,a,5,2
stop
こうやっても
aの中身はabcdefghiのまま、
bの中身はefが入ってました。
>>236 削除する位置を何文字目かで決めたいので
getstrでは駄目みたいです。
色々言ってすみません
238 :
名前は開発中のものです。:04/07/02 21:15 ID:JA+Q5yhZ
strlen(文字列の長さを調べる)
instr(文字列の検索をする)
strmid(文字列の一部を取り出す)
>>237 誰 が 1 回 の 命 令 で で き る と 言 っ た 。
あ、あとstrlenを忘れてた。
240 :
233:04/07/02 21:29 ID:93YoT3Fw
a="abcdefghi"
b="ef"
strmid b,a,0,4
strmid c,a,6,4
a=b+c
mes a
stop
こうですね、出来ました!
実際に使うときはinstrとstrlenも使うんですね。
>>235=239
>>236 >>238 ありがとうございました。
…質問がアレな割には飲み込み早いな…
こういう人を「素質がある」と言います。
意外な展開
じゃあ俺は「天才肌」やな
・・・あいつ餅食べてるのに飲み込みが速いな・・・
・・・はじめてとか言ってた割に飲み込むのためらわないのな・・・
;文字変数から指定した文字をカットする
;(単語としてでなく、含まれる文字を全て消去)
#module "cut"
#deffunc cut val,val
mref v1,24
mref v2,25
strlen ln2,v2
cn=0:repeat ln2
n="":p=0:strlen ln1,v1
repeat
peek c,v2,cn
getstr a,v1,p,c:p+=strsize:n+=a
if ln1<p:break
loop
v1=n
cn++:loop
return
#global
a="abcdefghij"
b="ef"
cut a,b:print a
stop
少し力押ししすぎかも...@
250 :
名前は開発中のものです。:04/07/03 21:58 ID:7oBXh8xl
簡単に書くと。
a="abcdefghij"
b="ef"
strlen len1,a
strlen len2,b
instr p,a,b
strmid c,a,0,p
strmid d,a,(p+len2),len1
e=c+d
mes e
stop
251 :
名前は開発中のものです。:04/07/03 22:26 ID:ROS80UqG
けど、それだと先頭のやつしか除去できないし、a
に含まれないのをbにいれると変になるとおもうが...
252 :
名前は開発中のものです。:04/07/03 22:32 ID:ROS80UqG
a="abcdefghijef"
b="ef"
repeat
strlen len1,a
strlen len2,b
instr p,a,b:if p=-1:break
strmid c,a,0,p
strmid d,a,(p+len2),len1
a=c+d
loop
mes a
stop
aに含まれるbを全部除去する
a="abcdefghijef"
a=""
mes a
stop
aを全部除去する
254 :
名前は開発中のものです。:04/07/04 18:56 ID:cPwRxDVp
HSPで弾幕シューゲーを作るにあたって、
どうしても越えられない壁がある。処理速度。
当たり判定が突き抜けないように、1ドット移動ごとに当たり判定
ルーチンを巡らせる。
100個くらいのところでバテる。
2ドットごとに妥協して、さらに作り進めていくと、
自弾の処理でまたバテる。
・・・・・・・・・・どうしても弾幕ゲームが作りたいんだ・・・
HSPの限界はよく分かった・・・。
誰か、頼むからプログラムを速く走らせるコツを
教えてくれ・・・
> HSPの限界はよく分かった・・・。
それ組み方の限界ジャーン?
プラグイン何使ってんだ?
ルーチンを軽くする
計算の部分をマシン語で書く。
259 :
名前は開発中のものです。:04/07/04 20:46 ID:cPwRxDVp
>>255 そう言われるとそうだな、そう訂正するw
プラグインは
hspext:hspdxa:dsoundex
ジョイパッドの入力にhmmを使う予定
サイン・コサインは予め256コのテーブルに
保存して使ってるけど、狙撃するときに
アークタンジェント(ematan)を求めてる。
これって相当遅くなるのかな?
マシン語か、マシン語とアセンブラの違いも分からない
俺じゃかなり無理ぽいな
マシン語はCとかで書いてオブジェクトファイルから取ればいい。
マシン語がバイナリで、アセンブラがmov *, *とか。
それ、ヒープ領域のコード実行が将来のWindowsで不可能になることまで
考慮して言ってるのかな
実行時に切り替えるようにすれば?
パソコン買い換える。
VirtualProtectで実行権付けるのに成功したらマシン語
失敗したら普通に。
普通にDLLに分離してもいいと思うけど。
repeat 10000000
A ++
loop
で3400msくらいかかった。
セレロン1.7Gですた。
みんなのも気になるよ。
晒してくれぃ。
プログラム晒してくれればこっちの環境で実行した結果出すよ
>>254 当たり判定の具体的なルーチンを知りたい
>>265 当方、Pen4 2.4CG :XPで
2100msぐらいだったかな。
timeGetTime と GetTickCount の両方で測っても変わらなかったけど。
>254
当たり判定を細かくやってるみたいだけど処理落ちするってことは弾の量はかなり多めなんだよな
たぶん弾速はそれほど早くないと思うが速度の速い弾以外は1フレーム1回当たり判定で十分なんじゃないか?
>>265 gettime x,5:gettime y,6:gettime z,7
print "" + x + "/" + y + "/" + z
repeat 10000000
A ++
loop
gettime x,5:gettime y,6:gettime z,7
print "" + x + "/" + y + "/" + z
stop
--
こんな感じで計測してみた。
Pen3 800MHz で 約4250ms でした。
…しかし、抜けると分かっててもwaitのないループをHSPで実行するのはちょっと気持ち悪い。
Cel300MHz 7681ms
Pen4 2.80GHz 1422ms
地球シミュレータ 0ms
・・・ごめん、ネタがつまらんね('A`)
それはおいといて、パフォーマンスカウンタ使おうと思うと思ったら
LARGE_INTEGER・・・面倒くさいな。
AthlonXP1600+ 1.4GHz 1312ms
AthlonXP 2.0GHz 953ms
Pen4 2.4GHz
2047ms
・・・オーバークロックでもするかな。。。
AthlonXP2600+(Barton) 1.92GHz 953ms
IDT Winchip 200MHz 17695ms
Winchipマシンの方が桁違いに金がかかってるんだけどな・・・。
いつからここはベンチマークスレになったんだ?
265だが、これで計った。
#include "dsoundex.as"
timer
TIM1 = stat
repeat 10000000
A++
loop
timer
TIM2 = stat
RE = TIM2 - TIM1
mes RE
stop
gettimeより精度が良いらしい。
連レススマソ
>>267 A1 = 自弾Xと敵Xの差
B1 = 自弾Yと敵Yの差
A2 = (-自弾サイズX<A1)&(A1<敵サイズX)
B2 = (-自弾サイズY<B1)&(B1<敵サイズY)
if (A2&B2)=1 : 当たり
みたいな感じでやってる。確かどっかの
ページで解説したやつをパクった。
>>269 自機のサイズが2*2で、移動量が1フレーム2〜4ドットにしてるから、
敵弾のスピードが1フレーム1ドット移動ならOKだけど、
もぅ少し速い弾(をメインにする予定)だとたまに抜ける時があるんですわ。
でも、ある程度場に残って邪魔する弾なんか作ったときは
参考にさせてもらうんで助言感謝
描画と当たり判定のフレームを別にする。
当たり判定はするが描画しないフレームが存在するようにする。
>>273 LARGE_INTEGERは基本的に64bit整数型
プラグインにある衝突判定命令使うほうが速いだろう。
すり抜けが嫌なら、弾のスプライトを進行方向逆に少し伸ばして長方形にすれば?
その場合回転使うと描画が重くなる可能性あるので16方向くらいで用意したほうが良いけど。
>弾のスプライトを進行方向逆に少し伸ばして長方形に
斜め長方形は無理でそ? 長方形で縦や横に大きく当たり判定が
取れたとしても、斜めだと正方形の当たり判定にせざるを得ないから、
こだわるとレイヤー作って色取得、みたいなことしなきゃならないっぽい。
ごめん回転させないと無理だった
しかし100位の描画と判定で重くなるって
スペック低いだけじゃないの?
そういえば最低動作環境ってどれくらいを想定して作ってる?
よほど古いPCじゃない限り2Dシューティングで重くなるなんてことないと思うが
PenIII-800&GeForce2くらいで動きゃ良いかなとは思ってるけど、
前に作ったのはPenIII-500でも平気だった。
最近はDirectX自体がそこそこのスペック(CPU&VGA)を要求するから
DirectX使うならある程度切り捨てないとダメかもよ。
自弾(50個)vs敵(20匹)が画面上いっぱいで
弾移動が1フレームに5ドットの時の当たり判定の場合
repeat 50 ;自弾50個
repeat 5 ;1ドットずつ5回動かす
自弾の移動処理
10命令くらい?
当り判定サブルーチンへ
loop
loop
*ATARI
repeat 20 ;敵数20
当り判定命令20くらい
loop
return
とすると、
50*((5*20*20)+10) = 100500命令
うちのPCでは、上のほうでやったベンチマークテストの方法だと、
100500命令実行するのに25〜30msくらいかかる。
今は大雑把にやって全然正確な値じゃないけど、
少なくとも60FPSを保つのに必須の1フレーム16msは大幅に越えて
しまうのよ。
(上のルーチンを見て、255が言ったように
組み方が悪い! と言う人が居たら是非、
もっと速く動く組み方を教えて欲しい!
お願いします!)
HSPを卒業して他の言語で組む
>>292 セレロン1.7G
メモリは関係ないと思うけど、256ある
VRAMは16Mあるから、
わけわからんエフェクトつけない限り、
描画関連で遅くなることはまずないと思う。
>>290 最初に、5ドット進む距離を内包する正方形でも求めて、敵を絞り込んでから1ドットずつ絞り込んだ敵で判定しては?
その処理方法だとこれぐらいかな?
>>294 お?それというのは、
敵が回りにいないのに当り判定をするのは無駄だから、
近い敵だけ探して判定すると言うこと?
まじゴメン、バカで理解できんかった・・・(='ω`)トホー
自機に近い弾だけ先に抽出するとか…。
つか少しくらいのすり抜け気にするな。
ああすまん重複
>>295 そう。
5回、全敵に対してやるのはかなりの無駄だからなぁ・・・
できるだけ、絞り込まないと。
299 :
名前は開発中のものです。:04/07/05 22:22 ID:Kz1aLSou
295さんじゃないけど、同じくstg作っているものとして関心あります。
いや、295さんと違い、わたしは弾のすり抜け問題なぞここを見て初めて認識したのですが。
es_checkで済ませ、すり抜けることがありうるなんて考えてもいなかった…。
294さんのおっしゃるのは、たとえば透明な、実際の弾よりも大きめのスプライトを一緒に飛ばして
それで簡易に当たり判定。
もしも判定がイエスならば、細かくさらに判定ということでしょうか?
すみません、書き込んでいる間に返事がありましたね…。
ふむ、なるほど。
場に弾が200個あって5回判定すると1000、
近いのだけ抽出すれば、200回強で済むわけか。
今まで考えもつかなかったなぁ。これでかなり
処理速度が向上しそうだ、助言マジ感謝!
>>296 ゲームとして成り立つなら
気にしなくてもOKだとは思うけどねw
299氏も同じSTG製作ガンバロナー
さっき思いついたが、1フレームにそれぞれ高々数ドットしか進まないと考えると、
ある一定距離以上の弾は数フレーム間は判定をはしょってもいいな、と。
けど、FPSが揺れるから微妙か・・・
アセンブリに落とせれば凄く勉強になるのになぁ。
ま、弾幕シューティングなら敵弾はゆっくり飛ばそうぜってことだな。
それは、敵弾と自機との距離の差を求めて、
一定範囲内に入ったら細かくするってこと?
なんかこのスレの方々は、優しくレスくれて涙が出るよ、ありがとう!
@弾を中心に範囲を決めたレイヤーを打ち出し、
レイヤー内に対象が入ったら細かく判定する。
A弾と対象の差を求めて、対象と近づいた値のものだけを
判定する。
どちらの方法も 大雑把→詳細 と、2重の判定を
するってことになるね。ふむふむ。
Aで差を求めたほうが簡潔でいいかなぁ?
>>306 あー、302のことは、一定距離以上の弾は、初めから判定を数フレームやらないという意味ね。
説明しにくいけど
1フレームにnドット進むならmフレーム進むのはその弾中心の円内(半径mnドット)にいるはず。
逆に、自機も同じようにその自機中心の円内にいるはず。
とすると、円同士が重ならなかったら、mフレームはその弾との判定はしなくてもいい。
・・・って感じなんだけど、実装するとなるとちょっとめんどくさそうだ・・・
それに計算で逆に遅くなっても意味ないし、バグの原因を作りそうだな・・・
あんまり効力はなさそうでメンゴ(汗
>281
のやり方でいいんでない?
描画1フレーム中に「座標更新〜当り判定」を2回以上にする。
そもそも弾幕ゲーのお約束として
遅い弾は小さくて大量
速い球はデカイor長くて小量
だし。
軽くで良いからx軸y軸でソートしておく。
そうすると当たり判定が一気に省ける。
弾幕系は当たり判定に関係ない弾が多いから。
あれ?
もう一つのPC Duron 800MHz : Meで測ったら、2400msぐらい・・・
>>268とあんまり変わらない・・・
そういえば、前作ったシューティングゲー(DirectX無し)も
>>268のPCより、Meの奴のほうがFPS出てるんだよね・・・
なんか、泣けてきた・・・
>>308 それをやってるから処理速度が追いつかなくなる、
という話題なのだが・・・。
当り判定が突き抜ける問題はいくらでも克服できるようになったよ。
>>310 すまそ相変わらずバカで理解できなかった・・・。
詳しくお願いしま。
313 :
308:04/07/06 08:18 ID:IGUAa5VB
>312
スマソ.斜め読みしてた。
>312
310ではないけど例えば弾のX座標を取得して10,2040,50,80,100という風にソートしておいて
自機+-10以内に入ってる弾だけ当たり判定をするっていう事かな
やり方は違うけど弾幕の場合どの方法でも自機に近い弾だけを当たり判定するって考え方は同じかと
>>314 なるほど理解した
みんなのおかげで、自機に近い弾だけ判定するというのは
かなーり理解しました、マジ感謝、頭が上がらんよ
310(314)氏のも参考にして、時間はたっぷりあるので
簡易判定を飛ばす、差を求める、ソートする
の3つは全部試してみまつ
俺、暗算とか頭で考えるの苦手だから
実際に動かしてみないと理解できないんだよね
(プログラマにとって致命的だな)
試して、一番速いのを実装することにしまw
ソートするなら、めんどくさい(高度な)ソートルーチン組まないと逆に低速化するだろう
と予言
正確にはソートというより並び替えだね。
大抵は前後の順番が入れ替わるだけだから。
弾を発射するときだけ重くなるけど他は大して重くならないと思う。
毎フレーム比較するんじゃなくて各フレームで部分部分比較すれば
そんなに誤差でないと思うし。
当方のHSPがおかしい・・・
OS(XP pro)なんだが、await 1がどうみてもwait 1になってる・・・それもawait 10までwait 1。
でも、ソースによってはwait 1扱いにはならない。
なんだよ、これ・・・OTL
goto命令で、
ラベル名に変数を使うのは仕様上無理らしいんですが、
他の方法でそれに近いことをするのは出来ませんか?
ないなら諦めて、地道に名前書きますが・・・
321 :
名前は開発中のものです。:04/07/06 23:43 ID:KeokYOn1
on gotoでは駄目?
>>315 速いソートルーチンを組んでおくと
ゲームを作る上でめちゃめちゃ便利なので
(ハイスコアのソートとか、ホーミング武器の標的選択順とか)
面倒でも手をつけておくことをおすすめする。
>315
水を差すようで悪いが
労力の割にはあまり報われない気が…
自機当り判定が2*2ドットでも敵弾の最小8*8(東方の最小弾が見た目上はこの大きさ)が貫通するのに
相対速度が最低でも10ドット以上(敵弾の判定も見た目より小さいのかもしれないけど)
8*8の弾なんてせいぜい1フレームあたり6〜8ドット移動ぐらいまでだと思うし
1フレーム1〜2回くらいの当り判定計算でも十分な希ガス。
いくらなんでも1ドット動くごとに判定してやる必要はないと思う。
もっと小さい敵弾を想定しているならある程度仕方ないけど。
HPS製の飛翔鮎(体験版しかやったことないけど)みたいに思いきって最小敵弾16*16にするとか。
東方を久しぶりにやってみたら速い弾は16*16で8*8の弾は遅いし。(意外と16*16の弾がメインだった)
案外1フレーム1回しか計算してないのかもしれない。
324 :
319:04/07/07 00:11 ID:dPzWJtlV
onですか・・・
分岐が数百個なので結構面倒ですね・・・。
文字が横に伸びてしまうのがちょっと難点ですが
それで頑張ってみることにします。
ありがとうございました
>>324 本家より引用
> on a goto *00,*01 ・・・ *09
> on a-10 goto *10,*11 ・・・*19
> on a-20 goto *20,*21 ・・・
まあ、ラベル多いのが嫌ならラベル使わないような書き方にするしかないな。
if文が多くなりそうだけど。
>>323 うむ、それについては俺もさすがに考えた(X*Y弾がAドット移動して云々とか)
でも8*8の弾が5ドット動いて、自機が4ドット動けば9ドット
突き抜ける可能性があるのよー。あと、判定は特殊なことしない限り四角形だから、
カドに斜めに入っていったときは判定の幅が小さくなってしまう。
それから、8*8で円形を描くとカドが空くでしょ?
空いたところまで判定入れるの変だな、って思うから、
自分は8*8の弾だったら、判定は6*6or5*5にしたいのよ。
飛翔鮎はやったことないけど妖々夢はある(体験版だけど)
妖々夢の場合は弾遅いけど、怒首領蜂やケツイみたいなのだと
これスゲーなってのが良くある(と思わない?)
ま、そういう有名な弾幕STGを
パクろうってのは無理だけどね(汗
328 :
327:04/07/07 00:45 ID:+Z9KVqsR
すまそ、よく見たら被った内容多かったね・・・
TMAX = 50:dim TX,TMAX:dim TY,TMAX:dim TF,TMAX:dim TH,TMAX
dim TSIZEX,TMAX:dim TSIZEY,TMAX:ZX = 30:ZY = 200
screen 0,300,300
*MAIN
redraw 1:redraw 0:color 255,255,255 : boxf:stick KEY,15
if KEY&1 : ZX -= 4
if KEY&2 : ZY -= 4
if KEY&4 : ZX += 4
if KEY&8 : ZY += 4
color 0,0,0 : boxf ZX,ZY,ZX+2,ZY+2:COUNT++:COUNT2++
repeat TMAX : if (TF.cnt=0)&(COUNT>=10):TF.cnt = 1:TX.cnt = 30:TY.cnt = 20:TSIZEX.cnt = 8:TSIZEY.cnt=8:TH.cnt=1:COUNT = 0
if (TF.cnt=0)&(COUNT2>=10):TF.cnt=1 : TX.cnt=30:TY.cnt=20:TSIZEX.cnt=8:TSIZEY.cnt=8:COUNT2=0:TH.cnt=2
if TF.cnt { if TH.cnt=1:TY.cnt += 7
if TH.cnt=2:TY.cnt += 5 : TX.cnt += 5
color 0,0,0 : boxf TX.cnt,TY.cnt,TX.cnt+TSIZEX.cnt,TY.cnt+TSIZEY.cnt
HX1 = TX.cnt-ZX : HX2 = (-TSIZEX.cnt<HX1)&(HX1<2):HY1 = TY.cnt-ZY : HY2 = (-TSIZEY.cnt<HY1)&(HY1<2)
if HX2&HY2 : color 180,0,0 : boxf : TF.cnt = 0
}
if TY.cnt>=300:TF.cnt=0
loop:await 16:goto *MAIN
ちょっと試してみたけど微妙だね・・・
向かって動くと抜ける、
カドは場所によって抜ける
330 :
323:04/07/07 01:26 ID:f8rNee75
>.327
自機が2*2で敵弾が5*5なら貫通に必要な相対速度が7ドット以上やね。
自機が4ドット速度で5ドット速度で向かってくる敵弾に突っ込めば相対速度は9ドット。
貫通しちゃうね。
自機2*2って小さすぎないかな?(他の弾幕ゲーはどうなんだろ)
上の例なら、自機5*5なら相対速度9ドットでも貫通しないし。
すまそ
怒首領蜂やケツイはやったことないや。
飛翔鮎(hspdx+α)体験版 まだあった。
ttp://www.h7.dion.ne.jp/~tenkuu/ …なんて書いてたらテストサンプルが書きこまれてるのでやってみて寝まつ。
飛翔鮎の2周目?って鬼のように弾速いけどすり抜けないのかな。
速すぎて、すり抜けたことが分からないとかw
CAVEシューは確か弾は大きいのも小さいのも全て1ドットで自機は結構大きめだったような
弾幕シューだと一般的に弾か自機どちらかの当たり判定が極小でもう一方は見た目通りかな?
でも怒蜂や大往生よりガルーダのほうが判定小さく感じるな。
>333
敵弾のほうが小さいケースもあるのか。STGあんまりやらないからシランカッタ。
まぁ両方小さかったらほとんど当らなくなるだろうけど。
個人的にはSTGに限らずアクションゲームの当り判定は見た目どおりのほうが落ち着くな。
ところでリプレイ機能ってどうやってるんだろう?
全ての自機、敵、弾のフレーム毎の位置を記録してるのかな?
ランダム要素が一切なくて入力ログだけをとってるとか?
>>335 ランダムがあろうとなかろうと関係ない。
なぜなら、乱数の時に自分でシード指定すれば
おなじ、ランダムを再現できるから。
>336
なるほど。
なんにせよ敵も味方も座標ではなくて
挙動を再現する方法になるな。
1フレーム単位で全部保存していったらとんでもない量になる。
まあ、せめてタイミング(敵&弾を出す)を覚えさせくぐらいにしないと。
でも、プログラムがめんどくさくなるからランダム再現が一番楽だと思う。
フレームごとのキー入力再現で良いのでは…。
>>339 敵の動きが毎回完全に一致ならね。
ランダム要素使ってるのにキー入力だけでやったらおかしなことになる。
乱数シードもいっしょに保存しておけば1対1に対応するんじゃないか?
HSPの乱数がどうなってるか知らないけど。
randomizeも一緒に保存すれば良いでしょ。
WAO
被った。
344 :
254:04/07/07 23:06 ID:+Z9KVqsR
みんなの意見・指摘のおかげで、
無事、うちのPCでFPSを落とさずに敵弾200個を出すことに成功しますた!
自機を4*4ドットに妥協して、敵弾の最小は6*6に。
速さ3以上の弾だけ3ドットに1回の判定を入れることに。
ただ、今は敵弾200個強の時にギリギリで、その他の細かい処理が入ると
どうなるかわからんね。わからん。
感謝の気持ちたっぷりで
報告させてもらいました。ありがとう!
乙
いつか遊ばせてくれ
そいや、最近の弾幕シューて敵弾増えるとソフトでスローかけてるよね。
それやればもう少しごまかせるんじゃない?
>>344
>>303の
*@fで強引にやるやり方はバカにできね
caseよりはやくなった まじで
>>345 9月下旬までに完成したらこのスレに貼ろうと思うよ
10月になっても現れなかったら挫折したとみて間違いない(爆
>>346 奥の手として頭の片隅に入れておくw
多分自動でスローかかるからわざわざルーチン組む
必要はなさそうですが
>>303のやつ俺も参考にしたね
括弧使うとかなり遅くなるみたいだから、
初めて計算順序を意識してみたよw
オリジナルで作ってコンテスト出せば?
まぁ弾の進行方向真正面にわざわざぶつかっていくこと自体希なケースだし
仮に正面衝突しても、許容値9(自機4*4、敵弾6*6)に対して10の相対速度でぶつかっても
貫通確立は1/9
11の速度でぶつかれば2/10
12の速度なら3/11
13の速度なら4/12 (…計算あってるかな?)
自分ならちょっとくらいの貫通はめんどくさくて目をつぶりそうw
>349
そのほうが有意義かもね
・・
とか書いている間にスゲーーー良い方法を思いついた!!
貫通対策。
>とか書いている間にスゲーーー良い方法を思いついた!!
>貫通対策。
それだけ書いて消えるな!
気になるだろ!w
>351
すまそ w
本当に妥当な方法かどうかフォトショップでのグリッドで方眼紙作って検討してた。
◆漏れが今思いついた貫通対策◆(暫定版)
自機の当り判定に加えて「金魚の糞」式仮想当り判定部を加える。(グラディウスのオプションみたいな)
※ただし、自機停止時には金魚の糞は自機と同じ位置(つまり無し)
金魚の糞に喰らったら、当った弾の移動方向から妥当性を判定する。
例えば ↑から↓にまっすぐ飛んできた弾を自機を横に移動して避けて、金魚の糞に喰らった場合
判定は回避、
金魚の糞が弾の進行方向と同じ(この場合自機の↓にある=自機が↑に進んでる)場合はHit
自機が2*2の当り判定で敵弾最小が6*6なら自機の進行方向逆の後方5ドットに2*2の金魚の糞を配置する。
これで、敵弾に正面衝突しに行った時のみ貫通してしまうのなら貫通を防げる。
難点は自機の方向は8方向しかないこと。敵弾は360度の方向があるから厳密性には欠けるかも。
眠いから朝起きてもっかい妥当かどうか考えてみる w
>>352 判定をもう一つ持たせるってことは判定回数が単純に倍になるんじゃ…。
●…TL
飲み杉かもしれん。普通に1フレーム2回判定したほうがマシだな。
やっぱり、すり抜ける可能性が高い弾(判定小&高速)だけ細かく判定して、
すり抜ける可能性の低いのは通常通りってのが良いんじゃないかなあと思った…。
弾をすり抜けるのは紙一重でたまに避けるシステムですと
仕様にしてしまえばいい。
いや、そりゃあマズいだろ!
自機の動きと弾の動きを線分にして
それらが交わってるか調べるってのは?
バッファスクリーンに弾の大きさの分だけ描画して色判定は?
全部を描画すると重くなるから自機の周りだけ。
大して変わらないか、逆に重くなる可能性もあるが・・・
そもそも1フレームで貫通するほどの速度は当り判定のすり抜け云々以前に
見た目が許容できないかもしれない。
個人的には
最速でも自身の見た目の大きさの ドット数/フレーム 以内までかなぁ
(自機が16*16なら 16ドット/フレーム 敵弾8*8なら 8ドット/フレーム)
欲を言えば自身の半分まで
(自機が16*16なら 8ドット/フレーム 敵弾8*8なら 4ドット/フレーム)
それより速いと残像拳みたいにみえる。
弾幕シューは基本的に弾のろいしな。
>>359 漏れの頭じゃこれしか思いつかなかった。
ビミョウに話し変わるけど、丸い当り判定を使ってるのは漏れだけかな?
丸いって言ってもキャラ間の距離を当り判定に使ってるだけだけど
結果的にはほぼ丸になる。
そうでもないでしょ。
でも、大抵、長方形か丸。
まあ、計算的に多角形とか複雑な形は重くなるしなぁ・・・
366 :
名前は開発中のものです。:04/07/09 14:26 ID:2obD+d6H
四角の判定ならなんかRECT構造体の重なってる部分かえしてくれるAPIあったんでそれつかってぴたら?
インターセクトってやつか
sinとか√とかそいゆう数学的な計算はどうやるんですか?
そいゆうのはマユアリュに書いてあるヨ
また質問なんですが
*main1
x=mousex : y=mousey
color 255,255,255:boxf 0,0,99,23
color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
getkey a,1
if a : goto *main2
await 5
goto *main1
*main2
end
こんな感じのソフトでHPSのウィンドウじゃない別のウィンドウとかでやりたい
のですがどうやったらいいんですか?
どこを別のウィンドウでやりたいんだ
だからこれはHSPのウィンドウからマウスが出たら計ってくれないじゃん?
それを他のウィンドウとかゲームとか操作とかしながら常に計ってくれるようna
*main1
ginfo 0
x=prmx : y=prmy
color 255,255,255:boxf 0,0,99,23
color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
getkey a,1
if a : goto *main2
await 5
goto *main1
*main2
end
こういうことをいってんの?
おしい!けど違う。それは他のウィンドウやファイル操作しようとしたら消えてしまう。
もともとそういう仕様ちゃうんか。。。
onclick *click
*main1
ginfo 0
x=prmx : y=prmy
color 255,255,255:boxf 0,0,99,23
color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
await 5
goto *main1
*click
end
レスもらっといて、おしい!じゃねーヨ。
おまいの説明不足だろ。
368の質問といいリア厨以下?
まあそうでしょうな
だが気にするな
378 :
名前は開発中のものです。:04/07/09 21:17 ID:d0zXeIj1
>>370 HSP以外のウィンドウで処理できるものを作りました。
これで完璧です
;--------------------
#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat:wait 1:stick a:if a&256:break
loop:ginfo:pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret
hdc=dllret:mref bm,67:repeat
ginfo:x=prmx : y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020:dllproc "BitBlt",pm,9,5
wait 5:loop
;---------------------------
人の手を借りまくってコンテストに応募とか?
ちょっと改造してやった。
キャプチャソフト
自由に使いたまい。
;--------------------
#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat:wait 1:stick a:if a&256:break
loop:ginfo:pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1
hwnd=dllret:pm=hwnd:dllproc "GetDC",pm,1,1
hdc=dllret:mref bm,67
pm=hwnd:dim rect,4:getptr pm.1,rect
dllproc"GetClientRect",pm,2,1
screen 0,rect.2,rect.3
pm=bm.4,0,0,rect.2,rect.3,hdc,0,0,0xCC0020:dllproc "BitBlt",pm,9,5
redraw
stop
;---------------------------
HSPでMicrosoft SAPIを使ってテキストを喋らせるのはどうやるんですか?
コンテストなんて興味ない。ただ自分が使いやすいソフトが作りたいだけ
おしい!けど違う
#include "llmod.as" ;llmod.asを使えるようにする?
mes "対象のウィンドウをクリックしてください"
repeat ;ループ開始
wait 1 ;0.01秒待つ
stick a ;何か押されたらaに1を代入
if a&256:break ;aと256がともに正しければループ抜け出す?
loop ;ループ繰り返す
ginfo ;prmx.prmyにマウスの位置を代入
pm=prmx,prmy ;pmにマウスの位置を入れる?
dllproc "WindowFromPoint",pm,2,1 ;WindowFromPointにマウスの位置を渡す?
mes "hWnd:"+dllret ;?
pm=dllret ;?
dllproc "GetDC",pm,1,1 ;?
mes "hdc:"+dllret ;?
hdc=dllret ;?
mref bm,67 ;?
repeat ;ループ開始
ginfo ;prmx.prmyにマウスの位置を代入
x=prmx ;xにprmxを代入
y=prmy ;yにprmyを代入
color 255,255,255 ;色を白に
boxf ;画面を白色に塗りつぶす
color 0,0,0 ;色を黒に
pos 0,0 ;カレントポジションを0,0に
mes "X="+x+"/Y="+y ;XとYを表示
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020 ;?
dllproc "BitBlt",pm,9,5 ;?
wait 5 ;0.05秒待つ
loop ;無限ループ繰り返し
初心者なのでよく分からない所があります。教えて下さい。
386 :
381:04/07/10 16:50 ID:8YC4WY/H
> aと256がともに正しければループ抜け出す
まるで翻訳サイトの直訳みたいだね
× stick a ;何か押されたらaに1を代入
○ stick b ;押されているキーを2進数を単位に取得する
× a&256:break ;aと256がともに正しければループ抜け出す?
○ a&256:break ;256と同じビットが1なら抜ける
○ #include "llmod.as" ;llmod.asを使えるようにする?
○ pm=prmx,prmy ;pmにマウスの位置を入れる?
dllproc "WindowFromPoint",pm,2,1 ;WindowFromPointにマウスの位置を渡す?
説 WindowFromPointにマウスの座標を渡して、カーソルの下にあるウィンドウのハンドルを取得
mes "hWnd:"+dllret ;?
説 カーソルの下にあるウィンドウハンドルを表示
pm=dllret ;?
説 ウィンドウハンドルをpmに代入
dllproc "GetDC",pm,1,1 ;?
説 カーソルの下にあるウィンドウのデバイスコンテキストを取得
mes "hdc:"+dllret ;?
説 デバイスコンテキストを表示
hdc=dllret ;?
説 hdcにデバイスコンテキストを代入
mref bm,67 ;?
説 HSPが持つBMSCR構造体をbmに割り当てる
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020 ;?
説 HSPのウィンドウからカーソルの下にあるウィンドウへコピーするように設定
dllproc "BitBlt",pm,9,5 ;?
説 ビットブリット(BitBlt)を行う。gcopyと同様の機能。
>>388 説明どうも。
でもほとんど分からなかったり・・・汗
F1押しても出てこなかったり説明が変だったりして難しい
>>369 マニュアル読んだけど
-2147483647〜2147483647 10進整数
$0〜$FFFFFFFF 16進整数(0xでも可)
%0〜%111111... 2進整数(0bでも可)
'A' 文字コード(1バイト)
+,-,*,/ 加算,減算,乗算,除算
&,|,^ 論理演算(and,or,xor)
\ 割り算の余り
=,<,>,! 条件式(同じ,小さい,大きい,同じでない)
==,<=,>=,!= 条件式2(同じ,以下,以上,同じでない)
<<,>> 左、右方向にビットシフト
しかなかった。これだけですか?
演算子と関数は チョト チガーウ
392 :
378:04/07/10 19:56 ID:9WTV9sSx
ネタなのであまり気にしないように
↓他のレスとかぶってるけど解答
stick a ;aにキーコード取得
if a&256:break ;※@aに256が含まれていたらループを抜ける
pm=prmx,prmy ;pm.0にprmx pm.1にprmyを代入
dllproc "WindowFromPoint",pm,2,1 ;WindowFromPoint=pmの座標にあるウィンドウのHWNDを求める
mes "hWnd:"+dllret ;HWNDを表示。気にしなくてもよい
pm=dllret ;pmにdllret(返り値)を代入
dllproc "GetDC",pm,1,1 ;HWND(pmに代入された値)からHDCを求める
mes "hdc:"+dllret ;HDCを表示。気にしなくてもよい
hdc=dllret ;hdcにdllret(返り値)を代入
mref bm,67 ;bm=ID:0のウィンドウのBMSCRのポインタ
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020 ;※Apm.0にHDCpm.1に0以下0,100,18,bm.4,0,0,0xcc0020を代入
dllproc "BitBlt",pm,9,5 ;画像をコピー
※@
aを二進数にした場合
左クリックされた(256がaに代入される)→a=10000000
右クリックされた(512がaに代入される)→a=100000000
左&右を同時にクリックされた(256+512がaに代入される)→a=110000000
ifの&条件は8ビット(8桁)目が1だった場合という意味
例)
10000000;実行される 11111111;実行される
00000000;実行されない 01111111;実行されない
※A
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020は
pm.0=hdc : pm.1=0 : pm.2=0 : pm.3=100 : pm.4=18
pm.5=bm.4 : pm.6=0 : pm.7=0 : pm.8=0xCC0020
と同じ意味で、
pmの内容はBitBltに送るデータ(HSPで言うp1,p2,p3,p4,・・・・と同じ)
0xCC0020は頭に0xがついているので16進数の扱い 0xCC0020 = 13369376
さて去年はいろいろあってコンテスト出せなかったけど
今年もやってくれたから出したい所。
>>368 >>390 sinならマクローリン展開とか
平方根ならニュートン法とか何か使って
モジュールを自作すればいいかも
面倒ならそういうDLLを探すとか〜
今探したらちょうどHSPWIKIに
「HSPコンテスト:ショートプログラム:数学・物理編:sin/cos」ってあったよ
おいおい!もう応募してる奴いるのかよ。こりゃ最後までにはとんでもない応募数になりそうだな。
コンテストの作品にリバーシがあるが
14才で作れるなんて大したモンだ。
しかもそのリバーシは強いぞ。油断すると負ける。
今までやったHSP製リバーシの中では最強レベルじゃないかと。
ただ、思考時間がちょっと長いがな・・・。
すげーな。尊敬してしまうわ。俺30過ぎだけど。
年齢と才覚って別に関係ないよ
経験の少ない奴でレベルが高い→天性の才能
経験の多い奴でレベルが高い→経験・知識・etc...
(※上には当てはまらなかった人のみ)
前者はいずれかなり上にいくんだろうな・・・飽きなければ
399はそういう意味で言ったんじゃない気が…
もともとC言語プログラマでHSP歴が短いだけ
14歳でHSP歴1年なのにか。
長くやってりゃ技術力が高いってもんなの?
じゃあ、うすa
378を使ってクリックしたウィンドウで座標を常に表示するんじゃなくてクリックしたウィンドウでそこでクリックしたときの座標を表示するように
したいと思って
改造したんだけどなぜか表示されなくてサブルーチンが深すぎますってわけのわからないエラーが出ます。
サブルーチンなんか使ってないのに
#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat
wait 1 :stick a :if a&256:break
loop
ginfo :pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1
mes "hWnd:"+dllret
pm=dllret
dllproc "GetDC",pm,1,1
mes "hdc:"+dllret
hdc=dllret
mref bm,67
*saisyo
repeat
stick a
if a=256:goto *hyouji
wait 5
loop
*hyouji
ginfo
x=prmx
y=prmy
color 255,255,255
boxf
color 0,0,0
pos 0,0
mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020
dllproc "BitBlt",pm,9,5
wait 5
goto *saisyo
repeatはbreakで抜けろ〜♪
サブルーチンエラーなくなりました
ginfo
pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1
mes "hWnd:"+dllret
pm=dllret
dllproc "GetDC",pm,1,1
mes "hdc:"+dllret
hdc=dllret
mref bm,67
をコピーして*houjiのところに貼り付けたらなんかできました
>>405 いや、つ〜か年齢的なものが凄いって話じゃないの
αカットとかもしてたらすごいな
14歳の時何してたっけ…
>>411 Live2ch使いながらRPGツクール2000とHSPして、そしてこのスレの
>>413を取ったな・・
ようこそ厨房。がんばれよ。
俺はテグザーやザナドゥで遊んでいた。
14才の頃はBASICでゲーム作ってた・・・
486の33Mhzだった・・・
>>411 HSPの速度で、枝狩りしないほうが逆にすごいと思う。
件のゲームは見てないけど
417 :
414:04/07/13 03:23 ID:0zEjAb+8
10歳くらいのときならMZ-80のS-BASICでゲーム作ってたな…
ゲームといっても数字当てとかそんなんだが。
418 :
名前は開発中のものです。:04/07/13 03:49 ID:TK4JM/yp
・・・で、今は2ちゃんねるで引きこもり?
はたちすぎれば・・・ってやつ?
おまえの2ちゃんねるはヒッキーがデフォかよ
古いなw
421 :
414:04/07/13 08:14 ID:OJ67xHS1
残念ながら会社員。
只今通勤中。
ここって結構オサーンもいるんだな。リア厨工ばっかだと思ってたけど。
Σ ビクッ
歳など関係ないさ。HSP暦って項目も別にイランと思う。
家内に迷惑かけない、金のかからない、怪我で会社を休む心配のない
そして何より面白い、理想的な趣味さ。
HSPでオセロというのはわりとソースも公開されて配布されてたりするし、
HSPは逆コンパイルもできてしまうので、本当にオリジナルソースなのかは
かなり疑問だったりするんだが、こんな風に考えてしまう漏れの心は
汚れきっているんだろうな…
嗚呼、ガキの頃に戻りたい…なんて毛先も思わないけどな藁
君ら時間の無駄ですよ
378をゲーム画面でやろうとするとチカチカ表示されます。
きちんと表示できないですか?
>>426 #include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat:redraw 0:wait 1:stick a:if a&256:break
loop:ginfo:pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret
hdc=dllret:mref bm,67:repeat
ginfo:x=prmx : y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020:dllproc "BitBlt",pm,9,5
redraw 1:wait 5:loop
コンテスト裏評価板開幕
本家では作者に好ましくないコメントや評価はデリられるようでえ¥す
* ヲチ、ネタなどはスレ違い
悪口や影口なら別のスレでやって
>>427 僕もそれためしたけど変わらなかった
どうやら無理のようですね
>>434 考えても何も気づきません。
たねあかししてくださいm(_)m
436 :
名前は開発中のものです。:04/07/14 21:07 ID:+9Ns+GPF
誤爆?
_, 、_
(;゚Д゚)・・・・
工エエェェ(´д`)ェェエエ工工
_, ,_ パーン
( ‘д‘)
⊂彡☆))Д´)
ラクスたんが出ないんなら種2は見ない
Seed2って3月の時点でもう決まってたんだよね。
Zの映画化も。
キラがいないSEEDなんて考えられない
>>426>>435 こんなんでいい?
#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat:wait 1:redraw 1:redraw 2:stick a:if a&256:break
loop:ginfo:pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret
hdc=dllret:mref bm,67:repeat
ginfo:x=prmx : y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020:dllproc "BitBlt",pm,9,5
wait 1:redraw 1:redraw 2:loop
ガンダムはもうえーよ。そろそろ起動戦士ザクにしようぜ。
安全戦士コンドム
カードゲームを作りたいのですが、一番重要なカードの管理部分で詰まってしまいました。
配列変数なども使ってやってみたのですが、変数には1つの数値しか入れられないので、
その変数に名前、属性、数値、を持たせる方法がわからないのです。
それぞれの配列変数を作ろうとも思いましたが、それぞれをリンクさせる方法も思いつかないので・・。
ああ・・あとちょっとで思いつきそう!とずっと悩み続けて明け方になってしまいました・・。
説明が意味不明かもしれませんが、どうかよろしくお願いします。
まずは国語の勉強しなさい。次に算数な。終わったら聞きに来い。
>>449 管理方法を変えれ
ex.
魔法1:ファイアボール /攻撃力2 /消費MP5
魔法2:ライトニングボルト /攻撃力3 /消費MP8
魔法3:ブリザード /攻撃力4 /消費MP12
↓
魔法名:ファイアボール /ライトニングボルト /ブリザード
攻撃力:2 /3 /4
消費MP:5 /8 /12
>>451 dim magic_data,3
dim attack_data,3
dim mp_data,3
でやると、magic_data.0 = attack_data.0 = mp_data.0
にする方法がわからないんです・・・。すみません。
大変質問しにくいのですが・・・変数に文字を入れるのはどうすれば良いのでしたっけ・・。
一通りマニュアルには目を通したのですが、strくらいしか見つかりませんでした。
str magic_data.0 = fire ? ""で囲んでみたりもしてみたのですが・・。
もう一度言う、国語の勉強をして来い
sdim magic_data 64, 3
magic_data.0 = "fire"
magic_data.1 = "Lightning"
...
のことか?
あと、
>magic_data.0 = attack_data.0 = mp_data.0
はどうしたいんだ?
配列のインデックスで判断するのはだめなのか?
screen 0,160,160
title "0〜2を入力"
sdim 魔法名,16,3
dim 攻撃力,3
dim 消費MP,3
魔法名="ファイア","ブリザド","サンダー"
攻撃力=4,6,8
消費MP=1,2,3
防御力=1
*in
cls
a=0
input a
button "push",*out
stop
*out
color 255,255,255
boxf
color 0
if (a<0)|(a>2) : goto *in
pos 0,60
mes "魔法名"+魔法名.a
mes "攻撃力"+攻撃力.a
mes "消費MP"+消費MP.a
d=攻撃力.a-防御力
mes "ダメージ"+d
stop
>>449 配列使うしかないに決まってるでしょ、
一括管理って、添字に変数使えばいいだけ
後々シャッフルする事を考えれば
カードに番号を振っておくといいね
全カード枚数分の要素を持った
配列を宣言しておくという事さ
>>454 sdimでしたか。。マニュアル読み直してきます。
>magic_data.0 = attack_data.0 = mp_data.0
すいません、「配列のインデックス」の意味も理解してません○| ̄|_
見捨てないで・・。
>>457-458 おはよう、清々しい朝です。
カードゲームは配列が分かれば
難易度は高くないジャンルだと思う
カードという明確な「かたち」があるから
コーディングにとどまらず
画面のデザインからルールの設定まで
割りと決めやすいんじゃないかな
>>449 >その変数に名前、属性、数値、を持たせる方法がわからないのです。
>それぞれの配列変数を作ろうとも思いましたが、それぞれをリンクさせる方法も思いつかないので・・。
それぞれの配列変数を作るので正解だ。リンクはアルゴリズムの問題。
例えばトランプの場合、数値は1から13まである。マーク(?)は4種類
ある。クラブを0、スペードを1、ハートを2、ダイヤを3で表すとする。
「0番のカードはハートの8である」ことを表すには、
number.0=8
mark.0=2
で十分だ。
>>460 たしかに一意のID番号も必要だろうね
ただcard.0〜52の一次元配列でいいと思う
スートは13で割れば求められるから
>>459-460 おはようございます。
なんかこう・・・もうちょっとで出来そうな頭の中がもやもやしてます。
大きなヒントありがとうございます!(答えを言っているのかもしれませんが(苦笑
>>455に書いてあるスクリプトを真似て、
;///// カードの管理 /////
dim CARD_ID,60;カードの番号
sdim name,16,60;カードの名前
dim attack,60;カードの攻撃
dim element,4;カードの属性
;///// カードの設定 /////
name="フレア","ゴブリン","ワイバーン"
attack=1,2,3
element=0,0,0
のように書き、
mes "カード名"+name.0 や mes ""+name.0+""
等で表示させようとしても、name.0には0が収納されてるようになります。
途中でclsなどを使うと初期化されてしまうのでしょうか・・・。
これでやってみたが、ちゃんと表示されたぞ。
;///// カードの管理 /////
dim CARD_ID,60;カードの番号
sdim name,16,60;カードの名前
dim attack,60;カードの攻撃
dim element,4;カードの属性
;///// カードの設定 /////
name="フレア","ゴブリン","ワイバーン"
attack=1,2,3
element=0,0,0
mes "カード名"+name.0
mes ""+name.0+""
stop
変数名を間違えたりはしてないか?(nameをnemeとか書いてたり)
clsで変数がクリアされる事は無い。同じ変数名で再度dimやsdimしたときだけ
初期化される。
>>463 ちなみに、識別番号0のカードは名前がname.0で、攻撃がattack.0で、属性
がelement.0である(識別番号は0〜59)という意味にしたいんだったら
dim element,60だ。
今帰宅しました。
>>464 最初から見直したら原因がわかりました!!
ボタンのラベルで変数の設定の部分をジャンプして飛ばしていました・・。
ありがとうございます!
>>465 火、風、森、水
にしたいので、4までで良いと思います。
>>460のトランプからヒントを得ました!
できなかったら dim element,60 も試させてもらいます。
感謝〜。
>>465 今考えていて思ったのですが、
やはり dim element, 60 じゃないと無理かもしれません。
0〜19=火 のように分ければいいんですよね。
4しかないと、4番目のカードまでしか属性が無い事になりそうでした・・。
>>466-467 >火、風、森、水にしたいので、
>4までで良いと思います
ほ、ほすぷっ!
…型とクッキーを別々に管理すればいいの
sdim 属性名,8,4
dim カード属性,5
属性名="火","水","風","土"
カード属性=0,1,2,3,0
repeat 5
カード番号=cnt
e=カード属性.カード番号
c=カード番号+1
mes ""+c+"枚目の"+"カード属性="+属性名.e
loop : stop
>>455に戻ると
この「手作りクッキー」式では「型」がないので
内容が重複していてもカードが何枚あっても
全部入力しないといけない訳です↓
魔法名="ファイア","ファイア","サンダー"
攻撃力=4,4,8
>>468-470 ほ・・ほう、すっごい参考になります!
僕の無脳じゃどうやって応用していいか・・(笑
ヘルプ見ながら見直してきます!
『カードの種類』と『山札』は分けて考えれ。
データ変更するときに困るだろ?
つまり
>>470のやり方だと、「ファイア」を「ファイヤー」に変えようと思ったとき、
全部のファイアを書き換えなきゃいけなくなるってことな。
(まぁ、それだけならテキストエディタで一括変換すりゃ済む話なんだが、数値の時とか困るだろ?)
>>461 カードは一次元配列で管理できるけど、シャッフルを考えると二次元配列にすると楽だよ。
dim card,52,2
card.x.0 に数値
card.x.1 に適当な乱数を入れて
card.x.1 の値でソートすればシャッフルの出来上がり。
乱数での数値に関して重複考えなくていいし。
まぁその点は文字列もテーブルとすればいいだろう・・・。
構造体とか、変数名.(式)みたいにできたら便利なんだけどな・・・。
sdim MagicName, 32, 3
MagicName = "Tire", "Thunder", "Blizzard"
sdim ElementName, 32, 5
ElementName = "炎", "水", "風", "光", "闇"
dim Card, 5, 3
Card.0.0 = 0, 0, 2, 1, 2 /* MagicName */
Card.0.1 = 32, 14, 15, 22, 34 /* Attack */
Card.0.2 = 0, 2, 3, 1, 4 /* Element */
mes "Before": gosub *ShowCard
MagicName.0 = "Fire" /* 間違えた!タイアじゃねえよ!!! */
mes "\nAfter": gosub *ShowCard
stop
*ShowCard
repeat 5
MagicNameID = Card.cnt.0
ElementNameID = Card.cnt.2
mes "Card"+cnt+" - Name:"+MagicName.MagicNameID+" Attack:"+Card.0.1+" Element:"+ElementName.ElementNameID
loop
return
ポト2から情報奪いたいのか?
(内部で扱っている)風の大きさの情報。
変数のデータって言った方が良いか・・・
え?これただ単に長さ測ってるんじゃないんですか?
そんな難しくできていたとは・・・・
>>476 何をしたいのかがイマイチ分からないです。
○○に似たもの、ではなくて具体的に何をしたいのかを…
画面上の一部の長さを測りたい、ということなの?
あ、
>>476のリンク先のものは実行してないです。
483 :
449:04/07/16 00:31 ID:bJ2uajr0
カードをデッキに入れるボタンのジャンプ先のラベルを一つで済ます方法が思いつかなかった・・。
結果、カード枚数を20枚にへらしてラベル20個つくってしまった(汗
button "デッキに入れる",*card_in01
*card_in01
ここでデッキフラグにする変数を1にする。
1だったら「もうすでに入っています」
などの判断。
if CARD_ID.0=0 "カードを持っていません" : if デッキ.0=0 : デッキ.0=1 : if デッキ.0=1 : mes"もうすでに入っています"
のような感じにするとおもう。
同じカードを2枚所持できないシステムにする予定です。(何枚も管理できません笑
嗚呼なんか問題が多すぎて挫折しそう・・質問に答えてくれる皆さんは偉大なプログラマーなんですね・・。
>>483 >ジャンプ先のラベルを一つで済ます方法
あると思うけど…
>同じカードを2枚所持できないシステム
ほ、ほすぷ!
デッキが組みたいんだ、ソースはちょっとまって
カードゲームといえばカルドセプトとかあるね
何か僕も作りたくなってきた
コンテストに出したいな
「育成カードゲーム」とかどうかな
485 :
449:04/07/16 00:53 ID:bJ2uajr0
デッキの枚数は10枚で(デッキというか一般で言う手札?)、シャッフル等無し。
相手と同時にカードを一枚ずつ出していって(デッキから直出し)、
数値の高いほうが勝ち、相手が得意属性だったら数値+2
という、運の要素が高いルールにする予定です。
シャッフル等ないので初心者が作るにはちょうどいいと思ったのですが・・。
思わぬ落とし穴がたくさん○| ̄|_
486 :
449:04/07/16 00:56 ID:bJ2uajr0
勝利条件の追記。
デッキ10枚の中から出すカードは5枚で、
勝ったカードと引き分けのカードが場に残り、
最後に場にカードが多く残っていたほうの勝ち。
こんなルールのカードゲームなのですが、初心者には敷居が高いでしょうか・・。
487 :
449:04/07/16 01:08 ID:bJ2uajr0
よかったらMSNメッセンジャーで話せませんか?
問題のソースも見てもらいたいですし・・。(ずうずうしいか・・苦笑
[email protected]を登録して下さい。
↓どうぞこのアカウントでログインして下さい。
[email protected] パスは123456です。
あ、ダメならダメで全然いいです。気が向いたらよろしくお願いします。
MSNメッセが無いという可能性を考えてなかった・・・笑
sdim 属性名,8,4
dim カード属性,5
属性名="火","水","風","土"
カード属性=0,1,2,3,0
repeat 5
c=cnt+1
chkbox ""+c+"枚目",chk.cnt
loop
button "push",*push
stop
*push
color 255,255,255
boxf
color 0
pos 0,160
repeat 5
if chk.cnt{
カード番号=cnt
e=カード属性.カード番号
c=カード番号+1
mes ""+c+"枚目の"+"カード属性="+属性名.e
}
loop
stop
>>485-486 山札が10枚で対戦者は
手札を1枚ずつ引いて
数値が高い方が勝ち
勝って残ったカードが多い方が勝利
こういうゲームかな?
簡単だと思うけど
運を入れるならシャッフルは必須でしょう
>>487 匿名なのにソース晒すの嫌なんだ?
メッセで話すと密室になるから
他の人の参考にならないじゃん
いや俺自身も、シャッフルは
>>474みたいな方法もあるんだ、
とか勉強になるからスレで進めようよ
>>498 山札はありません。
全部最初から手札で、好きなカードを出せます。
運というのは、属性の関係が、じゃんけんっぽいので。
>>490 スレをどんどん消費して、独占状態になってしまった所があったので、
ここでも全然OKですよ。
sdim 属性名,8,4
dim カード属性,5
属性名="火","水","風","土"
カード属性=0,1,2,3,0
repeat 5
c=cnt+1
chkbox ""+c+"枚目",chk.cnt
loop
button "push",*push
stop
*push
color 255,255,255
boxf
color 0
pos 0,160
te=0
repeat 5
if chk.cnt : te++
loop
if te>3 : mes "手札は3枚まで":stop
repeat 5
if chk.cnt{
カード番号=cnt
e=カード属性.カード番号
c=カード番号+1
mes ""+c+"枚目の"+"カード属性="+属性名.e
}
loop
stop
>486
他にも初心者の人もいるかもしれないしこの内容ならそんな長引かないだろうからここでいいと思うよ
最初の手持ちが10枚でその中から一枚ずつ出して対戦していくってことだよね?
手持ちの札はランダムじゃなくて完全固定?
あ、ブラウザから書いたら書けた・・。
連続投稿で書けなくなっていました。
>>494 はい、完全固定です。
>>494 >最初の手持ちが10枚で
>その中から一枚ずつ出して対戦
>手持ちの札はランダムじゃなくて完全固定
なるほど
>>495 過疎板だから連投規制緩くして欲しいね
むかし荒氏がいたから厳しいんだろうけど
それでデッキはどう関係するんだろう
まあ
>>493みたいなので組めると思うよ
カードは全○○種類。
所持カードから10枚デッキにカスタムして、戦う。
みたいな感じにしたいなぁ・・と。
最初に2次配列にカードの属性数値等を入れる
配列0.0=カード1の数値 配列0.1=カード1の属性
配列1.0=カード2の数値 配列1.1=カード2の属性
手持ちの札用の0〜9の配列を作って選んだ札の番号(50種類なら0〜49のどれか)を入れる
例えば1の札を出すときは配列の0.0 0.1を参照して負けた場合手持ちカードをなし状態(0〜49がカードの種類なら50=カードなしとか)にする
こんな感じでいけると思うが
499 :
449:04/07/16 02:07 ID:bJ2uajr0
>>499 トップページの方を公開すれば?
掲示板まであるのに〜
>>482 >画面上の一部の長さを測りたい、ということなの?
そうです。でもフルスクリーンだし、ゲージの長さ変化するしできるの?
romってるぞ
参考になるからガンガンここで書いててちょ
>連投規制緩くして欲しいね
ID表示の撤廃と連投規制を緩くしたらム板のHSPスレ状態になるだけ。
もっと規制してもいいくらい。
あれはあれで面白いけどな。
506 :
名前は開発中のものです。:04/07/16 19:13 ID:xiiWq/7C
連投規制を厳しくされると間違えたとき困る…
508 :
名前は開発中のものです。:04/07/16 21:26 ID:uQaXJsZb
test
510 :
449:04/07/17 11:20 ID:DlUmGJah
>>509 一番下のリンクが参考になりますね!
昨日は風邪で何も出来なかったから今日は気合(`ω・´
コンテストヒドいことになってるのか?
コメントその物を消されたのや評価数とコメントの数が合ってないのとかあるが・・・。
>>511 コメント無しの評価は可能。評価無しのコメントは自動でA評価になる。
513 :
名前は開発中のものです。:04/07/17 15:35 ID:2jrATDKd
a="axascvafasfetgageog"
strlen len,a
repeat len
peek tmp,a,cnt
if tmp='a':poke a,len,'X'
loop
mes a:stop
期間長すぎね?
>>514 コンテスト開催中はHSPのバージョンをあげる必要が無くなるので時間稼ぎするため。
(マイナーならまだしもメジャーはまずない)
誰か画面上の一部の長さの計り方教えて下さい。
測る対象に寄ります
>>516 >>209 を応用すればできるかな。
「どうやって?」と聞くレベルなら、まだ作る段階ではないと思う。
なるほど
で、その間またエロゲー作りにいそしむわけですな。
>>515 ム板でもその話出てたけど
そもそも時間稼ぎなんてする必要あるのかな
>>516 >>209のソースのdx・dyが距離だよ
「長さ」を求めたいならピタゴラスの定理
522 :
名前は開発中のものです。:04/07/17 17:07 ID:2jrATDKd
なんかHSPだと置換が面倒
zzz = "aiueo"
strlen len,zzz
repeat len
peek tmp,zzz,cnt
if tmp='u' : poke zzz,cnt,'@'
loop
mes zzz
stop
>>520 ゲージを描画する時点で長さは簡単に測れると思うから
既に描画してあるものの長さを測るとする
その場合pgetでどこからどこまでがゲージか調べればいい
>>522 10行以内のコードが面倒?
もっと複雑な検索・置換の事だとしたら
ネト上にモジュールとかたくさんあると思う
>>520 自作ソフト内での処理じゃなさそうだから、全自動は難しいかな。
---
bgscr 1,32,20,,0,0,
repeat
*main_loop
stick ml
if ml&256 : goto *info_print
await 1
loop
*info_print
ginfo 0
dx = prmx - x
if dx<0 : dx = -dx
cls : print "" + dx
x = prmx
goto *main_loop
---
こんなのでいいか?
クリックするたびに前回からの横幅を表示(X座標のみ計算)
全自動にするには画面取得が必要なのでHSPだと面倒かも。
画面取得できたら、
>>521の言うpgetでOKだと思う。
文字列置き換えモジュール作ってみた
#module "StrRePlace"
#deffunc selstr val ; 文字列型変数の選択
mref v1, 24 : dup slstr, v1 : return
#deffunc vstrcut val, int ; 文字列の削除
mref v1, 24 : mref i1, 1 : mref st, 64 : strlen sllen, slstr : strlen len1, v1 : instr a, slstr, v1, i1
if a >= 0 { a += i1 : memcpy slstr, slstr, sllen-len1-a+1, a, a+len1 }: st = a : return
#deffunc vstrins val, int ; 文字列の挿入
mref v1, 24 : mref i1, 1 : mref st, 64 : strlen sllen, slstr : strlen len1, v1
memcpy slstr, slstr, sllen-i1+1, i1+len1, i1 :memcpy slstr, v1, len1, i1, 0 : st = i1 + len1 : return
#deffunc strrep str, str, int ; 文字列の置き換え
mref s1, 32 : mref s2, 33 : mref i1, 2 : mref st, 64
vstrcut s1, i1 : if stat >= 0 { vstrins s2, stat }: return
#deffunc strcut str, int ; 文字列の削除
mref s1, 32 : mref i1, 1 : vstrcut s1, i1 : return
#deffunc strins str, int ; 文字列の挿入
mref s1, 32 : mref i1, 1 : vstrins s1, i1 : return
#global
buf = "文字列w置き換えwwサンプルwwww" : selstr buf
mes "置き換え前:"+buf
c = 0 : repeat : strrep "w", ":->", c : c = stat : if c = -1 { break }: loop ; すべて置き換える
mes "置き換え後:"+buf
stop
526 :
524:04/07/17 22:29 ID:J1tFotyY
連投スマソ。こんな短いのでgoto2つは極悪だった。
---
bgscr 1,32,20,,0,0
*main_loop
repeat
stick ml
if ml&256 : break
await 1
loop
ginfo 0
dx = prmx - x
if dx<0 : dx = -dx
cls : print "" + dx
x = prmx
goto *main_loop
527 :
524:04/07/17 22:34 ID:J1tFotyY
フルスクリーンだっての忘れてた。
1行目を
bgscr 1,32,20,,0,0 : gsel 1,2
に変えてくれ。
…吊ってくる。
529 :
524:04/07/17 22:48 ID:J1tFotyY
あー。そういや、無理だったかも。
吊るだけでは済みそうもないな。
ほんとごめん。
今日入門書買った。いつかドラクエみたいの作りたいと思う。
532 :
520:04/07/18 11:37 ID:rSMe0D8f
>>524 フルスクリーンじゃ無理のようですね。
できれば全自動にしたいんだけど、画面取得ってどうやるの?
対象のウィンドウハンドルを取得する
↓
BitBlt
でも、DirectX使ってるとそれじゃダメだったっけ…。
pgetで長さ測るってのがよく分からないのですが・・・
#const sx 320 // 始点(X)
#const sy 240 // 始点(Y)
randomize
rnd x, 641: x -= 320 // -320≦x≦320
color 255, 0, 0
boxf sx, sy-10, sx+x, sy+10
repeat ,1
pget sx+cnt, sy
if (rval != 255)||(gval != 0)||(bval != 0): break
// 指定された色以外だったら抜ける
dist++
loop
if dist{ // +の方向に見つからないなら-を探す
repeat ,1
pget sx-cnt, sy
if (rval != 255)||(gval != 0)||(bval != 0): break
// 指定された色以外だったら抜ける
dist--
loop
}
mes "実距離: "+x
mes "計測された距離: "+dist
stop
>>535 自作プログラム内なら、わざわざ測る必要ないんじゃないのか・・・?
>>537 BitBltとかで操作先ウィンドウにコピーされてることが前提・・・
>>536 んーフルスクリーンだったら写らないからなぁー。
なぜか2次元配列がエラーが出て使えないんだが
みんな使えてますか?
使えないわけありません
txtにテキストファイルを読み込んで
それを2次元配列hensuに一文字ずつ格納したいんだが
strmid hensu.x.y , txt , cnt , 1
書き方間違ってますか?
>>542 hensu.x.yがhensu.(x.y)と処理される。
>>542 それだけじゃよくわからんなぁ。どういうエラー?
xはとりあえずcntなんじゃないの?↓のようにrepeatを使ってるなら。
でないと同じ変数に違う文字を入れ続けてるだけになる。
repeat 10
strmid hensu .cnt .y , txt , cnt , 1
loop
見当違いなこと言ってたらスマソ
;-------------
これは問題なく動くよね↓
sdim hensu,1,10,10
hensu.0.3="a","b","c","d","e","f","g"
mes hensu .6 .3
stop
>>541 >>543 >>544 ありがとう。出来ました。ループの中でyを変数を初期化するの忘れてました。
こんな夜遅くに申し訳ございませんでした。
プログラムもいいがだれかコンテストのポスターを描いて送ってやれw
おまえらゲーム作れ
ちょっとアイデアがあるんで、一応作ってはいるぞ。
>>546 なんか文化祭みたいなポスターでイイ!w
あのポスター描いたのはY人か?
>>550 絵質が大分違うからY人では無いと思われる
hmm.dllが更新されたね。
描画が良くなってる。
>>552 サンプルexeは動くんだけど
サンプルasファイルが動かないのは漏れだけ?
samplestg.asは#Error:symbol in use [_debug] in line 5 [hsptmp]
#Fatal error reported.
samplestg2.asは#Label not found [createbullet]
drawsample.asはdirectdraw失敗
"HSP2.exe","HSED2.exe"と同じフォルダに"hmm.dll"をコピーしてください。
"common"フォルダに"hmm.as"をコピーしてください。
ってのはもちろんやってるんだけど…
>>553 漏れもなんないよ・・・
samplestg.asはHPS拡張マクロ使用してるとそのエラーがでる。
けど、はずしても物無いからどうさ実行できないけど。
samplestg2.asは・・・samplestg.asにincludeされてるもの(一番最後)
たぶん、参考程度で切り離してるんだろう。
drawsapmle.asは、こっちもdirectdraw失敗だ・・・
555 :
名前は開発中のものです。:04/07/20 15:31 ID:WpOpYCT0
556 :
553:04/07/20 16:55 ID:O40ov9vH
>>555 入ってます。
サンプルexeのSTG自体は問題なく動きます。
Operating System: Windows 98 (4.10, Build 2222) A
Processor: Intel(R) Celeron(TM) CPU 1300MHz
Memory: 382MB RAM
DirectX Version: DirectX 9.0b (4.09.0000.0902)
Card name: Matrox Millennium G400 DualHead - English
Display Memory: 32.0 MB
しかし、Forsythia3Dを使うくらいなら最初からVC++とDX9を組み合わせて作ったほうがいいな。
HSPを使うメリットがない。
>>557 だったら君はそうすればいい。
HSPを好きで使っている、あるいはHSPを使えるがVC持ってない、分からん、
という人が多数いるだろうこのスレでわざわざ言うことでもない。
これからもメリットを追求した開発を続けてくれ。がんがれよ。
HSPにできてVCにできないことなんて無いからな
逆はたくさんあるが。
所詮HSPの利点は無料、初心者向けと言うところだけだ。
手軽って点は?
じゃあVCやってりゃいいじゃん、とか思うけどな。
わざわざHSPスレに来てVCの利点語るってのがわからん。
557はなんでいきなりForsythia3Dの話題を出したんだろうな。
そういやMIA氏更新しねーな。他の事で忙しいのかね。
あれ期待してんだけど。サンプルの奴ちょっと改造しただけでスクリーンセーバーに出来そうだし。
VCで語句解釈のプログラム作って
VCの関数呼ぶようにしたのがH○Pなのではないかと。
VBを脅かすような存在になってたら多分訴えられてたかも
知れないが、そこまでいかなかったのが良かった。
これからも使っていけそう。ていうかLINUXとかでもある
らしいし、VCかVBで開発してるんじゃないの?
言語は何で開発してるんだろう。
パーサは知らないが、少なくともランタイムはVC++製だ。間違いない。
…HSPスレでH○Pって書く必要は?
566 :
557:04/07/21 09:58 ID:FU77V1Mi
なんでいきなり、書いたかというと
3Dのゲームを作っててなんかいいDLLないかなって思ってて
Forsythia3Dってやつを見つけたんだけど、結局のところZGPで間に合うなと。
でさ、Forsythia3Dの売りがシェーダーが作成できることなんだろうけど、
シェーダーがかける人は、そもそもHSP使わないよなって。
確かにHSPスレで言うことではないな。すまん。
ちなみにAGEはいいプラグインだったな。確かにスレに反してたな。すまん。
>>566 そーか。
で、3Dのゲームのほうはどんなの。
嫌ならageないで底の方で
身内同士なぁなぁやってろってことだ
なんだろね?
568はたぶん555でageられたのが原因だといいたいんじゃないかと
ageられてるのは何の関係も無いだろうし誰かが勝手にageたのをスレ住人全員の意思だと思われても困るが
【社会】米マイクロソフト社 Winny開発者に損害賠償請求を検討
米国のマイクロソフト社は20日、著作権法違反(幇助)で起訴されている金子勇被告(33)に対し損害賠償請求を検討する事を表明した。
金子被告は、ファイル交換ソフト「Winny」を開発し著作権法違反(幇助)で起訴され、現在公判中である。
Winnyのユーザーの間では、同社の製品が複製され現在でも交換され続けている。
同社の日本法人「マイクロソフト株式会社」の代表執行役マイケル・ローディング氏によれば、同社の受けた損害は6億ドル(720億円)以上。
同社法務担当役員ジェームス・ホフマンは「Winnyはアプリケーションを開発し販売する者にとって非常に迷惑な存在だ。我社以外にも損害
を被った会社はいくつもある。この先、違法なコピー製品が出回らない為にも我々は違法コピーを許さない態度を示さなければならない。弁
護士を交え損害賠償請求をする協議をおこなっている。おそらく、年内にもWinny開発者に請求を行うだろう。」とのコメントを発表した。
http://news17.2ch.net/test/read.cgi/news7/1090330129/l50
>>565 そうか!HSPのSを隠すとH○P、つまりHOP!
>>564は、他の言語へのステップのためのホップだと言いたかったんだよ!!
>>573 ( ・∀・)つ〃∩ ガッテン ガッテン ガッテン
>>564 > VBを脅かすような存在になってたら多分訴えられてたかも
> 知れないが、
なぜ?
相手すんな
>572
開発者に請求はちょっと厳しいな・・
流した個々人に請求するのが順当だろうが、特定が面倒だろうしね。
>564
HSPはマイクロソフトから何か表彰された事があるぞ。
プログラム言語ライクといっても、詰まるところHSPは、
独自スクリプトを解釈して実行されるVCアプリなので、
MSのVC利用規約には違反しない。
ネタの不適切さを指摘してるだけだろ
マイクロソフトの性格からしてそういう裁判を起こすとは考えにくい
ム板住人なら肌で感じてるだろ
あ、ゲ製作板だったスマソ
ゲ製作板住人ならに訂正
こっちだと開発ツールあまり使ってない人も多いだろうけど
騙された俺はどうなる・・・?
しかし他人事ながらny作者ヤバくねーんだろか?
音楽関係の著作権団体ならマジ訴訟起こしそう。ってかスレ違いだなワリイ
まあ夏らしい話題ではある。
>>582 ヤバいに決まってるだろう
ヤバくないツールなら、匿名機能なんかつけねぇって
夏厨ウザ
HSPの話がしたい・・・
AGEでコピったら絵が斜めに壊れてんだけどなんで?
そろそろディスプレイ買い換えたほうがいいってことだよ
ムチャ言いよる
535を理解しようとしてもよく分かりません。誰か教えて
#const sx 320 // 始点(X) ;??
#const sy 240 // 始点(Y) ;??
randomize ;乱数の初期化
rnd x, 641: x -= 320 // -320≦x≦320 ;641までの乱数をxに代入?
color 255, 0, 0
boxf sx, sy-10, sx+x, sy+10 ;sx?sy?
repeat ,1 ;無限ループ変数cnt 1から?
pget sx+cnt, sy ;の座標の色の輝度をrval,gval,bvalに代入?
if (rval != 255)||(gval != 0)||(bval != 0): break ;?
// 指定された色以外だったら抜ける ;//って何?
dist++ ;?
loop
if dist{ // +の方向に見つからないなら-を探す ;?
repeat ,1
pget sx-cnt, sy
if (rval != 255)||(gval != 0)||(bval != 0): break
// 指定された色以外だったら抜ける
dist--
loop
}
mes "実距離: "+x
mes "計測された距離: "+dist
stop
>>592 俺もそんなによく分かってないけど、
命令くらいなら、こんなところ
■#const sx 320
#defineと同じで文字列の置き換え、
この場合は「sx」をすべて320に置き換える
■rnd x, 641: x -= 320
コメントにあるように
-320≦x≦320の領域で乱数を得る
■break
repeat〜loopの外に抜ける命令
■++/--(インクリメント・デクリメント)
「a++」は「a+=1」や「a=a+1」と同じ意味
「a--」は「a-=1」や「a=a-1」と同じ意味
a+で充分なのにa++にする理由は何?
C++風に
>>535 >>592 のコード見てたんだけどさ、
if dist{ // +の方向に見つからないなら-を探す
の部分がよく分からない
if dist=0{
とかにしないと左側(−方向)が計れないんじゃない
実際実行してみたら左側の計測値でないし
//のあとはコメントになるんですか?
必ずしもそうなるとは限らない
602 :
名前は開発中のものです。:04/07/22 22:00 ID:cgOfwBjG
#const…#defineと似たようなものだが定数。数値限定で計算も先に行われる。
sx, sy…描画する座標(y座標は中心)
rnd x, 641: x -= 320 // -320≦x≦320 ;641までの乱数をxに代入?
0≦x≦640の乱数をつくって320引くので、-320≦x≦320
boxf sx, sy-10, sx+x, sy+10 ;sx?sy? …初期位置から距離分足して(負の場合もあり)描画。
repeat ,1 ;無限ループ変数cnt 1から? …○
pget sx+cnt, sy ;の座標の色の輝度をrval,gval,bvalに代入? …○
if (rval != 255)||(gval != 0)||(bval != 0): break ;? …棒の色と違ったら抜ける
// 指定された色以外だったら抜ける ;//って何? … セミコロンと同じでコメント
dist++ ;? … distをインクリメント。
if dist{ // +の方向に見つからないなら-を探す ;? … if dist == 0{ に。
//とか++とかは他言語でのくせなので、; や +と置き換えてくれて構わない。
>>597 ご指摘の通り、ミスってますな。== 0つけといてくれ。。。
==もHSP的じゃないね
distってなんですか?
605 :
名前は開発中のものです。:04/07/23 13:13 ID:QApzK974
distance略しただけ
な、なんでぃすと
もしかしてHSPってまだ現役なの。
pgetで長さ求めれるのは分かったけど
その色の輝度が分からない・・・。
画像から輝度求める方法ってどうやるのですか?
pget
画面上の1ドットの色データを読みだします。
指定した座標のRGB輝度が、rval,gval,bvalの変数に自動的
に代入されます。
color 120,10,20 : mes "■"
pget 10,10
mes "rval="+rval
stop
そうか・・・それもpgetでできるんだった!
マsジか
よーし、あとは画面取得だけだ!
どうやるんですか?
614 :
名前は開発中のものです。:04/07/23 21:13 ID:wVnzhhx4
>>613 もうぶっちゃけ、作ってください、ということか?
BitBltってなんて意味ですか?
F1押しても出てこない。。
617 :
名前は開発中のものです。:04/07/24 10:28 ID:16vF/Yrc
Win32APIです。標準命令ではございません。
ウホ!HSP!!
620 :
名前は開発中のものです。:04/07/24 13:32 ID:jb6JDCZz
画像ファイルなんて古い
これからはpsetを使いなさい
622 :
名前は開発中のものです。:04/07/24 14:10 ID:WNNVmXtp
クトセクトセ
Win32APIってなんですか?
627 :
名前は開発中のものです。:04/07/24 16:47 ID:sBREqJXF
>>616 神キタ━━━━━━(゚∀゚)━━━━━━ !!
ageんなクズども
629 :
名前は開発中のものです。:04/07/24 17:20 ID:d5BYheXm
BitBltは
>>380 参照
名前欄に#DtHSPpOHでトリップが◆/C6nUMesjI
HSP→Mes
380実行しても何も起こらないけど?使い方が分からない・・・何するやつ?
>>631 キャプチャでしょ
起動した後他のウィンドウクリックすると
画面を取り込める
放置していたアプリがいつのまにか強制終了してることがあるんだけど、
そういうのを自動で再起動してくれるアプリってHSPで作れますか?
635 :
名前は開発中のものです。:04/07/24 21:21 ID:16vF/Yrc
Win32API使えば作れるんじゃない。
?nyの事かな?それなら既にやめてる(やってたのかよ
やりたかったのは某アンチウィルスソフト。安いからかよく落ちるんだ
>>635 ありがd
なんか難しそうだけど、実現可能なら挑戦してみます
ゲームとは関係ないが実行ファイル名さえわかってればできる。
定期的に調べて無ければexecで起動すればいいだけ。
>>632 画面を取り込めるということはこれで画面取得できるってこと?
641 :
名前は開発中のものです。:04/07/25 09:34 ID:aLf3idTS
…………いい加減呆れてきた。
>>640 とりあえず日本語を覚えよう。な。(AA略
>>643 すげえ、「な。」って言う文末だけで
「日記帳じゃ〜メモ帳にでも」のオヤジが目に浮かぶ
2ちゃんのAAが刷り込まれてるな…ヤバイ
>>637 スレ違いですまんが、先に他の常駐ソフトを疑ったほうがいい。
安いから落ちる、というのは考えにくい。
あるいは、いっそフリーのアンチウイルスソフトのほうがいいか。
定義ファイルは当然のこととして、エンジンもバージョンアップしてるよ、な。
落ちるアンチウイルスソフトなんか使いたくねえ・・・・・・・
な。
>>380と
repeat ,1
pget x+cnt, y
if (rval != 32)||(gval != 56)||(bval != 45): break
dist++
loop
if dist==0{
repeat ,1
pget x-cnt, y
if (rval != 32)||(gval != 56)||(bval != 45): break
dist--
loop
}
mes "計測された距離: "+dist
stop
をつなげたいんですがどうすればいいですか?
少しは自分で考えたら
すみませんプログラム初心者なのでお手本とか初めに見ないと分からないんですT_T
>>652 いっこづつ地道に命令を覚えなさい。な。
自分で0から作っていったほうが結局理解が早いぞ。
他人の作ったサンプルの改造は誰がやっても面倒で難しい。
参考にするならかまわんけど。
サンプルをざっとみて
「なるほど。そうやって処理してるのか。自分のコードにとりいれてみよう。」
と思えないならまだまだ藻前さんには手に余るレベルのサンプルだ。
漏れ自身、他人のサンプルを改造して学習したことはない。
(みてもわからんし効率悪いから)
ただ「わからない」では答えようがない。
自分なりにつくってみてどこで詰まってるのかをいってくれんと教えようがない。
・・・・他人のソースだと変数名で理解出来なくなる事があるorz
380を使うとゲーム画面がもう一つ出てくるんですけど
>>380ですら中身を理解してないのに、その先に進めるはずないよな
hwnd=dllret
pm=hwnd
hdc=dllret
mref bm,67
pm=hwnd
dim rect,4
getptr pm.1,rect
dllproc"GetClientRect",pm,2,1
screen 0,rect.2,rect.3
pm=bm.4,0,0,rect.2,rect.3,hdc,0,0,0xCC0020
dllproc "BitBlt",pm,9,5
ここらへんが分かりません
658 :
名前は開発中のものです。:04/07/26 17:17 ID:bb5al3zV
正直、見切りをつけて諦めて欲しい。
>>657 仕方がないので、今は諦めてほしい。はっきり言って作れるレベルにない。
今のままだと他人の作ったものを自分が作ったものとして誤認識してしまう恐れがある。
もう少し簡単なもの(内容が簡単ではなく、作りが簡単なもの)を作って練習したほうがいい。
「じゃ、どういうものから始めれば良いですか?」レベルなら、もうプログラム自体諦めろ。な。
フルスクリーンの画面上の一部の長さ(x,y から x1,y)を計りたいのですが
分からないので作ってくれませんか?
ネタを書いて、相手がキレたり説教するのを待っている気がする。
ネタ確定
本当にお願いします
ネタとかじゃなくてそういうソフトを作りたいんです。
_|\○_
> 作りたいんです
作って欲しいんです
作ってもらうことしか考えてないジャン
作ってください_|\○_
ソフトつってもチートツールだろ
目的を言え
し、知らない、本当だ!
俺はただ命令されて…グハァ
少しは自分で努力しやがれ。
正直、胸糞悪い。
ここまでくると、逆に面白いw
俺も、ちょっと面白くなってきた(w
>DtHSPpOH ◆kxrJVlZ8OE
命令リファレンス引きやがれ。
>>380と
>>535について、これ以上の追加質問は受け付けないほうがいいと思う。
ちゃんとHSPを覚える気があるなら、もうほとんど答えが出ているようなもんだし。
これ以上は何を教えても「わからない」→「教えてくれ」→「作ってくれ」の繰り返し。
つけあがらせるだけだ。
挙句の果ては、他人の手で完成まで持っていっておきながら、
全部自分で作ったように振舞い始めるのがオチだよ。
ゲーム画面を取得してからpgetで計るんでしょ?
そうするとゲーム画面が二つになってすごく重くなるんだけど?
少しは人の意見を聞いた方がいいですヨ
ネタ確定だな。夏か・・・。
夏だな・・・。
名メ本キター!!
なんて美味そうなエサなんだ……
釣られてもいいでつか? (;´Д`)ハァハァ
DtHSPpOHが何を作りたいのか漏れにはわかった
Hspdx開発再開されて半透明合成とか回転とか付くみたいだ
Hspdxaは開発中止状態だしかなり期待
>>681 さっきHP見てきた。
Direct3D使うのか・・・まぁ、そうなるか。
両方開発止まってたから、なんとなく自分でプラグインつくってたが・・・まぁ、いいや
いやここの住人はかなり優しいよな。
これだけ持ったんだからw
バファリン以上だな
くおおお新HSPDXFIXすげえ!。
さっそく使わせていただきます。
すげーーーーー
けど… あれ?
サンプルのESB_ALPHAが透過しないの漏れだけかな?
↑↓でブレンド率変えても変わらず。
他のモードもブレンド率↑↓で変えても変化してないような…
誰かフルスクリーンの画面上の一部の長さ(x,y から x1,y)を計るソフト作ってください。
つりとかネタじゃないですよ。
つり証明していない。
変な知恵を付けてる!!!!
作ってくださいはスレ違いじゃないか?
(x,y から x1,y)の長さだったらx-x1ジャネーノ
>>687 思いっきり目を凝らしてみろ。
よ〜く見ればビット単位で数えられる。
ここは 「ゲーム作成技術の板」であって、「チートツール作成依頼スレ」じゃねえぞ
(なんかしょっちゅうこういう人がいるよね。)
694 :
名前は開発中のものです。:04/07/27 18:06 ID:Y0RiOlye
>>692 のネタばれをしないようにしましょう
>>DtHSPpOH ◆kxrJVlZ8OE
GMに通報しますた
>>692 antaresがいなくなっちまったじゃねーか!
>>692 これでDtHSPpOH ◆kxrJVlZ8OEの作りたかった
ROの升ツールが作られるなw
せっかく作ってくれた人に挨拶も無しかい
もう来るなよ
脳内フィルタがかかってんな。
>>697は。
このままじゃ粘着されるぞ。(いや、されてるか。)
そうそう。
>>692使ったら、そのあとお絵描きツールを最新版にすることになりました。
ありがとうw
702 :
701:04/07/27 19:45 ID:Y0RiOlye
PASS:HSP
>>692 EXEファイルなんて怪しくて実行できん
と思ってたが、やってみたらかなり藁えた
>>701 パスワードで保護されてます。パスワードなんですか?
すいませんよく見てませんでした。
これ実行したらエラーになって終わるんですけどどうやって使うんですか?
それは寒いだろ
>>705 692を使えばすぐじゃん
漏れもこれでRO測ったぞ
乱数で特定の数字を欠番させたい場合はどうすればよいでしょうか?
>>708 乱数の範囲が狭い場合
数字が欠番した配列を用意しておいて、それを乱数で呼び出す。
乱数の範囲は広いが欠番が少ない場合
欠番にしたい数値だった場合は乱数の取得をやり直し。
>>708 欠番1個ならこれでどう?
まぁ自分なら単純に欠番以外になるまで何度もやりなおさせるかな…
#define KETUBAN 4
kazu=10
randomize
repeat 20
rnd a,kazu-1
if a>=KETUBAN : a++
mes a
loop
stop
某長さくんじゃないけど
pgetでデスクトップ上の座標の色を取得できんないものかな?
デスクトップ画面をBitBltしてpgetすればpgetでも可能だよ。
それぐらいなら直接デスクトップからGetPixelするが…。
>>714 サンクす!
やはりllmodか…orz ニガテダ
hspextでclipsetgなる命令を発見したけどHSPのバッファに送れないしなぁ
と思ったらsrexに良い命令があったからそっちつかってみるっす
bloadで無いファイルを読み込んだ場合、どうやってエラーで止まるの回避すりゃいいの?
stat使えばいい気がするんだけど、ようわからんです。
エラー無視状態にする命令があった気がする。
あとはstat使えばいいはず。
existというものをご存じですか?
719 :
716:04/07/28 03:22 ID:ytTP705s
おまえもう来るな
誰か701の使い方教えて _|\○_
少しは人の話を聞いたほうがいいですよ
692はファイル削除するだけのソフトか。
誰か漏れに701の使い方教えて
>>724 ファイルを削除?
使い方間違ってるんじゃないか?
誰かDtHSPpOH ◆kxrJVlZ8OE の消し方教えて _ト\○_
728 :
名前は開発中のものです。:04/07/28 16:28 ID:50ZbMJzg
2chブラウザで透明あぼーん。
>>728 呼んできました。
誰か使い方教えて_ト\○_
スイス銀行ってなんですか?
消したいんです。
お願いします誰か教えて下さい。
>>732 ていうか何をしたいの?
hspを活用してどんなプログラムを作りたいの?
放置よろ
フルスクリーンの画面上の一部の長さ(x,y から x1,y)を計りたいです。
DtHSPpOH ◆kxrJVlZ8OE は
放置よろ
うるせーバカ
あ、ゴメソ
740 :
701:04/07/28 18:33 ID:L9VtcSGy
DtHSPpOH ◆kxrJVlZ8OE が困っているようなので701でUPしたプログラムのソースを公開します
;--------------------------ここから
cls 1
mes "取得座標を設定してください"
button "設定",*a
*a
dialog "内部エラーが発生しました(53)",,"HSP Error"
end
;--------------------------ここまで
1 "解釈できないHSPコードです"
コンパイルされたHSPの中間コードが間違っています。
通常は表示されないエラーです。ファイルが破損している場合や、
予期しない事態が起こった時に表示されます。
2 "文法が間違っています"
命令や、変数名、ラベル名の書き方が間違っている時に表示されます。
3 "パラメータの数値が異常です"
(中略)
53 "厨が釣れました"
自分で何も調べない、作らない、聞くだけの厨房が釣れた時に表示されます。
>>731 「うほっ、良い男。あいつを殺 ら な い か?」と言って頼め。
,. --── 、
////イl!lヽ:ヽ.\
:./:/.:.:/:l.:|:.|l.:.:lヽトl.:ヽ
.:/.:.:./.:./ハ:ト.:.|.:ヽ!l.:ii.:',
/l|.:.:|.:レハ.:メ.ヽ|.:l/.|.:.i:l:.|
.:!ll.:.:|.:lィZミヽ.:l|〉、!l.:トN:|
.:.|lトl.:.|ゞ┴ l/ k::仆|:l/リ
.:.|lハ:! ,¨´/l./
.:|N 、__' ′/レ′
小! ヽ ` ー'`, '|/! __ __ _ __
Nト! ヽ、___/ ┌─────┤ ll ll lL」────┐
、``''‐- 、」 | ─────‐しl|,. K_ソー'────│
、`ヽ、 │ |DtHSPpOH ◆kxrJVlZ8OE │
、\ \ |、 |─────── : ────── |
\\ | \ | :. |
誰かメールで教えて〜
なら、誠意としてプロバイダのメールアドレスを晒せ。
そしたら教えてやらんでもない。
今プロバイダのメールばくってんの;;
3ヶ月くらいほったらかしにしてるからどうやって復活させるのか分かんないT_T
こいつこの状況で教えてもらえると思ってるのか。凄い神経だな…。
ただの厨房じゃなくてリアル池沼かもしれんな。
虫と獏の違いがわからなければ(プログラミングをするのは)難しい。
748 :
ヤター 究極の糞RPGできたよ:04/07/29 15:02 ID:KbfFXuVw
全クリしました!
レベル120で魔王に朝鮮したら一撃で倒せました。
最強で魔王に朝鮮して命乞いしたら死にました;;
PS 誰か
>>735教えて
>>749 計りたい画面にしてスクリーンショットをとってそれを計ればいいんじゃないノ?
mouse命令で操作を自動化するのは結構楽しいかも
Onion Fantasyってどうなったの?
初心者だからこれのスクリプトが見たい。
>>750 ネタにレスするの面倒だからもうしないね。
>>751 それだと時間がかかったり重くなったりするんぢゃないの?
>>753 >ネタにレス
ネタはキミw
>時間がかかったり重くなったり
工夫汁
存在自体がネタの分際で何言ってんだろうねw
>>753 ところで使用目的は739の下2行であってるのか?
使用目的がわからんと答えようがない
時間がかかると困るということはリアルタイムに画面の変化を検出したいんだろうが
荒らし以外のコテハンって見た事ない
753にマジレスしないで下さい。
キチガイです。
基地外ではありません。
近年稀に見る凄腕の釣り師です。
しかし分からないんだったら、あきらめたら?
難しいと思ったらあきらめる
ゲーム製作テクニックの王道中の王道
626 :DtHSPpOH ◆kxrJVlZ8OE :04/07/24 14:25 ID:DtHSPpOH
>>615 作ってください
652 :DtHSPpOH ◆kxrJVlZ8OE :04/07/26 14:33 ID:JX2vDOqc
すみませんプログラム初心者なのでお手本とか初めに見ないと分からないんですT_T
660 :DtHSPpOH ◆kxrJVlZ8OE :04/07/26 17:25 ID:+hn4RUX0
フルスクリーンの画面上の一部の長さ(x,y から x1,y)を計りたいのですが
分からないので作ってくれませんか?
663 :DtHSPpOH ◆kxrJVlZ8OE :04/07/26 18:45 ID:+hn4RUX0
本当にお願いします
ネタとかじゃなくてそういうソフトを作りたいんです。
666 :DtHSPpOH ◆kxrJVlZ8OE :04/07/26 19:28 ID:JQEjpNPo
作ってください_|\○_
687 :DtHSPpOH ◆kxrJVlZ8OE :04/07/27 10:29 ID:TwDYiJZH
誰かフルスクリーンの画面上の一部の長さ(x,y から x1,y)を計るソフト作ってください。
つりとかネタじゃないですよ。
697 :DtHSPpOH ◆kxrJVlZ8OE :04/07/27 18:54 ID:hTmMGvDs
>>687が分かる人メールください。
732 :DtHSPpOH ◆kxrJVlZ8OE :04/07/28 17:22 ID:WMXwjM18
お願いします誰か教えて下さい。
743 :DtHSPpOH ◆kxrJVlZ8OE :04/07/29 09:34 ID:+yhEvsm4
誰かメールで教えて〜
>>756 違います。でもオンラインゲームで使うのはたしかです。
リアルタイムで出したいです。
なんのゲームなのかはいいたくないです。
763 :
名前は開発中のものです。:04/07/29 18:20 ID:Z4d0ypqc
>>762 ゲームがなんにせよ体力ゲージか風ゲージが知らんが
要するに画面からゲージの量を取得したいわけだな?
765 :
名前は開発中のものです。:04/07/29 18:41 ID:Z4d0ypqc
>>764 作ってやっちゃダメだよ。甘やかすと悪化する。
男なら黙ってメモr(ry
ていうか作りたいのがチートツールなら
プログラム板のHSPスレの方が向いていると思うのだが…
あそこは一見するとこの世のものとは思えない程の馬鹿ばっかだが
結構凄腕が潜んでいるから油断できない。
ゲージの量を取得したい。
プログラム板のHPSスレはなんか法律とかでマルチ禁止とか書いてた。
マルチっつーのはいろんなところで質問することだ。
だから「もうこのスレでは質問しません」と誓って向こうのスレに行けばいい。
その後は当然こっちのスレでは質問すんなよ。
ちょっとあいまいだったかもしれないが、
>「もうこのスレでは質問しません」と誓って
これは実際に「向こうのスレに移動します」と書き込むことだぞ。
いや、ム板スレに移動しないでそのままHSPセンターにでも逝ってくれ。
>DtHSPpOH
これ以上は質問じゃなくて
作成依頼になるからスレ違いだと思う
でもこれまでに出たソースが
相当参考になると思うけどなあ
あ、無料である限りどこの掲示板に行っても
「できるまで丁寧に指導する」事を求めちゃだめよ
| |
>>748 難易度が少々高いことを除けばいいかもしれない。
DtHSPpOH ◆kxrJVlZ8OEに出題
これが出来たら画像取得&指定位置の長さを測るモジュールをUPする
@
dllproc命令を使った簡単なプログラムを書け
A
画像を開きmrefでVRAMを取得し、
peek・pokeを使って画像を輝度の反転(ネガポジ)するプログラムを書け
おまけ問題(中学〜高校程度)
B生物
グルコースが解糖系・クエン酸回路・水素伝達系を経て、
最終的にATPはいくつ出来るかを答えよ
C化学
フタル酸とイソフタル酸とテレフタル酸の違いを答えよ
D数学
直角三角形の辺a,辺bから斜辺cの長さを求める方法を答えよ
ところでネタだよな?>DtHSPpOH ◆kxrJVlZ8OE
Dしかできなかったよ…。
DtHSPpOHじゃないけど、(3)(4)習ってねえ……orz
生物とか化学なんて覚えてねえよ。
つーかもうDtHSPpOH ◆kxrJVlZ8OEは完全無視したら?
こいつは作ってもらえれば言語何だって良いんだろ。
スレ違いだしこんな馬鹿にエサやるこたない。
779 :
774:04/07/30 02:26 ID:+LP9Vg5J
>>777 問題の出し方が悪かった_|\○_
一応正解です
ネガポジってネガティブとポジティブみたいなことだよな?
>>774 おまけ問題はしなくていいですよね?
5はsin cos tan使うんでしょ?
sinθ=a/b cosθ=c/b tanθ=a/c
1,2頑張ります!
>>782 違いますよ。ゲージの長さ測るんですよ?
でもそれで色図ったらスクリーンショット撮って画像で計ったときと全然違ってたのは
なんでだろう・・・。
#include "llmod.as";llmod.asを使えるようにする
mes "対象のウィンドウをクリックしてください"
repeat
wait 1:stick a:if a&256:break
loop
ginfo:pm=prmx,prmy:dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret:hdc=dllret
mref bm,67
repeat
ginfo:x=prmx:y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0
repeat ,1
pget 317+cnt, 555
if (rval != 0)||(gval != 12)||(bval != 16): break
dist++
loop
if dist==0{
repeat ,1
pget 317-cnt, 555
if (rval != 0)||(gval != 12)||(bval != 16): break
dist--
loop
}
mes "距離 "+dist:pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020
dllproc "BitBlt",pm,9,5:wait 5
loop
これで317,555を基準とした0,12,16の左右のゲージの長さ計れます?
これあったるのかな・・・
>>783 任意の座標の色が拾えたらゲージの長さは測定できるだろ?
そもそも長さを測る必要があるのか?
例えばHPゲージが満タンで緑、ダメージで右端から赤になるなら
ゲージ右端の座標から緑を拾えるまで繰り返せば良いだろ?
>でもそれで色図ったらスクリーンショット撮って画像で計ったときと全然違ってたのは
>なんでだろう・・・。
ゲームのフルスクリーンだとginfo 0 で座標を拾えないものがあるぞ。
ゲームのゲージの位置が固定ならこの問題は無視できるけど。
というか784の距離の測定の仕方を
DtHSPpOH ◆kxrJVlZ8OEが理解できていれば
>違いますよ。ゲージの長さ測るんですよ?
とは言わんな
784でゲージの長さ測っても0って出るんだよね
色が間違ってるのかな?
782でプレイ中にゲージの上にマウスカーソル持っていって計ったら
青色っぽい色なのに0,12,16とか0,12,24って出るんだよね
SSを撮って保存したやつを図ると32,135,207・・・TT
SSがjpegだとで色変わってる可能性もあるな
↓これ それのゲーム中にマウス座標は正常に更新されてる?
screen 0,120,0
gsel 0,2
repeat
wait 5
ginfo 0
title ""+prmx+","+prmy
loop
>>789 使い方がさっぱりわからんし
ナンのゲームに使うのかわからん
789はフルスクリーンからウィンドウズモードにしてそのウィンドウを動かさなければ
ゲージは固定だからゲージの長さを計ってくれる。
ゲーム名は公開でいうのは嫌だからメールくれたら教えてあげます。
>>788 更新されていますよ。
jpegじゃなくてbmpで試して見る
なんでこのキチガイ相手にするんだ?
クレクレが調子に乗るからスルーしてくれよ。
教えたい人はメールでタイマンしてください
ペイントでSSをアップでよく見ると点によって色が微妙に違うことがわかった。
でもゲージは青っぽいから
repeat ,1
pget x+cnt, y
if bval<=150: break
dist++
wait 1
loop
if dist==0{
repeat ,1
pget x-cnt, y
if bval<=150: break
dist--
wait 1
loop
}
mes "長さ"+dist
ってしたらいいということが分かった!
これあってます?
(´^&H3636;Д^?`)
アホはほっといてコンテストのアイデアでも考えるか
795でできると思ったらなんかdistがすごい大きくなってく・・・なんで?
ああ、なんか固まると思ったらrepeat ,1じゃあだめだ・・・
repeat 100,1
にして
mes "長さ"+dist
dist=0
にすると・・・
常に長さ100とでる・・・なんで?
あ、そうだ。ちょっと質問。
いまHSPDXでゲーム作ってるんだけど、開発マシンだと平気なのに
セカンド機でスプライトをちょっと出しただけで恐ろしく遅くなる。
具体的には8x8のスプライト100個くらいで10FPS程度しか出ない。
なんか原因考えられるかな。ちなみに似たような処理をZGP使ってやったら
600FPSとか出た。
スペックは雷鳥1.0GHz、GeForce2MX、OSはwin2kでDirectX9.0b。
>>799 なぜ長さが測定できるか理解できてないようだな…
#include "llmod.as";llmod.asを使えるようにする
x=316:y=555
mes "対象のウィンドウをクリックしてください"
repeat
wait 1:stick a:if a&256:break
loop
ginfo:pm=prmx,prmy:dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret:hdc=dllret:mref bm,67
repeat
ginfo:x=prmx:y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0
repeat 100,1
pget x+cnt, y
if (bval < 150): break
dist++
loop
if dist==0{
repeat 100,1
pget x-cnt, y
if (bval < 150): break
dist--
loop
}
mes "長さ"+dist:pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020
dllproc "BitBlt",pm,9,5:wait 5:dist=0:loop
これで(x,y)を基準としたゲージの長さが分かるはずなんだけどなぁ・・・常に「長さ100」って出る。
1pget 色を拾って
2もしその色の青の輝度が150以下ならloop抜ける。(ゲージは青っぽい色でゲージがない所は黒っぽい色だから)
3右側じゃなければ左側を探す。
4表示
これ間違ってますか?
803 :
名前は開発中のものです。:04/07/30 16:32 ID:3mjMoC1Q
いい加減、スレ違いなので出ていってくれ。
805 :
800:04/07/30 17:03 ID:jkD73cO9
>>804 いあ、殆どVRAMは使ってないんよ。テストでは同じスプライトを100ほど表示してるんで。
今うちで一番低スペックのノート(モバセレ650、ビデオはオンボードのSiS630、WinXPhome)
で試したらなぜか240FPS出た。セカンド機そのものの問題なのかあn?
806 :
774:04/07/30 17:51 ID:+LP9Vg5J
>>781 @〜D全て回答してください
全問正解の場合のみモジュールUPします
回答はこの書き込みから1回までとします
2回目以降の回答は無効とします
訂正
C化学
フタル酸・イソフタル酸・テレフタル酸の分子構造の違いを説明せよ。
>>800 すまん。ちょっと初歩的な質問して良い?
「雷鳥」って何?
サンダーバード?
平塚ライテう(←何故かうまく変換できない
>>807 真面目に答えれば、ThunderBirdコアのAthlonのことだと思われ。
不真面目に答えれば、8/7全国一斉ロードショーだ。見て来い。
>>805 ZGPがHALで動いているのか、Refで動いているのか・・・気になる。
>>810 あ、Athionのことでしたか。ありがとうございます。
Duron1Gしか積めてない自分には全然さっぱりな話ですた。
どうしよう。見に行こうかな。実写でしたよね。違ったっけ。
813 :
800:04/07/31 04:47 ID:XcukqJEP
いろいろ試してみたところドライバが変なのに違いないと思い当たり
一つ前のドライバに戻したら相応のFPSになりました。
お騒がせしますた…。
>>813 そのHSPDXはHSPDXFIX.dllでなくて前の奴?
もし違ったら、Fix版でも試してみては?
815 :
800:04/07/31 05:53 ID:XcukqJEP
>>814 ああ、両方とも試してみましたが同じでした。
どもです。
>>800 ソースは非公開かな?
見れば何かわかるかもしれん。
なにか重くなるような処理の仕方をしているのかと思ったけど、
ノートだと大丈夫ってのがなぁ……ハード的な問題の可能性の方が高いかもね。
ごめ一日考えたけど分からんかった。
5いがいさっぱり。
2,3なんて質問の意味すら理解できない。。
誰か802なんでできないのか教えて
>>791 >ゲーム名は公開でいうのは嫌だからメールくれたら 教 え て あ げ ま す 。
何故か殺意を抱いたがスルーしておこう
>>817 案外ガッツあるな。ほんの少し見なおした。
>>802 2行目の
x=316:y=555 が件のゲームのゲージの位置か?
だとしたら(ry
スマソ訂正
×ガッツある
○教えて貰う気がよく続くな
821 :
800:04/07/31 18:12 ID:XcukqJEP
>>816 814に書いたけどドライバ戻したら直ったんよ。
原因は不明…。
しかし817まだいたのか。
思わせぶりなレスすると作ってもらえると思ってヘコヘコ現われるから
無視したほうが良いんじゃネーノ
>>DtHSPpOH ◆kxrJVlZ8OE
尊敬語と謙譲語を覚えて来い。
それと自分が教えて も ら う 立場だということを自覚しろ。
全てはそれからだ。
すいません自分すこしえらそうでしたね;;
自分のほうが下なので言葉に気をつけようと思います。
>>819 だとしたら・・・なんなんですか?
zgpsw.hpiで何故かwma,oggが再生できるんだが、
これって、関連付けられたプレーヤーで鳴らしてるってこと?
>825
DirectShowをつかっているから、
WindowsMediaPlayerで再生できるファイルは全て再生できる。
oggは普通はわざわざコーディックを入れないと再生されないが、
何かのソフトと一緒にインストールされたりすることもあるので、
MediaPlayerで再生される状態になっているならOK
wmaとちがってMediaplayerがあれば良いわけじゃないので注意
>>823 xとyに途中で…が代n…
ちっ…地球人の甘さがうつっちまったな…
まぁ作ってやる気はサラサラないから安心汁
pget x+cnt, y を
pget 317+cnt,555 にすればいいってことか!
少しは人の話を聞けよキチガイ
うーむこれでも常に「長さ100」って出る・・・
画面取得できてないのか・・・?
ゲームを疑うならサンプルゲージウィンドウ作って試して味噌
あと、ゲーム名は公開しような。個人的に使うなら公開しても問題ないはず。
まさか自分で作ったツールとして公開する気じゃないだろうな?
いくらなんでもムシが良すぎるぞ。
それと藻前様のこのスレの書きこみをもういっぺん読みなおしてみ。
レスつけてくれた人達への 感 謝 の 言 葉 が一言でもあったか?
なぜキチガイ扱いされてるかもう一度考えよう。な。
藻前のサポセンじゃないんだからココは。敬意の無さが滲み出てる。
何年生のボウヤか知らないがこれ以上フォローできないぞ
子供だから大目にみてきたが ひととしてオワットル
しかし批判には目もくれず何かあると
〜って何ですかと平気で聞くからな。
今後ヒントとか餌になるもの一切書かないで欲しいんだが…。
>>836 自分の小さいころを思い出せば分かるだろ。
>>837 それじゃだめだ。
子供なんだし 困っているんだと思うから教えてやりたくなるのだ
アレは子供なんかじゃない
あのレスの仕方には悪意を感じる
今まで教えてくれた人ありがとう。
これからも教えて下さいm(_ _)m
>>802で画面取得はできているのですか?
変数の数の+−を逆にする命令ないですか?
>>840 あぶねー。あやうく教える所だった。
自分で調べろ。
xを変数とする。
x-x-x
xを変数とする。
x ^ 0xffffffff + 1
おまえら教えるのはいいですけど相手を見てからにしてくださいよ
-1かけらたらいいだけでした・・・
847 :
名前は開発中のものです。:04/08/01 13:48 ID:5yTA8GQu
教えて君の定義(
http://myu.daa.jp/osiete/index.htmlより)
・検索エンジンを使わない(使えない?)。
・決して自分では調べない。他人に調べさせる。
・文字を読まない。
・挨拶しない。
・教えてもらって当然だと思っている。
・自分が理解できないと逆ギレする
・敬語を使わない。
・お礼は特にない。
・一気に2つも3つも質問してくる。
・見当違いな質問をしてくる。
・答える人の事は一切考えない。
・答える人を暇な人扱いする。
・考えもしないくせに「わからない」。
・質問が下手(主語・述語がない)。
・教えてくれる人を学校の先生だとおもっている。
・ネットでは年齢は関係ない事を知らない。
・知ってるんだから教えるのは当然だと勘違いしている。
・とにかく非常識人間。
・無知を武器に攻撃してくる。
・タイピングに気を配らない(おねがいしまsでゃす)。
・「〜ですか????」ハテナが多い。
・「〜教えて!!!!」記号が多い。
・一度面識があるからといって名を名乗らない。
・空気を読まない(質問掲示板でない所で質問する)
やっべ、この定義みながら書き込んでるとしか思えない。
こやつは現実世界でも嫌われてると思う
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでMMORPG(アスガルド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
>僕はHSPでMMORPG(アスガルド)
>ぐらいなら作ったことあります。
これからネット機能省いたら完成だな
どこを立て読みするんですか?
855 :
834:04/08/01 21:28 ID:ICEIkQuB
すまんみんな。
漏れが全面的に間違っていた。
少しでもDtHSPpOH ◆kxrJVlZ8OE の向上心に期待した漏れが馬鹿だった。
スレ汚しスマンかった。
>>839 2度とここに来ないでくれ。
>>847 のサイトをもういっかい全部読んできてくれ。暗唱できるくらいに。
もう、漏れは2度と藻前を相手にしないけど。
856 :
774:04/08/01 21:40 ID:W5j1dhji
>>DtHSPpOH ◆kxrJVlZ8OE
かわいそうなのでDしか答えられなかった君にプレゼント
#include "llmod.as"
mes "hwnd":input hwnd:button "OK",*a:stop
*a
cls:dllproc "GetDC",hwnd,1,1:hdc=dllret
dim b,26:b=$92,$e8,$8b,$4B,$82,$c5,$92,$b7
b.8=$82,$b3,$82,$f0,$91,$aa,$82,$c1,$82:t=""
b.17=$c4,$82,$ad,$82,$be,$82,$b3,$82,$a2
repeat 26:peek d,b.cnt:poke t,cnt,b.cnt:loop
title t:mref g,67:p=g.4,0,0,winx,winy,hdc,0,0,$CC0020
repeat:wait 1:dllproc "BitBlt",p,9,5:redraw 1:loop
コンテスト用にすげえの作るから待ってろよ
一般なのにショートに応募してやるから
わざわざ却下されるためにすげえのを作るとは。
なんてストイックな性格なんだ。
859 :
名前は開発中のものです。:04/08/01 23:18 ID:W5j1dhji
>>856 だからレスつけんなよ
おまいもガキだろ
変数の配列数を取得したいんですが、どうやればできますか?
割り算で小数まで求めたいのですが
釣られないよ
はやく夏休みおわんないかな
866 :
名前は開発中のものです。:04/08/02 13:13 ID:xsyjN6lu
>>862 モジュール使えば取得できる
#module
#deffunc getarraynum val, val
mref ret, 48
mref pval, 1025
ret = pval.2, pval.3, pval.4, pval.5
return
#global
使い方
getarraynum 取得先, 取得したい変数
dim 変数, a, b, c, dのとき
取得先にはa, b, c, dのように代入される。
sdim 変数, a, b, c, dのとき
取得先にはa/4+(a/4!=0), b, c, dのように代入される。
>>863 擬似的になら求められる
x = 1000
y = 7
p = x / y
q = x \ y * 100000000 / y
mes ""+p+"."+q
stop
>>866 教えるのはいいですけど相手を見てからにしてくださいよ。いいかげんに。
DtHSPpOHじゃないと思ったんだが…。
まずかった?
空気よめ
871 :
名前は開発中のものです。:04/08/02 13:46 ID:48yMNFmC
HSPを今日ダウソしますた。
>>871 DtHSPpOH ◆kxrJVlZ8OEみたいにならなければ歓迎する。
キャラをさ。赤とか白とか黒のシルエットで表示したいんだけど、どしたらいい?
描けよ
876 :
名前は開発中のものです。:04/08/02 14:39 ID:48yMNFmC
877 :
名前は開発中のものです。:04/08/02 14:51 ID:48yMNFmC
878 :
877:04/08/02 14:52 ID:48yMNFmC
スマソ失敗。
>>774 今さらだけどBの答えは36個
36個はクエン酸回路までだっけかな・・
882 :
880:04/08/02 16:48 ID:thu47mmS
38個か・・勉強になったよ
最近HSPを一通り覚え腕試しにとサウンドノベルをつくっているのですが、選択肢をボタン以外の方法で出す方法
って無いですか?
どうしてもボタンだと背景と合わないので・・
>>885 dialog "",2,""
if stat==6{dialog "はい"}else{dialog "いいえ"}
何を一通り覚えたって?
>>885 repeat :redraw 1 :redraw 0 :await 30
a=120,120,120
if mousex>16&(mousex<72) {
if mousey>16&(mousey<32) :a.0=255
if mousey>32&(mousey<48) :a.1=255
if mousey>48&(mousey<64) :a.2=255
}
color :boxf
pos 16,16 :color a.0,120,120 :mes "選択肢1"
pos 16,32 :color a.1,120,120 :mes "選択肢2"
pos 16,48 :color a.2,120,120 :mes "選択肢3"
loop
onclick *@forward
font "MS ゴシック",25,17
color ,,255 : boxf 120,100,520,150 : boxf 120,200,520,250
color ,, : pos 120,110 : mes "選択肢A" : pos 120,210 : mes "選択肢B"
stop
*@
if (mousex>120) {
if (mousex<520)and(mousey>100)and(mousey<150) : goto *a
if (mousex<520)and(mousey>200)and(mousey<250) : goto *b
}
stop
*a
color 255,255,255 : boxf 20,380,640,480
pos 20,380 : color ,, : text 100 : mes "Aを選択しました。"
stop
*b
color 255,255,255 : boxf 20,380,640,480
pos 20,380 : color ,, : text 100 : mes "Bを選択しました。"
stop
スポンジ脳でも
もうちっと絞って考えろ
sdim message, 64, 2
message = "Button1", "Button2"
*@
stick click, 256, 1
repeat 2
b = cnt
if (5<=mousex)&&(105>=mousex)&&(25*cnt+5<=mousey)&&(25*cnt+25>=mousey){
if (click & 256 != 0)&&(l < -1): l = cnt
if l == cnt: c = 64: else: if l < 0: c = 128: else: c = 172
if (click & 256 == 0)&&(l == cnt): gosub *_button
} else c = 172
if (click & 256 == 0)&&(l == cnt): l = -2
gosub *drawbutton
loop
if (click & 256 != 0)&&(l < -1): l = -1
if (click & 256 == 0)&&(l == -1): l = -2
wait 1
goto *@b
*drawbutton
color c, c, c: boxf 5, 25*b+5, 105, 25*b+25
color 0, 0, 0: pos 10, 25*b+7: mes message.b
return
*_button
n = b + 1
dialog "Button"+n+"が選択されました。"
return
押されたときの動作をWindowsのボタンと近づけてみた。
長くなったけど・・・
892 :
DtHSPpOH ◆kxrJVlZ8OE :04/08/03 12:28 ID:srsRZd5h
質問です。
数文字のスペースのウィンドウみたいなものをアクティブじゃない状態でも
どのウィンドウよりも(フススクリーンでも)上に(見えるように)表示したいんだけど
どうやったらいいの?
フススクリーンはわからんなあ
895 :
DtHSPpOH ◆kxrJVlZ8OE :04/08/03 17:02 ID:srsRZd5h
訂正
×フススクリーン
○フルスクリーン
フスルクウィーンのゲームは常に手前設定になってるだろうし、どうかね
>>DtHSPpOH ◆kxrJVlZ8OE
ゲージの長さを測りたいなら
ディスプレイに定規でも貼り付けとけ。な。
>定規
ケツにでも貼っとけ。>DtHSPpOH ◆kxrJVlZ8OE
なおったテキストエディターいいね
常に最前面は
プリントアウトしたやつをディスプレイに貼るんだよ
いっそのこと己の眼球に貼り付けてしまえ。
>>900 アレはいかんだろw
だけど、もうゲーム削除したみたいだね。
906 :
DtHSPpOH ◆kxrJVlZ8OE :04/08/04 09:35 ID:31ibf2XM
ならこっちも常に手前設定にしたらいいんじゃないんですか?
その話はもう良いから
反応したら負けですヨ
やれやれ。
この調子だと次スレ準備も近い?
そうかもね・・・。
911 :
DtHSPpOH ◆kxrJVlZ8OE :04/08/04 12:37 ID:UOBSFz3I
常に手前表示にしたいんですがどうすればいいんですか?
他の窓を奥に表示するようにすれば良いんじゃないだろうか?
こんだけ嫌われてんのに
よくコテで出てくるよな
教えて君を装った構って君ですから
916 :
DtHSPpOH ◆kxrJVlZ8OE :04/08/04 17:54 ID:bPMVD0ll
gselを使ってもフルスクリーンより手前には表示されないなぁ
他に方法ない?
あーHSPDXFIXβがバージョンあがってる
HSPの話がしたい・・・
人大杉なくなったから2chブラウザ外しちゃったよ
>>921 一度2ちゃんブラウザに行って、またwebブラウザに戻るとは
ちょいと理解しがたい感性の持ち主だな。
webは無駄に重いじゃん。
>>916 最前面表示モジュール
gsel_ IDで指定可能
;ウィンドウを常に最前面に表示
;p1にウィンドウIDを指定
;要llmod.as
#module
#deffunc gsel_ int
mref p1,0
*@
gsel p1,2:goto @b:return
#global
答えてないし
926 :
880:04/08/04 21:58 ID:KcbmwpCh
>>923 みたいのがいるからまた質問するんだよ。
俺はほかの奴と違って良い人ででしょ。って思ってるのか?
偽善者だなー(・∀・)
↑悪い、880は間違い・・
928 :
904:04/08/04 22:50 ID:g02+rtYl
>>926 実行してうまく動くなら偽善者だろうけど、
(ry)だよ。
>>922 別に重くないよ。
むしろ2ch以外も見てるのに2chだけ専用ブラウザ立ち上げるのが面倒。
>>929 中身がどうだろうとレスするとまた現われるので…
>>930 多分、放置しても作ってくれるまで来るよ…。
foon, asso =フォーン、あっそ?
俺のIDに
935 :
934:04/08/05 01:37 ID:lOfpdCvF
誤爆です・・
foonでフォーンとは読まんだろう
Exforce.DLL使ってタブ付きのペイントソフト作っているんですけど、
タブを作った後に、タブのタイトルを変更することって出来ますかね?
作ってるなら試せばいいと思うんだが
939 :
名前は開発中のものです。:04/08/05 10:16 ID:s5JFWkyF
hspdxfixが更新されたところで、hspdxaがあるからいらんし。
hspdxaはバグが残ったまま開発中止状態だからなあ…
hspdxfixの新しいやつ
まともに動かないの漏れだけかな?
サンプルが透過していない。
透過率も変わらない。G400じゃ古すぎかな。
ノートでも動かんし。
hspdxaはデスクトップでは問題ないんだけど
hspdxaは問題多いからね。fixのほうが良いっしょ。
開発再開は正直嬉しい。
>>941 Matroxは今のパフィもクセあるからなあ。
開発環境では避けたほうがよさげ。
>>942 情報thx
マトロックスだめかぁ
結構絵描きさんとかが未だに使ってるから
切り捨てたくはないしなぁ…
どっちのほうが動く対象が多いんだろう…
es_copyでgmodeのα合成が反映できたらなぁ…
左右反転もほすい
いけね・・・ホスト消し忘れた・・・・・・。
>>944-945 公式でこっちの話題引っ張るのもなんだし放置しといたほうが良いんじゃ。
どうせしつこく聞いて嫌がられるのがオチだと思うが。
948 :
名前は開発中のものです。:04/08/05 16:55 ID:dIYjkNc4
誰か944教えて
そろそろ次スレかにょ
このスレは誰が次スレ立てるんだ?
951 :
名前は開発中のものです。:04/08/05 17:09 ID:dIYjkNc4
gsel ID,2みたいな命令他に無いんですか?
>>950 過去スレが殆ど見られん
今までどうしてたんだ?
この進みなら970あたりでも良いかもしれないが…。
hspdxfixの新しいやつで個人的にうれしいのは、es_adirなどの角度の設定を変えられるようになったことかな。
stgを作っていると、一周64分割では荒すぎて苦労していたので。
ただ、hspdxaを利用して作りかけになったやつを移行させるのがちょっと面倒かな。
>>953 俺もes_adirは荒すぎるので使ってなかった。
hspdxfixにはホント期待してるw。
いや、「最前線」という部分が笑うべきところなんだろ
顔にスプレーをかけて怪我させてるし
名前を消しても、ageちゃーなぁw
958 :
937:04/08/05 22:10 ID:1CQ799fV
>>938 そうですね、スミマセン。タブを作り直すことにしました。
今度は、ペイントの塗りつぶしの処理の仕方が分からないんですけど
誰か教えてくれますでしょうか、お願いします。
960 :
958:04/08/05 22:48 ID:1CQ799fV
ありがとうございます。大変参考になりました。
次からググります。スミマセン。
64制度のes_adirも、フレーム毎に 0 0 0 1 0 0 0 1 ・・・
って毎回指定すれば、角度0.25っぽくなるよーー♪
0000 | 0
0001 | 0.25
0011 | 0.5
0111 | 0.75
1111 | 1
1112 | 1.25
1122 | 1.5
4フレーム1セット 256制度のできあがり!
発射のとき、256制度用の配列に0〜255入れといて
ごにょごにょすれば、256発の綺麗な円状発射だってできます。
>>961 思いつかなかった。
つーかマンドクサw
963 :
名前は開発中のものです。:04/08/06 11:22 ID:LCnXkH5e
*st
...
...
...
repeat
...
...
loop
goto *st
こいゆう処理を繰り返してたらPCがだんだん重くなるのですが
こいゆうって前も見たな。
コイツだったのか。
>>963 それがほんとなら、本家の掲示板に行ったほうがいいのでは?
>>963 ...で省略されてる所に問題がありそうな気がする
質量保存の法則をもぶち壊すHSP
スプライト機能ってそんなに使うか?
自由度が低くて結局は自前で用意してしまうよ。
wait入れてない気がする。
>>969 wait入れてなかったらすぐとまるよww
ww
>>958 唐突だなw
まぁ禿同だな。
漏れもかえって面倒でまったく使わない。
衝突判定とかも自前。
俺は何もかもスプライトだ…
974 :
名前は開発中のものです。:04/08/06 21:08 ID:bQTSg85t
はじめましてこんばんわ
プログラムというものを始めてから3日ほどです。
ここで質問なんですがHPSのウインドウの出る位置を指定するにはどのようにすればいいのでしょうか?
↓ここでボケて!
バアさん、飯ぁまだかい?
真面目に答えると
マニュアル読んで下さい
>>974 釣りか?マニュアル読め
#define XS 400
#define YS 300
screen 0,XS,YS
width ,,dispx-XS/2,dispy-YS/2
stop
解説はしない。意味は自分で考えろや。
>>974 マジレスすると、ヘルプの命令リファレンスを開いて上から順に全部目を通してください。
どんな命令があるのか把握するぐらいはしておこう。
>>981 釣れた!!!
嘘。ごめん OTL
途中で変更したくなったケースということにしておこうw
982 名前:名前は開発中のものです。[sage] 投稿日:04/08/07 00:14 ID:BlFrhHRD
>>981 釣れた!!!
そこだけコピーってひでえな
HPSって書いてるからネタだろう。
それ以前に最近ageてるのは全部ある意味神の人。
夏休みっぽいから学生なのは間違いない。
おまえら夏休み終わるまで付き合う気か?スルーしたら?
もはや 付き合うこと自体がネタor釣り化してきるからなぁ