home *** CD-ROM | disk | FTP | other *** search
- property ancestor, fState, fLiveAreaBtm, fMoveDH, fMoveDV
- global gApp
-
- on birth me, vSprNum, vID
- set ancestor to NewObj("TAnim", vSprNum, vID)
- mICkrch(me)
- return me
- end
-
- on mICkrch me
- mStAnimNumBgnEnd(me, the number of cast "cockroach", the number of cast "cockroachE")
- mStAnimGrp(me, 2)
- mStAnimNumBgnEnd(me, the number of cast "ckrchMorph", the number of cast "ckrchMorphE")
- mStAnimGrp(me, 1)
- mReqMorningCall(gApp, me)
- mRunAway(me)
- mStSleepTime(me, 200)
- set fLiveAreaBtm to 350
- end
-
- on mDeath me
- mCancelMorningCall(gApp, me)
- end
-
- on mRunAway me
- mOffStage(me)
- set fState to "Hide"
- mStSleepTime(me, random(120) + 200)
- end
-
- on mBorn me
- set fState to "Live"
- mOnStageAt(me, random(640), random(fLiveAreaBtm))
- updateStage()
- mStSleepTime(me, 0)
- end
-
- on mKill me
- set fState to "Dead"
- end
-
- on mOnStage me
- if fState = "Live" then
- mOnStage(ancestor)
- end if
- end
-
- on mIdle me
- if fState = "Hide" then
- mReqBorn(mGtSupervisor(me), me)
- else
- if fState = "Live" then
- mMove(me)
- end if
- end if
- end
-
- on mMove me
- mGenerateMoveD(me)
- set aNewLocH to mGtLocH(me) + fMoveDH
- set aNewLocV to mGtLocV(me) + fMoveDV
- if (aNewLocH < 0) or (aNewLocH > 640) or (aNewLocV < 0) or (aNewLocV > fLiveAreaBtm) then
- mRunAway(me)
- else
- mStLocH(me, aNewLocH)
- mStLocV(me, aNewLocV)
- end if
- updateStage()
- end
-
- on mGenerateMoveD me
- if 25 > random(100) then
- set aAngle to random(360)
- set aDist to random(10) + 10
- set fMoveDH to integer(aDist * sin(2 * PI * (aAngle / float(360))))
- set fMoveDV to integer(aDist * cos(2 * PI * (aAngle / float(360))))
- mTurn(me, aAngle)
- end if
- end
-
- on mMouseDown me
- mHitCkrch(mGtSupervisor(me), me)
- end
-
- on mTurn me, vAngle
- if (22 <= vAngle) and (vAngle < 67) then
- mStAnimFrm(me, 2)
- else
- if (67 <= vAngle) and (vAngle < 112) then
- mStAnimFrm(me, 3)
- else
- if (112 <= vAngle) and (vAngle < 157) then
- mStAnimFrm(me, 4)
- else
- if (157 <= vAngle) and (vAngle < 202) then
- mStAnimFrm(me, 5)
- else
- if (202 <= vAngle) and (vAngle < 247) then
- mStAnimFrm(me, 6)
- else
- if (247 <= vAngle) and (vAngle < 292) then
- mStAnimFrm(me, 7)
- else
- if (292 <= vAngle) and (vAngle < 337) then
- mStAnimFrm(me, 8)
- else
- mStAnimFrm(me, 1)
- end if
- end if
- end if
- end if
- end if
- end if
- end if
- mUpdateSpr(me)
- end
-