Exemple #1
0
from numpy import ndarray
from pycat.core import Window, Sprite, Color
from pycat.base import NumpyImage as np
from pycat.base import Texture
from pycat.base.event import MouseEvent
from typing import List, TypeVar

w = Window(is_sharp_pixel_scaling=True)
w.set_clear_color(100, 100, 100)


def sprite_array(row, col, file):
    array = np.get_array_from_file(file)
    m, n, _ = array.shape
    di = m // row
    dj = n // col
    result = []
    for i in range(row):
        row = []
        for j in range(col):
            row.append(array[i * di:(i + 1) * di, j * dj:(j + 1) * dj, :])
        result.append(row)
    return result


def create(w: Window,
           sub_array: List[List[ndarray]],
           scale=1,
           sprite_cls=Sprite):
    s, n = len(sub_array), len(sub_array[0])
    grid: List[List[Sprite]] = []
Exemple #2
0
from math import sqrt
from pycat.core import Window, Sprite, Point, Color
from pycat.base.event import MouseEvent

w = Window()
w.set_clear_color(126, 200, 80)
hole = w.create_circle(700, 500, 30, Color.BLACK)
SPEED = 0.05
FRICTION = 0.97


def dot(u: Point, v: Point):
    return u.x * v.x + u.y * v.y


def project(u: Point, v: Point):
    return dot(u, v) * v / dot(v, v)


def reflect(u: Point, v: Point):
    return u - 2 * project(u, v)


class Ball(Sprite):
    def on_create(self):
        self.aim = w.create_line()
        self.scale = 0.1
        self.image = "golfball.png"
        self.is_aimmimg = True
        self.speed = 0