HSP - Hot Soup Processor [6]
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。
04/03/07 21:01ID:XxrmN16J( ,,,)
.( ,,) スクリプト言語 HotSoupProcessor について
( ,,). ゲーム製作の視点から、また〜りと語り合うスレ。
, -──- 、
(,;::-──-; )-、
.|` ̄ ̄ ̄´;;|ヽ l * 質問する前に検索してみる事
l; :::;;;l-' / * ヲチ、ネタなどはスレ違い
,-ヽ───.'-、´.. * 前スレ、関連サイトは >>2-5 あたり
ヽ ──── '
0802あみじ房 ◆HSP.RPGgiU
04/05/28 03:20ID:RMMyZU5nこうなったら、うんこーど垂れ流し。
あらかじめMasCnt=64
Fps=57〜64あたりを振動します。
tmpA=0
if waitN\4=1 &(MasCnt\4=0):tmpA=1
if waitN\4=2 &(MasCnt&1):tmpA=1
if waitN\4=3 &(MasCnt\4>0):tmpA=1
es_sync waitN/4+tmpA
if MasCnt\60=0{
if fpsN>60: waitN++
if fpsN<60: waitN--
}
await 0
getfps fps
0804名前は開発中のものです。
04/05/28 03:24ID:f11SuhD40805名前は開発中のものです。
04/05/28 03:31ID:B2FUmzQt0806659
04/05/29 00:25ID:Pt5fKNVuscreen 0,450,400,0
boxf 0,250,450,0
font "fontname",64:color 255,255,255,
pos 135,100:mes "(・∀・)"
sysfont 0
pos 350,250:objsize 100,30:button "攻撃",*turn
button "防御",*turn
button "呪文",*turn
button "回復",*turn
button "ギブアップ",*turn
color 0,0,0:pos 0,250:mes "ジサクジエンが現れた!"
*turn
mes "現在の自分の体力は"+a+"です。"
mes "対戦相手の体力は"+b+"です。"
stop
背景が白の部分のメッセージのみを削除したい場合どうすれば良いのでしょうか?
0807名前は開発中のものです。
04/05/29 01:12ID:ZmylM7fY0809名前は開発中のものです。
04/05/29 03:01ID:2wbFhRFq直線的な敵の弾はes_adirやes_aimを1回使えば
後は勝手に飛んでくれるから楽なんだけど
誘導弾とか複雑な動きをする弾を作ろうとすると
一気に難易度が上がって頭が混乱してしまふ。
どっかに分かりやすく説明しているHPないかなあ…。
0810名前は開発中のものです。
04/05/29 04:51ID:gjUYV/s/あとは向きを変える量に限度を設けたり、加減速させたりと
工夫すればいろいろ弾道が変えられる。
0811名前は開発中のものです。
04/05/29 08:56ID:GpgFR7vIhttp://gamdev.org/up/img/623.zip
ム板にあったやつだが、こんなの作るのに何ヶ月かかりますか?
0812名前は開発中のものです。
04/05/29 13:28ID:uPbApZs2なんで作った本人に聞かないの?
0813名前は開発中のものです。
04/05/29 13:55ID:OUhxOlPH0814名前は開発中のものです。
04/05/29 14:16ID:bXU24y5mと言ったら、
>>813がム板の方を向いた。
0815名前は開発中のものです。
04/05/29 14:19ID:u+esvadO/ ̄ ̄ ̄`ヽ、
/ ヽ
/ \,, ,,/ |
| (●) (●)||| |
| / ̄⌒ ̄ヽ U.| ・・・・・・・・ゴクリ。
| | .l~ ̄~ヽ | |
|U ヽ  ̄~ ̄ ノ |
|  ̄ ̄ ̄ |
0816名前は開発中のものです。
04/05/29 16:29ID:MC0KVmMYム板はムーというオカルト雑誌があり、そのための板の事。
0817名前は開発中のものです。
04/05/29 16:35ID:ezWmlC3b日本語で『こんにちはと、言う。』と入力すれば
ダイアログに『こんにちは』と出るプログラミング言語登場!!
PNGもサポートしてるので、かなりおすすめです!!
また、【『http://www.xxxx.xx/』を、『index.htm』へ、HTTPダウンロード。】
とすれば自動的にダウンロードできる優れ物です!!
↓日本語プログラミング言語『ひまわり』
http://hima.chu.jp/index.htm
↓日本語プログラミング言語『ひまわり』スレッド
http://pc5.2ch.net/test/read.cgi/tech/1083053283/l50
0818名前は開発中のものです。
04/05/29 17:25ID:MWoU28pe日本語で『ダイアログ->言う("こんにちは");』と入力すれば
ダイアログに『こんにちは』と出るプログラミング言語登場!!
PNGもサポートしてるので、かなりおすすめです!!
また、【HTTP->ダウンロード("http://www.xxxx.xx/index.html");】
とすれば自動的にダウンロードできる優れ物です!!
↓プログラミング言語『C++』
http://どこか
↓C++相談室 Part番外
http://pc5.2ch.net/test/read.cgi/tech/1083053283/l50
※上記クラスライブラリは自力で書いてください。
0819名前は開発中のものです。
04/05/29 17:29ID:MC0KVmMYせめて、.Netにしとけよ。
そしたら結構楽にダイアログとかだせるんだから。
0820名前は開発中のものです。
04/05/29 18:02ID:OJUSQiYwついはまっちゃったよ。
0821名前は開発中のものです。
04/05/29 18:13ID:GVTJBp83これおもしろいんだが作者どこだ?
あちこち貼られてて怨恨なのか宣伝なのかよくわからん
RPGというよりシミュレーションゲーム
昔の投稿雑誌に載ってそう
15年ぐらい前に逆行したようだ
おもしろいのに面倒なので途中で辞めたのも昔ゲーぽくていい
0822名前は開発中のものです。
04/05/29 19:30ID:7X683YAW多額の開発費を掛けたサイズもギガバイトクラスのゲームが割れとしてフリーの状態にされちまう。
そんな中、素人の作ったゲームなんざもう・・・。
そんな違法な事やってるのごく一部だと思っても、やはり空しさを感じる。
シューティングもMAMEでアーケードの奴やった方が面白い・・・。
0823名前は開発中のものです。
04/05/29 20:04ID:IljUW8jhそうでもない
0824名前は開発中のものです。
04/05/29 20:22ID:C3O76Lk2見るとこが違うしな
0825名前は開発中のものです。
04/05/29 20:43ID:kGQBxSjU単純というと語弊があるがむかしのファミコンぐらいのゲームだって需要はある。
0826名前は開発中のものです。
04/05/29 21:16ID:fcyCqrkW市販のゲームがつまんないからフリーゲーム作るんじゃん
0827名前は開発中のものです。
04/05/29 21:18ID:M0sTP6BSそして友人に喜んでもらえればそれでいい、という人もな。
あるいは市販では絶対に出せない類のものにも需要はあるのだよ。
版権ものとかな。
アーケードものについてもそうだ。ゲーセンで名前を残したいやつだっているさ。
単に遊びたいだけ、という者ばかりでもないのだよ。
君の考えは否定しないが、だからといって割れは推奨できないよな。
0828名前は開発中のものです。
04/05/29 21:21ID:aFb9pza5同人ゲームは完成、コミケにいったときの喜びを得るためだから楽しい
その差。
0829名前は開発中のものです。
04/05/29 22:39ID:xNV7czK50830名前は開発中のものです。
04/05/29 22:47ID:86uzP4LNhttp://pc5.2ch.net/test/read.cgi/tech/1085465098/
こっちでゲーム製作計画進行中。
0831あみじ房 ◆HSP.RPGgiU
04/05/29 23:56ID:Wk3fe4Dw誘導弾にもいろいろありますねー。
@es_aim技
常にes_aimで自機を狙う。一番簡単。
ただ、これはかなりキツいホーミングになるんで、
必ず指定フレーム後解除するか、es_aimを使う頻度を下げないとだめ。
Aes_apos技
常に自機と誘導弾の座標を調べる。
自機x > 弾x なら弾速度x成分を増やす。
もちろん調整も必要。
速度成分の上限や、何フレームに一度調べるかなど。
Bes_adir技
常に自機と誘導弾の相対角度を調べる。
角度の差を縮めるように設定する。
その際、右か左かどちらに回すかの判定がムズイ。
ちなみにes_aimはかなり制度が悪い。
低密度弾幕ならごまかせるが、高密度低速弾幕系STGの場合
使わない方がいい。
自前で、制度の高い角度を算出しないといけない。
0832名前は開発中のものです。
04/05/30 03:45ID:yosuhWP1随分前もこんな感じで荒してた奴がいたな。
0833名前は開発中のものです。
04/05/30 04:07ID:vK8wxO80おまえらの言っている意味がわからん。
自分でプログラムを組んで、絵を描いて、動かして、完成したそれをサイトで公開して、
人の感想を聞いたり、2ちゃんやフリゲサイトで紹介されたり、雑誌掲載されたり。
そういった諸々が楽しいから俺はゲームを作ってる。
ゲームで遊ぶ事と作る事はまったく別の事だ。
それともおまえらゲームを作るんじゃなくて、ただ遊ぶ目的だけでこのスレ(板)にいるのか?
しかも堂々とnyで落としたとか言いやがって。
お前等みたいなバカのせいで47氏は逮捕されたんだろうが。氏ね乞食どもが。
0834名前は開発中のものです。
04/05/30 04:13ID:2/SVZbO50835名前は開発中のものです。
04/05/30 04:45ID:akGhK5bKキャラクター(今回は●で)を、クリックで指定したセルに3セル/秒くらいの速度
で移動させるにはどうしたら良いかのぉ。
色々調べてみて、マウスの座標を取得とかあったんだが、クリックとかがどうにも・・・
できればご教授願いたき所存・・・・
0836名前は開発中のものです。
04/05/30 05:33ID:gMx05zkN;意図するものと違ったらスマソ
chr="●"
x=312 :y=232
mx=312 :my=232
repeat
redraw 0
stick m :if m&256 :gosub *ms
gosub *draw
if x!mx|(y!my) :gosub *mov
redraw 1
await 30
loop
*draw
color :boxf
color 255,255,255
pos x,y :mes chr
return
*ms
mx=mousex :my=mousey
if mx\2!0 :mx--
if my\2!0 :my--
return
*mov
if x!mx :xx=mx-x :if xx>0 :x+=2 :else :x-=2
if y!my :yy=my-y :if yy>0 :y+=2 :else :y-=2
return
0837名前は開発中のものです。
04/05/30 06:17ID:X0lyeO/C>>829
やるならせめて人前でカミングアウトせず隠れてやれよ厨房。
nyやってる俺ってすげ〜っみたいに思ってるのか?
あと、釣りならメル欄に釣りってやらないと釣りにならないよ。
あと出しで言っても負け犬の遠吠え。w
あ、ny使わないと欲しいゲームも手に入れられない、
お前らは元々人生負け犬の最下層のクズ人間か。wwww
0838835
04/05/30 13:35ID:akGhK5bKか、完璧すぎますΣ(´Д` )
まさに頭の中にあったやつですよ、これ。
しかしまだ結構な初心者なので、どういう仕組みなのか・・・
(!とか&とか、HSPで使うんだねぇ)
0839名前は開発中のものです。
04/05/30 14:01ID:7tkvVNQj意外と簡単だと思う。
あと、ifの説明見れば!も&も、あと\も載ってる。
0840名前は開発中のものです。
04/05/30 14:47ID:WHRdgrVu#define WHITE 255
#define BALL_SPEED 50
#define BALL_SPIN 5
repeat
redraw 1 : redraw 0
await 40 : color : boxf
stick key
if key&256>0&(MoveFlag=0){
Goto_x = mousex
Goto_y = mousey
MoveFlag = BALL_SPEED
}
if MoveFlag{
ax = Ball_x : ay = Ball_y
Ball_x -= -Goto_x+Ball_x/MoveFlag+BALL_SPIN
Ball_y -= -Goto_y+Ball_y/MoveFlag
MoveFlag-=MoveFlag>1
if Ball_x=ax&(Ball_y=ay) : MoveFlag=0
}
palcolor WHITE
pos Ball_x ,Ball_y
mes "●"
loop
0841名前は開発中のものです。
04/05/30 15:21ID:KyJQRr1rここを我慢して読むとわかる。あちこち貼られてるのは怨恨かと。
http://pc5.2ch.net/test/read.cgi/tech/1085465098/
>>840
同じ場所をクリックすると・・・。
0842840
04/05/30 15:30ID:WHRdgrVu#define WHITE 255
#define BALL_SPEED 45
#define BALL_SPIN_X 3
#define BALL_SPIN_Y 0
Ball_x=310 : Ball_y=230
repeat
redraw 1 : redraw 0
await 40 : color : boxf
stick key
if key&256>0&(MoveFlag<2){
Goto_x = mousex : Goto_y = mousey
MoveFlag = BALL_SPEED
}
if MoveFlag{
ax = Ball_x : ay = Ball_y
Ball_x -= -Goto_x+Ball_x/MoveFlag+BALL_SPIN_X
Ball_y -= -Goto_y+Ball_y/MoveFlag+BALL_SPIN_Y
MoveFlag-=MoveFlag>1
}
palcolor WHITE
pos Ball_x ,Ball_y
mes "●"
loop
0843835
04/05/30 16:24ID:akGhK5bK>>839
簡単ナノカ・・・
わからないコマンドなんかは、マニュアルで調べてみます(ifも)
なぜだか移動ルートまで想定してたのとまったく同じだったので、そこらへんも
なぜなのか調べてみよう。
考えてた移動ルート
==========
=********=
=***→→→★*=
=**/*****=
=*●******=
=********=
==========
>>840
すげーなんかうねうねする。
でも自キャラの移動方法として、●を画像に置き換えてやるつもりだから>>836の
ソースが妥当かなー。
0844835
04/05/30 17:14ID:akGhK5bK公式のマニュアルにも書いてないし・・・
ここだけ教えてもらえますでしょうかOTL
//ついでに#deineとrepeat~loopもそれとなく覚えた´ω`)ノ
0845名前は開発中のものです。
04/05/30 17:19ID:Vtt1i+fd余り。
0846名前は開発中のものです。
04/05/30 17:19ID:m18zJXFK剰余。除算の余り。
10/3 = 3
10\3 = 1
0847名前は開発中のものです。
04/05/30 17:20ID:m18zJXFK被った。スマソ。
0848名前は開発中のものです。
04/05/30 17:24ID:Vtt1i+fdイヤ、俺のは一言だし・・・
0850名前は開発中のものです。
04/05/30 17:48ID:2/SVZbO50851名前は開発中のものです。
04/05/30 19:43ID:4+Wlytac0852835
04/05/30 23:44ID:akGhK5bK次は自分で似たようなのを組めるかどうか試してみよう。
現在付属のサンプルソース(HSPで作った説明書みたいなやつ)を、
命令リストと見比べながら読み解いてます。
やっと配列変数の概念がわかった(まだ試してないけど)。
ところでこのスレで段違いに初心者な俺はスレ違いですか?(´・ω・`)
0853あみじ房 ◆HSP.RPGgiU
04/05/31 00:04ID:cn/WZnQY普段から物を0から数えないと気がすまなくなるほど
配列を使いまくりましょう。
スレ違いの人は居ないと思う。
スレ違いのレスはあると思う。
0854名前は開発中のものです。
04/05/31 00:12ID:5FdWsV2H人前でカミングアウト?俺は誰の前でカミングアウトしたんだよ?www
ここで何か告白したら他人に重大な秘密を知られた事になんのか?(w
現実との区別位つけような僕ちゃん(w
ま、そう怒るなよ。お前がどんなカスゲー作ろうとお前の勝手だよ。
俺は多分、お前の作った素人丸出しのゴミゲーなんざ見ただけで吐き気を催すだろうけどなwww
0855名前は開発中のものです。
04/05/31 00:21ID:3JQuBpffお前のことはどうでもいいから、いちいちここに書くな。
0856名前は開発中のものです。
04/05/31 00:35ID:MHL5IPht0857名前は開発中のものです。
04/05/31 04:53ID:rSZBBnnk0858854
04/05/31 04:58ID:/Tohmlfi俺はそういう会社に勤めてるから調べる機械あるし。
0859名前は開発中のものです。
04/05/31 05:26ID:wvAbCy2IIPなんか調べて何に使うのかね。
0860名前は開発中のものです。
04/05/31 05:31ID:8fj1VvMV0861名前は開発中のものです。
04/05/31 06:01ID:y4am2OEK>>858は真性っぽいから放置しる。
↓次のHSPの質問ドーゾ。
0862名前は開発中のものです。
04/05/31 07:09ID:DXb+lOBmHSPについてどういう質問をすればいいんですか?
0863名前は開発中のものです。
04/05/31 07:31ID:qLapFQX0bx=4 : by=4 : lx=640 : ly=480
*main
redraw 1
color 0,0,0 : boxf : color 255,255,0 : pos x,y : mes "●"
line lx,0,lx,480 : line 0,ly,640,ly
x+=bx : y+=by
gosub *ball : gosub *bar
redraw 0 : await 1
goto *main
*ball
if x<0 : bx=4
if x+16>lx : bx-=4
if y<0 : by=4
if y+16>ly : by-=4
return
*bar
stick ky,15
if ky=1 : lx-=4 : if lx<200 : lx=200
if ky=4 : lx+=4 : if lx>640 : lx=640
if ky=2 : ly-=4 : if ly<200 : ly=200
if ky=8 : ly+=4 : if ly>480 : ly=480
return
→● │← こういう動きでぶつかった場合ボールの移動速度が増えてしまうんですけど
速度を一定にするにはどうしたらいいでしょう?
0864名前は開発中のものです。
04/05/31 09:56ID:y4am2OEKbx=4 : by=4 : lx=640 : ly=480
*main
title ""+bx+"/"+by+"//"+x+"/"+y;速度と位置表示
redraw 0;描画開始は1じゃなくて0or2 終了は1
color 0,0,0 : boxf : color 255,255,0 : pos x,y : mes "●"
line lx,0,lx,480 : line 0,ly,640,ly
if (bx<0)&(bx<-4): x=x+(bx+4):bx=-4;速度4以上なら位置からバーの進んだ分を引いて速度を4に修正
if (by<0)&(by<-4): y=y+(by+4):by=-4
x+=bx : y+=by
gosub *ball : gosub *bar
redraw 1 : await 1
goto *main
*ball
if x<0 : bx=4
if x+16>lx : bx-=4
if y<0 : by=4
if y+16>ly : by-=4
return
*bar
stick ky,15
if ky=1 : lx-=4 : if lx<200 : lx=200
if ky=4 : lx+=4 : if lx>640 : lx=640
if ky=2 : ly-=4 : if ly<200 : ly=200
if ky=8 : ly+=4 : if ly>480 : ly=480
return
0865名前は開発中のものです。
04/05/31 12:26ID:YUeo6ud6ありがとうございます。上手くいきました。
if (bx<0)&(bx<-4): x=x+(bx+4):bx=-4
if (by<0)&(by<-4): y=y+(by+4):by=-4
この辺が難しいですね...一人じゃ思いつかない
0866名前は開発中のものです。
04/05/31 13:02ID:tZhQhQ6j指定座標(x,y)のパレット番号nを得るに
はどうしたらいいんでしょうか?
0867名前は開発中のものです。
04/05/31 13:56ID:PTm6pFZmマニュアルすべて読んでからまた来い。
0868名前は開発中のものです。
04/05/31 14:19ID:LThXnLUmpgetもgetpalもRGB値しか取得できないように思うのですが?
0869名前は開発中のものです。
04/05/31 15:27ID:NGIbZxZJif mentime=1 {
dim missile_SP,1400 :dim missile_kakudo,1400 :dim missile_count,1400
}
if time\100=0 {
es_new missile_SP.missile_temp,0
efx_set missile_SP.missile_temp,257,127,85
es_type missile_SP.missile_temp,32;誘導ミサイルのタイプ値
missile_count.missile_temp=20;誘導ミサイルの誘導時間
missile_kakudo.missile_temp=0;誘導ミサイルの方向入力
es_adir missile_SP.missile_temp,missile_kakudo.missile_temp,200;誘導ミサイルの速度、方向
missile_temp+
if missile_temp>=1400 :missile_temp=0
}
;---------------------誘導ミサイルの動き管理---------------------------------------
enemy=0
repeat
es_find enemy,32,enemy;誘導ミサイル(32)検索
if enemy=-1 : break;なければ出る
es_get ex,enemy,3;x座標取得
es_get ey,enemy,5;y座標取得
es_get en,enemy,12;キャラクタ番号取得
if (missile_count.enemy>0)&(mentime\2=0) {;ミサイルの誘導スクリプト
missile_count.enemy-
missile_kakudo.enemy-=1
es_adir missile_SP.enemy,missile_kakudo.enemy,200
}
enemy+
loop
0870869
04/05/31 15:29ID:NGIbZxZJ上のスクリプトだと最初の3つの弾しか半円で飛んでくれません。
何が悪いのかどなたかご指摘下さい。
0871名前は開発中のものです。
04/05/31 15:37ID:aQ5PzfpNif (missile_count.enemy>0)&(mentime\2=0) {;ミサイルの誘導スクリプト
のmentimeあたりが悪そう。
そこら辺いじくってみて。
0872名前は開発中のものです。
04/05/31 16:16ID:vF6n5+OE標準ではできなかったんじゃないかな
自分でプラグイン組むならHSPDLL.HTMの
>vram_adr = pBit + ( ( sy - 1 - y ) * sx ) + x;
の値もってくりゃ良いだけだったと思う
0873名前は開発中のものです。
04/05/31 16:24ID:HzRP4KlJdialog "bmp;*.jpg;*.mag", 16
if stat == 0 : end
screen 0,,, 1
picload refstr
mref vram, 66
x=-1 : y=-1
repeat
wait 1
if (x!=mousex)|(y!=mousey) {
x = mousex : y = mousey
if (x<0)|(y<0)|(x>=winx)|(y>=winy) : continue
peek c, vram, winy-1-y*winx+x
getpal c
title "色番号 : "+c+" ("+rval+","+gval+","+bval+") - ["+x+","+y+"]"
}
loop
0875名前は開発中のものです。
04/05/31 19:16ID:ZbZa2asJstop
mesと"テスト"の間には半角スペースがいるって書いて歩けど
スペースいれなくてもエラーにならない・・・あとスペース何個入れてもエラーにry
あとtabは見易さだけのためですか?ほかに意味はないんですか?
0876名前は開発中のものです。
04/05/31 19:42ID:DXb+lOBm2個以上の半角スペースも1個と変わらない。
スペース無しは解釈してくれるから基本的に問題は無いが、
例外も有るし、見やすさにも関わるから勧めない。
mes 変数とかから半角スペース取っちゃ駄目とか。
0877名前は開発中のものです。
04/05/31 20:26ID:wvAbCy2I見やすくできるところは出来るだけやっといた方がいいと思う。
質問が多くて活気が出てきたな。
0878名前は開発中のものです。
04/05/31 20:35ID:GZ0TV6lZ0879名前は開発中のものです。
04/05/31 21:07ID:aQ5PzfpN保守性、拡張性に関係してくるから。
どんなプログラムでも人に見せるつもりで書いた方がいい。
0880名前は開発中のものです。
04/05/31 21:46ID:C4WpbdM70881854
04/05/31 21:49ID:MC65MFpQうるせー言っとくがお前らのIP丸わかりだぞ。
俺はそういう会社に勤めてるから調べる機械あるし。
ワロタ。まさか人を騙って反撃に来るとは。新しい形だ。しかも言ってる事ビミョーだな。
0882名前は開発中のものです。
04/05/31 22:11ID:BCUuzvezシューティングを作成中なのですが、プログラムというのは実質初めてなので楽しくて仕方ありません(笑)。
しかし、いろいろ考えているのですが、うまい解法が見つからずこまっております。
針状の弾を放射状に撃たせたり、ホーミングミサイルを撃たせたり、自機狙いの針弾を打たせたりしたいのですが、
針弾やミサイルのグラフィックを弾の進行方向にあわせて変化させたいと思っています。
なにかよい方法はありますでしょうか?
放射状針弾の場合は、es_adirを使う予定なので、
repeat 16
es_new missile
es_set missile,100,200,miss1
es_adir missile,kakudo
kakudo+=4
loop
といった形で書き、
if (kakudo>=0)&(kakudo<4):es_chr missile,miss1
if (kakudo>=4)&(kakudo<8):es_chr missile,miss2
などの条件式でkakudoを調べ、グラフィックを進行方向(kakudo)に合わせて変化させるつもりなのですが、
これよりも効率のよい方法がある気がしてなりません。
また、ホーミングミサイルの場合、es_aposを使う予定なので、そもそも進行方向を判別させるにはどうやったらよいか…。
0883あみじ房 ◆HSP.RPGgiU
04/05/31 23:15ID:2L+UblKZ>if (kakudo>=0)&(kakudo<4):es_chr missile,miss1
>if (kakudo>=4)&(kakudo<8):es_chr missile,miss2
この部分が、スプライト発生ルーチンか、
発生後の制御ルーチンかによって、話は違ってきますが、
角度は64制度ですよね??
ぢゃあ、例えば画像を16方向用意してるなら、
es_chr missile,kakudo+2/4
でなんとなく出来そうですが・・。
ところで放射状弾ってなんでしょうか?
発射後、そのまま直進ですか?
それなら、repeatのなかで角度を指定しましょう。
ホーミングは、常に自機との角度を算出して(es_ang ?)みてはどうでしょう?
0884名前は開発中のものです。
04/05/31 23:20ID:uJbT8e2Aソース中に数値型配列変数を使っているのですが、代入していない数字(10桁
くらい)が勝手に代入されて困っています。
スクリプト中に巨大な数字を代入する場面も計算式もなく原因がわかりません。
「HSP 数値型 配列変数」などで検索してみましたが、それらしきものは見つかり
ませんでした。
何が原因なのでしょうか?
0885あみじ房 ◆HSP.RPGgiU
04/05/31 23:40ID:2L+UblKZああ、ちなみにスプライトを扱う場合は、その数の要素を持った
いろいろなパラメータの配列をたくさん用意してたほうがいいですよ。
座標x,yなら dim SpPosX,512: dim SpPosY,512
同じように角度や速度、移動変化量
あと欠かせないのが発生からの時間とか。。。
スプライト発生時に一気にセットして、あとからそれらをいじくるだけで
ほとんど制御できるようになります。。
あ、882はサンプルとして書いてるだけかもしれませんが。
そうだったらすみません。
0886名前は開発中のものです。
04/06/01 00:25ID:6iIlrCBE0887835
04/06/01 00:31ID:VHCf9zGZこれで合ってますかねぇ。それに、わからないところも数ヶ所ありまして・・・
/////////////////////////////////////////////////
screen 0,640,480,1+4 ;スクリーン設定
chr="●" ;変数chrにキャラとなる「●」を代入
x=312 :y=232 ;最初のキャラ座標を指定
mx=312 :my=232 ;マウス座標を指定
repeat ;繰り返し始点
redraw 0 ;仮想空間に描写(ちらつき防止)
color 0,0,0
stick m,256,1 :if m&256 :gosub *ms ;左クリックされたか(左クリック=256)
gosub *draw ;*drawに移動
if x!mx|(y!my) :gosub *mov ;今キャラのある座標と違う場所がクリックされたら*movに移動
redraw 1 ;実際の画面に描写
await 0
loop ;繰り返し終点
*draw
color :boxf ;真っ黒に塗りつぶし
color 255,255,255
pos x,y :mes chr ;最初指定した座標に、変数chrに代入した「●」を描写
return
続く
0888835
04/06/01 00:31ID:VHCf9zGZ*ms
mx=mousex :my=mousey ;マウス座標を(mx,my)に代入
if mx\2!0 :mx-- ;もしmxを2で割り切れたら・・・?
if my\2!0 :my-- ;?
return
*mov
if x!mx :xx=mx-x :if xx>0 :x+=2 :else :x-=2 ;mxとxの距離を出して・・・xに2を足す引く?
if y!my :yy=my-y :if yy>0 :y+=2 :else :y-=2 ;?
return
/////////////////////////////////////////////////
とくに「*mov」の最後の方、+2、-2ドット動くとしか考えられない・・・・
0889名前は開発中のものです。
04/06/01 01:28ID:bF0pGXKiそれをオーバーしてると数値変数が狂ったような、2.55の頃ね
今は知らない
0890名前は開発中のものです。
04/06/01 12:32ID:4wE+6E6Vdimで配列変数宣言してるので、バッファオーバーフローはないと思いますが、
なるほど、オーバーフローしたみたいな変な数字だった。その線で調べてみます。
余談ですが、
dim a,2
dup sun,a.0
dup mon,a.1
sun=2
mon=4
stop
とすると、「sun.1」に「mon」に代入した数値が入っているのですが、既知の問題
ですか?
HSPでは変数宣言しなくても使えるけど、宣言したほうが良いのでしょうか?
0891名前は開発中のものです。
04/06/01 12:45ID:taFHsF0l0892名前は開発中のものです。
04/06/01 13:16ID:Pl1Pmbpcプゲラ
0893名前は開発中のものです。
04/06/01 13:58ID:ZGY61KETif mx\2!0 :mx--
;もしmxを2で割り切れなかったら1引く = 2で割り切れるようにする
if x!mx :xx=mx-x :if xx>0 :x+=2 :else :x-=2
;mxとxの距離を出して、もしクリック座標が●の座標より右ならX座標を+2
;左ならX座標を-2。右か左かは xx が正か負かで調べる。
>>890
仕様です。
dup は、変数のポインタをコピーするものと考えればよい。
sun は a.0 のポインタを示すので、sun.1 はおのずと a.1 になる。
0894名前は開発中のものです。
04/06/01 17:36ID:BHxNFbSAもっと効率のいい組み方は無いでしょうか
screen 0,400,400 : cls 4 :x=200 : y=100 : xx=-1 : yy=1
color 0,255,0
repeat
pset x,y : x+=xx : y+=yy : a+=1
if a=50 : xx=1 : yy=0
if a=150 : xx=-1 : yy=1
if a=200 : yy=-1
if a=250 : yy=1
if a=300 : xx=1 : yy=0
if a=400 : xx=-1 : yy=1
if a=450 : yy=-1
if a=500 : yy=1
if a=550 : xx=1 : yy=0
if a=750 : xx=-1 : yy=-1
if a=800 : xx=1 : yy=0
if a=900 : xx=-1 : yy=1
if a=950 : xx=1 : yy=0
if a=1050 : xx=-1 : yy=-1
if a=1200 : stop
await 1
loop
0895890
04/06/01 17:48ID:4wE+6E6Vなるほど、そういうことですか。よくわかりました。
ありがとうございました。
0896名前は開発中のものです。
04/06/01 19:01ID:gw1Pq8bg同じような処理はまとめてやった方がいい。
screen 0,400,400 : cls 4 :x=200 : y=100 : xx=-1 : yy=1 : a=0 : aa=0
color 0,255,0
table_a = 50,150,200,250,300,400,450,500,550,750,800,900,950,1050
table_xx = 1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1
table_yy = 0,1,-1,1,0,1,-1,1,0,-1,0,1,0,-1
repeat 1200
await 1
pset x,y : x+=xx : y+=yy : a++
if a = table_a.aa{
xx = table_xx.cnt
yy=table_yy.cnt
aa++
}
loop
loop
stop
0898名前は開発中のものです。
04/06/02 00:57ID:2CTwbJofdim data,32
data=5,2,2,5,7,5,2,2,5,7,5,2,2,2,2,7,2,2,5,2,2,7,7,7
table_xv=0,1,1,1,0,-1,-1,-1
table_yv=-1,-1,0,1,1,1,0,-1
v=data.0:x=200:y=100
repeat 1200
await 1
if a=50 {
a=0
aa++
v=data.aa
}
pset x,y:x+=table_xv.v : y+=table_yv.v:a++
loop
stop
とか、ごめん蛇足のような希ガス。
0899名前は開発中のものです。
04/06/02 01:39ID:c/2dYC5Y#define 段数 4
#define 辺 30
; 左から時計周りの進行方向を表現
way8x = -1, -1, 0, 1, 1, 1, 0, -1
way8y = 0, -1, -1, -1, 0, 1, 1, 1
; 辺が何本必要か求める
辺数 = 0 : repeat 段数,1 : 辺数 += cnt*4 : loop
; あらかじめ進行方向をセット
dim ways, 辺数 : ways.0 = 7 : n = 1
repeat 段数
段 = cnt
repeat 段+1*2 : ways.n = 4 : n++ : loop
if 段+1<段数 : repeat 段+1*2+1 : ways.n = cnt\2=0*6+1 : n++ : loop
m = 辺数-段数+段 : ways.m = 1
loop
; 描画
boxf : color 0, 255, 0
x = 300 : y = 100 : c = 0
repeat 辺数 * 辺
if (cnt\辺) == 0 : way = ways.c : c++; 1辺描くごとに進行方向を変える
pset x, y : x += way8x.way : y += way8y.way
wait 1
loop
stop
0900名前は開発中のものです。
04/06/02 12:14ID:qkG6UdlN0901名前は開発中のものです。
04/06/02 17:56ID:R0QbJQN+HGIMGxとZGPでは、2D描画性能はどちらが速いでしょうか。
レス数が900を超えています。1000を超えると表示できなくなるよ。