From 92e3ac2a25daff48fcd33535655cb12f5fa0131e Mon Sep 17 00:00:00 2001 From: "theo@manjaro" Date: Fri, 25 Jun 2021 16:13:52 +0200 Subject: [PATCH] Ajout d'une grille simpliste --- gamedata/assets/solid.png | Bin 0 -> 4797 bytes gamedata/objects/base.py | 7 +++--- gamedata/objects/bg/backgrounddrawer.py | 8 ++++--- gamedata/objects/bg/menubackground.py | 10 ++++---- gamedata/objects/bg/movingbackground.py | 2 +- gamedata/objects/button.py | 19 ++++++++------- gamedata/objects/combat/player.py | 7 ++++++ gamedata/objects/combat/tileset.py | 30 ++++++++++++++++++++++++ gamedata/objects/gameloop.py | 4 ++-- gamedata/objects/info.py | 8 +++---- gamedata/objects/menu/mainmenu.py | 10 +++++--- gamedata/objects/menu/menu.py | 7 +++--- gamedata/objects/menu/optionmenu.py | 2 +- gamedata/objects/particles.py | 8 +++++-- gamedata/objects/sliders/bgmslider.py | 12 +++++----- gamedata/objects/sliders/sfxslider.py | 12 +++++----- gamedata/objects/sliders/slider.py | 25 +++++++++++--------- gamedata/scenes.py | 9 +++++++ 18 files changed, 121 insertions(+), 59 deletions(-) create mode 100644 gamedata/assets/solid.png create mode 100644 gamedata/objects/combat/player.py create mode 100644 gamedata/objects/combat/tileset.py diff --git a/gamedata/assets/solid.png b/gamedata/assets/solid.png new file mode 100644 index 0000000000000000000000000000000000000000..412a0a82764d51c84772c88a57bad5037af708ba GIT binary patch literal 4797 zcmeHKX;c$g77hp^>p@!qm%$LkK}lubhp>e$N-zWzC zj3@~N^X<+Z$d$=HE?FN9x!yK+ye#SS58f-P?RNIrM(x2)c^t3_G+yBzM z&MPWUVWVEE^}u2x}tYkTAR=G^ine_y|F#lmoQ zU~XCGp15t)Gd^f#uj|CQ^h?zQ?hNUnux%H+CbM^WnU5E%G(~3=j${T`-e4)&JbkaC zqrlzOwT$H63p;ljdV`L}g|(P2%$n}+`@Fp558j)-Z}ax^6R)_xLEktTdoG9VDyu8? z_%~rgd(VvQ%Fg7)2sfV?pARlqVH*Fzrc)JiHWrDfUK zt(+E@+m?4LyS3IX$bN^fO+`U!cu5QB=a4^!S7%$8CyZPH1l+GK7utm7?;g#PJ1yN< zG-j&vC7-O^+|hIMmhEAs=8Q|ss!2&-Y^kYUcO-&2dq?Rsu@91aNj8iB&j$IFqex?2 zZK3|k!Pcv`jrLW}^R~+>X1UHy{eE72<0;mLInI)WX*Xo`rD)ef!MKWAjqvxD`l7Yc zN#K)gOXQ^G+jFFQ8J6o44>huS$)2Y~zwf>sP_ZxmTTvd@KRxC7{?TQ(7TcFT3-@HY zKMEmgHW6(1cry3-+a^OUNn2N6+j8NE?r+Xb-VZ(A{c`VpSJvtMLq8uw z^IN+`#w9kXmUGd)w5r(zg3Sg*B$A3nqEG7uTP207@`cfskSR4w;!`6^+>FxnI_ba2 z*}1%B6LO`+*PTiQyB58*mrN=c?-_OeRBLN(@-OFW~%g%^&x1=lBKH zW?jn`Q=hk~n^2sjEV)H@JG=)z@Q_a5ws^w&V^6AynPWo^RmZHN?2b8SSb5h{+g#<} z^dhM5@sl|H^ieBGJ>+Yyo6PIYnb&^icYpP@JWiI~lvC?cN$l}$hIiiQc~0>#D{n?0 zYR|D$Cl}}a%27s${JtS=_AiNi6Lt~a*z2J>wFqup@xn7pfBQ0{8FBO796|PR9Lp&2 zFLrT`TfmmZ97qXne=t@5POQJwHgj!0WHaIL)+xcSr@rgD(J&{rTwLtsZZ7NGGL~5G z%v$#2`&DUo^1eFv(Pa?=tU2h`u(BX270LH4(oQZf*B~#vbrqvr0y_$P_yzmE+uAg$ zTlG>RFZ$^5B+0NMwd>JKo9Ot&oXM@N?p}cORb_2e)$J93^u?S!JN0#+-q@Pb^a1N@ zlMt+b&6mUoAg!7LDzwQk#jMt0{f$5f3^waPC>2JD$*>C12ua;lXGugvAtWWTB{Ydn z1g9X;nR+-rGd2OrOojLgQgDz{pjm(cs9_W&n$>93lw) zN@GwN3;@#r49hhrXa+O}UmT(zBOEqBdPIjJS`87$1e3KHsE|a$#)+TeQ|ly>L3oW} zfCY>Xsu|Q#=@c4Ot)>pOFrX1e3}hgnKeaF7WHpfeKOUtX3G=UudF;@-taq#DtRwie2(V-@VnMu4F#xL^%S9m4!yu~FCup^4 zLJ}Sl5x2CKH!-k(Qlb$9rm-Ba_<@>_htvDt`jSHA2_07#NoFNOk?+=yLje;DI&RF35x(XKLCWoWzboj=E^Mfk2@6;1: game.gameloop.delid(self.id) - def draw(self,game): - + def draw(self): + game = self.game self.txtSurface.set_alpha(255) self.blackSurface.set_alpha(255) diff --git a/gamedata/objects/menu/mainmenu.py b/gamedata/objects/menu/mainmenu.py index 352691b..65b848d 100644 --- a/gamedata/objects/menu/mainmenu.py +++ b/gamedata/objects/menu/mainmenu.py @@ -4,6 +4,9 @@ class MainMenu(menu.Menu): def __init__(self,x,y,game,w=100,h=100): super().__init__(x,y,game,w,h) # initialise l'objet de base avec les bons arguments # Les dicos des boutons + def fnPlay(self,game): + game.scene = game.scenes.fight + btnPlay = {"name":"Jouer","function":fnPlay} def fnOptions(self,game): game.scene = game.scenes.options btnOptions= {"name":"Options","function": fnOptions} @@ -17,12 +20,13 @@ class MainMenu(menu.Menu): # Initialisation de la grille du menu self.grid = [ + [btnPlay], [btnOptions], [btnQuitter] ] - self.create(self.grid,self.rect,game) + self.create(self.grid,self.rect) - def draw(self,game): + def draw(self): # affiche le titre du jeu - game.window.blit(game.sprite_lib["gui/title.png"],(0,self.baserect[1]-game.DISPLAY_HEIGHT/8)) + self.game.window.blit(self.game.sprite_lib["gui/title.png"],(0,self.baserect[1]-self.game.DISPLAY_HEIGHT/8)) diff --git a/gamedata/objects/menu/menu.py b/gamedata/objects/menu/menu.py index 61f7669..ffbd4aa 100644 --- a/gamedata/objects/menu/menu.py +++ b/gamedata/objects/menu/menu.py @@ -26,10 +26,9 @@ class Menu(base.BaseObject): [btnExemple], [btnExemple,None] ] - - #self.create(self.grid,self.rect,game) - - def create(self,grid,rect,game): + + def create(self,grid,rect): + game = self.game elementheight = (rect[3]-(len(grid)-1)*self.vpadding)//len(grid) for i in range(len(grid)): elementwidth = (rect[2]-(len(grid[i])-1)*self.hpadding)//len(grid[i]) diff --git a/gamedata/objects/menu/optionmenu.py b/gamedata/objects/menu/optionmenu.py index f6f13dc..73a075a 100644 --- a/gamedata/objects/menu/optionmenu.py +++ b/gamedata/objects/menu/optionmenu.py @@ -13,4 +13,4 @@ class OptionMenu(menu.Menu): [btnRetour] ] - self.create(self.grid,self.rect,game) + self.create(self.grid,self.rect) diff --git a/gamedata/objects/particles.py b/gamedata/objects/particles.py index c803839..022495a 100644 --- a/gamedata/objects/particles.py +++ b/gamedata/objects/particles.py @@ -18,7 +18,9 @@ class Particle(BaseObject): self.alpha = 1 - def step(self,game): + def step(self): + + game = self.game for j in range(2): self.rect[j]+=self.vel[j]*game.dt*60 @@ -31,7 +33,9 @@ class Particle(BaseObject): self.alpha = max(1-(((self.timer.getloops()+1-self.timer.getratio())/len(self.sprites)))**3,0) - def draw(self,game): + def draw(self): + + game = self.game spriteindex = self.timer.getloops() posx,posy = self.rect[:2] diff --git a/gamedata/objects/sliders/bgmslider.py b/gamedata/objects/sliders/bgmslider.py index e7c869f..6aa1561 100644 --- a/gamedata/objects/sliders/bgmslider.py +++ b/gamedata/objects/sliders/bgmslider.py @@ -4,13 +4,13 @@ class BGMSlider(Slider): def __init__(self,x,y,game,w=100,h=64,folder="base"): super().__init__(x,y,game,w,h,folder) # initialise l'objet de base avec les bons arguments - self.currentvalue = self.getvalue(game) + self.currentvalue = self.getvalue() self.posttext = " % Musique" - def change(self,game): - game.globals["bgmvolume"] = self.currentvalue/100 - game.reinit_volumes() + def change(self): + self.game.globals["bgmvolume"] = self.currentvalue/100 + self.game.reinit_volumes() - def getvalue(self,game): - return game.globals["bgmvolume"]*100 + def getvalue(self): + return self.game.globals["bgmvolume"]*100 diff --git a/gamedata/objects/sliders/sfxslider.py b/gamedata/objects/sliders/sfxslider.py index b6fb377..b36cdac 100644 --- a/gamedata/objects/sliders/sfxslider.py +++ b/gamedata/objects/sliders/sfxslider.py @@ -4,13 +4,13 @@ class SFXSlider(Slider): def __init__(self,x,y,game,w=100,h=64,folder="base"): super().__init__(x,y,game,w,h,folder) # initialise l'objet de base avec les bons arguments - self.currentvalue = self.getvalue(game) + self.currentvalue = self.getvalue() self.posttext = " % Effets Sonores" - def change(self,game): - game.globals["sfxvolume"] = self.currentvalue/100 - game.reinit_volumes() + def change(self): + self.game.globals["sfxvolume"] = self.currentvalue/100 + self.game.reinit_volumes() - def getvalue(self,game): - return game.globals["sfxvolume"]*100 + def getvalue(self): + return self.game.globals["sfxvolume"]*100 diff --git a/gamedata/objects/sliders/slider.py b/gamedata/objects/sliders/slider.py index d607eb9..e9f3887 100644 --- a/gamedata/objects/sliders/slider.py +++ b/gamedata/objects/sliders/slider.py @@ -8,30 +8,30 @@ class Slider(base.BaseObject): self.max = 100 - self.currentvalue = self.getvalue(game) + self.currentvalue = self.getvalue() - self.bgsprite = self.gensprite(game,w,h,folder) + self.bgsprite = self.gensprite(w,h,folder) self.sprite = game.pygame.transform.scale(game.sprite_lib["gui/slider/"+folder+"/circle.png"],(h,h)) self.maxwidth = w-h - self.rect = [self.getvalue(game)/self.max*(self.maxwidth)+self.baserect[0],self.baserect[1],h,h] + self.rect = [self.getvalue()/self.max*(self.maxwidth)+self.baserect[0],self.baserect[1],h,h] self.sfx = game.sound_lib["sfx/click.wav"] self.dragged = False - def change(self,game): + def change(self): print("Value : "+self.currentvalue) - def getvalue(self,game): - return game.globals["sfxvolume"]*100 + def getvalue(self): + return self.game.globals["sfxvolume"]*100 def postovalue(self): self.currentvalue = (self.rect[0]-self.baserect[0])/(self.maxwidth)*self.max - def gensprite(self,game,w,h,folder): - + def gensprite(self,w,h,folder): + game = self.game left = game.sprite_lib["gui/slider/"+folder+"/left.png"] left = game.pygame.transform.scale(left,(round(h/left.get_height()*left.get_width()),h)) right = game.sprite_lib["gui/slider/"+folder+"/right.png"] @@ -48,7 +48,8 @@ class Slider(base.BaseObject): return surface - def step(self,game): + def step(self): + game = self.game if self.rect[0]<=game.inputs["mouse"]["pos"][0]+game.globals["camerax"]<=self.rect[0]+self.rect[2]: if self.rect[1]<=game.inputs["mouse"]["pos"][1]+game.globals["cameray"]<=self.rect[1]+self.rect[3]: if game.inputs["mouse"]["click"]>1: @@ -61,10 +62,12 @@ class Slider(base.BaseObject): if self.dragged and game.inputs["mouse"]["click"]==0: # Le slider a été laché - self.change(game) + self.change() self.dragged = False - def draw(self,game): + def draw(self): + + game = self.game game.window.blit(self.bgsprite,(self.baserect[0]-game.globals["camerax"],self.baserect[1]-game.globals["cameray"])) game.window.blit(self.sprite,(self.rect[0]-game.globals["camerax"],self.rect[1]-game.globals["cameray"])) diff --git a/gamedata/scenes.py b/gamedata/scenes.py index 8da14be..ab60866 100644 --- a/gamedata/scenes.py +++ b/gamedata/scenes.py @@ -4,6 +4,8 @@ from gamedata.objects.bg.menubackground import MenuBackground from gamedata.objects.menu.optionmenu import OptionMenu from gamedata.objects.sliders.bgmslider import BGMSlider from gamedata.objects.sliders.sfxslider import SFXSlider +from gamedata.objects.combat.player import Player +from gamedata.objects.combat.tileset import TilesetRenderer def main(game): game.gameloop.reinit() # Je réinitialis la boucle @@ -12,6 +14,13 @@ def main(game): game.gameloop.summon(bg) game.gameloop.summon(menu) +def fight(game): + game.gameloop.reinit() + p1 = Player(50,50,game) + tileset = TilesetRenderer(0,0,game) + game.gameloop.summon(p1) + game.gameloop.summon(tileset) + def options(game): game.gameloop.reinit() game.globals["camerax"] = 0