弹球游戏,GUI

弹球游戏

 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() 

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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值