def setup(self, nrows, nrows_center = 1, check_width = None, check_width_center = 0.5, check_color1 = 'white', check_color2 = 'black', screen_background_color = 'neutral-gray', show_fixation_dot = False, flash_rate_left = DEFAULT_FLASH_RATE, flash_rate_right = DEFAULT_FLASH_RATE, flash_rate_center = DEFAULT_FLASH_RATE, #rate_compensation = None, vsync_patch = None, ): Screen.setup(self, background_color = screen_background_color, vsync_patch = vsync_patch, ) #run colors through filter to catch names and convert to RGB check_color1 = COLORS.get(check_color1, check_color1) check_color2 = COLORS.get(check_color2, check_color2) # set checkerboard-related attributes if check_width is None: check_width = 2.0/nrows #fill whole screen self.board_width = check_width*nrows self.board_width_center = check_width_center * nrows_center self.nrows = nrows self.CB1 = CheckerBoard(nrows, check_width, color1 = check_color1, color2 = check_color2, show_fixation_dot = show_fixation_dot) self.CB2 = CheckerBoard(nrows, check_width, color1 = check_color2, color2 = check_color1, show_fixation_dot = show_fixation_dot) #reversed pattern self.CB1_center = CheckerBoard(nrows_center, check_width_center, color1 = check_color1, color2 = check_color2, show_fixation_dot = False)#show_fixation_dot) self.CB2_center = CheckerBoard(nrows_center, check_width_center, color1 = check_color2, color2 = check_color1, show_fixation_dot = False)#show_fixation_dot) self.CB_cycle_left = itertools.cycle((self.CB1,self.CB2)) self.CB_cycle_right = itertools.cycle((self.CB1,self.CB2)) self.CB_cycle_center = itertools.cycle((self.CB1_center,self.CB2_center)) # set time-related attributes self._last_CB_change_time_left = None self._last_CB_change_time_right = None self._last_CB_change_time_center = None self.flash_rate_left = flash_rate_left self.flash_interval_left = 1.0/flash_rate_left self.flash_rate_right = flash_rate_right self.flash_interval_right = 1.0/flash_rate_right self.flash_rate_center = flash_rate_center self.flash_interval_center = 1.0/flash_rate_center #self.rate_compensation = rate_compensation # get useful coordinate values for checkerboard rendering locations self.xC, self.yC = (-0.5*self.board_width,-0.5*self.board_width) self.xL, self.yL = (self.xC - 0.7*self.screen_right, self.yC) self.xR, self.yR = (self.xC + 0.7*self.screen_right, self.yC) # some lists for checking things self.vals = itertools.cycle((1,0)) self.t_list = [] self.val_list = [] self.vals_current = self.vals.next()
def setup( self, nrows, check_width=None, check_color1="white", check_color2="black", screen_background_color="neutral-gray", show_fixation_dot=False, flash_rate_left=DEFAULT_FLASH_RATE, flash_rate_right=DEFAULT_FLASH_RATE, # rate_compensation = None, vsync_patch="bottom-right", vsync_value=None, ): Screen.setup(self, background_color=screen_background_color, vsync_patch=vsync_patch) # run colors through filter to catch names and convert to RGB check_color1 = COLORS.get(check_color1, check_color1) check_color2 = COLORS.get(check_color2, check_color2) # set checkerboard-related attributes if check_width is None: check_width = 2.0 / nrows # fill whole screen self.board_width = check_width * nrows self.nrows = nrows self.CB1 = CheckerBoard( nrows, check_width, color1=check_color1, color2=check_color2, show_fixation_dot=show_fixation_dot ) self.CB2 = CheckerBoard( nrows, check_width, color1=check_color2, color2=check_color1, show_fixation_dot=show_fixation_dot ) # reversed pattern self.CB_cycle_left = itertools.cycle((self.CB1, self.CB2)) self.CB_cycle_right = itertools.cycle((self.CB1, self.CB2)) # set time-related attributes self._last_CB_change_time_left = None self._last_CB_change_time_right = None self.flash_rate_left = flash_rate_left self.flash_interval_left = 1.0 / flash_rate_left self.flash_rate_right = flash_rate_right self.flash_interval_right = 1.0 / flash_rate_right # self.rate_compensation = rate_compensation # get useful coordinate values for checkerboard rendering locations self.xC, self.yC = (-0.5 * self.board_width, -0.5 * self.board_width) self.xL, self.yL = (self.xC - 0.5 * self.screen_right, self.yC) self.xR, self.yR = (self.xC + 0.5 * self.screen_right, self.yC)
def setup(self, nrows, check_width = None, check_color1 = 'white', check_color2 = 'black', screen_background_color = 'neutral-gray', fixation_dot_color = None, flash_rate = DEFAULT_FLASH_RATE, #rate_compensation = None, vsync_patch = "bottom-right", vsync_value = None, ): Screen.setup(self, background_color = screen_background_color, vsync_patch = vsync_patch, ) #run colors through filter to catch names and convert to RGB check_color1 = COLORS.get(check_color1, check_color1) check_color2 = COLORS.get(check_color2, check_color2) # set checkerboard-related attributes if check_width is None: check_width = 2.0/nrows #fill whole screen self.board_width = check_width*nrows self.nrows = nrows self.CB1 = CheckerBoard(nrows, check_width, color1 = check_color1, color2 = check_color2, fixation_dot_color = fixation_dot_color) self.CB2 = CheckerBoard(nrows, check_width, color1 = check_color2, color2 = check_color1, fixation_dot_color = fixation_dot_color) #reversed pattern self.CB_cycle = itertools.cycle((self.CB1,self.CB2)) # set time-related attributes self._last_CB_change_time = None self.flash_rate = flash_rate self.flash_interval = 1.0/flash_rate #self.rate_compensation = rate_compensation # get useful coordinate values for checkerboard rendering locations self.xC, self.yC = (-0.5*self.board_width,-0.5*self.board_width)
def __init__(self, nrows, check_width = 1.0, check_height = None, color1 = COLORS['white'], color2 = COLORS['black'], fixation_dot_color = None, ): self.nrows = int(nrows) if check_width is None: check_width = 2.0/nrows #fill whole screen self.check_width = check_width if check_height is None: check_height = check_width self.check_height = check_height self.board_width = check_width*nrows #run colors through filter to catch names and convert to RGB color1 = COLORS.get(color1, color1) color2 = COLORS.get(color2, color2) self.color1 = color1 self.color2 = color2 self.fixation_dot_color = fixation_dot_color self.display_list_multi = None #for cached rendering of multiple display lists, leaving ability to change color
def setup(self, text_content = "DEFAULT", text_color = 'black', text_bgColor = None, font_size = 288, font_type = None, screen_background_color = 'white', scale_refObj = None, **kwargs ): Screen.setup(self, background_color = screen_background_color, **kwargs ) #if text_bgColor is unspecified, set to same as background color (renders faster than using alpha) if text_bgColor == None: text_bgColor = screen_background_color self.text_content = text_content self.text_color = COLORS.get(text_color, text_color) self.text_bgColor = COLORS.get(text_bgColor, text_bgColor) self.font_size = font_size self.font_type = font_type self.scale_refObj = scale_refObj
def __init__(self, position=(0, 0), size=0.1, thickness=0.01, color="white"): self.position = x, y = position self.size = size self.thickness = thickness self.color = COLORS.get(color, color) self.vertices = [ # horizontal beam (x - size / 2.0, y + thickness / 2), # left-top (x - size / 2.0, y - thickness / 2), # left-bottom (x + size / 2.0, y - thickness / 2), # right-bottom (x + size / 2.0, y + thickness / 2), # right-top # vertical beam (x - thickness / 2, y + size / 2.0), # left-top (x - thickness / 2, y - size / 2.0), # left-bottom (x + thickness / 2, y - size / 2.0), # right-bottom (x + thickness / 2, y + size / 2.0), # right-top ]
def setup(self, background_color = "black", vsync_value = None, vsync_patch = "bottom-right", fixation_cross = None, exit_keys = None, ): self.background_color = COLORS.get(background_color, background_color) self.vsync_value = vsync_value if vsync_patch == "bottom-right": #define the vsync patch as being in the bottom right corner self.vsync_patch = VsyncPatch.make_bottom_right(screen_bottom = self.screen_bottom, screen_right = self.screen_right) else: self.vsync_patch = vsync_patch self.fixation_cross = fixation_cross self.exit_value = None if exit_keys is None: exit_keys = [] self.exit_keys = exit_keys
def __init__(self, size=0.1, thickness=0.01, color="white", **kwargs): Sprite.__init__(self, **kwargs) self.size = size self.thickness = thickness self.color = COLORS.get(color, color)