Я оцениваю p5py как инструмент обучения. Я беру этот курс, чтобы сделать его веселее. (https://www.kadenze.com/courses/the-nature-of-code-ii/sessions/introduction-overview)
Я застрял в этом примере на некоторое время, потому что, к моему удивлению, мне не разрешили связать эту операцию:
self.acc = (mouse - self.pos).normalize()
вместо этого я должен сделать это:
self.acc = mouse - self.pos
self.acc.normalize() # this is okay
Соблазнительно представить отчет об ошибке, но потом, прочитав документацию по p5js, я знаю, что normalize () работает в p5js.
Что вы думаете об этом? Должен ли я попытаться убедить автора позволить мне связать операции так же, как вы ожидаете в Python?
Ссылка:
https://github.com/p5py/p5/blob/master/p5/pmath/vector.py
from p5 import *
# Vector algebra
# https://p5.readthedocs.io/en/latest/tutorials/vector.html?highlight=mouse_x#vectors-more-algebra
w = None
class Walker:
def __init__(self):
self.pos = Vector(width/2, height/2)
self.vel = Vector(0, 0)
self.acc = Vector(0, 0)
def display(self):
fill(255)
ellipse(self.pos, 48, 48)
def update(self):
mouse = Vector(mouse_x, mouse_y)
self.acc = (mouse - self.pos).normalize() # this is not okay
# self.acc = mouse - self.pos
# self.acc.normalize() # this is okay
self.vel += self.acc
self.pos += self.vel
def setup():
global w
size(640, 360)
background(51)
w = Walker()
def draw():
w.update()
w.display()
if __name__ == '__main__':
run(frame_rate=30)