123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import FSM
- import utils as u
- import menus as m
- import random
- #====================================
-
- State = type("State", (object,), {})
- #====================================
- class State(object):
- def __init__(self, FSM):
- self.FSM = FSM
- def Enter(self):
- pass
- def Execute(self):
- pass
- def Exit(self):
- pass
-
- class Ball(State):
- def __init__(self,FSM):
- super(Ball, self).__init__(FSM)
-
- def Enter(self):
- self.ball_size = 10
- self.ballx = self.ball_size
- self.bally = self.ball_size
-
- self.ball_speed = 8
- self.ball_x_dir = 1
- self.ball_y_dir = 1
-
- self.ball2x = self.ball_size + 180
- self.ball2y = self.ball_size + 70
-
- self.ball2_x_dir = -1
- self.ball2_y_dir = -1
-
- self.xmult = 1.0
-
- o = self.FSM.owner
- o.header_text = "Balls"
- o.pub.register("beat", self)
- if o.keyState[16] > 0 or o.keyState[17] > 0:
- pass
- else:
- u.draw_header(o)
- o.update_display(0)
- super(Ball, self).Enter()
-
- def Execute(self):
- o = self.FSM.owner
- m.menu1_actions(self, o)
- if o.keyState[16] == 1:
- m.draw_menu1(o)
- o.update_display(0)
-
-
- if o.keyState[16] > 0 or o.keyState[17] > 0:
- pass
- else:
- #now = datetime.now()
- #current_time = time.strftime("%-I:%M %p")
-
-
- if self.ballx < (0 + self.ball_size):
- self.ball_x_dir = 1
- if self.ballx > (o.width - self.ball_size):
- self.ball_x_dir = -1
-
- if self.bally < (0 + self.ball_size):
- self.ball_y_dir = 1
- if self.bally > (o.height - self.ball_size):
- self.ball_y_dir = -1
-
- # if self.ballx > (o.width - self.ball_size) or self.ballx < (0 + self.ball_size):
- # self.ball_x_dir *= -1
- # if self.bally > (o.height - self.ball_size) or self.bally < (0 + self.ball_size):
- # self.ball_y_dir *= -1
-
- self.ballx += self.ball_speed * self.ball_x_dir
- self.bally += self.ball_speed * self.ball_y_dir
-
-
- if self.ball2x < (0 + self.ball_size):
- self.ball2_x_dir = 1
- self.xmult = random.uniform(.6, 1.2)
- if self.ball2x > (o.width - self.ball_size):
- self.ball2_x_dir = -1
- self.xmult = random.uniform(.6, 1.2)
-
- if self.ball2y < (0 + self.ball_size):
- self.ball2_y_dir = 1
- if self.ball2y > (o.height - self.ball_size):
- self.ball2_y_dir = -1
-
-
- # if self.ball2x > (o.width - self.ball_size) or self.ball2x < (0 + self.ball_size):
- # self.ball2_x_dir *= -1
- # self.xmult = random.uniform(.8, 1.2)
- # if self.ball2y > (o.height - self.ball_size) or self.ball2y < (0 + self.ball_size):
- # self.ball2_y_dir *= -1
-
- self.ball2x += (self.ball_speed * self.ball2_x_dir) * self.xmult
- self.ball2y += (self.ball_speed * self.ball2_y_dir)
-
- o.draw.rectangle((0, 0, o.width, o.height), outline=0, fill=o.blue)
-
- o.draw.ellipse((self.ballx - self.ball_size, self.bally - self.ball_size, self.ballx + self.ball_size, self.bally + self.ball_size), fill = o.light_grey, outline =o.light_grey)
- o.draw.ellipse((self.ball2x - self.ball_size, self.ball2y - self.ball_size, self.ball2x + self.ball_size, self.ball2y + self.ball_size), fill = o.light_grey, outline =o.light_grey)
- #o.center_block(current_time, o.h3, [0,0,o.width,o.height], o.pink)
- o.update_display(0)
-
- def ReceiveMessage(self, message):
- o = self.FSM.owner
- u.play_seq(o, message)
-
- def Exit(self):
- self.FSM.owner.pub.unregister("beat", self)
|