From 24497254d71be171090eeb0b0ea14126f6ef7162 Mon Sep 17 00:00:00 2001 From: Aliaksei Brown Date: Wed, 22 Mar 2023 21:46:26 +0100 Subject: [PATCH] new method: land, new action: dead grass: when you underwater the grass it changes the state. (losing points in the future score updates) --- land.py | 25 +++++++++++++++++++++++++ main.py | 21 +++++++++------------ resources/bad_grass.png | Bin 24424 -> 1479 bytes tractor.py | 1 - 4 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 land.py diff --git a/land.py b/land.py new file mode 100644 index 00000000..bbed151e --- /dev/null +++ b/land.py @@ -0,0 +1,25 @@ +import pygame +import random + +class Land: + def __init__(self, cell_size, cell_number, grass_body): + self.grass_image = pygame.image.load(r'resources/grass.png').convert() + self.grass_image = pygame.transform.scale(self.grass_image, (cell_size, cell_size)) + + self.bad_grass_image = pygame.image.load(r'resources/bad_grass.png').convert() + self.bad_grass_image = pygame.transform.scale(self.bad_grass_image, (cell_size, cell_size)) + + for i in range(0, cell_number): + for k in range(0, cell_number): + grass_body.append([i,k]) + + + def place_grass(self, parent_screen, cell_number, cell_size, grass_body, name): + for body in grass_body: + x = int(body[0] * cell_size) + y = int(body[1] * cell_size) + if(name == 'good'): + parent_screen.blit(self.grass_image, (x, y)) + if(name == 'bad'): + parent_screen.blit(self.bad_grass_image, (x, y)) + \ No newline at end of file diff --git a/main.py b/main.py index 6c40793f..fba8d115 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ import pygame import random +import land import tractor import blocks from pygame.locals import * @@ -16,18 +17,16 @@ class Game: self.green_leaf_body = [] self.stone_body = [] self.flower_body = [] - + self.dead_grass_body = [] + self.grass_body = [] + self.entire_block = {} pygame.init() self.surface = pygame.display.set_mode((self.cell_size*self.cell_number, self.cell_size*self.cell_number)) # initialize a window - self.grass_image = pygame.image.load(r'resources/grass.png').convert() - self.grass_image = pygame.transform.scale(self.grass_image, (self.cell_size, self.cell_size)) - - self.bad_grass_image = pygame.image.load(r'resources/bad_grass.png').convert() - self.bad_grass_image = pygame.transform.scale(self.bad_grass_image, (self.cell_size, self.cell_size)) + self.land = land.Land(self.cell_size, self.cell_number, self.grass_body) self.blocks = blocks.Blocks(self.surface,self.cell_size) @@ -62,17 +61,15 @@ class Game: self.tractor.move('right',self.cell_size, self.cell_number) if pygame.key.get_pressed()[K_SPACE]: self.tractor.water(self.dead_leaf_body, self.green_leaf_body, self.cell_size) + #self.tractor.water(self.grass_body, self.dead_grass_body, self.cell_size) + elif event.type == QUIT: running = False self.surface.fill((140, 203, 97)) # background color - for i in range(0, self.cell_number): - for k in range(0, self.cell_number): - x = int(i * self.cell_size) - y = int(k * self.cell_size) - self.surface.blit(self.grass_image, (x, y)) - + self.land.place_grass(self.surface, self.cell_number, self.cell_size, self.grass_body, 'good') + #self.land.place_grass(self.surface, self.cell_number, self.cell_size, self.dead_grass_body, 'bad') self.blocks.place_blocks(self.surface, self.cell_size, self.dead_leaf_body, 'leaf') self.blocks.place_blocks(self.surface, self.cell_size, self.green_leaf_body, 'alive') diff --git a/resources/bad_grass.png b/resources/bad_grass.png index 511a978c6702d6896fd35bc7f4fd7daf21dfbd02..56a856a46d2ffceb8aef90b9a696e51a7e9af594 100644 GIT binary patch delta 999 zcmaE{kMTHneP@85J1>_M7Xt$WucwDg5Rgs)VGcGR`DjMD1(0G%cl32+VA$Bt{U?zX z$X7`A2=ZlMs8VBKXlP+z_yrVdc)`F>YQVtoDuIE)Y6b&?c)^@qfi^&ifYb=jG+$o^ zEg+kNfr(Lwff>kR1VV=POa>M^Fo%HwXcQ1IFJMGSFJNL|fyyQ9Q7kP61Pb8P)SJBYXnryS&J3c7G<14CAr!|{L7Dk?6% zhx;`iO{`ffnf)xTbvX_iOR4l}%@w6mfv@fFiQAWbDK4*hSN|eh zP&VMZi|jTo#={q`<@PjK`5g{ZOpv&>t5-1Kc;*c)OV+LXwl7{j_i6R@*VC6Tej0o3 z|K(dH4My3kln<~(9aV6cXn0jHfoW}$z=9JqUKMc#{minmlDR5+5YOeTdD=f@k%_E!O9>=D%;7OvrQ-f@!WJklK_P-pAWlvHcOqt~t zb>CPs|M!2Hi;RiWIUF2jI9SZ%15!PK9B zFF%%jaP#ypO;(zV?{pO1Jx7jR`9quoIG6D!eIT$NPtn5|FXPW7R~$LVdctYM=Go?+4yHa>wnQ;*?SVanuHCuz-ggo6m*Rs(Y>Z-OtXLRl^*-fc(wR}p!DJ$RdghJ)g2DE& uudgipW;xwTR=}*4fu)7BJq literal 24424 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