| |
|
|
| Posesiones veces una kleine kollisionsroutine geschrieben con uno API-Función. Dabei se como Edición una Collisonsrechteck ausgegeben , Así que el Überschneidungsfläche como Werte. Damit puede ser una gute schnelle Punkauswertung herstellen con XPIA/ASM y/oder Profano2Cpp. Steuern con el Tasten QWES y sólo hinschauen. Links Yo auch el Fläche en el Visier wo el collision stattfindet. Ein pequeño Kontrollschirm con hpiccopy, war überrascht wozu al Anwenden kann. Im rechteck1# kommen el Collidaten, en el rechteck2# y rechteck3# kommen el Lagedaten el Collisionsrechtecke.
mfg KompilierenMarcaSeparación $H Windows.ph
proc collision
StartPaint hintergr1&
drawpic hintergr&,0,0;0
DrawPic bild_block&,xx1&,yy1&;0
DrawPic bild_auto&,x1&,y1&;0
EndPaint
StartPaint hwin&
drawpic hintergr1&,200,20;0
EndPaint
deleteobject hbild&
hbild&=create(hpiccopy,hintergr1&,&loop+150,150,150,150)
startpaint hwin&
drawpic hbild&,20,20;0
endpaint
With rechteck1#
.x& = 0
.y& = 0
.w& = 0
.h& = 0
EndWith
With rechteck2#
.x& = x1&
.y& = y1&
.w& = x1&+64
.h& = y1&+64
EndWith
With rechteck3#
.x& = 200
.y& = 200
.w& = 264
.h& = 264
EndWith
cls
colli&=~IntersectRect(rechteck1#,rechteck2#,rechteck3#)
print colli&
print rechteck1#.x&; ;rechteck1#.y&; ;rechteck1#.w&; ;rechteck1#.h&
endproc
declare rechteck1#,rechteck2#,rechteck3#
declare x1&,y1&,xx1&,yy1&,colli&
declare hWin&,bild_auto&,bild_block&,hintergr& ,hintergr1&,ende& ,hbild&
Window 20,20-200,200
hWin& = Create(Window, %hWnd, Test, 250, 20, 650,500)
STRUCT rect = x&,y&,w&,h&
DIM rechteck1#, rect
DIM rechteck2#, rect
DIM rechteck3#, rect
bild_auto&=Create(hnewpic,64,64,$0000ff)
bild_block&=Create(hnewpic,64,64,$ff0000)
hintergr&=create(hnewpic,400,400,$00ffff)
hintergr1&=create(hnewpic,400,400,$00ffff)
ende& = 0
x1&=50
y1&=50
xx1&=200
yy1&=200
collision
WhileNot ende&
sleep 1
if isKey(65)
ende& = 1
endif
if isKey(69)
x1&=x1&+1
collision
endif
if isKey(81)
x1&=x1&-1
collision
endif
if isKey(83)
y1&=y1&+1
collision
endif
if isKey(87)
y1&=y1&-1
collision
endif
EndWhile
End
|
|
|
| |
|
|