Skip to content

Repositório referente à disciplina de introdução a programação pela Universidade Federal de Pernambuco.

Notifications You must be signed in to change notification settings

lucena564/Projeto-IP---Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Catify: The World😼💖

Game project with Python and Object Oriented Programming (OOP) structure

CIn UFPE | October 2022 | Introduction to programming (IP)
Explore the docs »

Table of Contents

  1. Contributors
  2. Team division
  3. Built with
  4. Files structure
  5. Installation
  6. How to run
  7. About the process
  8. Principal Applied programming concepts
  9. Game Gallery
  10. Contact

Contributors


Antônio Lucena


Lucas Torres


Shellyda Barbosa


Stela Nascimento


Thaís Neves


Miriam Mendes


Isaias Pereira

Team division

  • Antônio Lucena: Responsible for the first collectibles, bounding box definitions and their hit box, put the same collision system with the floor, sound in certain collectibles. Also, modeled our cat in the hat, collecting the frames of his walking animation, starting his movement system. Finally, adjusted the background of some levels to change the theme with the game's progression.
  • Shellyda Barbosa: Technical support for the team, mainly helping them to understand and implement git and github concepts. Also, reorganized the project's file architecture, thus ensuring a better organization of the code. Besides that, implemented the Sushi item functionality that allows "super jump" power to the main character.
  • Lucas Torres: Implemented the mechanics that control the completion of levels and improved the game mechanics. Also made two levels of the game and the custom tiles used in them.
  • Stela Nascimento: Responsible for the creation of 6 levels, creation of the Platform Class (platforms moving in the vertical and horizontal direction), tile customization added, addition of a new enemy and sounds, as well as changing the coin image and finally, fixed some bugs like counting the coins in the levels and ensuring that the player didn't get two coins at the same time.
  • Thaís Neves: Responsible for the visual and design part of the game, implementation of backgrounds. Also, was able to fix bugs and help with the organization and functions of other members, in addition to being part of the construction of the documentation and final presentation.
  • Miriam Mendes: Responsible for Separate the concepts that were seen in the classes used within the code. Also, separate the libraries, tools and frameworks used in the code and justify the use of each one. Besides that, created a responsive mode for the game to run on smaller screens, with scale adjustment.
  • Isaias Pereira: Responsible for refactoring, organizing and cleaning the GamePlay.py code; assist in maintaining track capture and other tasks; the logic that protects the player from capture two coins at the same time, allowing the item "coin" to have an independent size; and creation of the hardest level of the game: "restaurant".
  • Built With

    Why we used pygame as library

    • Greater amount of online repositories, available for learning.
    • Ease of creating frames for the game's surface, with the positioning of sprites using the library's rect function.
    • It has functions for colliding game objects.
    • Ease of handling game events.

    Why we used OS as library

    • We use the OS library only to help access the images and audios directory with the path function.

    Files

    /assets

    Images separated by category

    /classes

    Game elements code base

    /constants

    Global constants used into game flow

    /levels

    Levels maps data

    /sound

    Music and sound elements

    /Gameplay.py

    Game flow code

    /Game.py

    Main file

    Installation

    1. Clone repo
      git clone https://github.com/lucena564/Projeto-IP---Python.git
    1. Install the dependencies
      pip install -r requirements.txt
      pip3 install -r requirements.txt

    Use pip3 only if the computer contains different versions of python

    Play

    1. In your terminal, go to the root folder
    2. Run the instruction below
      python3 Game.py
      python Game.py

    Use "python Game.py" only if the computer contains different versions of python

    About the process

    Main challenge How we deal
    Working with the git and github versioning concept Moments with the team to pass knowledge and clearing up doubts
    Main error How we deal
    The lack of frequency of project focused meetings Asynchronous movement: active communication, division and updating of activities, in the WhatsApp and Discord groups
    Lessons learnead
    • Asynchronous work
    • Importance of team work and active communication
    • Knowledge sharing
    • Git and Github versioning concept
    • Python and Pygame features
    • Object Oriented Programming (OOP)

    Check ideation work in Miro board

    Principal Applied programming concepts

    imageimage
    Logical and Relational Operators, Conditional Commands
    imageimage
    Loops
    imageimageimage
    Lists
    imageimageimage
    Functions

    Check this document too see in a detailed way all the programming concepts applied in the project

    Game Gallery

    imageimageimage

    imageimageimage

    Contributing

    Any contributions you make are greatly appreciated.

    1. Fork the Project
    2. Create your Feature Branch (git checkout -b feature/featureName)
    3. Commit your Changes (git commit -m 'Add some featureName')
    4. Push to the Branch (git push origin feature/featureName)
    5. Open a Pull Request

    Contact

    About

    Repositório referente à disciplina de introdução a programação pela Universidade Federal de Pernambuco.

    Topics

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages