В модуле pygame Surface.fill
имеет параметр под названием rect=[]
.
в моем коде, я загружаю 8 на 8 пикселей воды с регулируемым уровнем. От 1 до 8 пикселей в высоту.
for x in range(len(screen)):
for y in range(len(screen[x])):
if screen[x][y] == 0:
box.fill((0,0,0))
elif screen[x][y] == 9:
box.fill((255,255,255))
else:
box.fill((0,0,255), rect = [x*8,y*8+8-screen[x][y],8,screen[x][y]])
window.blit(box, (x*8,y*8))
box
это pygame.Surface((8,8))
Список screen
представляет собой весь экран
Я использую screen
список для отображения всего экрана с использованием значений из 0to9
, где 9
- это платформа solid, 8to1
- уровень воды, а 0
- ничего
Этот код загружается в каждый screen
значение как тип 8 на 8 пикселей (0to9
). (так как я использую 8 на 8 пикселей, список имеет длину 100, а мой экран - 800 пикселей, отсюда * 8).
В части box.fill
я заполняю box
синим цветом, а я Я использую параметр rect
, чтобы нарисовать rect
размером (8
в длину и уровень воды или screen
в высоту), и я помещаю его в x*8
(формула объяснена ранее) и y*8
и добавление 8-screen[x][y]
, которое перемещает прямоугольник вниз, чтобы водный элемент имел правильную высоту.
Моя проблема в том, что пиксели воды не загружаются.