commit 2357be2b2b7c3e1d77d7570e8cd8fcc8db61f404 Author: Apologieze <47333595+Apologieze@users.noreply.github.com> Date: Sat Mar 19 00:21:49 2022 +0100 First upload with an almost working game diff --git a/Image/Original/2132442089-vector.eps b/Image/Original/2132442089-vector.eps new file mode 100644 index 0000000..d4cc42d Binary files /dev/null and b/Image/Original/2132442089-vector.eps differ diff --git a/Image/Original/2132442089-vector.svg b/Image/Original/2132442089-vector.svg new file mode 100644 index 0000000..9162069 --- /dev/null +++ b/Image/Original/2132442089-vector.svg @@ -0,0 +1,541 @@ + +image/svg+xml diff --git a/Image/Original/mrocket1.png b/Image/Original/mrocket1.png new file mode 100644 index 0000000..496e573 Binary files /dev/null and b/Image/Original/mrocket1.png differ diff --git a/Image/Original/mrocket2.png b/Image/Original/mrocket2.png new file mode 100644 index 0000000..92becb0 Binary files /dev/null and b/Image/Original/mrocket2.png differ diff --git a/Image/Original/mrocket3.png b/Image/Original/mrocket3.png new file mode 100644 index 0000000..0d47afe Binary files /dev/null and b/Image/Original/mrocket3.png differ diff --git a/Image/Original/shutterstock_2132442087.eps b/Image/Original/shutterstock_2132442087.eps new file mode 100644 index 0000000..ac002a0 Binary files /dev/null and b/Image/Original/shutterstock_2132442087.eps differ diff --git a/Image/Original/shutterstock_2132442087.svg b/Image/Original/shutterstock_2132442087.svg new file mode 100644 index 0000000..9b233b3 --- /dev/null +++ b/Image/Original/shutterstock_2132442087.svg @@ -0,0 +1,535 @@ + +image/svg+xml diff --git a/Image/Original/shutterstock_2132442111.eps b/Image/Original/shutterstock_2132442111.eps new file mode 100644 index 0000000..ba17074 Binary files /dev/null and b/Image/Original/shutterstock_2132442111.eps differ diff --git a/Image/Original/shutterstock_2132442111.svg b/Image/Original/shutterstock_2132442111.svg new file mode 100644 index 0000000..284cf48 --- /dev/null +++ b/Image/Original/shutterstock_2132442111.svg @@ -0,0 +1,484 @@ + +image/svg+xml diff --git a/Image/Poppins.ttf b/Image/Poppins.ttf new file mode 100644 index 0000000..e76ec69 Binary files /dev/null and b/Image/Poppins.ttf differ diff --git a/Image/Poppins2.ttf b/Image/Poppins2.ttf new file mode 100644 index 0000000..bc36bcc Binary files /dev/null and b/Image/Poppins2.ttf differ diff --git a/Image/mrocket1.png b/Image/mrocket1.png new file mode 100644 index 0000000..7ec1bd4 Binary files /dev/null and b/Image/mrocket1.png differ diff --git a/Image/mrocket2.png b/Image/mrocket2.png new file mode 100644 index 0000000..752d15a Binary files /dev/null and b/Image/mrocket2.png differ diff --git a/Image/mrocket3.png b/Image/mrocket3.png new file mode 100644 index 0000000..0cef686 Binary files /dev/null and b/Image/mrocket3.png differ diff --git a/crash.py b/crash.py new file mode 100644 index 0000000..dae1448 --- /dev/null +++ b/crash.py @@ -0,0 +1,308 @@ +from random import randint +import pygame as pg +from sys import exit +from tkinter import Tk +import ctypes as ct +from random import randint + + +DEBUG = False +FULLSCREEN = False +running = False +screen_width, screen_height = Tk().winfo_screenwidth(), Tk().winfo_screenheight() +res = (screen_width, screen_height) if FULLSCREEN else (1200, 800) +mid_screen = (res[0] // 2, res[1] // 2) + +pg.init() +screen = pg.display.set_mode(res, pg.FULLSCREEN) if FULLSCREEN else pg.display.set_mode(res) +pg.display.set_caption('Monke Crash') +clock = pg.time.Clock() +bet_balance = 0.0 +# pg.mouse.set_visible(False) + +"""Fonction pour passer la fenêtre en thème sombre""" +def dark_bar(): + DWMWA_USE_IMMERSIVE_DARK_MODE = 20 + set_window_attribute = ct.windll.dwmapi.DwmSetWindowAttribute + hwnd = pg.display.get_wm_info()["window"] + rendering_policy = DWMWA_USE_IMMERSIVE_DARK_MODE + value = 2 + value = ct.c_int(value) + set_window_attribute(hwnd, rendering_policy, ct.byref(value),ct.sizeof(value)) + pg.display.set_mode((1,1)) + pg.display.set_mode(res) + +class Game_state(): + def generate_multiplicateur(self): + choice = randint(0, 99) + print("choice", choice) + if choice < 10: + return 1 + (randint(0, 5) / 100) + elif choice < 30: + return 1 + (randint(1, 50) / 100) + elif choice < 60: + return 1 + (randint(50, 100) / 100) + elif choice < 85: + return randint(200, 300) / 100 + elif choice < 90: + return randint(300, 500) / 100 + elif choice < 95: + return randint(500, 999) / 100 + elif choice < 99: + return randint(1000, 5000) / 100 + else: + return randint(5000, 10000) / 100 + + +class Rocket(pg.sprite.Sprite): + def __init__(self,game): + super().__init__() + self.game = game + rocket1 = pg.image.load('Image/mrocket1.png').convert_alpha() + rocket2 = pg.image.load('Image/mrocket2.png').convert_alpha() + rocket3 = pg.image.load('Image/mrocket3.png').convert_alpha() + + self.rocket_anim = [rocket1,rocket2,rocket3] + self.rocket_index = 1 + self.move_x = 3 + self.move_y = -1 + self.left = False + self.fall = False + + self.image = self.rocket_anim[1] + self.rect = self.image.get_rect(bottomleft=(-20,res[1]-150)) + + self.multi_max = self.get_multiplicateur() + print(self.multi_max) + self.live_multi = 1.0 + self.multi_add = 0.003 + self.text_multi = big_font.render(str(self.live_multi)+'x', True, 'white') + self.text_multi_rect = self.text_multi.get_rect(midleft=(self.rect.midright)) + + def get_multiplicateur(self): + return self.game.generate_multiplicateur() + + def monter(self): + if self.move_x > 0: + if self.rect.right-20 > res[0]: + self.move_x = 0 + if self.move_y != 0: + if self.rect.top < 0: + self.move_y = 0 + + def descendre(self): + if self.rect.bottom+130 < res[1]: + self.rect.bottom += 10 + else: + self.fall = False + self.reset() + + def apply_position(self): + if self.fall: + self.descendre() + else: + self.monter() + self.rect.bottomleft = self.rect.left + self.move_x, self.rect.bottom + self.move_y + + def change_animation(self,n): + self.image = self.rocket_anim[n] + self.rocket_index = n + + def multi_update(self): + if self.live_multi >= self.multi_max: + self.fall = True + self.change_animation(2) + if not self.fall: + self.live_multi += self.multi_add + self.text_multi = big_font.render(str(self.live_multi)[0:4]+'x', True, 'white') + if self.left: + self.text_multi_rect = self.text_multi.get_rect(midright=(self.rect.left, self.rect.centery)) + else: + self.text_multi_rect = self.text_multi.get_rect(midleft=(self.rect.right-30,self.rect.centery)) + if self.text_multi_rect.right+20 >= res[0]: + self.left = True + self.multi_add = 0.01 + self.change_animation(1) + screen.blit(self.text_multi, self.text_multi_rect) + + def reset(self): + global running + self.rect = self.image.get_rect(bottomleft=(-20, res[1] - 150)) + self.live_multi = 1.0 + self.multi_add = 0.003 + self.move_x = 3 + self.move_y = -1 + self.left = False + self.change_animation(1) + running = False + self.multi_max = self.get_multiplicateur() + + def update(self): + if running: + if not self.left and not self.fall: + if self.rocket_index == 1: + self.change_animation(0) + self.apply_position() + self.multi_update() + #self.animation_state() + +class Courbe(): + def __init__(self): + self.rect = pg.Rect(0,0,res[0]-10,res[1]-10) + self.color = "#c9204d" + self.angle = -0.1 + self.rect.bottomleft = 0, res[1] + + def update(self): + self.rect.height = res[1]*2-rocket.sprite.rect.center[1]*2.2-150 + self.rect.width = rocket.sprite.rect.center[0]*2 + self.rect.midbottom = (0, res[1]-150) + pg.draw.arc(screen, self.color, self.rect, 4.71, self.angle, 5) + +class Gui(): + def __init__(self): + self.point_y = res[1]-148 + self.background_rect = pg.Rect(0, self.point_y, res[0], 150) + self.screen_rect = pg.Rect(res[0]-555, res[1]-70, 330,60) + self.text_screen = big_font.render(str(bet_balance)+'¥', True, 'white') + self.text_screen_rect = self.text_screen.get_rect(center = self.screen_rect.center) + + self.bet_button = Button(res[0] - 200, res[1] - 110, 168, 66, 1, "Placer", big_font,-1,self) + + self.hundred_button = Button(res[0] - 280, res[1] - 110, 60, 30, 0, '+100', small_font,0,self) + self.ten_button = Button(res[0] - 350, res[1] - 110, 60, 30, 0, '+10', small_font,1,self) + self.one_button = Button(res[0] - 420, res[1] - 110, 60, 30, 0, '+1', small_font,2,self) + self.cents_button = Button(res[0] - 490, res[1] - 110, 60, 30, 0, '+0.1', small_font,3,self) + self.x_button = Button(res[0] - 560, res[1] - 110, 60, 30, 3, 'X', small_font,-2,self) + + def reset_text(self): + self.text_screen = big_font.render(str(bet_balance)+'¥', True, 'white') + self.text_screen_rect = self.text_screen.get_rect(center = self.screen_rect.center) + + def update(self): + pg.draw.rect(screen, "#262626", self.background_rect) + pg.draw.rect(screen, (20,20,20), self.screen_rect, border_radius=6) + pg.draw.line(screen, "#853370", (0, self.point_y), (res[0], self.point_y), 7) + self.bet_button.update() + self.hundred_button.update() + self.ten_button.update() + self.one_button.update() + self.cents_button.update() + self.x_button.update() + screen.blit(self.text_screen, self.text_screen_rect) + +class Button(): + def __init__(self,left,top,width,height,color,text,font,n_id,receiver=None): + self.triggered = False + self.receiver = receiver + self.n_id = n_id + self.rect = pg.Rect(left,top,width,height) + self.color_passive, self.color_active = ('#6441A4', "#392E5C") if color == 1 else ('#0E9DD9', '#12769e') + if color == 3: + self.color_passive, self.color_active = '#D23636', '#881f1e' + self.text = font.render(text, True, 'white') + self.text_rect = self.text.get_rect(center=self.rect.center) + + def adding(self): + global bet_balance + change = [100,10,1,0.1] + if self.n_id >= 0: + bet_balance = round(bet_balance+change[self.n_id],1) + elif self.n_id == -2: + bet_balance = 0.0 + self.receiver.reset_text() + + + def update(self): + #color = self.color_active if self.rect.collidepoint(pos) and not mou[0] else self.color_passive + if self.rect.collidepoint(pos): + if mou[0]: + color = self.color_passive + if not self.triggered: + self.adding() + self.triggered = True + else: + color = self.color_active + if self.triggered: + self.triggered = False + else: + color = self.color_passive + if self.triggered: + self.triggered = False + + pg.draw.rect(screen, color, self.rect, border_radius=11) + screen.blit(self.text, self.text_rect) + +class Timer(): + def __init__(self): + self.rect = pg.Rect(0,0,200,200) + self.rect.center = mid_screen + self.color = "#0e9dd9" + self.angle = 90 + self.second = 10 + self.text = number_font.render(str(self.second), True, 'white') + self.text_rect = self.text.get_rect(center=self.rect.center) + + def rad(self,degree): + return degree*0.01745329251 + + def text_refresh(self): + self.second = 10-int((self.angle-90)*10/-360) + self.text = number_font.render(str(self.second), True, 'white') + self.text_rect = self.text.get_rect(center=self.rect.center) + + def reset(self): + self.angle = 90 + + def update(self): + global running + if not running: + self.angle -= 1.2 + self.text_refresh() + pg.draw.arc(screen, self.color, self.rect, 1.57, self.rad(self.angle), 8) + screen.blit(self.text, self.text_rect) + if self.second == 0: + running = True + self.reset() + + + +if not FULLSCREEN: + dark_bar() + +"""Création de toutes les instances""" +number_font = pg.font.Font("Image\Poppins2.ttf", 90) +big_font = pg.font.Font("Image\Poppins2.ttf", 40) +small_font = pg.font.Font("Image\Poppins2.ttf", 20) + +rocket = pg.sprite.GroupSingle() +rocket.add(Rocket(Game_state())) + +courbe = Courbe() + +gui = Gui() + +timer = Timer() + +while True: + for event in pg.event.get(): + if event.type == pg.QUIT: + pg.quit() + exit() + + mou = pg.mouse.get_pressed() + + pos = pg.mouse.get_pos() + screen.fill("#151937") + + courbe.update() + + gui.update() + + rocket.draw(screen) + rocket.update() + + timer.update() + + pg.display.update() + clock.tick(30) \ No newline at end of file diff --git a/launcher.py b/launcher.py new file mode 100644 index 0000000..f0249d8 --- /dev/null +++ b/launcher.py @@ -0,0 +1,33 @@ +import tkinter as tk +import ctypes as ct + +root = tk.Tk() +root.title("Casino") +root.geometry("500x500") + +w_width = 1000 +w_height = 700 +screen_width, screen_height = root.winfo_screenwidth(), root.winfo_screenheight() + +center_x, center_y = int(screen_width/2 - w_width / 2), int(screen_height/2 - w_height / 2) +root.geometry(f'{w_width}x{w_height}+{center_x}+{center_y}') +root.configure(bg="#36393F") + +label = tk.Label(root, text="Hello World") +label.pack() + +def dark_bar(window): + window.update() + DWMWA_USE_IMMERSIVE_DARK_MODE = 20 + set_window_attribute = ct.windll.dwmapi.DwmSetWindowAttribute + get_parent = ct.windll.user32.GetParent + hwnd = get_parent(window.winfo_id()) + rendering_policy = DWMWA_USE_IMMERSIVE_DARK_MODE + value = 2 + value = ct.c_int(value) + set_window_attribute(hwnd, rendering_policy, ct.byref(value),ct.sizeof(value)) + root.iconify() + root.deiconify() + +dark_bar(root) +root.mainloop() diff --git a/pygame.bat b/pygame.bat new file mode 100644 index 0000000..6137327 --- /dev/null +++ b/pygame.bat @@ -0,0 +1 @@ +pip install pygame --user \ No newline at end of file