>>418
もう>>419で既出ですが。。
IF ABS(MX-EX)<=15 AND ABS(MY-EY)<=15 THEN @OVER
16×16スプライトキャラのゲームなんかではこのようにしておいて、
判定厳しいときはキャラサイズ値”15”の数を減らしていけば、イイ感じ?
自機座標にオフセット値を追加すれば、キャラの中心辺りに判定を持ってこれます。
>>448
大体こんな感じ?
PNLTYPE "OFF"
ACLS:CLEAR:GPAGE 1
X1=50:Y1=50:X2=100:Y2=100
GFILL X1,Y1,X2,Y2,13
@LOOP
VSYNC 1
TX=TCHX:TY=TCHY
IF !TCHST GOTO @LOOP
X=TX>=X1 AND TX<=X2
Y=TY>=Y1 AND TY<=Y2
IF X AND Y THEN BEEP
GOTO @LOOP
>>450
検証用プログラムだよ。
CLEAR:ACLS:BEEP:WAIT 60
FOR I=0 TO 2READ B$(I):NEXT
FOR I=0 TO 767
C$=""FOR J=0 TO 2
C$=C$+HEX$(RND(256),2)NEXT
COLSET B$(I/256),I%256,C$
NEXT:DATA BG,SP,GRP
じつはつづきがあります
IF I=239 THEN HH1=HH1-1:HH2=HH2+1 ELSE IF I=191 THEN HH1=HH1+1:HH2=HH2-1
LOCATE 3,12-HHY:PRINT "<>"(ひしがたのつもりで)
LOCATE 5,0:PRINT STRING$(INT(F/8),"l"
LOCATE 19,22:`PRINT (HY-120)*10;"ft "
IF HY<180 THEN LOCATE18,14:PRINT "-'- -'-" ELSE LOCATE 18,14:PRINT " "(Tの上下逆のかたちのつもりで)
IF HY<=120 OR F=280 THEN 270
LINE(0,H1)-(639,H2),0:LINE(328,100)-(258,HY),0:LINE(328,100)-(398,HY),0
H1=H1+HH1:H2=H2+HH2:HY=HY+HHY:F=F+1
LINE(0,H1)-(639,H2),0:LINE(328,100)-(258,HY),0:LINE(328,100)-(398,HY),4
FOR W=0 TO WA:NEXT:GOTO 130(I=INP(0)のところ)
IF HHY>-2.5 AND H1<102 AND H1>98 THEN 300(FoR I=0 TO 7:ROLLのところ)
COLOR 2:LOCATE 18,9:PRINT "MISS !":BEEP
LOCATE 18,12:PRINT "XXXXX":LOCATE 18,13:PRINT "XXXXX":GOTO 330(LOCATE 12,23:PRINT "PUSHのところ)
FOR I=0 TO 7:ROLL-1:ROLL 1:NEXT:COLOR 5
LOCATE 14,7 :PRINT "NICE LANDNG !"
LOCATE 10,18:PRINT "YOUR SCORE:";(ABS(2.5-HY)+280-F)*100;"pts .":BEEP
LOCATE 12,23:PRINT "PUSH (SPACE) KEY!"
IF INP(9)=191 THEN GOTO 40 ELSE 340
じつはつづきがあります
IF I=239 THEN HH1=HH1-1:HH2=HH2+1 ELSE IF I=191 THEN HH1=HH1+1:HH2=HH2-1
LOCATE 3,12-HHY:PRINT "<>"(ひしがたのつもりで)
LOCATE 5,0:PRINT STRING$(INT(F/8),"l"
LOCATE 19,22:`PRINT (HY-120)*10;"ft "
IF HY<180 THEN LOCATE18,14:PRINT "-'- -'-" ELSE LOCATE 18,14:PRINT " "(Tの上下逆のかたちのつもりで)
IF HY<=120 OR F=280 THEN 270(IF HHY>-2.5スペースの次
LINE(0,H1)-(639,H2),0:LINE(328,100)-(258,HY),0:LINE(328,100)-(398,HY),0
H1=H1+HH1:H2=H2+HH2:HY=HY+HHY:F=F+1
LINE(0,H1)-(639,H2),0:LINE(328,100)-(258,HY),0:LINE(328,100)-(398,HY),4
FOR W=0 TO WA:NEXT:GOTO 130(I=INP(0)のところ)
IF HHY>-2.5 AND H1<102 AND H1>98 THEN 300(FoR I=0 TO 7:ROLLのところ)
COLOR 2:LOCATE 18,9:PRINT "MISS !":BEEP
LOCATE 18,12:PRINT "XXXXX":LOCATE 18,13:PRINT "XXXXX":GOTO 330(LOCATE 12,23:PRINT "PUSHのところ)
FOR I=0 TO 7:ROLL-1:ROLL 1:NEXT:COLOR 5
LOCATE 14,7 :PRINT "NICE LANDNG !"
LOCATE 10,18:PRINT "YOUR SCORE:";(ABS(2.5-HY)+280-F)*100;"pts .":BEEP
LOCATE 12,23:PRINT "PUSH (SPACE) KEY!"
IF INP(9)=191 THEN GOTO 40 ELSE 340