Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class player():
- def __init__(self, x, y, image):
- self.x = x
- self.y = y
- self.scale = (60, 60)
- self.speed = 3
- self.g = 4
- self.gaccé = 1.05
- self.gm = self.g
- self.gactual = self.g
- self.lastgactual = 0
- self.action = []
- self.maxlife = 5000
- self.life = 5000
- self.onfloor = False
- self.mreload = 2 * 60
- self.reload = self.mreload
- self.airtime = 0
- self.imgdir = 'droite'
- self.papa = (image.split('\\')[2]).split('.')[0]
- self.image = pygame.transform.scale(pygame.image.load(image).convert_alpha(), self.scale)
- self.mute = True
- self.rect = (self.x,self.y,self.scale[0],self.scale[1])
- self.invoc = []
- if self.papa == 'planeur':
- self.invoct = 'explosif'
- self.icosh = []
- self.selectsh = 0
- for ico in os.listdir('texture\\eft\\sheep select\\'):
- self.icosh.append(pygame.transform.scale(pygame.image.load('texture\\eft\\sheep select\\'+ico).convert_alpha(),(40,40)))
- def modiflife(self,nb):
- if self.life + nb > self.maxlife:
- self.life = self.maxlife
- elif self.life + nb <= 0:
- self.life = 0
- Game.reset(current)
- else:
- self.life += nb
- def move(self,dir):
- if dir == 'gauche':
- if self.imgdir == 'droite':
- self.image = pygame.transform.flip(self.image,True,False)
- self.x -= self.speed
- self.imgdir = 'gauche'
- elif dir == 'droite':
- if self.imgdir == 'gauche':
- self.image = pygame.transform.flip(self.image,True,False)
- self.x += self.speed
- self.imgdir = 'droite'
- def gravity(self):
- self.y += self.gactual
- def lifebar(self):
- self.lifebar = pbar(self.maxlife,10,10,(250,60),(0,0,0),(0,255,0),(255,0,0),(0,0,0))
- pbar.setvalue(self.lifebar,self.life)
- if self.life > 0:
- pbar.draw(self.lifebar)
- def reloadbar(self):
- if self.reload < self.mreload:
- self.reload += 1
- self.reloadbar = pbar(self.mreload,10,72,(250,15),(0,0,0),(255,255,255),(1,1,1),(0,0,0))
- pbar.setvalue(self.reloadbar,self.reload)
- pbar.draw(self.reloadbar)
- def blit(self):
- fen1.blit(self.image, (self.x, self.y))
- def action(self):
- for i in self.action:
- if i[0] == 'jump':
- if not(self.gm == self.g):
- self.gm += 1
- else:
- self.action.remove(i)
- elif i[0] == 'speed':
- if i[1] == 0:
- self.speed -= 5
- else:
- self.action.append(('speed',i[1]-1))
- self.action.remove(i)
- elif i[0] == 'dash':
- if self.onfloor == True:
- power.dashdamage(i[3])
- else:
- if i[2] == 0:
- if i[1] == 'bas':
- self.y -= 5
- elif i[1] == 'haut':
- self.y += 5
- elif i[1] == 'droite':
- self.x += 5
- else:
- self.x -= 5
- else:
- self.x += i[2]
- self.y += i[2]*i[1]
- self.action.append(('dash',i[1],i[2],i[3]))
- self.action.remove(i)
- def affichagestate(self):
- nb = 0
- y = 97
- if self.papa == 'planeur':
- fen1.blit(self.icosh[self.selectsh],(13,y))
- self.invoct = ['explosif','burn','eater'][self.selectsh]
- nb += 1
- for i in self.action:
- x = 13 + 50*nb
- dim = (40,40)
- if i[0] == 'speed':
- img = pygame.transform.scale(pygame.image.load('texture\\eft\\speed_boost.png').convert_alpha(),dim)
- img.set_alpha(255*i[1]/(5*60))
- fen1.blit(img,(x,y))
- def calcgravity(self):
- self.gactual = int(self.gm + self.gaccé*self.airtime)
- if self.onfloor:
- self.airtime = 0
- else:
- self.airtime += 1
- def pouvoir(self):
- if pbar.testmax(self.reloadbar):
- self.reload = 0
- if self.papa == 'cow':
- power.dash()
- if self.papa == 'ginger':
- power.soulabsorber()
- if self.papa == 'planeur':
- if self.imgdir == 'droite':
- x = self.x + self.scale[0]
- else:
- x = self.x
- self.invoc.append(power.sheep(x,self.y,(60,60),self.invoct))
- def jump(self,value):
- if self.onfloor:
- # if not(self.mute):
- # self.jsound.play()
- self.action.append(('jump',0))
- self.gm = -value
- def loop(self):
- self.rect = (self.x,self.y,self.scale[0],self.scale[1])
- player.action(self)
- player.affichagestate(self)
- player.calcgravity(self)
- player.gravity(self)
- player.lifebar(self)
- player.reloadbar(self)
- player.blit(self)
- class mob():
- def __init__(self,x,y,look,vie,speed,strengh):
- self.x = x
- self.y = y
- self.scale = (40,40)
- self.image = pygame.transform.flip(pygame.transform.scale(pygame.image.load(look).convert_alpha(),self.scale),True,False)
- self.maxlife = vie
- self.life = vie
- self.speed = speed
- self.g = 4
- self.strengh = strengh
- self.gaccé = 1.05
- self.gm = self.g
- self.gactual = self.g
- self.onfloor = False
- self.airtime = 0
- self.action = []
- self.IA = True
- self.rect = (self.x,self.y,self.scale[0],self.scale[1])
- def move(self):
- self.x += self.speed
- self.y += self.gactual
- self.rect = (self.x,self.y,self.scale[0],self.scale[1])
- def lifebar(self):
- self.lifebar = pbar(self.maxlife,self.x-5,self.y-10,(self.scale[0]+10,14),(0,0,0),(0,255,0),(255,0,0),(0,0,0))
- pbar.setvalue(self.lifebar, self.life)
- if self.life > 0:
- pbar.draw(self.lifebar)
- else:
- for i in range(7):
- current.particules.append(particule((self.x+int(self.scale[0]/2),self.y+int(self.scale[1]/2)),(255,0,0),True,10,5))
- current.particules.append(particule((self.x+int(self.scale[0]/2),self.y+int(self.scale[1]/2)),(255,255,0),True,7,2))
- current.mobs.remove(self)
- def blit(self):
- fen1.blit(self.image, (self.x, self.y))
- def dontfall(self):
- try:
- if (self.x < self.lié.x - self.speed or self.x + self.scale[0] > self.lié.x + self.lié.dim[0]) and self.IA:
- self.speed *= -1
- self.image = pygame.transform.flip(self.image, True, False)
- except:
- mob.link2platform(self)
- def link2platform(self):
- for i in current.walls:
- if self.x >= i.x and self.x + self.scale[0] <= i.x + i.dim[0]:
- self.lié = i
- def calcgravity(self):
- self.gactual = int(self.gm + self.gaccé*self.airtime)
- if self.onfloor:
- self.airtime = 0
- else:
- self.airtime += 1
- def jump(self,value):
- if self.onfloor:
- self.action.append('jump')
- self.gm = -value
- def action(self):
- for i in self.action:
- if i[0] == 'jump':
- if not(self.gm == self.g):
- self.gm += 1
- elif i[0] == 'no IA':
- if i[1] == 0:
- self.IA = True
- else:
- mob.link2platform(self)
- self.action.append(('no IA',i[1]-1))
- elif i[0] == 'burn':
- if i[2] != 0:
- self.life -= i[1]
- self.action.append(('burn',i[1],i[2]-1))
- for j in range(3):
- current.particules.append(particule((rdm.randint(self.x,self.x+self.scale[0]),rdm.randint(self.y,self.y+2)),(255,0,0),1,10,2,(0,1)))
- self.action.remove(i)
- def contactp(self):
- if colision(current.p1.rect, self.rect):
- player.modiflife(current.p1, -50 * self.strengh)
- def loop(lst):
- for i in lst:
- mob.action(i)
- mob.calcgravity(i)
- mob.dontfall(i)
- mob.move(i)
- mob.contactp(i)
- mob.blit(i)
- mob.lifebar(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement