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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0309
わた雲 (投稿者削除)1未解決


わた雲

リンク

2019/3/9(Sat) 00:31:43|NO.86839

この記事は投稿者により削除されました。
2019/3/11(Mon) 13:36:02



この記事に返信する


リンク

2019/3/10(Sun) 10:10:21|NO.86851

サンプルが動かなかったのでテキトーにつくってみました
これはこれで問題ありありソースですが、とりあえずpgetで判定はおすすめしません

#define OBJMAX 20 #define global ctype dist2p(%1,%2,%3,%4) sqrt(((%1)-(%3))*((%1)-(%3))+((%2)-(%4))*((%2)-(%4))) randomize screen 0,1200,800 gmode 2 buffer 1 //絵を読み込ます場合はここを変える color:boxf color 255,0,0:circle 0,0,100,100,1 color 0,0,255:circle 100,0,200,100,1 celdiv 1,100,100,50,50 dim objX,OBJMAX //障害物座標適当に設定 dim objY,OBJMAX repeat OBJMAX objX.cnt=rnd(12)*100 objY.cnt=rnd(8)*100 loop r=49 speed=4 myX=600.0:myY=400.0 gsel 0 repeat //メイン redraw 0:color:boxf gosub *player:gosub *putobj redraw 1:await 16 loop *putobj //障害物表示と当たり判定 repeat OBJMAX if dist2p(myX,myY,objX.cnt,objY.cnt)<=(r*2){ d=atan(myX-objX.cnt,myY-objY.cnt) myX+=sin(d)*speed:myY+=cos(d)*speed } pos objX.cnt,objY.cnt:celput 1,0 loop return *player //プレイヤー移動と表示 direct=0 stick ky,15 if ky{ if ky&1:direct+=270 if ky&2:direct+=180 if ky&4:direct+=90 if ky\3==0:direct/=2 if ky==9:direct=315 myX+=sin(deg2rad(direct))*speed:myY+=cos(deg2rad(direct))*speed } pos myX,myY:celput 1,1 return



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