天天看點

python編寫一個彈球遊戲_python 怎麼寫雙人彈球遊戲

展開全部

用python tkinter子產品做一個擊打反彈球2113和球拍的遊戲。球在螢幕5261上飛,4102玩家需要把它擊打回去,隻要球落到螢幕底部1653,遊戲就結束。

首先我們做一個在螢幕上到處移動的小球:#coding:utf-8

from tkinter import *

import random

import time

class Ball:

#建立一個球類

def __init__(self, canvas, color):

self.canvas = canvas

self.id = canvas.create_oval(10, 10, 25, 25, fill=color)

#傳回剛好劃小球的id,create_oval建立一個橢圓

self.canvas.move(self.id, 245, 100)

#把橢圓移動到畫布

starts = [-3, -2, -1, 1, 2, 3]

random.shuffle(starts)

#随機排列

self.x = starts[0]

self.y = -3

self.canvas_height = self.canvas.winfo_height()

#擷取畫布目前高度

self.canvas_width = self.canvas.winfo_width()

#擷取畫布目前寬度

def draw(self):

self.canvas.move(self.id, self.x, self.y)

#讓小球水準和垂直移動

pos = self.canvas.coords(self.id)

#coords傳回畫布上畫好的x和y坐标

#判斷小球是否撞到畫布頂部或者底部,保證小球反彈回去,不消失

if pos[1] <= 0:

self.y = 3

if pos[3] >= self.canvas_height:

self.y = -3

if pos[0] <= 0:

self.x = 3

if pos[2] >= self.canvas_width:

self.x = -3

tk = Tk()

tk.title("Game")

tk.resizable(0, 0)

#視窗大小不可調整

tk.wm_attributes("-topmost", 1)

#使畫布視窗置于所有視窗之前

canvas = Canvas(tk,width=500, height=400, bd=0, highlightthickness=0)

#bd和highlighttthickness是為了保證畫布沒有邊框

canvas.pack()

tk.update()

#動畫初始化

ball = Ball(canvas, 'red')

while 1:

#畫布一出現會馬上消失,為了防止畫布消失,用tkinter一直重畫

ball.draw()

tk.update_idletasks()

tk.update()

time.sleep(0.01)

一個會動的小球就做好啦

效果圖如下,隻是它會動<( ̄3 ̄)> !

python編寫一個彈球遊戲_python 怎麼寫雙人彈球遊戲