def snakeMove(self, dir): head_x, head_y = self.spriteList[0].getPosition() if self.addOne == True: self.add() self.addOne = False if dir == -self.last_dir: dir = self.last_dir if dir == self.DIR_UP: newSprite = Sprite("mario.gif", self.__canvas, head_x, head_y - 50) self.spriteList.insert(0, newSprite) elif dir == self.DIR_DOWN: newSprite = Sprite("mario.gif", self.__canvas, head_x, head_y + 50) self.spriteList.insert(0, newSprite) elif dir == self.DIR_LEFT: newSprite = Sprite("mario.gif", self.__canvas, head_x - 50, head_y) self.spriteList.insert(0, newSprite) elif dir == self.DIR_RIGHT: newSprite = Sprite("mario.gif", self.__canvas, head_x + 50, head_y) self.spriteList.insert(0, newSprite) self.spriteList.pop(-1) self.last_dir = dir if len(self.foodList) > 0: tail_x, tail_y = self.spriteList[-1].getPosition() if self.foodList[0][0] == tail_x and self.foodList[0][1] == tail_y: self.addOne = True self.foodList.pop(0)
def __init__(self, screen, sprite_sheet): self.screen = screen self.screen_area = screen.get_rect() self.sprite_sheet = sprite_sheet self.space_invaders_title = Text(screen, "SPACE INVADERS", (0, 255, 0), (0, 0, 0), self.screen_area.w, self.screen_area.h, 100) self.set_text_position_menu(self.space_invaders_title, 4, 6) self.press_enter_text = Text(screen, "Press Enter To Start Game", (0, 255, 0), (0, 0, 0), self.screen_area.w, self.screen_area.h, 30) self.set_text_position_menu(self.press_enter_text, 2, 4) self.press_highscores_text = Text(screen, "Press H To View High Scores", (0, 255, 0), (0, 0, 0), self.screen_area.w, self.screen_area.h, 30) self.set_text_position_menu(self.press_highscores_text, 2, 4, 0, 50) self.alien_points_1_text = Text(screen, "10 Points", (255, 255, 255), (0, 0, 0), self.screen_area.w, self.screen_area.h, 48) self.set_text_position_menu(self.alien_points_1_text, 2, 2, 0, -50) self.alien_points_2_text = Text(screen, "20 Points", (255, 255, 255), (0, 0, 0), self.screen_area.w, self.screen_area.h, 48) self.set_text_position_menu(self.alien_points_2_text, 2, 2) self.alien_points_3_text = Text(screen, "30 Points", (255, 255, 255), (0, 0, 0), self.screen_area.w, self.screen_area.h, 48) self.set_text_position_menu(self.alien_points_3_text, 2, 2, 0, 50) self.alien_points_4_text = Text(screen, "????????", (255, 255, 255), (0, 0, 0), self.screen_area.w, self.screen_area.h, 48) self.set_text_position_menu(self.alien_points_4_text, 2, 2, 0, 100) self.alien_1_sprite = Sprite(screen, sprite_sheet, 5, self.screen_area.w, self.screen_area.h) self.set_sprite_position_menu(self.alien_1_sprite, 2, 2, -100, -50) self.alien_2_sprite = Sprite(screen, sprite_sheet, 11, self.screen_area.w, self.screen_area.h) self.set_sprite_position_menu(self.alien_2_sprite, 2, 2, -100) self.alien_3_sprite = Sprite(screen, sprite_sheet, 17, self.screen_area.w, self.screen_area.h) self.set_sprite_position_menu(self.alien_3_sprite, 2, 2, -100, 50) self.alien_4_sprite = Sprite(screen, sprite_sheet, 0, self.screen_area.w, self.screen_area.h) self.set_sprite_position_menu(self.alien_4_sprite, 2, 2, -100, 100)
def __init__(self, x, y, state, tower_type): # For cycle detection self.is_powered = False self.x = x self.y = y self.tower_type = tower_type # pos is placeholder self.sprite = Sprite(x=x, y=y, frames=[[pygame.image.load('sprites/lighthouse/LH1.png')]]) self.sprite.rect.x = x*PIXEL_RESOLUTION self.sprite.rect.y = y*PIXEL_RESOLUTION self.light_sprite = Sprite(x=x, y=y, frames=[[pygame.image.load('sprites/lighthouse/weakstraight1.png')]], can_rotate=True) self.light_sprite.rect.x = x*PIXEL_RESOLUTION self.light_sprite.rect.y = y*PIXEL_RESOLUTION
def move(self): STEP_SIZE = 30 theta = self.rotation() # degrees theta = theta * pi / 180 # radians dx = STEP_SIZE * cos(theta) dy = STEP_SIZE * sin(theta) if self.distance_traveled > self.max_range: if not self.scene(): return self.scene().removeItem(self) del self else: # move bullet self.setPos(self.x() + dx, self.y() + dy) self.distance_traveled += STEP_SIZE # if bullet collides with enemy, destroy both self.colliding_items = self.collidingItems() for i in self.colliding_items: if hasattr(i, 'team') and i.team != self.owner.team: # substract health if i.is_damageable(): i.decrease_health(self.damage) # animate self.scene().addItem(Sprite(self.pos())) self.scene().removeItem(self) del self return
def createLevel(): GameState.clean() GameState.level += 1 stairUp = Item("stairs_up.png", (SCALE, SCALE), GameState.triggerLoad) GameState.dynamics.add(stairUp) playerPos = None maze = genMaze(MAPSIZE+GameState.level) floors = sum(sum(maze.data)) spawns = [lambda pos: HealItem(pos, 1) for _ in range(int(0.02*floors))] spawns += [lambda pos: Enemy("enemy_placeholder.png", pos) for _ in range(int(0.05*floors))] for x in range(maze.M+2): for y in range(maze.N+2): if not maze[x-1,y-1]: GameState.statics.add(Sprite(wallimg, (x*SCALE, y*SCALE))) elif playerPos is None: playerPos = x*SCALE, y*SCALE elif random.random() < .01 and x < maze.M/2 and y < maze.N: playerPos = x*SCALE, y*SCALE else: if random.random() < max(len(spawns)/floors, .05) and spawns: i = random.randrange(len(spawns)) GameState.dynamics.add(spawns[i]((x*SCALE,y*SCALE))) del spawns[i] floors -= 1 stairUp.rect.x, stairUp.rect.y = x*SCALE, y*SCALE GameState.initBackground() GameState.player.rect.topleft = playerPos
def __init__(self, source, scale, pos, angle): super().__init__(pos=pos) self.scale = scale self.images = Atlas('images/hat.atlas') ## Atlas initialization self.keys = list( self.images.textures.keys()) ## atlas keys into a list print('keys in Hat', self.keys) self.kys = ('hat_burnt0', 'hat_burnt1', 'hat_burnt2', 'hat_burnt3', 'hat_burnt4', 'hat_burnt-final') print('hat keys list', self.kys) self.image = Sprite(texture=self.images['hat'], scale=self.scale, pos=pos) #self.image = Sprite(source=source, scale=self.scale, pos=pos) self.size = self.image.size self.add_widget(self.image) self.inhand = False self.onhead = False self.onhead_timer = 0 self.moving = False #burning status self.burning = False self.burnt = False self.burn_counter = 0 self.sprite = 0 self.animation_value = int(200 / (len(self.kys) - 1)) print('animation value', self.animation_value) self.vy = 0 self.combust = SoundLoader.load('audio/combust-both.wav')
def __init__(self, canvas, length, x, y): self.__canvas = canvas self.spriteList = [] self.addOne = False for i in range(length): newSprite = Sprite("mario.gif", self.__canvas, x, y + i * 50) self.spriteList.append(newSprite)
def parse_key(self, node): # in self.key there should be only ref nodes # the point is at start to create all nodes that have NO parent starter = self.get_from_key_with_parent(node.get_bone_id()) if len(starter) == 0: print 'WARNING: found a bone with no children attached:', node.get_name( ), 'id:', node.get_bone_id() # Utils.print_error('There are no nodes with this node as parent', [node, self.key, self.timeline]) for st in starter: obj = None if st.get_type() == BoneRef.type: obj = Node() elif st.get_type() == ObjectRef.type: obj = Sprite(self.fileKeeper) if obj is None: Utils.print_error('Unable to generate node nor sprite from', [obj, self.key, self.timeline]) objTime = obj.build(st, self.timeline) if math.fabs(self.key.time - objTime) > 1e-4: obj.set_active(False) node.add_child(obj) newPath = obj.get_bone_id() if newPath is not None: self.parse_key(obj)
class Bullet: bulletSprite = Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/Bullet.png?raw=true' ) def __init__(self, pos=Vector(), vel=Vector(), homing=False, enemyPos=Vector(), bulletSpeed=7): self.pos = pos self.vel = vel self.homing = homing self.enemyPos = enemyPos self.bulletSpeed = bulletSpeed self.counter = 0 def update(self): if self.homing == False: self.pos.add(self.vel) elif self.homing == True: if self.counter < 30: #Goes in the direction of the mouse for 30 frames(half a second) then locks onto enemy and fires at the enemy self.counter += 1 self.pos.add(self.vel) else: self.vel = self.enemyPos.copy().subtract( self.pos.copy()).normalize().multiply(self.bulletSpeed) self.pos.add(self.vel)
def init(self): # hearts component temp_sprite = Sprite("heart", 50, 50, 0, 0, ui_sprite=True) new_heart_comp = HeartsComp(0, 0, 0, 0, temp_sprite) self.add_component(new_heart_comp) Camera.set_follows(self)
def __init__(self, griddata): griddata.reverse() #self.grid=griddata self.grid = [] for line in griddata: self.grid.append(list(line)) rr = 0 for r in self.grid: cc = 0 for c in r: if c == "6": self.solomon_start = [cc, rr] self.grid[rr][cc] = "0" #self.solomon.A_wandswish.callback=self.block_swap elif c == "7": self.door = [cc, rr] self.grid[rr][cc] = "0" elif c == "8": ns = Sprite(cc, rr + 0.5) ns.setDrawFuncToList(lists["green_key"]) #ns.collision_action=self.key_detected_something_test self.sprites.append(ns) self.grid[rr][cc] = "0" elif not c in ["3", "2", "1"]: self.grid[rr][cc] = "0" cc += 1 rr += 1
def SetUpCloudSprite(x,y, towerEntity): towerEntity.tower_type.is_passable = False; img = pygame.image.load('sprites/fake_cloud.png') towerEntity.sprite = Sprite(x=x, y=y, frames=[[img]]) towerEntity.sprite.rect.x = x*PIXEL_RESOLUTION; towerEntity.sprite.rect.y = y*PIXEL_RESOLUTION; towerEntity.light_sprite = None;
def SetUpShipSprite(x,y, towerEntity): img = pygame.image.load('sprites/ship1.png') # @TODO anthonyluu: remove this after we switch to 64x64 smaller_img = pygame.transform.scale(img, (PIXEL_RESOLUTION, PIXEL_RESOLUTION)) towerEntity.sprite = Sprite(x=x, y=y, frames=[[smaller_img]]) towerEntity.sprite.rect.x = x*PIXEL_RESOLUTION; towerEntity.sprite.rect.y = y*PIXEL_RESOLUTION; towerEntity.light_sprite = None;
def __init__(self, name, init_x, init_y, image, stats, other): self.utils = Utils() self.name = name self.x = init_x self.y = init_y self.sprite = Sprite((self.x * self.utils.MAP_TILE_WIDTH, self.y * self.utils.MAP_TILE_HEIGHT), image, self.name) self.stats = stats self.exp_given = other['exp'] self.difficulty = other['difficulty']
def make_button(self, title, surf, x, y, image=None): pos = surf.get_offset() print 'offset for this surface is: ' + str(pos) font = pygame.font.Font(None, 16) f = font.render(title, 1, (0, 0, 0)) t = pygame.Surface((f.get_width() + 2, f.get_height() + 2)) t.fill((255, 255, 255)) t.blit(f, (0, 0)) sp = Sprite((x + pos[0], y + pos[1]), t, title) print "Sprite is at " + str(sp.rect.topleft) self.sprites.add(sp) return sp
def __init__(self, name, init_x, init_y, image, stats, equipment, inventory, skills): self.utils = Utils() self.name = name self.x = init_x self.y = init_y self.sprite = Sprite((self.x * self.utils.MAP_TILE_WIDTH, self.y * self.utils.MAP_TILE_HEIGHT), image, self.name) self.stats = stats self.equipment = equipment self.inventory = inventory self.skills = skills
def onEnter(self): # create screen gGameScreen.create_screen() # init fx manager gFxMgr.setLayer(gGameScreen.layer_fx) gFxMgr.setActive(True) # sprite manager gSpriteMgr.reset() # add star sprite1 = Sprite(size=(500,500), vel=[500,500], rotateVel=360, scaling=0.5, texture=gResMgr.getTexture('star'), gravity=980, collision=True) sprite2 = Sprite(pos=(200,200), size=(500,500), vel=[500,500], rotateVel=180, scaling=0.5, texture=gResMgr.getTexture('star'), gravity=80, collision=True) gGameScreen.add_to_bg(sprite1) gGameScreen.add_to_bg(sprite2) # create a particle particleInfo = dict(loop=-1,texture=gResMgr.getTexture('explosion'), fade=1, delay=Var(0.0,1.0), rotateVel=Var(360.0), rotate=Var(0.0, 360), offset=Var((-20,20), (-20,20)), lifeTime=Var(0.5,1.5), sequence=[4,4], vel=Var([gVel*0.1, gJump*0.1], [-gVel*0.1, gJump*0.25]), scaling=Var(1.0, 2.5), gravity=Var(0.0)) gFxMgr.create_emitter('explosion1', particleInfo, 20) gFxMgr.create_emitter('explosion2', particleInfo, 20) gFxMgr.get_emitter('explosion1').play_particle_with(sprite1, True) gFxMgr.get_emitter('explosion2').play_particle_with(sprite2, True)
def randomFood(self): row = int(self.HEIGHT/self.IMAGE_SIZE) col = int(self.WIDTH/self.IMAGE_SIZE) allPos = [i for i in range(row*col)] invalidPos = [] for sprite in self.snake.spriteList: invalidPos.append(int(sprite.y/self.IMAGE_SIZE) * row + int(sprite.x/self.IMAGE_SIZE)) valid = [] for x in allPos: if x not in invalidPos: valid.append(x) x = int(valid[random.randint(0, len(valid)-1)]%col) * self.IMAGE_SIZE y = int(valid[random.randint(0, len(valid)-1)]/col) * self.IMAGE_SIZE self.food = Sprite("goomba.gif", self.__canvas, x,y)
def __init__(self, name, init_x, init_y, image, stats, flags, equip=None): self.utils = Utils() self.name = name self.x = init_x self.y = init_y self.sprite = Sprite((self.x * self.utils.MAP_TILE_WIDTH, self.y * self.utils.MAP_TILE_HEIGHT), image, self.name) self.stats = stats self.flags = flags if equip is not None: self.equip = True self.equip_type = equip self.is_equipped = False else: self.equip = False
def updateSprite(Depth_List, Texture_List, frame): f = open(saved_depthfill_path + "cmin.txt", 'r') Sprite_bookArrival = Sprite.Sprite(768, 1024) for i in range(0, frame): DepthedImg = cv2.imread(saved_wapring_depth_path + Depth_List[i], 0) TexturedImg = cv2.imread(saved_wapring_texture_path + Texture_List[i], 1) #read the cmin cmin = float(f.readline()) #currentSprite = Sprite.Sprite(DepthedImg) Sprite_bookArrival.setGS(cmin, DepthedImg, TexturedImg) cv2.imwrite(saved_sprite_depth_path + Depth_List[i], Sprite_bookArrival.getG()) cv2.imwrite(saved_sprite_texture_path + Texture_List[i], Sprite_bookArrival.getS()) print(str(i) + ":processing")
def init(self): # create coin sprite coins_sprite = Sprite('coins', GameData.tile_size, GameData.tile_size, self.x, self.y, ui_sprite=True) coins_label = LabelComp(self.x + GameData.tile_size, self.y, GameData.tile_size, GameData.tile_size, '0', 40, color=(255, 255, 255)) self.add_component(coins_sprite) self.add_component(coins_label)
def load_monster(self, name, x, y): parser = ConfigParser.ConfigParser() parser.read("monsters/" + name + ".mon") new_mon = {} new_mon['name'] = parser.get("misc", "name") pos = parser.get("misc", "sprite").split(',') new_mon['sprite'] = Sprite((x*32, y*32), self.sprites[int(pos[0])][int(pos[1])], "monster") new_mon['x'] = x new_mon['y'] = y for section in parser.sections(): if section == "misc": {} else: desc = dict(parser.items(section)) new_mon[section] = desc for i in new_mon['stats']: new_mon['stats'][i] = int(new_mon['stats'][i]) self.monster_instance.append(new_mon) return new_mon
def main(): scene = Scene() scene.setTitle("Demo") scene.setSize(800, 600) # image by sujit1717 player = Player(scene, 'player.png', 50, 100) player.setPosition(400, 300) box = Sprite(scene, 'box.png', 50, 50) box.setPosition(500, 500) # define custom update method that'll be passed to the game loop def checkPlayerCollisions(): if player.checkCollision(): box.setPosition(randint(0, scene.width), randint(0, scene.height)) # start the game loop scene.startScene(checkPlayerCollisions)
def __init__(self, scale, pos, angle): super().__init__(pos=pos) self.scale = scale source = 'images/logs.png' #self.angle = angle self.images = Atlas('images/fire.atlas') self.keys = list(self.images.textures.keys()) print('fire keys list', self.keys) self.keys = 'fire-04 fire-05'.split() print('fire keys list', self.keys) #self.images = Atlas('images/man.atlas') self.image = Sprite(texture=self.images[self.keys[0]], scale=self.scale, pos=pos) #self.image = Sprite(source=self.images[self.kys[0]], scale=self.scale, pos=pos) self.size = self.image.size self.add_widget(self.image) #self.inhand = False self.burn_counter = 0 self.sprite = 0
def __init__(self, player: int, location: tuple, floor_height: float): """ctor""" self.sprite = Sprite("assets/Sprites", (70, 80), 2.5, player != 1, Player.SPRITE_SHEET_STATES) if player == 1: self.controls = Player.PLAYER_ONE_CONTROLS else: self.controls = Player.PLAYER_TWO_CONTROLS self.location = Vector(location) self.sprite_state = "IDLE" self.speed = 0 self.ResetSpeed() self.frame_counter = 0 self.floor_height = floor_height self.velocity = Vector((0, 0)) self.acceleration = Vector((0, GRAVITY)) self.sprite_state_counter = 0 self.damage_time = 0 self.health = 100 self.imports_done = False
def __init__(self, highscore=0): super().__init__() # self.add_widget(Sprite(source='images/background.png')) self.background = Sprite(source='data/presplash.png', scale=props.scale) self.background.center = Window.center self.add_widget(self.background) #self.music = SoundLoader.load('audio/testsong.xm') #self.music = SoundLoader.load('audio/song1.wav') self.music = SoundLoader.load('audio/song1.mp3') #self.music = SoundLoader.load('audio/song1.ogg') #print('sound source', self.music.source) print('type', type(self.music)) #self.gst = SoundGstplayer() #self.music = SoundGstplayer.load(self.music_in) self.music.play() self.welcome_text = Label( text='Welcome to America.', pos=(Window.width / 3, Window.height / 2), #font_size='20sp', color=(0.1, 0.1, 0.1, 1)) font_size=Window.height / 18, color=(0.1, 0.1, 0.1, 1)) self.start_text = Label( text='touch anywhere to start', pos=(Window.width / 3, Window.height / 3), #font_size='20sp', color=(0.1, 0.1, 0.1, 1)) font_size=Window.height / 20, color=(0.1, 0.1, 0.1, 1)) self.add_widget(self.welcome_text) self.add_widget(self.start_text) self.old_highscore = 0 if highscore != 0: print('high score', highscore) if highscore > self.old_highscore: self.highscore = highscore # link to google cloud (propbably using java calls) print('high score', self.highscore) #create the high score widget self.hs_text = Label(text='High Score: {:02f}'.format(self.highscore), \ pos=(Window.width/3, Window.height/5), font_size='18sp', color=(0.1, 0.1, 0.1, 1)) self.add_widget(self.hs_text)
def __init__(self, x=const.SCREEN_W // 2, y=const.SCREEN_H * 1 // 3, speed=const.ENEMY_SPEED_STARTING, monster=None): #TODO: update sprites self.monster = random_choice(self.MONSTER_CHOICES) sprites = self.MONSTER_SPRITES[self.monster] super().__init__( x, y, speed, Sprite( [ pygame.image.load(sprites['front']), pygame.image.load(sprites['front']) ], #standing [ pygame.image.load(sprites['left']), pygame.image.load(sprites['left']) ], #left [ pygame.image.load(sprites['right']), pygame.image.load(sprites['right']) ], #right [ pygame.image.load(sprites['front']), pygame.image.load(sprites['front']) ], #up [ pygame.image.load(sprites['front']), pygame.image.load(sprites['front']) ])) #down self.state = randint(0, 3) self.move_tick = 0
def __init__(self, window): super().__init__(window) self.grid() # display #build map map = Map(self.matrix, 50) self.WIDTH = map.getScreenWidth() self.HEIGHT = map.getScreenHeight() # Canvas - private instance variable self.__canvas = Canvas(self, width = self.WIDTH, height = self.HEIGHT, bg = "white") self.__canvas.grid() # Images - private instance variable self.snake = Snake(self.__canvas, 5, map.num2pixel(5), map.num2pixel(6)) self.food = Sprite("goomba.gif", self.__canvas, 300, 300) # bind keyboard self.__canvas.bind("<Key>", self.key) # focus input on canvas self.__canvas.focus_set() self.start()
def __init__(self,griddata): griddata.reverse() #self.grid=griddata self.grid=[] for line in griddata: self.grid.append(list(line)) rr=0 for r in self.grid: cc=0 for c in r: if c=="@": self.solomon=Solomon(cc,rr,self) self.grid[rr][cc]="." self.solomon.A_wandswish.callback=self.block_swap elif c=="4": self.door=[cc,rr] self.grid[rr][cc]="." elif c=="k": ns=Sprite(cc,rr+0.5) ns.setDrawFuncToList(lists["green_key"]) ns.collision_action=self.key_detected_something_test self.sprites.append(ns) self.grid[rr][cc]="." elif not c in ["b","B","s"]: self.grid[rr][cc]="." cc+=1 rr+=1 self.AG_twinklers=ActionGroup() self.AG_twinklers.append("twinkle1",Action(func=self.sin_gen_1,max=200,cycle=True,min=0,reverseloop=False,init_tick=0)) self.AG_twinklers.append("twinkle2",Action(func=self.sin_gen_2,max=100,cycle=True,min=0,reverseloop=False,init_tick=10))
class Player(Actor): #control self # Player class sprites holding items in order: Pistol, Shotgun, Rifle, Knife, Sniper, RPG playerSprites = [ Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/DudePistol.png?raw=true' ), Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/DudeShotgun.png?raw=true' ), Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/DudeRifle.png?raw=true' ), Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/DudeKnife1.png?raw=true' ), Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/DudeSniper.png?raw=true' ), Sprite( 'https://github.com/NJHewadewa/DebtRunners/blob/master/Sprites/DudeRocket.png?raw=true' ) ] def __init__(self, pos=Vector(), health=100, weapon=Pistol(), speed=2, colour="White", lives=3, vel=Vector(), money=0): self.lives = lives self.money = money super().__init__(pos, health, weapon, speed, colour, vel) def __str__(self): return str(self.lives) + super().__str__() def update(self, mousepos): super().update(mousepos) self.weapon.update(mousepos, self.pos.copy())