Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<raylib.h>
- struct AnimData
- {
- Rectangle rec;
- Vector2 pos;
- int frame;
- float updateTime;
- float runningTime;
- };
- const int sWidth = 100;
- const int sHeigth = 50;
- int main()
- {
- InitWindow(800, 400, "My first game");
- Rectangle rec[sWidth][sHeigth];
- int type[sWidth][sHeigth]
- {
- { 1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
- {1,0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1},
- { 1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
- };
- for (int i = 0;i < sWidth;i++)
- {
- for (int j = 0;j < sHeigth;j++)
- {
- Rectangle floor{ i * 32, j * 32, 32, 32 };
- rec[i][j] = floor;
- }
- }
- int playervec = 128;
- bool UP = false, DOWN = false, LEFT=false, RIGHT=false, ISMOVINGu=false, ISMOVINGd = false,
- ISMOVINGl = false ,ISMOVINGr = false
- ;
- Image nebula = LoadImage("pla.png");
- Texture2D tex = LoadTextureFromImage(nebula);
- AnimData nebData{
- {0.0, 0.0, nebula.width / 3, nebula.height / 4}, // Rectangle rec
- {200, 125}, // Vector2 pos
- 0, // int frame
- 1.0f / 9.0f, // float updateTime
- 0 // float runningTime
- };
- bool isShoot = false;
- Rectangle rec1{ nebData.pos.x ,nebData.pos.y,4.f,4.f };
- Vector2 pos{ nebData.pos.x + 20.0f, nebData.pos.y + 20.0f };
- Vector2 off{ 800 / 2.0f, 400 / 2.0f };
- Camera2D camera = { 0 };
- camera.target = pos;
- camera.offset = off;
- camera.rotation = 0.0f;
- camera.zoom = 1.0f;
- SetTargetFPS(60);
- while (!WindowShouldClose())
- {
- const float dt = GetFrameTime();
- BeginDrawing();
- if (IsKeyDown(KEY_W))
- {
- UP = true;
- ISMOVINGu = true;
- }
- if (IsKeyUp(KEY_W))
- ISMOVINGu = false;
- if (IsKeyDown(KEY_S))
- {
- DOWN = true;
- ISMOVINGd = true;
- }
- if (IsKeyUp(KEY_S))
- {
- ISMOVINGd = false;
- }
- if (IsKeyDown(KEY_A))
- {
- LEFT = true;
- ISMOVINGl = true;
- }
- if (IsKeyUp(KEY_A))
- {
- ISMOVINGl = false;
- }
- if (IsKeyDown(KEY_D))
- {
- RIGHT = true;
- ISMOVINGr = true;
- }
- if (IsKeyUp(KEY_D))
- ISMOVINGr = false;
- if (!ISMOVINGd && !ISMOVINGu && !ISMOVINGl && !ISMOVINGr)
- nebData.rec.x = 32;
- if (UP)
- {
- nebData.pos.y -= playervec * dt;
- nebData.rec.y = 96;
- Rectangle rec1{ (int)nebData.pos.x + 9, (int)nebData.pos.y + 9 };
- for(int i=0;i<sWidth;i++)
- {
- for(int j=0;j<sHeigth;j++)
- if (CheckCollisionRecs(rec1, rec[i][j]))
- {
- if (type[i][j] == 1)
- nebData.pos.y += playervec * dt;
- }
- }
- UP = false;
- camera.target = { nebData.pos.x + 20.0f, nebData.pos.y + 20.0f };
- }
- if (DOWN)
- {
- nebData.pos.y += playervec * dt;
- nebData.rec.y = 0;
- Rectangle rec1{ (int)nebData.pos.x + 9, (int)nebData.pos.y + 9 };
- for(int i=0;i<sWidth;i++)
- for (int j = 0;j < sHeigth;j++)
- if (CheckCollisionRecs(rec1, rec[i][j]))
- {
- if(type[i][j] == 1)
- nebData.pos.y -= playervec * dt;
- }
- DOWN = false;
- camera.target = { nebData.pos.x + 20.0f, nebData.pos.y + 20.0f };
- }
- if (LEFT)
- {
- nebData.pos.x -= playervec * dt;
- nebData.rec.y = 32;
- Rectangle rec1{ (int)nebData.pos.x+9, (int)nebData.pos.y+9 };
- for (int i = 0;i < sWidth;i++)
- for (int j = 0;j < sHeigth;j++)
- if (CheckCollisionRecs(rec1, rec[i][j]))
- {
- if (type[i][j] == 1)
- nebData.pos.x += playervec * dt;
- }
- LEFT = false;
- camera.target = { nebData.pos.x + 20.0f, nebData.pos.y + 20.0f };
- }
- if (RIGHT)
- {
- nebData.pos.x += playervec * dt;
- nebData.rec.y = 64;
- Rectangle rec1{ (int)nebData.pos.x+24, (int)nebData.pos.y+9 };
- for (int i = 0;i < sWidth;i++) {
- for (int j = 0;j < sHeigth;j++)
- if (CheckCollisionRecs(rec1, rec[i][j]))
- {
- if (type[i][j] == 1)
- nebData.pos.x -= playervec * dt;
- }
- }
- RIGHT = false;
- camera.target = { nebData.pos.x + 20.0f, nebData.pos.y + 20.0f };
- }
- if(IsKeyPressed(KEY_SPACE))
- {
- isShoot = true;
- }
- if(IsKeyReleased(KEY_SPACE))
- {
- //isShoot = false;
- }
- if(isShoot&&rec1.x<800)
- rec1.x += 2.f ;
- else
- {
- isShoot = false;
- }
- nebData.runningTime += dt;
- if (nebData.runningTime >= nebData.updateTime &&(ISMOVINGu||ISMOVINGd||ISMOVINGl||ISMOVINGr))
- {
- nebData.runningTime = 0.0;
- nebData.rec.x = nebData.frame * nebData.rec.width;
- nebData.frame++;
- if (nebData.frame > 4)
- {
- nebData.frame = 0;
- }
- }
- BeginMode2D(camera);
- ClearBackground(BLACK);
- for (int i = 0;i < sWidth;i++)
- for (int j = 0;j < sHeigth;j++)
- { if(type[i][j] == 1)
- DrawRectangle((int)rec[i][j].x, (int)rec[i][j].y, (int)rec[i][j].width, (int)rec[i][j].height, GRAY);
- else DrawRectangle((int)rec[i][j].x, (int)rec[i][j].y, (int)rec[i][j].width, (int)rec[i][j].height, DARKGREEN);
- }
- DrawTextureRec(tex, nebData.rec, nebData.pos, WHITE);
- if(isShoot)
- DrawRectangle(rec1.x,rec1.y,4.f,4.f,BLUE);
- EndDrawing();
- EndMode2D();
- }
- CloseWindow();
- //std::cout<<"Hello, World\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement