Ticker

6/recent/ticker-posts

Yoshi Jump Game in C++

Yoshi Jump Game in C++

Welcome to Programming Chaska! In this post, I will share the program in C++ to make a Yoshi Jump Game. Make sure to Subscribe to Programming Chaska to get latest updates

Note- You must have the SFML library installed and included its path to your Programming IDE.

Game Preview:




Game Controls:

Left arrow Key - To move the Yoshi Left 
Right arrow Key - To move the Yoshi Right

Steps to make Game:

  1. Make a new folder (say Yoshi).
  2. In the Yoshi folder make your .cpp file (say main.cpp) and a folder whose name must be "images".
  3. Download All the images given below and keep them in the "images" folder with their specific name as given below each image.
  4. Copy and Compile the code given below to generate its executable (.exe) file.
  5. At last, Run that .exe file to play the game.

Images Used:

background.png
background.png
yoshi.png
yoshi.png


platform.png
platform.png



Game Code:


#include <SFML/Graphics.hpp>
#include <time.h>
using namespace sf;

struct point
int x,y;};

int main()
{
    srand(time(0));

    RenderWindow app(VideoMode(400533), "Yoshi Jump Game!");
    app.setFramerateLimit(60);

    Texture t1,t2,t3;
    t1.loadFromFile("images/background.png");
    t2.loadFromFile("images/platform.png");
    t3.loadFromFile("images/yoshi.png");

    Sprite sBackground(t1), sPlat(t2), sPers(t3);

    point plat[20];

    for (int i=0;i<10;i++)
      {
       plat[i].x=rand()%400;
       plat[i].y=rand()%533;
      }

    int x=100,y=100,h=200;
    float dx=0,dy=0;

    while (app.isOpen())
    {
        Event e;
        while (app.pollEvent(e))
        {
            if (e.type == Event::Closed)
                app.close();
        }

    if (Keyboard::isKeyPressed(Keyboard::Right)) x+=5;
    if (Keyboard::isKeyPressed(Keyboard::Left)) x-=5;

    dy+=0.2;
    y+=dy;
    if (y>500)  dy=-10;

    if (y<h)
    for (int i=0;i<10;i++)
    {
      y=h;
      plat[i].y=plat[i].y-dy;
      if (plat[i].y>533) {plat[i].y=0plat[i].x=rand()%400;}
    }

    for (int i=0;i<10;i++)
     if ((x+50>plat[i].x) && (x+20<plat[i].x+68)
      && (y+70>plat[i].y) && (y+70<plat[i].y+14) && (dy>0))  dy=-10;

    sPers.setPosition(x,y);

    app.draw(sBackground);
    app.draw(sPers);
    for (int i=0;i<10;i++)
    {
    sPlat.setPosition(plat[i].x,plat[i].y);
    app.draw(sPlat);
    }

    app.display();
}

    return 0;
}



If you have any doubts/questions related to Program, or if you want to give any suggestionsfeel free to comment below. Subscribe to Programming Chaska for the latest programming updates and Don't forget to share it with friends. 

Post a Comment

0 Comments