Engine:
Code: Select all
def engine_updater(st):
if store.time_counter:
store.time_counter -= .001
if store.time_counter <= 0.0:
store.time_counter = None
store.player_sprites.append(Character_Sprite())
if g_s:
if store.control_flags:
for sprite in g_s[:]:
sprite.update()
sprite.movement()
return .001
def engine_event(ev, x, y, st):
if ev.type == KEYDOWN and ev.key in BUTTONS:
pressed = pygame.key.get_pressed()
if pressed[l_arrow] and not l_arrow in store.control_flags:
store.control_flags.append(l_arrow)
store.spriteFlip = True
elif pressed[r_arrow] and not r_arrow in store.control_flags:
store.control_flags.append(r_arrow)
store.spriteFlip = False
if ev.type == KEYUP and ev.key in BUTTONS:
if ev.key in store.control_flags:
store.control_flags.remove(ev.key)
Code: Select all
def movement(self):
if store.control_flags:
if l_arrow in store.control_flags:
self.dist -= self.move_amt
if self.dist > -175 or self.dist < -2993:
self.x -= self.move_amt
store.charCentered = False
else:
self.x -= 0
store.charCentered = True
elif r_arrow in store.control_flags:
self.dist += self.move_amt
if self.dist > -175 or self.dist < -2993:
self.x += self.move_amt
store.charCentered = False
else:
self.x += 0
store.charCentered = True
def update(self):
if self.delay_frames > 0:
self.delay_frames -= 1
return
self.delay_frames = self.max_delay
self.frame_number += 1
if self.frame_number >= self.max_frames:
self.frame_number = 0
self.refresh_sprite()
def refresh_sprite(self):
self.tx, self.ty, self.tz = self.show.x, self.show.y, self.show.zorder
self.show.destroy()
self.sprite = self.frame_list[self.frame_number]
if spriteFlip == True:
self.sprite = im.Flip(self.sprite,True,False)
self.show = MNG.create(self.sprite)
self.show.x, self.show.y, self.show.zorder = self.tx, self.ty, self.tz