Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #python 3.3
- from tkinter import *
- from random import*
- class game:
- def __init__(self):
- self.root=Tk()
- self.RUN=False
- self.frame=Frame(bg="black")
- self.frame.pack();
- self.canvas=Canvas(self.frame, bg="black",width=300,height=300)
- self.canvas.pack()
- self.clock=Label(self.frame, bg="black", fg="white")
- self.clock.pack()
- self.points=Label(self.frame, bg="black", fg="white")
- self.points.pack()
- self.button=Button(self.frame, bg="black", fg="white", text="Click to start" ,command=self.start)
- self.button.pack()
- self.root.mainloop()
- def start(self):
- self.time=0
- self.RUN=True
- self.foodX=[]
- self.foodY=[]
- self.trapX=[]
- self.trapY=[]
- self.TEXT=""
- self.point=0
- self.x=100
- self.y=100
- self.tempx=100
- self.tempy=100
- self.UP=False
- self.DOWN=False
- self.LEFT=False
- self.RIGHT=False
- self.size=3
- self.canvas.bind("<ButtonPress-1>", self.onMClick)
- self.run()
- def run(self):
- if self.RUN is True:
- self.time+=1
- self.clock['text']="TIME:" + str(self.time//100)
- self.points['text']="Points gathered: " + str(self.point)
- self.move(10*self.size,2)
- self.paint()
- self.root.after(10, self.run)
- def end(self):
- self.RUN=False
- self.canvas.unbind("<ButtonPress-1>")
- def create_food(self,ball):
- if len(self.foodX) <self.time//1500 +1:
- self.foodX.append(randint(50,250))
- if len(self.foodY) <self.time//1500 +1:
- self.foodY.append(randint(50,250))
- for i in range(0,len(self.foodX)):
- self.canvas.create_rectangle(self.foodX[i], self.foodY[i], self.foodX[i]+10, self.foodY[i]+10, fill="blue")
- for i in range(0,len(self.foodX)):
- if len(self.canvas.find_overlapping(self.foodX[i], self.foodY[i], self.foodX[i]+10, self.foodY[i]+10)) is not 1:
- if ball in self.canvas.find_overlapping(self.foodX[i], self.foodY[i], self.foodX[i]+10, self.foodY[i]+10):
- self.point+=100
- self.size+=0.5
- self.foodX.pop(i)
- self.foodY.pop(i)
- self.create_food(ball)
- def create_trap(self,ball):
- if len(self.trapX) <self.time//1500 +1:
- self.trapX.append(randint(50,250))
- if len(self.trapY) <self.time//1500 +1:
- self.trapY.append(randint(50,250))
- for i in range(0,len(self.trapX)):
- self.canvas.create_rectangle(self.trapX[i], self.trapY[i], self.trapX[i]+10, self.trapY[i]+10, fill="red")
- for i in range(0,len(self.trapX)):
- if len(self.canvas.find_overlapping(self.trapX[i], self.trapY[i], self.trapX[i]+10, self.trapY[i]+10)) is not 1:
- if ball in self.canvas.find_overlapping(self.trapX[i], self.trapY[i], self.trapX[i]+10, self.trapY[i]+10):
- self.point-=50
- self.size-=1
- self.trapX.pop(i)
- self.trapY.pop(i)
- self.create_trap(ball)
- def paint(self):
- self.canvas.delete(ALL)
- self.canvas.create_text(100,100, text=self.TEXT, fill="green")
- if self.time//100<=60:
- if 10*self.size >0:
- ball=self.canvas.create_rectangle(self.x-10*self.size,self.y-10*self.size,self.x+10*self.size,self.y+10*self.size, fill="white")
- self.create_food(ball)
- elif 10*self.size>150:
- self.clock['text']="You lost"
- self.end()
- else:
- self.clock['text']="You lost"
- self.end()
- def move(self, b,speed):
- if self.UP==True and self.y-b>0:
- self.y-=speed
- elif self.UP==True and self.y-b<=0:
- self.UP=False
- self.DOWN=True
- if self.DOWN==True and self.y+b<300:
- self.y+=speed
- elif self.DOWN==True and self.y+b>=300:
- self.DOWN=False
- self.UP=True
- if self.LEFT==True and self.x-b>0:
- self.x-=speed
- elif self.LEFT==True and self.x-b<=0:
- self.LEFT=False
- self.RIGHT=True
- if self.RIGHT==True and self.x+b<300:
- self.x+=speed
- elif self.RIGHT==True and self.x+b>=300:
- self.RIGHT=False
- self.LEFT=True
- def left_click():
- frame.bind('<Left>', leftkey)
- def right_click():
- frame.bind('<Right>', rightkey)
- def onMClick(self,event): #ball moves where you click
- self.tempx=event.x
- self.tempy=event.y
- if event.x> self.x and self.x is not self.tempx :
- self.RIGHT=True
- self.LEFT=False
- elif event.x< self.x and self.x is not self.tempx :
- self.LEFT=True
- self.RIGHT=False
- else:
- self.x=self.tempx
- self.RIGHT=False
- self.LEFT=False
- if event.y> self.y and self.y is not self.tempy :
- self.DOWN=True
- self.UP=False
- elif event.y< self.y and self.y is not self.tempy :
- self.UP=True
- self.DOWN=False
- else:
- self.y=self.tempy
- self.DOWN=False
- self.UP=False
- app=game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement