Referência da API do Free Python Games

Free Python Games inclui alguns utilitários úteis. A melhor maneira de expor os iniciantes a essas funções é com a função de ajuda integrada do Python. Os alunos devem ser capazes de compreender e escrever as funções de desenho por si mesmos.

Funções de Desenho

freegames.line(a, b, x, y)[código fonte]

Desenhe uma linha de (a, b) a (x, y).

freegames.square(x, y, size, name)[código fonte]

Desenhe um quadrado em (x, y) com o tamanho do comprimento lateral e preencha o nome da cor.

O quadrado é orientado de forma que o canto esquerdo inferior esteja em (x, y).

Funções de ajuda

freegames.floor(value, size, offset=200)[código fonte]

Piso de valor dado tamanho e deslocamento.

A função do piso é melhor compreendida com um diagrama da reta numérica:

 -200  -100    0    100   200
<--|--x--|-----|--y--|--z--|-->

A linha de número mostrada tem deslocamento 200 denotado pela marca de escala à esquerda em -200 e o tamanho 100 indicado pelas marcas de escala em -100, 0, 100 e 200. O piso de um valor é a marca de escala à esquerda do intervalo onde se encontra. Portanto, para os pontos mostrados acima: o piso(x) é -200, o piso(y) é 0 e o piso(z) é 100.

>>> floor(10, 100)
0.0
>>> floor(120, 100)
100.0
>>> floor(-10, 100)
-100.0
>>> floor(-150, 100)
-200.0
>>> floor(50, 167)
-33.0
freegames.path(filename)[código fonte]

Retorna o caminho completo para o nome do arquivo no módulo freegames.

Vetores

class freegames.vector(x, y)[código fonte]

Vetor bidimensional.

Os vetores podem ser modificados no local.

>>> v = vector(0, 1)
>>> v.move(1)
>>> v
vector(1, 2)
>>> v.rotate(90)
>>> v
vector(-2.0, 1.0)
__abs__() -> abs(v)[código fonte]
>>> v = vector(3, 4)
>>> abs(v)
5.0
__add__(w) → v + w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v + w
vector(4, 6)
>>> v + 1
vector(2, 3)
>>> 2.0 + v
vector(3.0, 4.0)
__eq__(w) → v == w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(1, 2)
>>> v == w
True
__getitem__(v, i) → v[i][código fonte]
>>> v = vector(3, 4)
>>> v[0]
3
>>> v[1]
4
>>> v[2]
Traceback (most recent call last):
    ...
IndexError
__hash__() -> hash(v)[código fonte]
>>> v = vector(1, 2)
>>> h = hash(v)
>>> v.x = 2
Traceback (most recent call last):
    ...
ValueError: cannot set x after hashing
__iadd__(w) → v += w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v += w
>>> v
vector(4, 6)
>>> v += 1
>>> v
vector(5, 7)
__imul__(w) → v *= w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v *= w
>>> v
vector(3, 8)
>>> v *= 2
>>> v
vector(6, 16)
__init__(x, y)[código fonte]

Inicialize o vetor com as coordenadas: x, y.

>>> v = vector(1, 2)
>>> v.x
1
>>> v.y
2
__isub__(w) → v -= w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v -= w
>>> v
vector(-2, -2)
>>> v -= 1
>>> v
vector(-3, -3)
__itruediv__(w) → v /= w[código fonte]
>>> v = vector(2, 4)
>>> w = vector(4, 8)
>>> v /= w
>>> v
vector(0.5, 0.5)
>>> v /= 2
>>> v
vector(0.25, 0.25)
__len__() -> len(v)[código fonte]
>>> v = vector(1, 2)
>>> len(v)
2
__mul__(w) → v * w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v * w
vector(3, 8)
>>> v * 2
vector(2, 4)
>>> 3.0 * v
vector(3.0, 6.0)
__ne__(w) → v != w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v != w
True
__neg__() → -v[código fonte]
>>> v = vector(1, 2)
>>> -v
vector(-1, -2)
__radd__(other)

v.__add__(w) -> v + w

>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v + w
vector(4, 6)
>>> v + 1
vector(2, 3)
>>> 2.0 + v
vector(3.0, 4.0)
__repr__() -> repr(v)[código fonte]
>>> v = vector(1, 2)
>>> repr(v)
'vector(1, 2)'
__rmul__(other)

v.__mul__(w) -> v * w

>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v * w
vector(3, 8)
>>> v * 2
vector(2, 4)
>>> 3.0 * v
vector(3.0, 6.0)
__sub__(w) → v - w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v - w
vector(-2, -2)
>>> v - 1
vector(0, 1)
__truediv__(w) → v / w[código fonte]
>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> w / v
vector(3.0, 2.0)
>>> v / 2
vector(0.5, 1.0)
copy()[código fonte]

Retorna a cópia do vetor.

>>> v = vector(1, 2)
>>> w = v.copy()
>>> v is w
False
move(other)[código fonte]

Move o vetor por outro (no local).

>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v.move(w)
>>> v
vector(4, 6)
>>> v.move(3)
>>> v
vector(7, 9)
rotate(angle)[código fonte]

Gire o vetor no sentido anti-horário pelo ângulo (no local).

>>> v = vector(1, 2)
>>> v.rotate(90)
>>> v == vector(-2, 1)
True
scale(other)[código fonte]

Escala o vetor por outro (no local).

>>> v = vector(1, 2)
>>> w = vector(3, 4)
>>> v.scale(w)
>>> v
vector(3, 8)
>>> v.scale(0.5)
>>> v
vector(1.5, 4.0)
property x

Componente do eixo X do vetor.

>>> v = vector(1, 2)
>>> v.x
1
>>> v.x = 3
>>> v.x
3
property y

Componente do eixo Y do vetor.

>>> v = vector(1, 2)
>>> v.y
2
>>> v.y = 5
>>> v.y
5