the grass game objects are dictionaries with the usual ' '' ''width''height'and 'rectkeys but also 'grassimagekey which is number from to one less than the length of the grassimages list this number will determine what image the grass game object has for exampleif the value of the grass object' 'grassimagekey is then it will use the surface object stored at grassimages[ for its image checking if outside the active area def isoutsideactivearea(cameraxcamerayobj) return false if camerax and cameray are more than half-window length beyond the edge of the window boundsleftedge camerax winwidth boundstopedge cameray winheight boundsrect pygame rect(boundsleftedgeboundstopedgewinwidth winheight objrect pygame rect(obj[' ']obj[' ']obj['width']obj['height'] return not boundsrect colliderect(objrectthe isoutsideactivearea(will return true if the object you pass it is outside of the --active area|that is dictated by the camerax and cameray parameters remember that the active area is an area around the camera view the size of the camera view (which has width and height set by winwidth and winheight)like thiswe can create rect object that represents the active area by passing camerax winwidth for the left edge value and cameray winheight for the top edge valueand then winwidth and winheight for the width and height once we have the active area represented as rect objectwe can use the colliderect(method to determine if the object in the obj parameter is collides with (that isis inside ofthe active area rect object email questions to the authoral@inventwithpython com