广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++基于easyx怎么实现迷宫游戏
  • 581
分享到

C++基于easyx怎么实现迷宫游戏

2023-06-30 13:06:59 581人浏览 泡泡鱼
摘要

本篇内容介绍了“c++基于easyx怎么实现迷宫游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果:#define _CRT_

本篇内容介绍了“c++基于easyx怎么实现迷宫游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

效果:

C++基于easyx怎么实现迷宫游戏

#define _CRT_SECURE_NO_DEPRECATEd#define _CRT_SECURE_NO_WARNINGS#include<graphics.h>#include<coNIO.h>#include<windows.h>#include<stdio.h>#define LEFT            0//方向#define RIGHT            1#define UP            0//由于当前素材只有左右二个方向,所以上下共用了左右方向#define DOWN            1#define ROAD 0//地图元素类型#define WALL 1#define ENTERX 1//入口  x列,y行#define ENTERY 0#define OUTX 11 //出口 x列,y行#define OUTY 8#define HUMANWIDTH        75#define HUMANHEIGHT        130#define WIDTH            12//地图大小#define HEIGHT            10IMAGE img_human;IMAGE img_human_mask;IMAGE img_wall;IMAGE img_road;int moveNum[2] = { 0 };//当前动作序号int direction;//上下左右四个方向int human_witdh;int human_height;int x, y;//x列数,y行数int map[HEIGHT][WIDTH] = {//地图    { 1,1,1,1,1,1,1,1,1,1,1,1 },    { 0,0,0,1,1,1,1,1,1,1,1,1 },    { 1,1,0,1,1,1,1,0,1,1,1,1 },    { 1,1,0,0,1,1,1,0,1,1,1,1 },    { 1,1,1,0,1,1,1,0,1,1,1,1 },    { 1,1,1,0,1,1,1,0,1,1,1,1 },    { 1,1,1,0,1,1,1,0,1,1,1,1 },    { 1,1,1,0,0,0,0,0,0,0,1,1 },    { 1,1,1,1,1,1,1,1,1,0,0,0 },    { 1,1,1,1,1,1,1,1,1,1,1,1 },};void showbk() {//绘制背景    for (int j = 0; j < WIDTH; j++)        for (int i = 0; i < HEIGHT; i++)            if (map[i][j] == WALL)                putimage(j * img_wall.getwidth(), i * img_wall.getheight(), img_wall.getwidth(), img_wall.getheight(), &img_wall, 0, 0, SRCCOPY);            else putimage(j * img_wall.getwidth(), i * img_wall.getheight(), img_wall.getwidth(), img_wall.getheight(), &img_road, 0, 0, SRCCOPY);}void start()//初始化{    loadimage(&img_wall, _T(".\\walls.gif"));    initgraph(img_wall.getwidth() * WIDTH, img_wall.getheight() * HEIGHT);    loadimage(&img_human, _T(".\\行走素材图.jpg"));    loadimage(&img_human_mask,_T( ".\\行走素材图mask.jpg"));    human_witdh = 75;//img_human.getwidth()/4;    human_height = 130;//img_human.getheight()/2;                       //putimage(x,y,HUMANWIDTH,HUMANHEIGHT,&img_human,0,0);    loadimage(&img_road, _T(".\\road.gif"));    x = 0;    y = 1;}void updateWithoutInput(){}void drawRole(int x0, int y0)//绘制前景{    putimage((x - x0 / 4.0) * img_wall.getwidth() - 7,        (y - y0 / 4.0) * img_wall.getheight() - 70,        human_witdh, human_height, &img_human_mask, moveNum[direction] * human_witdh, direction * (human_height - 10), NOTSRCERASE);    putimage((x - x0 / 4.0) * img_wall.getwidth() - 7,        (y - y0 / 4.0) * img_wall.getheight() - 70,        human_witdh, human_height, &img_human, moveNum[direction] * human_witdh, direction * (human_height - 10), SRCINVERT);}void show(int x0, int y0){    showbk();    //clearrectangle(x,y,x+human_witdh,y+human_height);        //先显示背景    //准备好遮罩MASK图和源图,三元光栅操作    drawRole(x0, y0);    FlushBatchDraw();    Sleep(50);}void readRecordFile(){//读取存档    FILE* fp;    int temp;    fp = fopen(".\\record.dat", "r");    fscanf(fp, "%d %d", &x, &y);    fclose(fp);}void WriteRecordFile(){//保存存档    FILE* fp;    int temp;    fp = fopen(".\\record.dat", "w");    fprintf(fp, "%d %d ", x, y);    fclose(fp);}void updateWithInput(){//增加过度    char input;    int olddirection = direction;    int oldx = x;    int oldy = y;        if (_kbhit())    {        input = _getch();        switch (input)        {        case 'a':direction = LEFT;        if (map[y][x - 1] == ROAD) x--; moveNum[direction] = 0; break;        case 'd':direction = RIGHT;        if (map[y][x + 1] == ROAD) x++; moveNum[direction] = 0; break;        case 'w':direction = UP;        if (map[y - 1][x] == ROAD) y--; moveNum[direction] = 0; break;        case 's':direction = DOWN;        if (map[y + 1][x] == ROAD) y++; moveNum[direction] = 0; break;        case 'W':WriteRecordFile(); break;        case 'R':readRecordFile(); break;        }        if (x != oldx || y != oldy)            for (int i = 4; i > 0; i--)            {//过渡动画                show((x - oldx) * i, (y - oldy) * i);                moveNum[direction]++;//动作序号,一个完整动作分解为四个姿势                moveNum[direction] %= 4;            }    }}int main(){    start();    BeginBatchDraw();    while (1) {        show(0, 0);        Sleep(50);        if (x == OUTX && y == OUTY)//到达了出口        {            outtextxy(0, 0, _T("reach target!"));            Sleep(50);            break;        }        updateWithoutInput();        updateWithInput();    }    EndBatchDraw();    _getch();    closegraph();    return 0;}

C++基于easyx怎么实现迷宫游戏

C++基于easyx怎么实现迷宫游戏

C++基于easyx怎么实现迷宫游戏

“C++基于easyx怎么实现迷宫游戏”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C++基于easyx怎么实现迷宫游戏

本文链接: https://www.lsjlt.com/news/329174.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++基于easyx实现迷宫游戏
    本文实例为大家分享了C++基于easyx实现迷宫游戏的具体代码,供大家参考,具体内容如下 #define _CRT_SECURE_NO_DEPRECATEd #define _C...
    99+
    2022-11-13
  • C++基于easyx怎么实现迷宫游戏
    本篇内容介绍了“C++基于easyx怎么实现迷宫游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果:#define _CRT_...
    99+
    2023-06-30
  • 基于C语言实现迷宫游戏的示例代码
    目录C语言迷宫游戏定义地图打印地图方法一打印地图方法二定义起点和终点位置实现读取按键实现小球下向下移动一步总结小球移动规律实现重新打印地图实现连续移动实现小球下向上下左右移动实现小球...
    99+
    2022-11-13
  • Java怎么实现迷宫游戏
    这篇文章给大家分享的是有关Java怎么实现迷宫游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重...
    99+
    2023-06-14
  • 怎么用html5实现迷宫游戏
    这篇文章主要介绍“怎么用html5实现迷宫游戏”,在日常操作中,相信很多人在怎么用html5实现迷宫游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用html5实现迷宫...
    99+
    2022-10-19
  • C++基于EasyX库实现拼图小游戏
    用C++的EasyX库做的拼图小游戏,供大家参考,具体内容如下   记录一下自己做的第一个项目,还有一些改进空间QWQ,可以支持难度升级,但是通关判断似乎有点...
    99+
    2022-11-12
  • 基于Unity3D实现3D迷宫小游戏的示例代码
    目录一、前言二、构思三、正式开发3-1、搭建场景3-2、设置出入口3-3、添加角色3-4、实现角色移动3-5、出入口逻辑四、总结一、前言 闲来无事,从零开始整个《3D迷宫》小游戏。 ...
    99+
    2022-11-13
  • Unity怎么实现3D迷宫小游戏
    这篇文章主要介绍了Unity怎么实现3D迷宫小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Unity怎么实现3D迷宫小游戏文章都会有所收获,下面我们一起来看看吧。一、前言闲来无事,从零开始整个《3D迷宫》...
    99+
    2023-06-29
  • C++基于easyx图形库实现打砖块游戏
    本文实例为大家分享了C++基于easyx实现打砖块的具体代码,供大家参考,具体内容如下 代码: #include <graphics.h> #include <c...
    99+
    2022-11-13
  • C++基于EasyX库如何实现拼图小游戏
    这篇“C++基于EasyX库如何实现拼图小游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++基于EasyX库如何实现拼...
    99+
    2023-06-19
  • Java递归怎样实现迷宫游戏
    本篇文章为大家展示了Java递归怎样实现迷宫游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.问题由来迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设...
    99+
    2023-06-22
  • C++基于EasyX框架实现飞机大战小游戏
    正式使用Easyx之前,你需要先安装他!! EasyX 2022 版 (2022-9-1 更新) - EasyX 选择合适的版本安装 安装结束后就可以开始敲代码啦! 这里作者使用的...
    99+
    2023-01-06
    C++ EasyX飞机大战游戏 C++ 飞机大战游戏 C++ EasyX游戏
  • C语言基于EasyX如何实现贪吃蛇游戏
    本篇内容主要讲解“C语言基于EasyX如何实现贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言基于EasyX如何实现贪吃蛇游戏”吧!成品展示:实现思路:贪吃蛇的实现思路并不复杂,由...
    99+
    2023-07-02
  • C++怎么使用easyx实现打砖块游戏
    这篇文章主要介绍“C++怎么使用easyx实现打砖块游戏”,在日常操作中,相信很多人在C++怎么使用easyx实现打砖块游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么使用easyx实现打砖块游戏...
    99+
    2023-06-30
  • C++ 基于BFS算法的走迷宫自动寻路的实现
    目录1.效果图2.实现代码1.队列方法类2.地图方法类3.main函数3.思路1.效果图 其中正方形代表障碍物,实心菱形代表移动者(人),空心菱形代表目标位置(都是可以在代码中修改...
    99+
    2022-11-12
  • C语言中怎么用easyx实现消砖块游戏
    这篇文章主要讲解了“C语言中怎么用easyx实现消砖块游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中怎么用easyx实现消砖块游戏”吧!一、最终效果展示效果图如下:二、绘制静态的...
    99+
    2023-06-30
  • 基于C语言实现2048游戏
    本文实例为大家分享了C语言实现2048游戏的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h>...
    99+
    2022-11-12
  • 基于C++实现五子棋小游戏
    本文实例为大家分享了C++实现五子棋小游戏的具体代码,供大家参考,具体内容如下  (这是一个颜色会变化的呦) #include <iostream> usi...
    99+
    2022-11-13
  • 基于C语言实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 game.h 设置头文件 #include<stdio.h> #include<s...
    99+
    2022-11-12
  • 基于C语言实现三子棋游戏
    说到三子棋,我想大家一定不陌生吧,它也是我童年中的一部分,今天我们用C语言来实现一下简易版的三子棋。 首先,介绍一下游戏规则: 1.在一个九宫格上进行下棋; 2.玩家两名,双方先后落...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作