#define _CRT_SECURE_NO_WARNINGS 1
#include <easyx.h>
#include <time.h>
#include <conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<graphics.h>
#include"globlevar.h"
#include"apple.h"
#include"game.h"
#include"snake.h"
/*游戏界面绘制*/
void gamePaint();
/*游戏初始化绘制*/
void gameInit();
/*游戏定时处理*/
void gameInterval();
/*游戏键盘按下*/
void gameKeypress(int key);
/*游戏鼠标按下*/
void gameMouseDown(int mouseX, int mouseY);
/*游戏鼠标右键按下*/
void gameMouseRightDown(int mouseX, int mouseY);
/*游戏鼠标抬起*/
void gameMouseUp(int mouseX, int mouseY);
/*游戏鼠标移动*/
void gameMousemove(int mouseX, int mouseY);
/*
含透明的图的绘制
x为要载入图片的X坐标,y为Y坐标
*/
void drawImage(int picture_x, int picture_y, IMAGE* picture);
/*调整图片透明度
角度转弧度:PI/180*角度
弧度转角度:180/PI*弧度
*/
void drawImageAlpha(int x0, int y0, IMAGE* img, double f);
/*两个矩形碰撞检测
即两个矩形是否相交。
x1, y1, w1, h1是第一个矩形的xy宽高的四个参数
x2, y2, w2, h2是第二个矩形的xy宽高的四个参数
返回0代表不相交 返回1代表相交
*/
int testHit(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2);
/*设置100即每隔100毫秒刷新以下界面绘图。*/
int interval = 100;//TODO: 1 设置定时器时间间隔(单位毫秒)
// TODO: 1 设置窗口: 宽度 高度
int screenWidth = 600;
int screenHeight = 600;
int stop = 0;//是否停止游戏
//-----------------------------------//
int times = 0;
/*初始化游戏 */
void initgame()
{
srand((unsigned)time(NULL));//随机数初始化
setbkcolor(NULL);//背景色
setbkmode(TRANSPARENT);// 设置背景混合模式: TRANSPARENT为透明
gameInit();
}
/*
界面绘图演示案例
*/
/*绘制显示游戏界面*/
void paint()
{
BeginBatchDraw();//打开双缓冲
cleardevice();// 清屏
gamePaint();
//-----------------------------//
EndBatchDraw();//关闭双缓冲
}
/*游戏运行*/
void run()
{
ExMessage msg;
//ExMessage key;
while (1) // 游戏主循环 可借助break 结束循环
{
if (peekmessage(&msg, -1, true))
{
switch (msg.message)
{
case WM_MOUSEMOVE://鼠标移动
gameMousemove(msg.x,
[C语言]实战项目1 贪吃蛇的代码实现
于 2023-05-28 22:11:01 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)