Python Tkinter 모듈 기반 볼 게임

4077 단어 PythonTkinter게임.
이 글 은 파 이 썬 이 Tkinter 모듈 을 기반 으로 한 당구 게임 을 실례 로 다 루 고 있다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.

#!usr/bin/python
#-*- coding:utf-8 -*-
from Tkinter import *
import Tkinter
import random
import time
#      
class Ball:
  def __init__(self,canvas,paddle,color): #  :  ,     
    self.canvas = canvas
    self.paddle = paddle
    self.id = canvas.create_oval(10,10,25,25,fill = color) #  :     (x1,y1),     (x2,y2),   
    self.canvas.move(self.id,245,100) #           (245,100)
    starts = [-3,-2,-1,1,2,3] #                 X   
    random.shuffle(starts) #  shuffle   starts      ,  starts[0]         
    self.x = starts[0] #  X                
    self.y = -2 #            
    self.canvas_height = self.canvas.winfo_height() #      winfo_height            
    self.canvas_width = self.canvas.winfo_width() #              ,                 canvas_width 
    self.hit_bottom =False
  def hit_paddle(self,pos): #         
    paddle_pos = self.canvas.coords(self.paddle.id) #       ,        paddle_pos 
    #pos[2]        X  ,pos[0]        X  
    if pos[2] >= paddle_pos[0] and pos[0] <=paddle_pos[2]: #              ,              
    #pos[3]       (                      , :            ,     )
      if pos[3] >=paddle_pos[1] and pos[3] <= paddle_pos[3]:#     ,   if              ,      
        return True
    return False
  def draw(self):
    self.canvas.move(self.id,self.x,self.y)
    pos = self.canvas.coords(self.id) #coords    ID                  X Y  
    if pos[1] <=0: #coords                     (             )
      self.y=2#         
    if pos[3] >=self.canvas_height:#              ,              ,      i
      self.hit_bottom = True
      print"   !"
    if self.hit_paddle(pos) == True: #hit_paddle()                (            "-"    ,2    )
      self.y = -2
    if pos[0] <=0:#    if                 
      self.x = 2
    if pos[2] >= self.canvas_width:
      self.x = -2
#   
class Paddle:
  def __init__(self,canvas,color):
    self.canvas = canvas
    self.id = canvas.create_rectangle(0,0,100,10,fill = color) #         
    self.canvas.move(self.id,200,300)#        (200,300)  200  ,  300  
    self.x =0
    self.canvas_width = self.canvas.winfo_width() #         
    self.canvas.bind_all('<KeyPress-Left>',self.turn_left)# turn_left()          
    self.canvas.bind_all('<KeyPress-Right>',self.turn_right)# turn_right()           
  def draw(self):
    self.canvas.move(self.id,self.x,0) # x        
    pos =self.canvas.coords(self.id)#       
    if pos[0] <=0:#             ,        ,   elif    
      self.x = 0
    elif pos[2] >= self.canvas_width:
      self.x =0
  def turn_left(self,evt): #      
    self.x =-2
  def turn_right(self,evt):#  
    self.x =2
t = Tkinter.Tk()
t.title("www.jb51.net Game") # t    title          ,t    t=Tk()   
t.resizable(0,0)#       ,    0,0,                
t.wm_attributes("-topmost",1)#  wm_attributes   tkinter                    (-topmost)
canvas = Canvas(t,width=500,height=400,bd=0,highlightthickness=0)
canvas.pack()#                      
t.update()#     
paddle = Paddle(canvas,'blue')
ball = Ball(canvas,paddle,'red')
while 1:
  if ball.hit_bottom ==False:
    ball.draw()
    paddle.draw()
  else:
    break
  t.update_idletasks()
  t.update()#      
  time.sleep(0.01)
t.mainloop()

이 기계 의 테스트 결 과 는 다음 과 같다.

더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,,,,,
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기