• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Let's make 16 games in C++ - gry nie działają w Code Blocks ?

Konkurs Mistrz Programowania
0 głosów
243 wizyt
pytanie zadane 17 marca 2020 w C i C++ przez Sashimo Użytkownik (740 p.)

Mam zamiar przerobić te tutoriale z tego kanału :
https://www.youtube.com/watch?v=YzhhVHb0WVY&list=PLB_ibvUSN7mzUffhiay5g5GUHyJRO4DYr&index=7

tylko problem w tym że jak skopiowałem cały kod to wyskakują ciągle jakieś błędy i tu pytanie czemu się tak dzieje jeśli on pisał w C++ ?

Tutaj dodam kod z tej gry co na filmiku :

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

const int num=8; //checkpoints
int points[num][2] = {300, 610,
                      1270,430,
                      1380,2380,
                      1900,2460,
                      1970,1700,
                      2550,1680,
                      2560,3150,
                      500, 3300};

struct Car
{
  float x,y,speed,angle; int n;

  Car() {speed=2; angle=0; n=0;}

  void move()
   {
    x += sin(angle) * speed;
    y -= cos(angle) * speed;
   }

  void findTarget()
  {
    float tx=points[n][0];
    float ty=points[n][1];
    float beta = angle-atan2(tx-x,-ty+y);
    if (sin(beta)<0) angle+=0.005*speed; else angle-=0.005*speed;
    if ((x-tx)*(x-tx)+(y-ty)*(y-ty)<25*25) n=(n+1)%num;
   }
};


int main()
{
    RenderWindow app(VideoMode(640, 480), "Car Racing Game!");
    app.setFramerateLimit(60);

    Texture t1,t2,t3;
    t1.loadFromFile("images/background.png");
    t2.loadFromFile("images/car.png");
    t1.setSmooth(true);
    t2.setSmooth(true);

    Sprite sBackground(t1), sCar(t2);
    sBackground.scale(2,2);

    sCar.setOrigin(22, 22);
    float R=22;

    const int N=5;
    Car car[N];
    for(int i=0;i<N;i++)
    {
      car[i].x=300+i*50;
      car[i].y=1700+i*80;
      car[i].speed=7+i;
    }

   float speed=0,angle=0;
   float maxSpeed=12.0;
   float acc=0.2, dec=0.3;
   float turnSpeed=0.08;

   int offsetX=0,offsetY=0;

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

    bool Up=0,Right=0,Down=0,Left=0;
    if (Keyboard::isKeyPressed(Keyboard::Up)) Up=1;
    if (Keyboard::isKeyPressed(Keyboard::Right)) Right=1;
    if (Keyboard::isKeyPressed(Keyboard::Down)) Down=1;
    if (Keyboard::isKeyPressed(Keyboard::Left)) Left=1;

    //car movement
    if (Up && speed<maxSpeed)
        if (speed < 0)  speed += dec;
        else  speed += acc;

    if (Down && speed>-maxSpeed)
        if (speed > 0) speed -= dec;
        else  speed -= acc;

    if (!Up && !Down)
        if (speed - dec > 0) speed -= dec;
        else if (speed + dec < 0) speed += dec;
        else speed = 0;

    if (Right && speed!=0)  angle += turnSpeed * speed/maxSpeed;
    if (Left && speed!=0)   angle -= turnSpeed * speed/maxSpeed;

    car[0].speed = speed;
    car[0].angle = angle;

    for(int i=0;i<N;i++) car[i].move();
    for(int i=1;i<N;i++) car[i].findTarget();

    //collision
    for(int i=0;i<N;i++)
    for(int j=0;j<N;j++)
    {      
        int dx=0, dy=0;
        while (dx*dx+dy*dy<4*R*R)
         {
           car[i].x+=dx/10.0;
           car[i].x+=dy/10.0;
           car[j].x-=dx/10.0;
           car[j].y-=dy/10.0;
           dx = car[i].x-car[j].x;
           dy = car[i].y-car[j].y;
           if (!dx && !dy) break;
         }
    }


    app.clear(Color::White);

    if (car[0].x>320) offsetX = car[0].x-320;
    if (car[0].y>240) offsetY = car[0].y-240;

    sBackground.setPosition(-offsetX,-offsetY);
    app.draw(sBackground);

    Color colors[10] = {Color::Red, Color::Green, Color::Magenta, Color::Blue, Color::White};

    for(int i=0;i<N;i++)
    {
      sCar.setPosition(car[i].x-offsetX,car[i].y-offsetY);
      sCar.setRotation(car[i].angle*180/3.141593);
      sCar.setColor(colors[i]);
      app.draw(sCar);
    }

    app.display();
    }

    return 0;
}



 

1 odpowiedź

0 głosów
odpowiedź 17 marca 2020 przez Michałełe Nałogowiec (25,600 p.)

Dodałeś bibliotekę SFML?

 

komentarz 17 marca 2020 przez Sashimo Użytkownik (740 p.)
nie ma takiej biblioteki w Code Blocks #include <SFML>
komentarz 17 marca 2020 przez Michałełe Nałogowiec (25,600 p.)
Właśnie w linku umieściłem jak ją dodać
komentarz 17 marca 2020 przez Sashimo Użytkownik (740 p.)
właśnie się domyśliłem XD dzięki :)
komentarz 17 marca 2020 przez Sashimo Użytkownik (740 p.)

@Michałełe,

 

udało się :) a to trzeba za każdym razem instalować nowe biblioteki ? czy one już są wgrane na stałe ?

komentarz 17 marca 2020 przez Michałełe Nałogowiec (25,600 p.)
Musisz je sobie "podpiąć" do projektu, czyli nowy projekt to instalujesz na nowo

Podobne pytania

0 głosów
0 odpowiedzi 735 wizyt
+1 głos
1 odpowiedź 456 wizyt
pytanie zadane 18 listopada 2015 w C i C++ przez boczek75 Nowicjusz (130 p.)
0 głosów
1 odpowiedź 811 wizyt
pytanie zadane 13 września 2015 w C i C++ przez Mavimix Dyskutant (8,470 p.)

93,653 zapytań

142,574 odpowiedzi

323,090 komentarzy

63,170 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...