【汇智学堂】

编程入门 行业动态 更新时间:2024-10-24 08:20:43

【汇智<a href=https://www.elefans.com/category/jswz/34/1767269.html style=学堂】"/>

【汇智学堂】

3.10游戏积分
最后我们处理一下,游戏结束时,给用户积分。
1、选择一种您认为合理的积分规则。
2、根据规则进行代码实现。

实现代码如下:

self.score=0
while 1:    if closeornot==1: racket.draw()ball.draw()else:canvas.create_text(400,420,text="游戏结束",fill='red',font=('Times',110))canvas.create_text(200,220,text="您的得分:”+str(ball.score),\
fill='red',font=('Times',30))break     tk.update_idletasks()  tk.update()time.sleep(0.05)ball.score+=1    

在这里,我们积分的方法是:每更新一次,就加1分。这样,坚持的时间越长积分就越多。读者朋友们还可以想想更多的积分方法。

将代码整合起来,整合后完整代码如下:

#-*- coding:GBK -*-from tkinter import *
import time
import random
import tkinter.messagebox #messageboxcloseornot=1
position=[1,1,1,1]tk = Tk()
tk.title("雷雷的弹球游戏")
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=800, height=800, bd=0, highlightthickness=0)
canvas.pack()
tk.update()class racket:def __init__(self,canvas,color,ball):self.canvas=canvasself.x=0        self.id=canvas.create_rectangle(400, 600, 500, 620, fill =color)self.canvas.bind_all('<KeyPress-Left>', self.turn_left)self.canvas.bind_all('<KeyPress-Right>', self.turn_right)self.ball=balldef turn_left(self,evt):self.x=-5        def turn_right(self, evt):self.x = 5     def draw(self):  global closeornotpos = self.canvas.coords(self.id)if pos[0] <= 0:            self.x = 0closeornot=0if pos[0]>=700:self.x=0closeornot=0            self.canvas.move(self.id,self.x,0)        if self.collision(pos)==True:self.ball.y=-5       def collision(self,pos):posball = self.canvas.coords(self.ball.id) if posball[1]<=pos[3] and posball[2]>=pos[0] and \posball[0]<=pos[2] and posball[3]>=pos[1]:return Truereturn False
class ball:def __init__(self,canvas,color):self.canvas=canvasself.a=random.randint(50,600)self.b=random.randint(50,200)self.id=canvas.create_oval(self.a, self.b, self.a+20, self.b+20, fill =color)starts = [-3, -2, -1, 1, 2, 3]random.shuffle(starts)self.x = starts[0]self.y=5self.score=0        def draw(self):        global direction,closeornotposition=canvas.coords(self.id)  if position[3]>=800:closeornot=0            if position[1]<=0:self.y=5 if position[0]<=0:self.x=3            if position[2]>=800:self.x=-3           self.canvas.move(self.id,self.x,self.y)
ball=ball(canvas,'red')
racket=racket(canvas,'green',ball)
while 1:    if closeornot==1: racket.draw()ball.draw()else:canvas.create_text(400,420,text="游戏结束",fill='red',font=('Times',110))canvas.create_text(200,220,text="您的得分:”+str(ball.score), \
fill='red',font=('Times',30))break     tk.update_idletasks()  tk.update()time.sleep(0.05)ball.score+=1

运行这段代码,当游戏结束时,出现提示:您的得分:260。见图3-28

图3-28

更多推荐

【汇智学堂】

本文发布于:2024-02-26 10:45:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1702219.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学堂

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!