Пример #1
0
        scene.setProgramConstant('resolution', [float(RES_X), float(RES_Y)])
        scene.setProgramConstant('surfaceSize', [float(RES_X), float(RES_Y)])
        scene.setProgramConstant('time', timeval)
        scene.setProgramConstant('mouse', [0.5, 0.5])
        scene.setProgramConstant('backbuffer', 0)
        scene.drawTriangles(self.ibuffer)

        scene.setRenderToBackBuffer()
        scene.setProgram(self.render_program)
        scene.setVertexBufferAt('pos', self.vbuffer, 0, 
                                            VertexBuffer3DFormat.FLOAT_2)
        scene.setProgramConstant('resolution', [float(WIDTH), float(HEIGHT)])
        scene.setProgramConstant('surfaceSize', [float(WIDTH), float(HEIGHT)])
        scene.setTextureAt('tex', self.texture)
        scene.drawTriangles(self.ibuffer)

    def set_next_shader(self):
        file_name = self.shader_files[self.next_shader_index]
        print(file_name)
        fshader_file = open(file_name, 'r')
        fshader_src = fshader_file.read()
        self.heroku_program.upload(self.vshader_src, fshader_src)
        self.next_shader_index += 1
        if self.next_shader_index >= len(self.shader_files):
            self.next_shader_index = 0


if __name__ == '__main__':
    flappy.start(HerokuShaders, width=WIDTH, height=HEIGHT, title=__file__)
Пример #2
0
        self.addEventListener(Event.ENTER_FRAME, self.on_enter_frame)

    def on_enter_frame(self, event):
        curtime = time()
        dt = curtime - self.lasttime

        self.xrot += dt * self.rotspeed * 0.2
        self.yrot += dt * self.rotspeed * 0.5

        m = Matrix3D()
        m.translate(0.0, 0.0, -4.0)
        m.rotate(self.xrot, self.yrot, 0.0)
        self.view_mat = m

        scene = self.scene
        scene.clear(0.0, 0.0, 0.0, 1.0)
        scene.setProgram(self.prog)
        scene.setVertexBufferAt('vpos', self.vbuffer, 0, 
                                            VertexBuffer3DFormat.FLOAT_3)
        scene.setVertexBufferAt('color', self.vbuffer, 3, 
                                            VertexBuffer3DFormat.FLOAT_4)
        scene.setProgramConstantFromMatrix('view_mat', self.view_mat)
        scene.setProgramConstantFromMatrix('proj_mat', self.proj_mat)
        scene.drawTriangles(self.ibuffer)

        self.lasttime = curtime

if __name__ == '__main__':
    flappy.start(Cube3DExample, width=WIDTH, height=HEIGHT, title=__file__)
Пример #3
0
    def update_blur(self, bx, by):
        blur = BlurFilter(blurX=abs(bx), blurY=abs(by))
        self.blur_txt.filters = [blur]    

    def set_glow(self):
        self.stage.color = 0x000020
        self.addChild(self.glow_txt)
        self.update_func = self.update_glow

    def update_glow(self, bx, by):
        glow = GlowFilter(color=0x00ff00, alpha=1.0, 
                            blurX=abs(bx), blurY=abs(by), strength=2.0)
        self.glow_txt.filters = [glow]

    def set_shadow(self):
        self.stage.color = 0xfcdd76
        self.addChild(self.shadow_txt)
        self.update_func =self.update_shadow

    def update_shadow(self, bx, by):
        pt = Point(bx, by)
        distance = pt.length
        pt.normalize()
        angle = (math.atan2(pt.y, pt.x) / math.pi) * 180.0
        shadow = DropShadowFilter(distance=distance, angle=angle, alpha=0.5)
        self.shadow_txt.filters = [shadow]

if __name__ == '__main__':
    flappy.start(FiltersExample, width=WIDTH, height=HEIGHT, title=__file__)
Пример #4
0
#! /usr/bin/env python
# encoding: utf-8

import flappy
from flappy.display import Sprite
from flappy.text import TextField


class HelloWorld(Sprite):

    def __init__(self):
        super(HelloWorld, self).__init__()
        txt = TextField()
        txt.text = 'Hello World!!!'
        txt.selectable = False
        self.addChild(txt)

if __name__ == '__main__':
    flappy.start(HelloWorld, width=320, height=200, title=__file__)
Пример #5
0
        self.frame_time += dt
        if self.frame_time >= self.ANIM_TIME:
            self.frame_time = 0.0
            self.frame += self.anim_dir
            if not (0 <= self.frame < self.NFRAMES):
                self.frame -= self.anim_dir
                self.anim_dir = -self.anim_dir

        self.x += self.speed * dt * self.direction_x 
        self.y += self.speed * dt * self.direction_y

        if not (self.radius < self.x < (WIDTH - self.radius)):
            self.direction_x = -self.direction_x
            self.x = max(self.radius, min(WIDTH - self.radius, self.x))
        if not (self.radius < self.y < (HEIGHT - self.radius)):
            self.direction_y = -self.direction_y
            self.y = max(self.radius, min(HEIGHT - self.radius, self.y))

    def get_tile_data(self):
        return  [
                    self.x,
                    self.y,
                    self.tileset * self.NFRAMES + self.frame,
                    self.scale,
                    self.rotation, 
                ]

if __name__ == '__main__':
    flappy.start(ParaspritesExample, width=WIDTH, 
                                        height=HEIGHT, title=__file__)
Пример #6
0
        self.stage.focus = self

    def on_enter_frame(self, event):
        new_time = time()
        dt = new_time - self.old_time
        
        self.vy += (GRAVITY + self.ay) * dt
        self.vx += self.ax * dt
        self.ball.x += self.vx * dt
        self.ball.y += self.vy * dt
        
        if (self.ball.x + BALL_RADIUS) > WIDTH:
            self.vx = -self.vx * DAMP
            self.ball.x = WIDTH - BALL_RADIUS
        elif (self.ball.x - BALL_RADIUS) < 0.0:
            self.vx = -self.vx * DAMP
            self.ball.x = BALL_RADIUS
        elif (self.ball.y + BALL_RADIUS) > HEIGHT:
            self.vy = -self.vy * DAMP
            self.ball.y = HEIGHT - BALL_RADIUS             
        elif (self.ball.y - BALL_RADIUS) < 0.0:
            self.vy = -self.vy * DAMP
            self.ball.y = BALL_RADIUS            

        self.ax, self.ay = 0.0, 0.0
        self.old_time = new_time


if __name__ == '__main__':
    flappy.start(KeyboardExample, width=WIDTH, height=HEIGHT, title=__file__)
Пример #7
0
def main():
    # Starts game
    _thread.start_new_thread(start_flappy, ())
    generation = 1
    population = 9

    best_bird_ever = Bird()
    best_score_ever = 0

    birds = create_first_population(population)

    flappy.population = population

    fitnesses = np.array([])

    while True:

        for bird in birds:
            reset_bird(bird)

        flappy.start()

        # todo: passer le tout en fonction
        # todo: passer le tout dans flappy.py et supprimer ici
        flappy.pooulation = population
        flappy.score = np.zeros(population)
        flappy.diff_x = np.zeros(population)
        flappy.diff_y = np.zeros(population)
        flappy.is_alive = np.full(population, True)
        flappy.birds = np.arange(population)

        # While at least one bird is alive
        while len(flappy.birds) > 0:

            for i in range(len(birds)):

                if flappy.is_alive[i]:
                    bird = birds[i]

                    # todo : tester avant de l'enlever
                    bird.should_flap(0, 0)

                    diff_x = flappy.diff_x[i]
                    diff_y = flappy.diff_y[i]
                    bird.increase_fitness(flappy.score[i], diff_x)
                    # todo : resoudre le problème des scores
                    prediction = bird.should_flap(diff_x, diff_y)
                    if prediction:
                        flappy.flap(i)

            sleep(0.03)

        birds = sort_birds_by_fitness(birds)

        fitnesses = np.append(fitnesses,
                              np.max([bird.fitness for bird in birds]))
        save(fitnesses, arg())

        if birds[0].fitness > best_score_ever:
            best_bird_ever = best_bird_ever
            best_score_ever = birds[0].fitness
            print("New best score with {} !".format(best_score_ever))

        if birds[0].score == 0:
            print("Starting new population. This one was too bad :(")
            # generation = 0

            best = birds[0]
            birds = create_first_population(population)
            birds[0] = best

        else:
            birds = evolve_population(birds)
            birds[population - 1] = best_bird_ever

        generation += 1