HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0829
ウーパールーパーマ○オみたいなゲーム作成中13解決


ウーパールーパー

リンク

2007/8/29(Wed) 10:32:04|NO.10749


*start buffer 1,25,25 :color 128,128,128 : boxf 0,0,50,50 buffer 2,25,25 : color 255,255,255 : boxf 0,0,50,50 buffer 3,25,25 : color 255,255,255 : boxf 0,0,50,50 buffer 4,100,50: color 255,0,255 : boxf 0,0,50,50 buffer 5,25,25 : color 255,0,0 : boxf 0,0,50,50 gmode 2 screen 0,200,800,,,,200,300 : gmode 2,25,25 randomize dim map,4,16 //マップ作成 map(0,1)=0,rnd(2),rnd(2),rnd(2):map(0,3)=0,1,0,1:map(0,5)=rnd(2),0,rnd(2),0:map(0,7)=0,1,0,0:map(0,9)=rnd(2),0,1,0 map(0,5)=1,1,0,0:map(0,1)=rnd(2),0,rnd(2),1:map(0,2)=1,1,0,1:map(0,4)=1,0,rnd(2),1:map(0,15)=1,1,1,1 dim teki,4,16 teki(0,4)=rnd(2),0,1,0 teki(0,8)=rnd(2),0,1,0 teki(0,12)=rnd(2),0,1,0 cx=0 : cy=0 : x=50.0 : y=710.0 : s=3.0 : j=0.0 : gs=0.0 : cy=y+150 : pos x,y : gcopy 4,0,0 *main redraw 0 : color 0,0,0 : boxf cy=y-150 : cy=limit(cy,0,500) //カメラ調整 groll cx,cy //スクロール color 128,128,128 repeat 4 : c=cnt : repeat 16 //マップ描画 if map(c,cnt)=1 : pos c*50,cnt*50 : gcopy 1,0,0,50,50 loop:loop l=l+1 if l=175:l=0 repeat 4 : c=cnt : repeat 16 //マップ描画 if teki(c,cnt)=1 : pos l*1,cnt*50 : gcopy 5,0,0,50,50 loop:loop color 255,255,255 //情報を表示 gs:落下速度 j:ジャンプ pos 5+cx,5+cy:mes ""+strf("%.1f",x)+","+strf("%.1f",y)+" GS:"+strf("%.1f",gs)+" J:"+strf("%.1f",j) gs+=0.2 : gs=limitf(gs,0.0,8.0) //落下速度を加算 pget x,y+12 //左のブロックに当たっているか if ginfo(16)=128 && ginfo(17)=128 && ginfo(18)=128 : x+=s pget x+25,y+12 //右のブロックに当たっているか if ginfo(16)=128 && ginfo(17)=128 && ginfo(18)=128 : x-=s pget x+12,y+20 //下のブロックに当たっているか if ginfo(16)=128 && ginfo(17)=128 && ginfo(18)=128 : gs=0.0 y+=gs //落下 if j>0.1{//ジャンプ j-=0.5 : y-=j-8 pget x+12,y+20 //下のブロックに当たっているか if ginfo(16)=128 && ginfo(17)=128 && ginfo(18)=128 : y-=15.0:j=0.0 pget x+12,y //上のブロックに当たっているか if ginfo(16)=128 && ginfo(17)=128 && ginfo(18)=128 : y+=13.0:j=0.0 } if kyara=1:pos x,y : gcopy 4,0,0 if kyara=0:pos x,y : gcopy 4,25,0//自機表示 redraw 1 : stick key,15 if key&1 : x-=s:kyara=0 if key&4 : x+=s:kyara=1 if key&16 : if j<=0 && gs<=0 : j=30.0 //スペースキーが押されていて、落下速度が0ならジャンプする x=limitf(x,0.0,175.0) : y=limitf(y,0.0,775.0) //自機が画面外に出ないようにする if y=775:goto *geov if y=0:goto *kuri await 15 : goto *main *geov dialog "you a lose",0,"" goto *start *kuri dialog "you a win",0,"" goto *start
で動いている赤い物体に触れると*geovに移動するにはどうすればいいんですか?



この記事に返信する


.

リンク

2007/8/30(Thu) 10:09:09|NO.10769

自機と物体で矩形の当たり判定をすれば良いと思います。

http://hspwiki.tm.land.to/?%BE%D7%C6%CD%C8%BD%C4%EA



ウーパールーパー

リンク

2007/8/30(Thu) 11:09:45|NO.10770

意味不明です
スクリプト書いてください



nano

リンク

2007/8/30(Thu) 15:57:19|NO.10779

それが人にものを頼む時の態度ですか?



ウーパールーパー

リンク

2007/8/30(Thu) 19:45:00|NO.10781

すいません
スクリプトを教えてください



GENKI

リンク

2007/8/30(Thu) 20:55:34|NO.10787

> 意味不明です
> スクリプト書いてください

それはどこのテンプレートから持ってきた返答ですか。w
絵にかいたようなクレクレ君回答ですね。


さて、真面目にいきます。
.さんが提示したアドレスには、スクリプトはHSP2用がほとんどですが解説も掲載されています。
ウーパールーパーさんはこの解説ページのどこまでが理解できてどの辺が理解できないんでしょうか?そこが分からないと追加解説の仕様がありません。

また、HSP開発Wikiでは昔マリオ系シューティングの開発企画が行なわれていたのでそちらも参考にされてみてはどうでしょうか?
今やHSP開発Wikiはサンプルと解説の宝庫ですよ。ぜひ活用してください。
[HSP開発Wiki]
http://hspwiki.tm.land.to/

さてさて、スクリプト見たんですが…。
ブロックと自機との衝突判定はできています。.さんのリンク先とはアルゴリズムが違いますが、ちゃんと機能してます。
…これで質問すると言うことはどこかからのコピペかな?
まずは自分が書いたスクリプトの構造を理解されてはどうでしょうか?
分からないときは、「ここまでは理解できたと思うんだけど、ここの意味がよく分からない。○○という意味なのかなと予想したのだけれど違ってるようです。」
とこんな感じで、自分の理解したことを説明しつつ、どこが分からないのか(自分の予想を踏まえて)教えてくれるといい回答が得やすいですよ。



kz3

リンク

2007/8/30(Thu) 21:23:32|NO.10789

管理人から注意されたことも聞けないような子がただの利用者(管理者と区別した表現として)一人の注意を聞くとは思えません。
ここはシカトするべきだと思っている利用者から見れば、シカトできない注意もわずらわしく感じると思います。



GENKI

リンク

2007/8/30(Thu) 21:24:00|NO.10790

> 意味不明です
> スクリプト書いてください

> すいません
> スクリプトを教えてください

態度は良くなりましたが、やってることはほとんど同じです。
まずは自分がなにをやっているのか理解したほうがいいかもしれません。
参考になりそうなサイトのリンクをはっておきます。

脱!教えて君同盟: http://myu.daa.jp/osiete/index.html



music

リンク

2007/8/31(Fri) 02:39:48|NO.10800

musicです。
分かっていらっしゃるならいいのですが...
↑のスクリプトで、ちょうど赤ブロックとブロックが重なったとき、
自機が通過するとすり抜けてしまいます^^
まぁ、頑張ってください...



ウーパールーパー

リンク

2007/8/31(Fri) 08:38:28|NO.10803

やり方がわかりません。
何でどうすればいいんですか?



ウーパールーパー

リンク

2007/8/31(Fri) 09:01:19|NO.10805

limit使えばいいんですよね…



.

リンク

2007/8/31(Fri) 09:31:04|NO.10806

*geovに飛ばすだけならifとgoto(gosub)だけで出来る。



ウーパールーパー

リンク

2007/8/31(Fri) 12:12:10|NO.10807

どうやってやるんですか?
おしえてください



ウーパールーパー

リンク

2007/8/31(Fri) 13:07:55|NO.10809

自己解決しました
ご協力ありがとうございました



ONION software Copyright 1997-2023(c) All rights reserved.