forked from InfoProjekt/game
		
	Merge pull request 'fixed wall colision' (#74) from Spafi/game:main into Development
Reviewed-on: InfoProjekt/game#74
This commit is contained in:
		
						commit
						d85c6ec22c
					
				
					 2 changed files with 24 additions and 5 deletions
				
			
		|  | @ -243,7 +243,7 @@ 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 = [] | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								viecher.py
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								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': | ||||||
|  | @ -169,11 +170,11 @@ class MainCharacter(Fighter): | ||||||
|                     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: | ||||||
|  | @ -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