Python 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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.