def __init__(self, animations, velocity=Vector(0, 0), center_of_gravity=Coordinates(0, 0), mass=0.02): GameObject.__init__(self, animations) self.velocity = velocity self.mass = mass self.hit_exceptions = [] self.type_exceptions = ['shootable'] self.center_of_gravity = center_of_gravity self.thread = Thread(self.run, (), 'projectile thread')
def __init__(self): Frame.scale = Settings.frame_dimensions / Coordinates(800, 600) pygame.init() logo = pygame.image.load('resources/frame_kit/logo.png') pygame.event.set_grab(Settings.mouse_confined) pygame.display.set_icon(logo) pygame.display.set_caption('Game') Frame.screen = pygame.display.set_mode(Settings.frame_dimensions.get(), Frame.flags) self.fps_clock = pygame.time.Clock() self.fps_counter = Label('0', 30, (0, 255, 0)) self.thread = Thread(self.run, (), 'frame')
class Projectile(GameObject): def __init__(self, animations, velocity=Vector(0, 0), center_of_gravity=Coordinates(0, 0), mass=0.02): GameObject.__init__(self, animations) self.velocity = velocity self.mass = mass self.hit_exceptions = [] self.type_exceptions = ['shootable'] self.center_of_gravity = center_of_gravity self.thread = Thread(self.run, (), 'projectile thread') def run(self): self.move() def move(self): if not thread_lock.pause_main: dt = 1 / target_fps a = self.gravity() additional_coordinates = self.velocity * dt + a * (dt ** 2 / 2) c = self.check_collision(additional_coordinates, self.hit_exceptions, self.type_exceptions) if c is None: self.reposition(self.get_coordinates() + additional_coordinates) self.velocity += a * dt else: c.hit() self.world_remove() self.thread.stop() def gravity(self): v = Vector(0, 0) for field in World.gravity_fields: v += self.newton_g(field) return v def get_center_of_gravity(self): return self.coordinates + self.center_of_gravity * Frame.scale def newton_g(self, field): r = Vector(field.get_center_of_gravity() - self.get_center_of_gravity()) return r * (self.mass * field.mass / abs(r) ** 3 * constants.G)
def listThreads(request): forum = request.GET.get('forum') since = request.GET.get('since') limit = request.GET.get('limit') order = request.GET.get('order') related = request.GET.getlist('related') sql = "SELECT * from Thread " sql += "where forum='%s' " % forum if since is not None: sql += "and date>='%s' " % since if order is not None: if order == "asc": sql += "order by date ASC " else: sql += "order by date DESC " if limit is not None: sql += "limit %s" % limit result = sql_select(sql) if result == (): resp = {"code": 0, "response": []} resp = json.dumps(resp) return HttpResponse(resp, content_type="application/json") threads = [] if "forum" in related: forum = ForumManager.get(forum) for data in result: params = {'forum': data[1], 'user': data[2], 'title': data[3], 'message': data[4], 'slug': data[5], 'date': data[6].strftime("%Y-%m-%d %H:%M:%S"), 'isClosed': data[7], 'isDeleted': data[8]} thread = Thread(params) thread.id = data[0] thread.likes = data[9] thread.dislikes = data[10] thread.posts = data[11] thread.points = thread.likes - thread.dislikes serialized_thread = thread.serialize() if "user" in related: user = UserManager.get(thread.user) serialized_thread["user"] = user.serialize() if "forum" in related: serialized_thread["forum"] = forum.serialize() threads.append(serialized_thread) resp = {"code": 0, "response": threads} resp = json.dumps(resp) return HttpResponse(resp, content_type="application/json")
def list(request): user = request.GET.get('user') if user == None: forum = request.GET.get('forum') since = request.GET.get('since') limit = request.GET.get('limit') order = request.GET.get('order') sql = "SELECT * from Thread where 1=1 " if user != None: sql += "and user='******' " % user else: sql += "and forum='%s' " % forum if since != None: sql += "and date>'%s' " % since if order != None: if order == "asc": sql += "order by date ASC " else: sql += "order by date DESC " if limit != None: sql += "limit %s" % limit result = sql_select(sql) threads = [] for data in result: params = {'forum': data[1], 'user': data[2], 'title': data[3], 'message': data[4], 'slug': data[5], 'date': data[6].strftime("%Y-%m-%d %H:%M:%S"), 'isClosed': data[7], 'isDeleted': data[8]} thread = Thread(params) thread.id = data[0] thread.likes = data[9] thread.dislikes = data[10] thread.posts = data[11] thread.points = thread.likes - thread.dislikes threads.append(thread.serialize()) resp = {"code": 0, "response": threads} resp = json.dumps(resp) return HttpResponse(resp, content_type="application/json")
def listPosts(request): forum = request.GET.get('forum') since = request.GET.get('since') limit = request.GET.get('limit') order = request.GET.get('order') related = request.GET.getlist('related') sql = "SELECT * from Post " if "thread" in related: sql += "join Thread on Post.thread=Thread.id " sql += "where Post.forum='%s' " % forum if since is not None: sql += "and Post.date>='%s' " % since if order is not None: if order == "asc": sql += "order by Post.date ASC " else: sql += "order by Post.date DESC " if limit is not None: sql += "limit %s" % limit result = sql_select(sql) if result == (): resp = {"code": 0, "response": []} resp = json.dumps(resp) return HttpResponse(resp, content_type="application/json") resultset = [] if "forum" in related: forum = ForumManager.get(forum) for data in result: params = {'user': data[1], 'thread': data[2], 'forum': data[3], 'date': data[4].strftime("%Y-%m-%d %H:%M:%S"), 'message': data[5], 'isApproved': data[6], 'isHighlighted': data[7], 'isEdited': data[8], 'isSpam': data[9], 'isDeleted': data[10], } post = Post(params) post.id = data[0] post.likes = data[11] post.dislikes = data[12] post.points = post.likes - post.dislikes post.parent = Converter.from_hex_to_dec(data[13][-10:-5]) if data[13] != Converter.from_dec_to_hex( int(post.id)) else None serialized_post = post.serialize() if "thread" in related: params = {'forum': data[17], 'user': data[18], 'title': data[19], 'message': data[20], 'slug': data[21], 'date': data[22].strftime("%Y-%m-%d %H:%M:%S"), 'isClosed': data[23], 'isDeleted': data[24]} thread = Thread(params) thread.id = data[16] thread.likes = data[25] thread.dislikes = data[26] thread.posts = data[27] thread.points = thread.likes - thread.dislikes serialized_post["thread"] = thread.serialize() if "user" in related: user = UserManager.get(post.user) serialized_post["user"] = user.serialize() if "forum" in related: serialized_post["forum"] = forum.serialize() resultset.append(serialized_post) resp = {"code": 0, "response": resultset} resp = json.dumps(resp) return HttpResponse(resp, content_type="application/json")