def __init__(self): const.__init__(self,'physical'); self.unit = unit.unit('physical.') self.units = self.unit self.constant = constant.constant('physical.', self.units) self.constants = self.constant self.element = element.element('physical.', self.constants, self.units) self.elements = self.element # do some trickery to get modules set to instantiated classes self.unit.__name__ = unit.__name__ sys.modules[unit.__name__]=self.unit sys.modules[units.__name__]=self.unit self.constant.__name__ = constant.__name__ sys.modules[constant.__name__]=self.constant sys.modules[constants.__name__]=self.constant self.element.__name__ = element.__name__ sys.modules[element.__name__]=self.element sys.modules[elements.__name__]=self.element # add in the license file self.license = license # copy over the Quantity module so that the user can reference it. self.base = Quantity
def __init__(self): const.__init__(self, "physical") self.unit = unit.unit("physical.") self.units = self.unit self.constant = constant.constant("physical.", self.units) self.constants = self.constant self.element = element.element("physical.", self.constants, self.units) self.elements = self.element # do some trickery to get modules set to instantiated classes self.unit.__name__ = unit.__name__ sys.modules[unit.__name__] = self.unit sys.modules[units.__name__] = self.unit self.constant.__name__ = constant.__name__ sys.modules[constant.__name__] = self.constant sys.modules[constants.__name__] = self.constant self.element.__name__ = element.__name__ sys.modules[element.__name__] = self.element sys.modules[elements.__name__] = self.element # add in the license file self.license = license # copy over the Quantity module so that the user can reference it. self.base = Quantity # also provide a direct reference to the Quantity class self.Quantity = Quantity.Quantity
def read_constant(self, line): if len(line.split(" ")) != 3: print "ERROR: ", line return if line.endswith("WIN32_LEAN_AND_MEAN 1"): print "ERROR: ", line return cst = constant(self.current_namespace, line) self.constants[cst.name] = cst if self.current_namespace is not None: self.namespaces[self.current_namespace].constants.append(cst.name) pass
def __init__(self): self.const = constant() self.root = Tk() self.fr = Frame(self.root) self.root.geometry( str(self.const['field_width']) + 'x' + str(self.const['field_height'])) self.canvas = Canvas(self.root, bg='skyblue') self.canvas.pack(fill=BOTH, expand=1) self.field = Field(self.canvas) self.field_list = self.field.field_model() self.is_field = 0 self.worms = [] self.guns = [] self.clouds = [] self.bullets = [] self.boom = [] self.field.field_visual() self.wind = rnd(-3, 3) self.turn = 0 self.turn_end = 0 self.worms_number = self.const['worms_number'] self.is_shot = 0 self.event = 0 self.canvas.bind('<p>', self.is_turn_end) self.canvas.bind('<ButtonRelease-1>', self.shot_start) if len(self.const) < len(self.field.start_position): print('too many worms for this map') else: for num in range(self.const['worms_number']): self.worms.append( Worm( self.field.start_position[num][0], self.field.start_position[num][1], num, self.canvas, self, )) for num in range(self.worms_number): self.worms[num].player_number = num + 1 for num in range(self.const['clouds_number']): self.clouds.append(Cloud(num, self.canvas)) self.shooting_processing() self.walking_processing() self.choose_weapon()
def __init__(self, gun, canvas, game): self.const = constant() self.canvas = canvas self.gun = gun self.game = game self.splash = 0 self.x = gun.x self.y = gun.y self.r = 0 self.vx = 0 self.v0x = 0 self.vy = 0 self.color = 'blue' self.body_id = 0 self.activation = 0
def init(self): self.const = constant() self.live = 200 self.elastic = 0.6 self.splash = 15 self.r = 5 self.drag_coef = 0.99 self.x += self.r * math.cos(self.gun.angle) self.y += self.r * math.sin(self.gun.angle) self.color = 'orange' self.body_id = self.canvas.create_oval( self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=self.color, )
def init(self): self.const = constant() self.splash = 5 self.r = 2 self.drag_coef = 0.997 self.live = 1000 self.x += self.r * math.cos(self.gun.angle) self.y += self.r * math.sin(self.gun.angle) if self.vx != 0: self.angle = math.atan2(self.vy, self.vx) self.color = 'green' self.body_id = self.canvas.create_oval( self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=self.color, )
def __init__(self, num, canvas): self.const = constant() self.canvas = canvas self.vx = 0 self.vy = 0 self.num = num self.r = 10 # if change, change move self.drag_coef = 0.99 self.color = 'white' self.x = (rnd(0, 800//self.const['clouds_number']) + num * (800//self.const['clouds_number'])) self.y = rnd(0, 50) self.body_id1 = self.canvas.create_oval( self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=self.color, outline=self.color) self.body_id2 = self.canvas.create_oval( self.x - self.r - 10, self.y - self.r, self.x + self.r - 10, self.y + self.r, fill=self.color, outline=self.color) self.body_id3 = self.canvas.create_oval( self.x - self.r - 5, self.y - self.r - 5, self.x + self.r - 5, self.y + self.r - 5, fill=self.color, outline=self.color) self.body_id4 = self.canvas.create_oval( self.x - self.r + 10, self.y - self.r, self.x + self.r + 10, self.y + self.r, fill=self.color, outline=self.color)
def init(self): self.const = constant() self.splash = 20 self.r = 5 self.drag_coef = 0.99 self.live = 1000 self.x += self.r * math.cos(self.gun.angle) self.y += self.r * math.sin(self.gun.angle) self.angle = self.gun.angle self.color = 'blue' self.fuel_length = 0 self.power = 0 self.maxpower = 10 self.body_id = self.canvas.create_polygon( (self.x + self.r * math.cos(self.angle), self.y + self.r * math.sin(self.angle)), (self.x - (math.cos(self.angle) + 0.5 * math.sin(self.angle)) * self.r * 3, self.y - (math.sin(self.angle) - 0.5 * math.cos(self.angle)) * self.r * 3), (self.x - (math.cos(self.angle) - 0.5 * math.sin(self.angle)) * self.r * 3, self.y - (math.sin(self.angle) + 0.5 * math.cos(self.angle)) * self.r * 3), fill=self.color) self.fuel_id = self.canvas.create_polygon( (self.x + self.r * math.cos(self.angle), self.y + self.r * math.sin(self.angle)), (self.x - (math.cos(self.angle) + 0.5 * math.sin(self.angle)) * self.r * 3, self.y - (math.sin(self.angle) - 0.5 * math.cos(self.angle)) * self.r * 3), (self.x - (math.cos(self.angle) - 0.5 * math.sin(self.angle)) * self.r * 3, self.y - (math.sin(self.angle) + 0.5 * math.cos(self.angle)) * self.r * 3), fill=self.color)
def init(self): self.const = constant() self.rifle = 50
def __init__(self, x, y, num, canvas, game): self.const = constant() self.canvas = canvas self.game = game self.is_touch = 0 self.energy = self.const['worm_energy'] self.live = 100 self.num = num self.vx = 0 self.vy = 0 self.x = x self.y = y self.drag_coef = 1 self.r = 10 # if change, change move self.colors = ['blue', 'green', 'red', 'brown'] self.gun = Bazooka(self, self.canvas, self.game) self.gun.init() self.ec = self.gun.en_cost() self.body_id = self.canvas.create_oval(self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=self.colors[self.num]) self.hp_id = self.canvas.create_rectangle(self.x - 10, self.y - 15, self.x - 10 + 20 * self.live / 100, self.y - 10, fill='chartreuse2', outline='black') self.losthp_id = self.canvas.create_rectangle(self.x - 10 + 20 * self.live / 100, self.y - 15, self.x + 10, self.y - 10, fill='black', outline='black') self.energy_id = self.canvas.create_rectangle( self.x - 10, self.y - 22, self.x - 10 + 20 * self.energy / self.const['worm_energy'], self.y - 17, fill='royalblue2', outline='black') self.lostenergy_id = self.canvas.create_rectangle( self.x - 10 + 20 * self.energy / self.const['worm_energy'], self.y - 22, self.x + 10, self.y - 17, fill='black', outline='black') self.required_energy_id = self.canvas.create_rectangle( self.x - 10 + 20 * self.ec / self.const['worm_energy'], self.y - 22, self.x - 10 + 20 * self.ec / self.const['worm_energy'], self.y - 17, fill='white', outline='white')