アニメーションCAD

Page 36

purpose to open/close door ) var

MNow

: Point; MNAngle, MOAngle, DifAngle: Integer; FromNo, ToNo, DoorNo : Integer;

begin PtToAngle(Door.area, MOridinal, MOAngle); FromNo i= AGI2IBW(Door.from); ToNo := AGL2IBW((Door.from + Door.angle)); repeat EraseArc (Door. area, Do or.from, Door. angle) ;

GeMouse(MNow); ftToAngle(Door.area, MNow, MNAngle) ; DifAngle := MNAngle - MOAngle; DoorNo := Doororidinal + AGI2IBW(DifAngle); if DoorNo < FromNo then DoorNo := FromNo; if DoorNo > ToNo then DoorNo := ToNo; while DoorNo < 0 do DoorNo := DoorNo + (DoorPat + 1); DrawPicture(Door.inbetween[(DoorNo mod (DoorPat + 1))], Door.area); until (not PtInRgn(MNow, Door.oparating) or not StillDown); Door.now := DoorNo mod (DoorPat + 1); end;

procedure CheckHuman; { purpose to check how human feeling )

vat

PersonalSpace : Rgnllandle;

HumanPosition : Point;

WorkRect

: Rect;

ObjectCount, LoopCount,

Result

: Integer;

begin PersonalSpace := NewRgn; ObjectCount := 0t GetMouse(HumanPosition)

;


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.