首页 > 其他分享 >高级游戏2.0

高级游戏2.0

时间:2024-08-05 18:27:42浏览次数:11  
标签:游戏 img SCREEN Object 高级 else WIDTH 2.0 speed

才知道EGE是可以做3D游戏呢,不过仔细想一想我做游戏的目的又是啥?现阶段无非就是搞出一个逻辑复杂,能锻炼编程思维的东西,最好是2.5D俯视角而且要多借鉴github等复杂的项目,变成自己的东西。最好做出新一个饥荒,元气骑士,合金弹头,僵尸危机,环世界,矮人要塞之类的。

#include #include #include #include #include using namespace std; #define SCREEN_WIDTH 900 #define SCREEN_HEIGHT 700

class Object{
int life;
PIMAGE img;
int x;
int y;
float speed;
void border(){
if(this->x < 0){
this->x = SCREEN_WIDTH-getwidth(this->img);
}else if(this->x > SCREEN_WIDTH-getwidth(this->img)){
this->x = 0;
}else if(this->y < 0){
this->y = SCREEN_HEIGHT-getheight(this->img);
}else if(this->y >SCREEN_HEIGHT-getheight(this->img)){
this->y = 0;
}
}
public:
Object(LPCSTR file,float speed){
random_device rd; // 随机数种子
mt19937 gen(rd()); // 使用Mersenne Twister 19937算法生成随机数引擎
uniform_real_distribution dis(0.0, 1.0); // 定义在[0, 1)范围内的均匀分布随机数
double random = dis(gen); // 生成0到1之间的随机数
this->x = randomSCREEN_WIDTH;
this->y = random
SCREEN_HEIGHT;
this->life = 0;
this->speed = speed;
this->img = newimage();
getimage(this->img,file);
//LPCSTR为图片路径
}
void move(char k){
border();
if (k == 'w') {
this->y -= this->speed;
} else if (k == 's') {
this->y += this->speed;
} else if (k == 'a') {
this->x -= this->speed;
} else if (k == 'd') {
this->x += this->speed;
}
}
void display(){
putimage(this->x,this->y,this->img);
}
};

class Managemet{
public:
Managemet(){
initgraph(SCREEN_WIDTH,SCREEN_HEIGHT);
setcaption("Magic World");
setbkcolor(WHITE);
}
Object create_player(LPCSTR s="player.png",float speed = 3){
Object p(s,speed);
return p;
}
void start(){
Object p = create_player();
// //60帧(FPS)
// for (; is_run(); delay_fps(60)){
//
// }
// 当没有按下ESC键时循环
while (!kbhit() || getch() != 27) {
cleardevice(); // 清空窗口
if (keystate(key_W)) {
p.move('w');
}else if(keystate(key_S)){
p.move('s');
}else if(keystate(key_A)){
p.move('a');
}else if(keystate(key_D)){
p.move('d');
}
p.display();
Sleep(10);
}
}
~Managemet(){
closegraph();
// 关闭图形窗口
}
};

int main()
{
Managemet m;
m.start();
return 0;
}
// getch();暂停程序,等待用户按下任意键(除暂停作用外,不建议使用)
// 使用newimage() 创建的图像是动态内存分配的图像,不使用时需要使用 delimage(pimg) 进行销毁


标签:游戏,img,SCREEN,Object,高级,else,WIDTH,2.0,speed
From: https://www.cnblogs.com/karl-lighting/p/18343820/gamei2

相关文章

  • 《消逝的光芒2》三十三项风灵月影修改器功能说明,消逝的光芒2游戏修改器全面运用攻略
    《消逝的光芒2》三十三项风灵月影修改器功能说明在此呈现。它包含了众多强大功能,如无限生命、无限体力、无限道具等。详细的功能阐述让你能清晰了解每个修改项的作用,助你在游戏中轻松畅玩,体验别样的精彩。本篇将为大家带来《消逝的光芒2》三十三项风灵月影修改器功能说明的内容......
  • 如何为网络游戏选择理想的服务器?
    网络游戏已成为一种全球性的娱乐方式,而背后支撑这一切的是强大的服务器。为了确保游戏体验的流畅性和安全性,游戏开发者和运营商需要精心挑选服务器。那选择服务器要考虑的因素有哪些呢?我觉得是一下几点:1.高性能与弹性伸缩:无论是大型还是小型游戏,都需要足够的计算能力来处理......
  • Typecho在Ubuntu 22.04上的安装部署
    安装Nginx并配置访问安装PHP并输出脚本结果配置typechoNginx安装并验证aptinstallnginxsystemctlstartnginx正常情况应该可以看到Nginx的欢迎页面了,如果看不到就是防火墙的问题,设置下防火墙放通即可。安装PHP并使用Nginx代理aptinstallphp-fpmphp-curlphp-gd......
  • OpenGL实现3D游戏编程【连载2】——了解并创建3D空间模型
    1、本节实现的内容上一节我们创建一个简单的窗口,本节我们需要了解一下细节内容,同时为了方便观看,我们需要显示一个世界坐标轴,建立一个直观的三维空间。2、我们的眼睛设定(gluPerspective函数)上一节课,我们创建了一个简单的opengl窗口,并显示了一个简单的3d模型正方体,这节我......
  • vue + quill2.0+ 工具栏自定义行高
    在网上查了好多,基本都是基于1.0+版本的,拿过来都用不了,官方又没有文档,只能参考各位前辈的经验+解析源码查找问题。目前已经解决,下面是实现过程。实现代码  先看效果图我用的是原生quill库,正常引入quill,注册行高插件importQuillfrom'quill'import'quill/dist/quill.......
  • [C++] 小游戏 决战苍穹 2.12.3版本 zty出品
       大家好,各位看到这个标题,斗破苍穹什么时候改叫决战苍穹了?其实,因为版权等一系列问题,斗破苍穹正式改名为决战苍穹,2.12.3版本主要更新内容为解决了皇冠竞技场太过影响游戏平衡,并且提高了一些装备的基础数值先赞后看,养成习惯CODE:#include<stdio.h>#include<iostream>#in......
  • 虚拟机(ubuntu22.04)安装与配置bochs
    安装bochs创建文件夹(可选)新建终端终端输入mkdirSoftware,下载的bochs就放在这里吧下载bochshttps://sourceforge.net/projects/bochs/files/bochs/进入这个网址选择对应版本的bochs,这里就用最新的2.8版本示范了点击2.8版本的文件夹,下载后缀名为tar.gz的压缩包下......
  • ubuntu22.04容器安装ssh服务
    除了特别说明外,否则以下命令均为ubuntu22.04容器内执行!!!安装查看ubuntu22.04有没有安装openssh-server,执行命令:sudodpkg--list|grepssh没有找到openssh-server的包,很显然,没有安装,那么就开始安装,执行:sudoaptinstallopenssh-server安装完成后,通过上图相关的包已经......
  • Unity游戏开发之【输入管理器设计】 第二章
    上一章把输入管理器各个模块基本功能和简单的代码逻辑已经讲述了,本章就以移动摇杆的功能实现,把整个【输入管理控制器】的代码给大家讲述一遍上一章内容连接:Unity游戏开发之【输入管理器设计】第一章以下包括摇杆功能实现和输入控制系统的代码。代码按照逻辑顺序进行整理......
  • 超好玩洛谷小游戏大全,好玩到停不下来(用洛谷的人都必须要知道,程序猿、OIer必备)
    Game啊你颓废了快点这个<tuifei break>{\color{White}\colorbox{Pink}{<tuifeibreak>}}<tuifei b......