本人是一名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;
}

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