From d312fa33081c6348bde6d52c977e8be450e21085 Mon Sep 17 00:00:00 2001 From: administrator Date: Sun, 4 Feb 2024 18:33:16 +0100 Subject: [PATCH] Update Fruit class Added multiplie fruitcolors and spawn them random --- data/models/fruit_1_1_scaled.svg | 22 +++++++++---------- data/models/fruit_1_1_scaled_2.png | Bin 1865 -> 1854 bytes data/models/fruit_1_1_scaled_2_green.png | Bin 0 -> 1276 bytes data/models/fruit_1_1_scaled_2_orange.png | Bin 0 -> 1692 bytes data/models/fruit_1_1_scaled_2_red.png | Bin 0 -> 1854 bytes data/models/fruit_1_1_scaled_2_yellow.png | Bin 0 -> 1288 bytes modules/GameObject.py | 12 +++++++++-- pygame-test.py | 25 +++++++++++++--------- 8 files changed, 36 insertions(+), 23 deletions(-) create mode 100644 data/models/fruit_1_1_scaled_2_green.png create mode 100644 data/models/fruit_1_1_scaled_2_orange.png create mode 100644 data/models/fruit_1_1_scaled_2_red.png create mode 100644 data/models/fruit_1_1_scaled_2_yellow.png diff --git a/data/models/fruit_1_1_scaled.svg b/data/models/fruit_1_1_scaled.svg index b0309c1..4a48ec5 100644 --- a/data/models/fruit_1_1_scaled.svg +++ b/data/models/fruit_1_1_scaled.svg @@ -8,7 +8,7 @@ version="1.1" id="svg1" xml:space="preserve" - inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" sodipodi:docname="fruit_1_1_scaled.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" @@ -25,12 +25,12 @@ inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" inkscape:zoom="0.53718434" - inkscape:cx="782.78529" - inkscape:cy="191.74051" - inkscape:window-width="2560" - inkscape:window-height="1356" - inkscape:window-x="2560" - inkscape:window-y="0" + inkscape:cx="781.85451" + inkscape:cy="190.80973" + inkscape:window-width="1920" + inkscape:window-height="1009" + inkscape:window-x="-8" + inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="layer1" /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 diff --git a/data/models/fruit_1_1_scaled_2_green.png b/data/models/fruit_1_1_scaled_2_green.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7041f440c733c8666f6e69be7065872c2ce503 GIT binary patch literal 1276 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 sSTIs+EEuUZ7L3#y3r1>cK}i=y zU`7RHkqCJamT6EI8U>LR`BA$0fo$oTeW~s4uZx+s*=1&SKF&FNlJkdwo%ea>egD5R zGw*r#eNLcqGN^5&4b)04kY-a0q}enoUs|vjSOSaz+JU{mcHl!`3)ojDfBB{6ICwN8 z{G+l|8J(}M%y9x`nlf9tOzF&fZQcPc&5`!GGQA|gLS>zDBq7|RtPSC+g9OSCIZ}H< z=t0+xQ|2jC68b$?`7|f*-8BFaWqC?yo$`wEM|6HrIXk-MLghd#_Z_7pid~`{$~ky&R&`rV|o)fhyS7c;_ND`zS5m6xOZO|kesWtOr* z=~T{$pwjv~Wa7J38;~~T^^BCSlnKhMQT{Wr*h*!pGRkm@?aJuqs4^$7uM!|)IEyVa ze1wuxHY)8=?#;3GMN!-J%5ND%bSYO9@l+CI0O)+>?G#fhqMQq2ZIcWish?B2JZ?B) zOf2dp&|3Us6^sUE0~3L?zR4FAlTDDhR>@%HIVil3E@s9hlBbgYclqk5QwKca3J*5+KYQ;X5((SdkXUn0|u} zU>h*4@C;Hv^#k+4%|ioOn-34sTo4fYeIc5*2Px%_1Z}_`U`m~hmDNq)`glXy9l46; zg@ABJXOPlB7T4KGRowu=n0P}P$lL~)siF>GPP`!jBnW^Rjqy`SGvg;ocVsefN@KiK z(mC;yB#?29@ljcWR_;k4|H~3q63AZ-cTr9!;wMQU`+(lYc&Vg4@sk7)dx4)CX`_YAppO{NV)8?yc% zSyM+NRkRn_IJ7YfWEF6{Zg$FRb<*Bh28i9j+BzC4qh8?Eq`+`>_NRf7FFpUK*TB6= zfgF3k!5hGxwf9t5$AB4WAbEcIunag_Q%mLaY#IcRd#7>f2=8Zor;N!;$XQkh+JN=I zf?9pN1#}F!8vHUVDd&%B><8`uc2%}jOak`|2N7l#y2ng6tjsp*ky@TNu|)68uvlrJ z%+aSjT;zh1rMF-L@DkbkU%kKwgbUDvgc}-{1B(bZIMUP&+zY;6$WpbBj%y67y8l+5 z`jj1p)uyQ_*R(4OlsBWtw9l~2y;XTqnNY?{4U3^c2hb0eSf2#}R5Q|`s&4&t()^~e y1=4J4fi#<1AkC&0NVBO0(rjvhG@DKukbeM(_d}Nlaa0um0000 None: + def __init__(self, name: str, surface: pygame.Surface, surface_size: tuple, init_pos_x, init_pos_y, visibility: bool = True, rect_size:int = 10, color:tuple = (0,0,0), score_points = 0, sprite=str()) -> None: super().__init__(name, surface, surface_size, init_pos_x, init_pos_y, visibility) self.__score_points = score_points self.__rect:pygame.Rect self.__rect_size = rect_size self.__color = color + self.__image = pygame.image.load(sprite) def draw(self): - self.__rect = pygame.draw.rect(self._surface, self.__color, (self._position[0], self._position[1], self.__rect_size, self.__rect_size)) + #self.__rect = pygame.draw.rect(self._surface, self.__color, (self._position[0], self._position[1], self.__rect_size, self.__rect_size)) + self.__rect = self._surface.blit(self.__image, self.get_position()) + + + def get_rect(self) -> pygame.Rect: return self.__rect diff --git a/pygame-test.py b/pygame-test.py index b86e6f6..37a8258 100644 --- a/pygame-test.py +++ b/pygame-test.py @@ -89,12 +89,15 @@ def spawn_entities(x:int, list_of_objects:list): list_of_objects.append(Entity) count += 1 - +fruits = [ + "data/models/fruit_1_1_scaled_2_red.png", + "data/models/fruit_1_1_scaled_2_green.png", + "data/models/fruit_1_1_scaled_2_yellow.png", + "data/models/fruit_1_1_scaled_2_orange.png" +] background = pygame.surface.Surface((640,480)) -imageobj = GOIMAGE("TEST", PLAYGROUND, PLAYGROUND.get_size(), 50, 50, image="data/models/fruit_1_1_scaled_2.png", rect_size=(15,50)) - x = 3600 invert = False @@ -119,16 +122,20 @@ while active == True: elif (event.type == pygame.KEYDOWN): if (event.key == pygame.K_UP): game_started = True - player.change_direction("up") + if(player.get_playermovedirection()["down"] != True): + player.change_direction("up") elif (event.key == pygame.K_DOWN): game_started = True - player.change_direction("down") + if(player.get_playermovedirection()["up"] != True): + player.change_direction("down") elif (event.key == pygame.K_RIGHT): game_started = True - player.change_direction("right") + if(player.get_playermovedirection()["left"] != True): + player.change_direction("right") elif (event.key == pygame.K_LEFT): game_started = True - player.change_direction("left") + if(player.get_playermovedirection()["right"] != True): + player.change_direction("left") text_surface_score = my_font.render('Score: '+str(player.get_player_score()), True, (0, 0, 0)) text_surface_player = my_font.render("Player: " + User.getusername(), True, SCHWARZ, None) @@ -137,10 +144,8 @@ while active == True: MAINSCREEN.blit(text_surface_score, (MAINSCREEN_SIZE[0]/2-text_surface_score.get_size()[0]/2,0)) #Paints the Scoreboard in Top/Center MAINSCREEN.blit(text_surface_player, (10, 0)) - imageobj.draw() - if(spawn_fruit == True): - fruit = Fruit("Fruit", PLAYGROUND, PLAYGROUND.get_size(), init_pos_x=rand.randint(0, PLAYGROUND.get_size()[0]-40), init_pos_y=rand.randint(0, PLAYGROUND.get_size()[1]-40), color=ROT, rect_size=40, score_points=10) + fruit = Fruit("Fruit", PLAYGROUND, PLAYGROUND.get_size(), init_pos_x=rand.randint(0, PLAYGROUND.get_size()[0]-40), init_pos_y=rand.randint(0, PLAYGROUND.get_size()[1]-40), color=ROT, rect_size=40, score_points=10, sprite=fruits[rand.randint(0, len(fruits)-1)]) spawn_fruit = False if(fruit):