From b93022f16f9ab7855dd1fcf105b297582e3962af Mon Sep 17 00:00:00 2001 From: JakubPaszke Date: Thu, 23 Mar 2023 20:52:46 +0100 Subject: [PATCH] Roads added. Settings file added. Creation of roads and fields moved into map.py file --- __pycache__/settings.cpython-310.pyc | Bin 0 -> 402 bytes assets/road.jpeg | Bin 0 -> 21916 bytes main2.py | 93 +++--------------------- settings.py | 10 +++ src/Plant.py | 37 ++++++++++ src/Tractor.py | 31 +++----- src/__pycache__/Plant.cpython-310.pyc | Bin 0 -> 1103 bytes src/__pycache__/Tractor.cpython-310.pyc | Bin 1200 -> 1086 bytes src/__pycache__/map.cpython-310.pyc | Bin 0 -> 796 bytes src/__pycache__/road.cpython-310.pyc | Bin 0 -> 780 bytes src/map.py | 36 +++++++++ src/plant.py | 7 +- src/road.py | 0 13 files changed, 109 insertions(+), 105 deletions(-) create mode 100644 __pycache__/settings.cpython-310.pyc create mode 100644 assets/road.jpeg create mode 100644 settings.py create mode 100644 src/Plant.py create mode 100644 src/__pycache__/Plant.cpython-310.pyc create mode 100644 src/__pycache__/map.cpython-310.pyc create mode 100644 src/__pycache__/road.cpython-310.pyc create mode 100644 src/map.py create mode 100644 src/road.py diff --git a/__pycache__/settings.cpython-310.pyc b/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77a57934ec8608bee8eac9e9b53be5a198761463 GIT binary patch literal 402 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 literal 0 HcmV?d00001 diff --git a/main2.py b/main2.py index e2a6666..f8538f7 100644 --- a/main2.py +++ b/main2.py @@ -1,76 +1,10 @@ import pygame import sys import random -#import tractor -#import src.screen as screen -import src.plant as plant - -screen_width=900 -screen_height=900 -SIZE = (screen_width, screen_height) -SPECIES=["carrot","potatoe","beetroot","wheat"] -# collected=0 - - -#agent class -class Tractor(pygame.sprite.Sprite): - def __init__(self,engine,transmission): - super().__init__() - self.image=pygame.image.load("assets/tractor/tractor.png") - self.image=pygame.transform.scale(self.image,(36,36)) - self.rect = self.image.get_rect() - - self.engine=engine - self.transmission=transmission - self.fuel=100 - - def collect(self): - print("collected plant") - pygame.sprite.spritecollide(tractor,plant_grup,True) - # collected=collected+1 - # print("plants in trunk "+collected) - - def update(self): - self.rect.center=pygame.mouse.get_pos() - -#plant class -class Plant(pygame.sprite.Sprite): - def __init__(self,species,is_ill,pos_x,pos_y): - super().__init__() - self.species=species - self.is_ill=is_ill - - if species=="carrot": - self.growth_time=100 - self.weight=50 - self.fertilizer="carrot_fertilizer" - self.pic_path="assets/Carrot.png" - - if species=="beetroot": - self.growth_time=200 - self.weight=200 - self.fertilizer="beetroot_fertilizer" - self.pic_path="assets/Beetroot.png" - - if species=="potato": - self.growth_time=100 - self.weight=100 - self.fertilizer="potatoe_fertilizer" - self.pic_path="assets/Potato.png" - - else: - self.growth_time=250 - self.weight=75 - self.fertilizer="wheat_fertilizer" - self.pic_path="assets/Wheat.png" - - self.image = pygame.image.load(self.pic_path) #zmienic - self.image = pygame.transform.scale(self.image,(36,36)) - self.rect = self.image.get_rect() - self.rect.center = [pos_x,pos_y] - - - +from settings import screen_height, screen_width, SIZE, SPECIES, block_size, tile, road_coords_y, road_coords_x +from src.map import drawRoads +from src.Tractor import Tractor +from src.Plant import Plant # pygame initialization pygame.init() @@ -84,28 +18,23 @@ background = pygame.image.load("assets/farmland.jpg") background = pygame.transform.scale(background,SIZE) screen.fill((90,50,20)) background.fill((90,50,20)) +background = drawRoads(background) for line in range(25): pygame.draw.line(background, (0, 0, 0), (0, line * 36), (SIZE[0], line * 36)) pygame.draw.line(background, (0, 0, 0), (line * 36, 0), (line * 36, SIZE[1])) -# size in pixels of one tile = 36px/36px -tile = (36, 36) -# later move it to another class "barn"? -barn_img = pygame.image.load('assets/barn.png') -barn = pygame.transform.scale(barn_img, tile) - -#Tractor +#TRACTOR tractor = Tractor('oil','manual') tractor_group = pygame.sprite.Group() tractor_group.add(tractor) #PLANTS -plant_grup = pygame.sprite.Group() +plant_group = pygame.sprite.Group() for plant in range(30): - new_plant = Plant(random.choice(SPECIES),0,random.randrange(0,screen_width),random.randrange(0,screen_height)) - plant_grup.add(new_plant) + new_plant = Plant(random.choice(SPECIES),0,random.randrange(0,25)*36+18,random.randrange(0,25)*36+18) + plant_group.add(new_plant) if __name__ == "__main__": running = True @@ -117,11 +46,11 @@ if __name__ == "__main__": pygame.quit() sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: - tractor.collect() + tractor.collect(plant_group) pygame.display.flip() screen.blit(background,(0,0)) - plant_grup.draw(screen) + plant_group.draw(screen) tractor_group.draw(screen) tractor_group.update() clock.tick(60) diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..2fa0b41 --- /dev/null +++ b/settings.py @@ -0,0 +1,10 @@ +screen_width=900 +screen_height=900 +SIZE = (screen_width, screen_height) +SPECIES=["carrot","potato","beetroot","wheat"] +# size in pixels of one tile = 36px/36px +tile = (36, 36) +block_size = 36 +road_coords_x = [0, 5, 10, 15, 20] +road_coords_y = [4, 9, 14, 19, 24] + diff --git a/src/Plant.py b/src/Plant.py new file mode 100644 index 0000000..7fa7e1b --- /dev/null +++ b/src/Plant.py @@ -0,0 +1,37 @@ +import pygame + +class Plant(pygame.sprite.Sprite): + def __init__(self,species,is_ill,pos_x,pos_y): + super().__init__() + self.species=species + self.is_ill=is_ill + + if species=="carrot": + self.growth_time=100 + self.weight=50 + self.fertilizer="carrot_fertilizer" + self.pic_path="assets/Carrot.png" + + elif species=="beetroot": + self.growth_time=200 + self.weight=200 + self.fertilizer="beetroot_fertilizer" + self.pic_path="assets/Beetroot.png" + + elif species=="potato": + self.growth_time=100 + self.weight=100 + self.fertilizer="potatoe_fertilizer" + self.pic_path="assets/Potato.png" + + else: + self.growth_time=250 + self.weight=75 + self.fertilizer="wheat_fertilizer" + self.pic_path="assets/Wheat.png" + + self.image = pygame.image.load(self.pic_path) #zmienic + self.image = pygame.transform.scale(self.image,(36,36)) + self.rect = self.image.get_rect() + self.rect.center = [pos_x,pos_y] + \ No newline at end of file diff --git a/src/Tractor.py b/src/Tractor.py index 8604da1..39e2624 100644 --- a/src/Tractor.py +++ b/src/Tractor.py @@ -1,30 +1,23 @@ -from pygame.sprite import Sprite import pygame + class Tractor(pygame.sprite.Sprite): - def __init__(self,engine,transmission,pos_x,pos_y): - super.__init__() - self.image=pygame.image.load("../assets/tractor/tractor.png") - self.image=pygame.transform.scale(self,(36,36)) + def __init__(self,engine,transmission): + super().__init__() + self.image=pygame.image.load("assets/tractor/tractor.png") + self.image=pygame.transform.scale(self.image,(36,36)) self.rect = self.image.get_rect() self.engine=engine self.transmission=transmission - self.pos_x=pos_x - self.pos_y=pos_y self.fuel=100 + + def collect(self,plant_group): + self.plant_group=plant_group + print("collected plant") + pygame.sprite.spritecollide(self,self.plant_group,True) + # collected=collected+1 + # print("plants in trunk "+collected) def update(self): self.rect.center=pygame.mouse.get_pos() - # self.pos_x=pos_x - # self.pos_y=pos_y - - def movement(self): - print("todo") - - - def rotation(self,direction): - print("todo") - - - diff --git a/src/__pycache__/Plant.cpython-310.pyc b/src/__pycache__/Plant.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5e775c8df75df5656dbd1d4678100a776a19c05 GIT binary patch literal 1103 zcmZuwO>5gg5Z%?6Wyf}Gr-vL;DD(piZ3Lyq5=vX>p%4N|DfqH%v};+eEUCL|(iq(m z$f^G!KIWhF+~Zz*@?XfQvnz+{&=qWyz2F*5QufI?U37OxRT6|N9*DhJT5K<=9(4w#8N<^uZ6 z0}PlC*vb!q5dh;AYgvXtpM{puwv5NX=m6trt6`LUwqqGx%jmKmSdaB>X4hs0CZoc6 z`?gb|d24NYYD2tp3pMjL8?KEGoB)j88iC)h+{#N}citzv48h=|V;#g)h(c``Ot^Us zpojGinR21hEM0N28d52_lFoN z+VW<>!#O9GV(6QD)7NKn#NcAascO;(Tm7#lVc275^9-nB7hpWlzFd}E=#Y>!PZc4$ zB}*QsT DBswQL literal 0 HcmV?d00001 diff --git a/src/__pycache__/Tractor.cpython-310.pyc b/src/__pycache__/Tractor.cpython-310.pyc index 54738c97aed21c952b12f839ebff3b86d218886e..3b365b4e383c464da79f0c1effef20b23eea1819 100644 GIT binary patch literal 1086 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 cV4H7+9Km^8{G!yVD$