Skip to content

Playable Super Mario Bros Nes style Mario level editor

License

Notifications You must be signed in to change notification settings

ColinTr/MarioQT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mario QT

License: MIT License: MIT

Installation

For windows: download the installer

Controls

  • Q and D for left and right control
  • Space to jump
  • Shift to shoot fireball
  • T to show hitboxes
  • R to restart the level
  • C for power-up

Screenshot

To update and compile the code

  1. Download Qt Creator and install Qt 5.15.2 MSCV 2019

  2. Compiling an executable (see https://www.youtube.com/watch?v=rFHPOZoqzcg):

    cd C:\Qt\5.15.2\msvc2019\bin\
    windeployqt.exe C:\Users\Username\Desktop\Mario.exe
    
  3. Compiling for webassembly (see https://www.youtube.com/watch?v=YSAUoAI5hQA):

    cd emsdk
    emsdk activate 1.39.8
    cd mario-webassembly-build
    qmake MarioQT\source_code
    mingw32-make
    

    If you have memory errors during mingw32-make, add the following flag to the Mario.pro file:

    QMAKE_LFLAGS+= "-s TOTAL_MEMORY=33554432"

Trailer

https://www.youtube.com/watch?v=-SCnSPH7mK8

Qu'est-ce que c'est ?

Ce logiciel s'inscrit dans la réalisation du projet DI4 de C++ QT. Il a été réalisé par Guillaume Bouchard, Colin Troisemaine, Alexandre Turpin et Quentin Levieux.

Le but était de mettre en place un jeu platformer type Mario en utilisant QT et le MVC. Nous avons donc entrepris de reproduire le jeu Super Mario Bros NES.

Installation

Le projet étant un projet QT, il est donc cross-platform. Nous recommandons l'installation de QTCreator pour la compilation du projet (Fichier -> "ouvrir un fichier ou projet" et sélectionner le Mario.Pro).

Composition du logiciel

Le logiciel est composé de plusieurs parties, la partie principale étant le jeu en lui-même. Nous retrouvons également une éditeur de niveau graphique qui permet d'exporter les niveaux créés au format JSON, une fenetre de configuration des touches exportables également au format JSON, tout cela accessible depuis le menu principal.

Fonctionnement du jeu

Le jeu respectant le modèle MVC se voit séparé en trois parties distinctes :

  • Le modèle composé de sous classes d'ObjectModel qui représente tout les objets de notre jeux. Les objets sont alors répartis en deux catégories : les inerts (les objets ne bougeant pas) et les entitées (les objets avec la fonction advance()).

  • La vue est composée de la classe GameView qui est un QWidget et qui va donc afficher les objets à l'écran à l'aide de Visitor (voir le design pattern).

  • Le controlleur avec la classe GameController qui contient la boucle principal de notre jeux. GameController possède une liste d'objets et qui, à chaque itération de sa boucle principal (la fonction advance()), va calculer la nouvelle position des objets, vérifier qu'ils n'entrent pas en collision avec les autres objets, résoudre les collisions si besoin et enfin animer l'objet. On va ensuite appeler la vue pour lui indiquer qu'il faut qu'elle repeigne sa scene.

Screenshots du jeu

  • L'éditeur de niveaux :

Screenshot

  • Le menu principal :

Screenshot

  • Le menu d'options :

Screenshot

License

This code is released under the MIT license. See the LICENSE file for more information.

About

Playable Super Mario Bros Nes style Mario level editor

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •