Beispiel #1
0
class Asteroids(PointExtractionMixin):

    def __init__(self, *args,**kwargs):
        self.ps = PointStream()
        self.ships = {}
        super(Asteroids, self).__init__(*args,**kwargs)


    def post_extract_points(self, frame):
        if self.points:
            print self.points
        for key, point in self.points.iteritems():
            s = self.ships[key]
            s.x = point[0]
            s.y = point[1]


    def new_point(self, key, pt):
        s = Particle(pt[0], pt[1], r=CMAX/2, g=CMAX/4, b=CMAX/4)
        s.theta = 0.5
        self.ships[key] = s
        self.ps.objects.append(s)

    def lost_point(self, key):
        s = self.ships[key]
        del self.ships[key]
        s.destroy = True


    def read(self, n):
        return [self.safe_pt(x,y) + (r,g,b) for x,y,r,g,b in self.ps.read(n)]
Beispiel #2
0
    def __init__(self, *args,**kwargs):
        super(WaveStream, self).__init__(*args,**kwargs)

        self.ps = PointStream()
        self.wave = Wave(0,0, r=CMAX, g=CMAX, b=CMAX)
        self.wave.anchored = True
        self.wave.x_wave_scale = 200
        #self.wave.step = 5000
        self.ps.objects.append(self.wave)

        self.brightness_by_z = False

        self.wave_height_centered_by_z = False
        self.wave_height_by_z = True
Beispiel #3
0
        # debug
        numButtons = joystick.get_numbuttons()
        print joystick.get_name()
        print joystick.get_numaxes()
        print numButtons

    def __str__(self):
        return self.js.get_name()


"""
THREADS
"""

ps = PointStream()
DRAW = ps

simulator = sim.SIM()


def dac_thread(load_sim):
    global PLAYERS, DRAW

    while True:
        try:
            if load_sim == 0:
                d = dac.DAC(dac.find_first_dac())
                d.play_stream(ps)
            else:
                simulator.play_stream(ps)
Beispiel #4
0
class WaveStream(PointExtractionMixin):

    def __init__(self, *args,**kwargs):
        super(WaveStream, self).__init__(*args,**kwargs)

        self.ps = PointStream()
        self.wave = Wave(0,0, r=CMAX, g=CMAX, b=CMAX)
        self.wave.anchored = True
        self.wave.x_wave_scale = 200
        #self.wave.step = 5000
        self.ps.objects.append(self.wave)

        self.brightness_by_z = False

        self.wave_height_centered_by_z = False
        self.wave_height_by_z = True


    def post_extract_points(self, frame):
        # if self.points:
        #     print self.points
        # for key, point in self.points.iteritems():
        #     s = self.ships[key]
        #     s.x = point[0]
        #     s.y = point[1]
        self.wave.key_points = self.points.values()

        n_points = len(self.points_3d)
        if n_points:
            z_avg = sum([p[2] for p in self.points_3d.values()])/n_points

            z_avg_abs = abs(z_avg)
            z_avg_scaled = z_avg_abs / 150     # Distance form origin scale factor!
            if z_avg_scaled > 1.0:
                z_avg_scaled = 1.0
            z_avg_scaled_centered = 1.0 - z_avg_scaled

            if self.brightness_by_z:
                _z_avg = CMAX * z_avg_scaled_centered
                #print z_avg
                self.wave.r = _z_avg
                self.wave.g = _z_avg
                self.wave.b = _z_avg

            if self.wave_height_centered_by_z:
                _z_avg1 = 2500 * z_avg_scaled_centered
                _z_avg1 += 300
                #self.wave.y_wave_scale = int
                self.wave.x_wave_scale = int(_z_avg1)

            if self.wave_height_by_z:
                myz = z_avg + 200
                if myz < 0:
                    myz = 0
                myz /= 400
                myz *= 1000
                myz + 100
                self.wave.x_wave_scale = int(myz)
                self.wave.y_wave_scale = int(myz*4)


    def new_point(self, key, pt):
        pass

    def lost_point(self, key):
        pass


    def read(self, n):
        return [self.safe_pt(x,y) + (r,g,b) for x,y,r,g,b in self.ps.read(n)]
Beispiel #5
0
 def __init__(self, *args,**kwargs):
     self.ps = PointStream()
     self.ships = {}
     super(Asteroids, self).__init__(*args,**kwargs)