捕鱼达人c语言easyx程序代码
时间: 2023-05-11 19:00:28 浏览: 309
捕鱼达人是一款非常经典的休闲游戏,可以通过C语言编写EasyX程序代码来实现。这个游戏的主要玩法是通过操作一个渔夫,利用鱼钩捕捉各种鱼类,并在规定时间内获得尽可能高的分数。下面是一个简单的捕鱼达人C语言EasyX程序代码:
```c++
#include <graphics.h>
#include <conio.h>
#include <iostream>
#include <time.h>
using namespace std;
IMAGE bg; // 背景图片
IMAGE f[10]; // 鱼的图片
IMAGE hook; // 鱼钩图片
IMAGE fish[10];
int main()
{
srand((unsigned int)time(NULL)); // 随机数种子
initgraph(600, 600); // 创建图形窗口
loadimage(&bg, _T("bg.jpg")); // 加载背景图片
loadimage(&hook, _T("hook.png")); // 加载鱼钩图片
for (int i = 0; i < 10; i++)
{
string filename = "fish" + to_string(i + 1) + ".png";
loadimage(&f[i], _T(filename.c_str())); // 加载鱼的图片
}
int score = 0; // 分数
int fish_x = rand() % 500 + 50; // 鱼的初始横坐标
int fish_y[10] = { 0 }; // 鱼的初始纵坐标
int fish_speed[10] = { 0 }; // 鱼的初始速度
int hook_x = 0, hook_y = 570; // 鱼钩的初始坐标
while (!kbhit()) // 当没有按键时循环
{
putimage(0, 0, &bg); // 显示背景图片
for (int i = 0; i < 10; i++) // 循环显示鱼
{
if (fish_y[i] >= 600) // 当鱼跑出屏幕时重新生成
{
fish_x = rand() % 500 + 50;
fish_y[i] = 0;
fish_speed[i] = rand() % 5 + 5;
}
fish_y[i] += fish_speed[i];
putimage(fish_x, fish_y[i], &f[i], SRCINVERT);
putimage(fish_x, fish_y[i], &f[i], SRCAND);
putimage(fish_x, fish_y[i], &f[i], SRCPAINT);
}
if (hook_y <= 0) // 当鱼钩到达顶部时重置
{
score--;
hook_y = 570;
}
putimage(hook_x, hook_y, &hook); // 显示鱼钩图片
for (int i = 0; i < 10; i++) // 判断鱼和鱼钩是否相交
{
if (fish_y[i] > 0 && fish_y[i] < 570 && abs(hook_x - fish_x) < 60 && abs(hook_y - fish_y[i]) < 60)
{
score++;
fish_y[i] = 650;
}
}
if (GetAsyncKeyState(VK_LEFT)) // 当按下左键时鱼钩向左移动
{
hook_x -= 5;
if (hook_x < 0) hook_x = 0;
putimage(0, 0, &bg);
}
if (GetAsyncKeyState(VK_RIGHT)) // 当按下右键时鱼钩向右移动
{
hook_x += 5;
if (hook_x > 500) hook_x = 500;
putimage(0, 0, &bg);
}
_itoa_s(score, (char*)fish, 10); // 显示分数
outtextxy(550, 20, (char*)fish);
hook_y -= 5; // 鱼钩向上移动
Sleep(20); // 控制循环速度
}
_getch(); // 读取按键并结束程序
closegraph();
return 0;
}
```
以上是一个简单的捕鱼达人C语言EasyX程序代码,其中通过使用EasyX图形库实现了游戏界面和动画效果,并使用随机数、碰撞检测等技术实现游戏逻辑。同时,也包含了一些基础的C语言编程知识,如循环、条件语句、数组、字符串等。在日常C语言编程练习中,可以通过编写类似的小游戏程序来提高自己的编程能力。
阅读全文