c语言游戏源码分享 (c++简单的编程游戏)

本人是一名C语言C++程序员 今天跟大家分享下我写的小游戏源码 长话短说 想学习c语言c++小伙伴们 可以加一下这个群C语言C++学习交流群 590750544 很不错的!

#define _CRT_SECURE_NO_WARNINGS

#include <graphics.h>

#include <conio.h>

#include <time.h>

#include <iostream>

#include <dos.h>

using namespace std;

IMAGE Image0, Image4, Image5;

{

public:

//构造函数与析构函数

Bird(int x, int y)

{

bird_x = x;

bird_y = y;

}

~Bird()

{

}

//抽象动作

void down() //朝下

{

IMAGE Image1;

loadimage(&Image1, "bird.jpg");

putimage(bird_x - 50, bird_y - 25, &Image0);

bird_y += 2;

getimage(&Image0, bird_x - 50, bird_y - 25, 50, 46);

putimage(bird_x - 50, bird_y - 25, &Image1);

}

void upward() //朝上

{

IMAGE Image1,Image2;

loadimage(&Image1, "bird.jpg");

loadimage(&Image2, "bird.jpg");

putimage(bird_x - 50, bird_y - 25, &Image2);

bird_y -= 4;

putimage(bird_x - 50, bird_y - 25, &Image1);

}

int getBird_x()

{

return bird_x;

}

int getBird_y()

{

return bird_y;

}

private:

int bird_x;

int bird_y;

};

//柱子类

{

public:

//构造函数与析构函数

Pillar(){};

void toward_left()

{

IMAGE Image2, Image3;

loadimage(&Image2, "pillarup.jpg");

loadimage(&Image3, "pillardown.jpg");

putimage(pillar_x - 25, pillar_y - 380, &Image4);

putimage(pillar_x - 25, pillar_y + 100, &Image5);

pillar_x--;

getimage(&Image4, pillar_x - 25, pillar_y - 380, 50, 280);

getimage(&Image5, pillar_x - 25, pillar_y + 100, 50, 280);

putimage(pillar_x - 25, pillar_y - 380, &Image3);

putimage(pillar_x - 25, pillar_y + 100, &Image2);

}

void CreatePillar() //生成柱子

{

srand((unsigned int)time(0));

pillar_y = rand() % 280 + 100;

pillar_x = 640;

}

int judgepillar()

{

if (pillar_x + 25 == 0)

return 1;

return 0;

}

int getPillar_x()

{

return pillar_x;

}

int getPillar_y()

{

return pillar_y;

}

~Pillar(){}

private:

int pillar_x;

int pillar_y;

};

void BeginBackground()

{

IMAGE backgroundImage;

loadimage(&backgroundImage, "backgroundImage.jpg");

int width = backgroundImage.getwidth();

int height = backgroundImage.getheight();

initgraph(width, height);

putimage(0, 0, &backgroundImage);

settextstyle(50, 0, "锐字云字库行楷体1.0"); //设置字体

//字用透明的方式去做

setbkmode(TRANSPARENT);//透明的方式

settextcolor(RED); //设置为红色的字体

outtextxy(200, 90, "潭州C/C++研究院"); //在指定坐标输出字

while (!_kbhit())

{

settextcolor(RED); //设置为红色的字体

outtextxy(200, 360, "按任意键继续"); //在指定坐标输出字

Sleep(1000);

settextcolor(WHITE);

outtextxy(200, 360, "按任意键继续"); //在指定坐标输出字

Sleep(1000);

settextcolor(BLUE);

outtextxy(200, 360, "按任意键继续"); //在指定坐标输出字

Sleep(1000);

}

}

void GameOverbackGround()

{

IMAGE gameoverImage;

loadimage(&gameoverImage, "gameoverImage.jpg");

int width = gameoverImage.getwidth();

int height = gameoverImage.getheight();

initgraph(width, height);

putimage(0, 0, &gameoverImage);

_getch();

}

void PlayGame()

{

IMAGE playgameImage;

loadimage(&playgameImage, "playbackground.jpg");

int width = playgameImage.getwidth();

int height = playgameImage.getheight();

initgraph(width, height);

putimage(0, 0, &playgameImage);

char c;

int count = 0;

int kb = 0;

int jud = 0;

int score = 0;

int x_bird = 0, y_bird = 0, x_pillar = 0, y_pillar = 0;

Bird MyBird(300, 240);//指定位置构造小鸟

getimage(&Image0, 250, 215, 50, 46);

Pillar MyPillar;

MyPillar.CreatePillar();

x_pillar = MyPillar.getPillar_x();

x_pillar = MyPillar.getPillar_y();

//50+280 柱子的宽度

//背景:640*480

getimage(&Image4, x_pillar - 25, y_pillar - 380, 50, 280);

getimage(&Image5, x_pillar - 25, y_pillar + 100, 50, 280);

_getch();

while (true)

{

jud = 0;

if (kb == 0)

{

MyBird.down();

}

MyPillar.toward_left();

if (_kbhit())

{

c = _getch();

if (c == ' ')

{

kb = 1;

count = 30;

}

}

if (count != 0)

{

count--;

MyBird.upward();

}

else if (count == 0)

kb = 0;

x_bird = MyBird.getBird_x();

y_bird = MyBird.getBird_y();

x_pillar = MyPillar.getPillar_x();

y_pillar = MyPillar.getPillar_y();

if (x_pillar > 225 && x_pillar < 325)

{

if (y_bird<y_pillar - 75 || y_bird>y_pillar + 75)

break;

}

if (y_bird>460)

break;

if (x_pillar == 300)

score++;

//显示分数

char s[5];

sprintf(s, "%d", score);

settextstyle(50, 50, "锐字云字库行楷体1.0");

settextcolor(RED);

outtextxy(310, 60, s);

jud = MyPillar.judgepillar();

if (jud == 1)

{

MyPillar.CreatePillar();

x_pillar = MyPillar.getPillar_x();

y_pillar = MyPillar.getPillar_y();

//50+280 柱子的宽度

//背景:640*480

getimage(&Image4, x_pillar - 25, y_pillar - 380, 50, 280);

getimage(&Image5, x_pillar - 25, y_pillar + 100, 50, 280);

}

Sleep(2);

}

GameOverbackGround();

}

int main()

{

BeginBackground();

PlayGame();

closegraph();

return 0;

}

c语言做飞翔小鸟的游戏素材,用源码编辑器制作飞翔的小鸟

打造

(想学习编程加群 590750544 很不错的!)