Skip to content

Commit

Permalink
Update Documentation.md
Browse files Browse the repository at this point in the history
  • Loading branch information
PaulleDemon authored Dec 4, 2023
1 parent 5658fca commit 0850162
Showing 1 changed file with 60 additions and 5 deletions.
65 changes: 60 additions & 5 deletions Documentation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,61 @@
#Documentation
### Quickstart example

### Collision class:
Here is a quick example to get started
```py
import pygame
import random
from pycollision import Collision

pygame.init()

screen = pygame.display.set_mode((1000, 800))

player_rect = pygame.Rect(0, 0, 50, 50)

collision_check = Collision(r"sample.png", (15, 15), wall_collision=False) # set wall collision to True if you want to check the collision only at the walls, this will be much faster
collision_object = pygame.image.load(r"sample.png").convert_alpha()

colors = [(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) for x in
range(len(collision_check.collision_points()))]

running = True
speed = 1.5
pos_x, pos_y = (10, 10)

coll_font = pygame.font.SysFont('Consolas', 50)

while running:

screen.fill((255, 255, 255))

for event in pygame.event.get():

if event.type == pygame.QUIT:
running = False

pos_x, pos_y = pygame.mouse.get_pos()

colliding, pos = collision_check.smart_check((pos_x, pos_y)) # checks if the point is first inside the outer rectangle then checks if it is inside the image
# rect = (player_rect.x, player_rect.y, player_rect.x+player_rect.width, player_rect.height+player_rect.y)
# colliding, pos = collision_check.rect_collide(rect)
if colliding:
screen.fill((255, 16, 8))
screen.blit(coll_font.render("Collision", True, (255, 255, 255)), (50, 50))

screen.blit(collision_object, (0, 0))

# for color, x in zip(colors, collision_check.collision_points()): # uncomment this to get colourful rectangles
# x = (x[0], x[1], x[2] - x[0], x[3] - x[1])
# pygame.draw.rect(screen, color, pygame.Rect(x), width=3)

player_rect = pygame.Rect(pos_x, pos_y, 50, 50)
pygame.draw.rect(screen, (0, 0, 0), player_rect)

pygame.display.update()
```
read the rest of the [examples](https://github.com/PaulleDemon/PyCollision/tree/main/Examples)

### Collision class
This class is used to load images and detect collisions.

| Methods | Parameters(type) | Function |
Expand All @@ -12,7 +67,7 @@ This class is used to load images and detect collisions.
| rect_collide | rect(tuple[int, int, int, int]) , coll_pos(Tuple[int, int]) ,offset(int) | Use this if you want to check collision with a rectangular sprite, all the other parameters remains the same as above. |
| collision_points | - | returns collision rectangles |

### GroupCollision class:
### GroupCollision class
Add and remove Collision class object to detect collision between them.

| Methods | Parameters(type) | Function |
Expand All @@ -22,14 +77,14 @@ Add and remove Collision class object to detect collision between them.
| removeItem | colobj(Collision) | removes the item from the group. |
| check_collision | - | checks if there is any collision in the group. If there is returns it as List. (note: this simply calls the list_collision function) |

### list_collision function:
### list_collision function
Pass a list and yields objects that collide.

**parameter:** takes list of Collision objects.

**return:** Generator of collision objects and position.

### ImageError:
### ImageError
This error is raised when image does't contain alpha channel

**Full collision**
Expand Down

0 comments on commit 0850162

Please sign in to comment.