| |
|
|
| Habe la fois une kleine kollisionsroutine geschrieben avec einer API-Funktion. Dabei wird comme Ausgabe un Collisonsrechteck ausgegeben , alors qui Überschneidungsfläche comme Werte. avec cela peux on une gute schnelle Punkauswertung herstellen avec XPIA/ASM et/ou bien Profan2Cpp. Steuern avec den Tasten QWES et seulement hinschauen. à gauche habe je aussi qui Surface im Visier wohin qui collision stattfindet. un kleinen Kontrollschirm avec hpiccopy, était überrascht wozu on cela Anwenden peux. Im rechteck1# venons qui Collidaten, im rechteck2# et rechteck3# venons qui Lagedaten qui Collisionsrechtecke.
mfg KompilierenMarqueSéparation $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
Fin
|
|
|
| |
|
|