弹球游戏
import pygame,time
bag=0
P_x=0#用来存储玩家X坐标
P_y=0#用来存储玩家Y坐标
class Player(object):
def __init__(self,timp_screen):
self.x=190
self.y=550
self.screen=timp_screen
self.player = pygame.image.load("../img/2.png")
def m_display(self):#玩家的初始位置
self.screen.blit(self.player,(self.x,self.y))
def key_Lift(self):
global P_x
if self.x<0:
self.x=0
P_x=self.x
else:
self.x -= 15
P_x = self.x
def key_Right(self):
global P_y
if self.x>400:
self.x=400
P_y = self.y
else:
self.x += 15
P_y = self.y
class Bullet(object):
def __init__(self,scren_temp):
self.x=400
self.y=200
self.screen = scren_temp
self.imgae = pygame.image.load("../img/1.png")
def display(self):
self.screen.blit(self.imgae,(self.x,self.y))
def move(self):
global bag,P_x
if self.y>650:
self.y=650
self.x=self.x
print ("游戏结束!")
elif self.y>538:
self.y-=3
bag = 3
elif self.y<1:
self.y+=3
bag=1
elif self.x<1:
self.x+=3
bag=2
elif self.x>595:
self.x-=3
bag=4
elif bag==0:
print(self.y)
self.x-=3
self.y-=3
elif bag==1:
self.x-=3
self.y+=3
elif bag==2:
self.x+=3
self.y+=3
elif bag==3:
self.x+=3
self.y-=3
elif bag==4:
self.x -= 3
self.y -= 3
def key_code(Hero_tep):
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit() # 结束一个程序
elif event.type == pygame.KEYDOWN: # 键被按下,获取按键事件
if event.key == pygame.K_LEFT or event.key == pygame.K_a:
Hero_tep.key_Lift()
elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
Hero_tep.key_Right()
def main():
#创建一个窗口
screen = pygame.display.set_mode((600,650),0,32)
#创建背景图片
background = pygame.image.load("../img/bg.jpg")
Hero = Player(screen)
Qiu = Bullet(screen)
while True:
pygame.display.update()#让背景显示的,每次运动后起到刷新位置的作用,这是一个内置的函数
screen.blit(background,(0,0))
Hero.m_display()#调用玩家位置
key_code(Hero)
Qiu.display()
Qiu.move()
time.sleep(0.01)
if __name__ == "__main__":
main()
bag=0
P_x=0#用来存储玩家X坐标
P_y=0#用来存储玩家Y坐标
class Player(object):
def __init__(self,timp_screen):
self.x=190
self.y=550
self.screen=timp_screen
self.player = pygame.image.load("../img/2.png")
def m_display(self):#玩家的初始位置
self.screen.blit(self.player,(self.x,self.y))
def key_Lift(self):
global P_x
if self.x<0:
self.x=0
P_x=self.x
else:
self.x -= 15
P_x = self.x
def key_Right(self):
global P_y
if self.x>400:
self.x=400
P_y = self.y
else:
self.x += 15
P_y = self.y
class Bullet(object):
def __init__(self,scren_temp):
self.x=400
self.y=200
self.screen = scren_temp
self.imgae = pygame.image.load("../img/1.png")
def display(self):
self.screen.blit(self.imgae,(self.x,self.y))
def move(self):
global bag,P_x
if self.y>650:
self.y=650
self.x=self.x
print ("游戏结束!")
elif self.y>538:
self.y-=3
bag = 3
elif self.y<1:
self.y+=3
bag=1
elif self.x<1:
self.x+=3
bag=2
elif self.x>595:
self.x-=3
bag=4
elif bag==0:
print(self.y)
self.x-=3
self.y-=3
elif bag==1:
self.x-=3
self.y+=3
elif bag==2:
self.x+=3
self.y+=3
elif bag==3:
self.x+=3
self.y-=3
elif bag==4:
self.x -= 3
self.y -= 3
def key_code(Hero_tep):
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit() # 结束一个程序
elif event.type == pygame.KEYDOWN: # 键被按下,获取按键事件
if event.key == pygame.K_LEFT or event.key == pygame.K_a:
Hero_tep.key_Lift()
elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
Hero_tep.key_Right()
def main():
#创建一个窗口
screen = pygame.display.set_mode((600,650),0,32)
#创建背景图片
background = pygame.image.load("../img/bg.jpg")
Hero = Player(screen)
Qiu = Bullet(screen)
while True:
pygame.display.update()#让背景显示的,每次运动后起到刷新位置的作用,这是一个内置的函数
screen.blit(background,(0,0))
Hero.m_display()#调用玩家位置
key_code(Hero)
Qiu.display()
Qiu.move()
time.sleep(0.01)
if __name__ == "__main__":
main()
GUI
from tkinter import * tk=Tk() canvas = Canvas(tk,width=400,height=500,bg="yellow",bd=0) canvas.pack() coord1 = 10,10,200,80 coord2 = 10,80,200,160 coord3 = 10,160,200,240 coord4 = 10,240,200,320 coord5 = 10,320,200,400 canvas.create_arc(coord1,start=0,extent=45,style=ARC) canvas.create_arc(coord2,start=0,extent=90,style=ARC) canvas.create_arc(coord3,start=45,extent=180,style=ARC) canvas.create_arc(coord4,start=0,extent=359,style=ARC) canvas.create_arc(coord5,start=0,extent=150,fill="orange") canvas.mainloop()