forked from InfoProjekt/game
InfoProjekt-Development3 #6
2 changed files with 27 additions and 8 deletions
|
|
@ -243,8 +243,8 @@ class Room(GameObjects):
|
||||||
self.locked = True
|
self.locked = True
|
||||||
else:
|
else:
|
||||||
self.locked = False
|
self.locked = False
|
||||||
[self.objects[3].append(wall) for wall in self.genWalls(WIDTH, HEIGHT)]
|
[self.objects[4].append(wall) for wall in self.genWalls(WIDTH, HEIGHT)]
|
||||||
|
|
||||||
def genWalls(self, WIDTH, HEIGHT):
|
def genWalls(self, WIDTH, HEIGHT):
|
||||||
walls = []
|
walls = []
|
||||||
walls.append(Obstacle('wall_l', 'wall', None, True, 32, 32, True, WIDTH=4, HEIGHT=HEIGHT))
|
walls.append(Obstacle('wall_l', 'wall', None, True, 32, 32, True, WIDTH=4, HEIGHT=HEIGHT))
|
||||||
|
|
|
||||||
31
viecher.py
31
viecher.py
|
|
@ -150,6 +150,7 @@ class MainCharacter(Fighter):
|
||||||
if touches is not None and not isinstance(touches, Weapons):
|
if touches is not None and not isinstance(touches, Weapons):
|
||||||
if isinstance(touches, Obstacle):
|
if isinstance(touches, Obstacle):
|
||||||
if not touches.collision:
|
if not touches.collision:
|
||||||
|
print(touches.name)
|
||||||
return
|
return
|
||||||
if touches.type == 'wall':
|
if touches.type == 'wall':
|
||||||
if touches.name == 'wall_l':
|
if touches.name == 'wall_l':
|
||||||
|
|
@ -162,18 +163,18 @@ class MainCharacter(Fighter):
|
||||||
self.y -= (2 + self.rect.height - (touches.rect.y - self.y))
|
self.y -= (2 + self.rect.height - (touches.rect.y - self.y))
|
||||||
return
|
return
|
||||||
elif isinstance(touches, NPC):
|
elif isinstance(touches, NPC):
|
||||||
if keys[pg.K_SPACE]:
|
if keys[pg.K_f]:
|
||||||
touches.talk(objects)
|
touches.talk(objects)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.x <= touches.rect.x: self.x -= (self.rect.width - (touches.rect.x - self.x))
|
if self.x <= touches.rect.x: self.x -= (self.rect.width - (touches.rect.x - self.x))
|
||||||
elif self.x > touches.rect.x: self.x += (self.rect.width - (self.x - touches.rect.x))
|
elif self.x > touches.rect.x: self.x += (self.rect.width - (self.x - touches.rect.x - touches.rect.width * 0.66))
|
||||||
#if self.y <= touches.y: pass
|
#if self.y <= touches.y: pass
|
||||||
#elif self.y > touches.y: pass
|
#elif self.y > touches.y: pass
|
||||||
self.x -= moveto[0] * 2 / fps
|
#self.x -= moveto[0] * 2 / fps
|
||||||
self.y -= moveto[1] * 2 / fps
|
#self.y -= moveto[1] * 2 / fps
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if self.x <= 32:
|
if self.x <= 32:
|
||||||
|
|
@ -188,7 +189,7 @@ class MainCharacter(Fighter):
|
||||||
|
|
||||||
def attack(self, obj, mouse):
|
def attack(self, obj, mouse):
|
||||||
if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks():
|
if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks():
|
||||||
moveto = mouse- vec(self.x, self.y)
|
moveto = mouse - vec(self.x, self.y)
|
||||||
if self.book.current_sp == 'fireball':
|
if self.book.current_sp == 'fireball':
|
||||||
weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5)
|
weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5)
|
||||||
elif self.book.current_sp == 'windslash':
|
elif self.book.current_sp == 'windslash':
|
||||||
|
|
@ -201,7 +202,7 @@ class MainCharacter(Fighter):
|
||||||
def update(self, keys, mouse, objects):
|
def update(self, keys, mouse, objects):
|
||||||
if not self.talking:
|
if not self.talking:
|
||||||
self.walk(keys, objects)
|
self.walk(keys, objects)
|
||||||
if keys[pg.K_f]:
|
if pg.mouse.get_pressed()[0]:
|
||||||
self.attack(objects, vec(mouse))
|
self.attack(objects, vec(mouse))
|
||||||
self.speech.update(self)
|
self.speech.update(self)
|
||||||
if self.health.health <= 0:
|
if self.health.health <= 0:
|
||||||
|
|
@ -317,6 +318,7 @@ class Book():
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class Mobs(Fighter):
|
class Mobs(Fighter):
|
||||||
def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None:
|
def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None:
|
||||||
super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr)
|
super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr)
|
||||||
|
|
@ -330,6 +332,23 @@ class Mobs(Fighter):
|
||||||
moveto.scale_to_length(self.speed)
|
moveto.scale_to_length(self.speed)
|
||||||
self.x += moveto[0] / fps
|
self.x += moveto[0] / fps
|
||||||
self.y += moveto[1] / fps
|
self.y += moveto[1] / fps
|
||||||
|
touches = pg.sprite.spritecollideany(self, obj[4])
|
||||||
|
if touches is not None and not isinstance(touches, Weapons):
|
||||||
|
if isinstance(touches, Obstacle):
|
||||||
|
if not touches.collision:
|
||||||
|
return
|
||||||
|
if touches.type == 'wall':
|
||||||
|
if touches.name == 'wall_l':
|
||||||
|
self.x += (2 + (self.x - touches.rect.x))
|
||||||
|
elif touches.name == 'wall_r':
|
||||||
|
self.x -= (2 + self.rect.width - (touches.rect.x - self.x))
|
||||||
|
if touches.name == 'wall_t':
|
||||||
|
self.y += (2 + (self.y - touches.rect.y))
|
||||||
|
elif touches.name == 'wall_b':
|
||||||
|
self.y -= (2 + self.rect.height - (touches.rect.y - self.y))
|
||||||
|
|
||||||
|
if self.x <= touches.rect.x: self.x -= (self.rect.width - (touches.rect.x - self.x))
|
||||||
|
elif self.x > touches.rect.x: self.x += (self.rect.width - (self.x - touches.rect.x - touches.rect.width * 0.66))
|
||||||
else:
|
else:
|
||||||
self.attack(moveto, obj)
|
self.attack(moveto, obj)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue