|

楼主 |
发表于 2006-9-20 12:34:00
|
显示全部楼层
Re:DELPHI开发的冒险岛的资源图片浏览器
源码已收到,谢谢,关于GetSpriteAt我以前也写了一个,可以选择缩放和旋转过的Sprite,你参考一下:
function TSpriteEngine.GetSpriteAt(const X, Y: Double): TSprite;
procedure Collision_GetSpriteAt(X, Y: Double; Sprite: TSprite);
var
NEWX, NEWY: Double;
begin
NEWX := Y * sin(Sprite.Angle) + X * cos(Sprite.Angle);
NEWY := Y * cos(Sprite.Angle) - X * sin(Sprite.Angle);
if Sprite.Visible and PointInRect(Point(Round(NEWX), Round(NEWY)),
Bounds(-Round(Sprite.PatternWidth*Sprite.ScaleX) div 2,
-Round(Sprite.PatternHeight*Sprite.ScaleY) div 2,
Round(Sprite.PatternWidth*Sprite.ScaleX),
Round(Sprite.PatternHeight*Sprite.ScaleY))) then
begin
if (Result = nil) or (Sprite.Z > Result.Z) then
Result := Sprite ;
end
end; |
|