验证中...
Languages: Python
Categories: 其他
Latest update 2019-06-12 20:13
统计指定目录大小的函数
Raw Copy
import os
#定义统计目录大小函数:
def dir_size(dir_path):
total=0
if os.path.isdir(dir_path):
dirlist=os.listdir(dir_path)
for f in dirlist:
subdir=os.path.join(dir_path,f)
if os.path.isfile(subdir):
total=total+os.path.getsize(subdir)
if os.path.isdir(subdir):
total=total+dir_size(subdir)
return total
elif os.path.isfile(dir_path):
return os.path.getsize(dir_path)
else:
return -1
path=input('请输入目录路径:')
size=dir_size(path)
if size==-1:
print('错误!')
else:
print('目录大小:',size,'Bytes')
飞机大战
Raw Copy
#导入相应的模块
import pygame
from pygame.locals import *
import time,random
#3.1定义玩家飞机
class HeroPlane:
def __init__(self,screen_temp):
self.x=200
self.y=400
self.screen=screen_temp
self.image=pygame.image.load("./images/me.png")
self.bullet_list=[]
'''存放发射出去的子弹对象'''
def display(self):
'''绘制玩家到窗口中'''
#遍历移动子弹
for bullet in self.bullet_list:
bullet.display()
'''移动子弹,并判断是否越界'''
if bullet.move():
self.bullet_list.remove(bullet)
self.screen.blit(self.image,(self.x,self.y))
def move_left(self):
'''左移动,并防止越界'''
self.x-=5
if self.x<0:
self.x=0
def move_right(self):
'''右移动,并防止越界'''
self.x+=5
if self.x>406:
self.x=406
def fire(self):
self.bullet_list.append(Bullet(self.screen,self.x,))
print(len(self.bullet_list))
#定义子弹
class Bullet:
'''玩家子弹类'''
def __init__(self,screen_temp,x,y):
self.x=x+51
self.y=y
self.screen=screen_temp
self.image=pygame.image.load("./images/pd.png")
def display(self):
self.screen.blit(self.image,(self.x,self.y,self.y))
def move(self):
self.y-=10
if self.y<=-20:
return True
#定义敌机
class EnemyPlane:
'''敌机类'''
def __init__(self,screen_temp):
self.x=random.choice(range(408))
self.y=-75
self.screen=screen_temp
self.image=pygame.image.load("./images/e"+str(random.choice(range(3)))+".png")
def display(self):
'''绘制敌机'''
self.screen.blit(self.image,(self.x,self.y,self.y))
def move(self,hero):
self.y+=4
if self.y>568:
return True
#遍历所有子弹,并执行碰撞检测
for bo in hero.bullt_list:
if bo.x>self.x+12 and bo.x<self.x+92 and bo.y>self.y+20 and bo.y<self.y+60:
hero.bullet_list.romove(bo)
return True
#2添加键盘事件处理函数
def key_control(hero_temp):
'''键盘空时函数'''
#执行退出操作
for event in pygame.event.get():
if event.type==QUIT:
print('exit()')
exit()
#获取按键信息
pressed_keys=pygame.key.get_pressed()
#做判断,并执行对应的操作
if pressed_keys[K_LEFT] or pressed_keys[K_a]:
print('left...')
hero_temp.move_left()
elif pressed_keys[K_RIGHT] or pressed_keys[K_d]:
print('right...')
hero_temp.move_right()
#检查是否是空格键
if pressed_keys[K_SPACE]:
print('space')
hero_temp.fire
#主程序函数
def main():
#1创建游戏窗口
screen=pygame.display.set_mode((512,568),0,0)
#2创建一个游戏背景
background=pygame.image.load("./images/bg1.jpg")
m=-968
#3创建一个玩家飞机
hero=HeroPlane(screen)
#创建敌机
enemy = EnemyPlane(screen)
#定义用于存放敌机列表
enemylist=[]
while True:
#绘制画面:
screen.blit(background,(0,m))
m+=2
if m>=-200:
m=-968
#绘制玩家飞机
hero.display()
#随机绘制敌机
if random.choice(range(50))==10:
enemylist.append(EnemyPlane(screen))
#遍历敌机并绘制移动
for em in enemylist:
em.display()
if em.move(hero):
enemylist.remove(em)
#执行键盘控制
key_control(hero)
#更新显示
pygame.display.update()
#定时显示
time.sleep(0.04)
#判断当前是否是主运行程序,并调用
if __name__=="__main":
main()

Comment list( 0 )

You need to Sign in for post a comment

Help Search

Gitee_you_jiang_zheng_wen Zheng_wen_close