赛车游戏简单单车C语言版

#include<stdio.h>
#include<easyx.h>
#include<time.h>#define WIDTH 512
#define HEIGHT 768//定义一个汽车类
struct FCar
{//坐标float x, y;// 汽车种类int type;//汽车速度float speed;
};//定义全局变量 图片坐标
IMAGE BG_IMG;
//背景图片坐标
float BG1_Y, BG2_Y;
//定义汽车图片
IMAGE CAR_IMG[4][2];
//定义一个汽车
FCar car1;//初始化游戏(初始化一些数据,加载图片)
void InitGame();
//绘制游戏
void DrawGame();
//更新游戏
void UpdateGame();int main()
{//初始化随机数种子srand(time(NULL));HWND hWnd=initgraph(WIDTH, HEIGHT);//1.77 标准横屏 640 360//窗口标题SetWindowText(hWnd,TEXT("精品赛车"));InitGame();while (TRUE){DrawGame();UpdateGame();}return 0;
}void InitGame()
{BG1_Y = 0;BG2_Y = -HEIGHT;//加载背景图片loadimage(&BG_IMG,TEXT("assets/Background.jpg"));//加载汽车图片loadimage(&CAR_IMG[0][0], TEXT("assets/Car00.jpg"));loadimage(&CAR_IMG[0][1], TEXT("assets/Car01.jpg"));loadimage(&CAR_IMG[1][0], TEXT("assets/Car10.jpg"));loadimage(&CAR_IMG[1][1], TEXT("assets/Car11.jpg"));loadimage(&CAR_IMG[2][0], TEXT("assets/Car20.jpg"));loadimage(&CAR_IMG[2][1], TEXT("assets/Car21.jpg"));loadimage(&CAR_IMG[3][0], TEXT("assets/Car30.jpg"));loadimage(&CAR_IMG[3][1], TEXT("assets/Car31.jpg"));//初始化car1car1.x = 128+rand()%(256-40);//0~255-40car1.y = 0;car1.type = rand()%4;car1.speed = 0.3;}void DrawGame()
{//双缓冲贴图(一帧一帧显示)BeginBatchDraw();cleardevice();//输出背景图片putimage(0, BG1_Y, &BG_IMG);putimage(0, BG2_Y, &BG_IMG);//设置线条样式setlinestyle(PS_DASH,3);//画线line(128, 0, 128, HEIGHT);line(128+256, 0, 128+256, HEIGHT);//显示car1车putimage(car1.x, car1.y, &CAR_IMG[car1.type][0], SRCPAINT);putimage(car1.x, car1.y, &CAR_IMG[car1.type][1], SRCAND);//图片从缓冲区中拿出来EndBatchDraw();
}void UpdateGame()
{BG1_Y+=0.2;BG2_Y+=0.2;if (BG1_Y >= HEIGHT){BG1_Y = -HEIGHT;}if (BG2_Y >= HEIGHT){BG2_Y = -HEIGHT;}//控制车辆移动if (GetAsyncKeyState(VK_UP))//获取异部键盘状态{car1.y -= car1.speed;}if (GetAsyncKeyState(VK_DOWN)){car1.y += car1.speed;}if (GetAsyncKeyState(VK_LEFT)){if (car1.x > 128)car1.x -= car1.speed;}if (GetAsyncKeyState(VK_RIGHT)){if (car1.x < 128 + (256 - 40))car1.x += car1.speed;}}

注意:当上下左右键不好用关掉电脑管家,否则会电脑管家会想删掉写的程序

可直接点x64下.exe运行或者运行.sln

该小游戏需要安装easyx图形库,自行到官网安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 矩阵探究

public void MatrixTest1(){ ///Matrix4x4 是列矩阵&#xff0c;就是一个vector4表示一列&#xff0c;所以在c#中矩阵和Vector4只能矩阵右乘坐标。但是在shader中是矩阵左乘坐标&#xff0c;所以在shader中是行矩阵 Matrix4x4 moveMatrix1 new Matrix4x4(new Vector4(1,0,0,0)…

pip问题们

pip问题们 下载指定版本已经安装的库列表保存到文本文件中根据依赖文件批量安装库离线安装库&#xff08; .whl 文件&#xff09;pip install githttps:xxxx安装失败解决方法 下载指定版本 安装特定版本的package&#xff0c;通过使用, >, <, >, <来指定一个版本号…

hql(hive sql)中的join及踩过的坑

1 几种join方式 join join对应于inner join 内连接。 当多张表进行join的时候&#xff0c;所有表中与on条件中匹配的数据才会显示。 hql&#xff08;即hive sql&#xff09;的on子句中只支持and&#xff0c;不支持 or&#xff0c;也不支持null的对比。 left outer join 左外连…

2024 年 Vue.js 会发生什么

就像前端开发世界的其他部分一样&#xff0c;Vue 世界发展得很快。在这篇文章中&#xff0c;我想了解一下 Vue 的现状&#xff0c;并分享我对 2024 年发展趋势的预测。 Vue 2 生命周期结束 随着 Vue.js 社区的不断发展&#xff0c;2024 年标志着 Vue 2 生命周期的结束&#x…

logstack 日志技术栈-04-opensource 开源工具 SigNoz+Graylog

3. SigNoz SigNoz 是一个日志收集和分析工具&#xff0c;可以收集和管理来自各种来源的日志、指标、跟踪和异常。 它为使用 OpenTelemetry 检测应用程序提供本机支持&#xff0c;以防止供应商锁定&#xff0c;将收集到的数据存储在 ClickHouse 中&#xff0c;然后在用户友好的…

【实战】SpringBoot自定义 starter及使用

文章目录 前言技术积累SpringBoot starter简介starter的开发步骤 实战演示自定义starter的使用写在最后 前言 各位大佬在使用springboot或者springcloud的时候都会根据需求引入各种starter&#xff0c;比如gateway、feign、web、test等等的插件。当然&#xff0c;在实际的业务…

大模型 RAG 优化 收集一

痛点1&#xff1a;文档切分粒度不好把控&#xff0c;既担心噪声太多又担心语义信息丢失 问题1&#xff1a;如何让LLM简要、准确回答细粒度知识&#xff1f; 问题2&#xff1a;如何让LLM回答出全面的粗粒度&#xff08;跨段落&#xff09;知识&#xff1f; 分析&#xff1a;文…

灵活扩展:深入理解MyBatis插件机制

第1章&#xff1a;MyBatis插件的重要性 大家好&#xff0c;我是小黑&#xff0c;咱们今天要聊的是MyBatis插件&#xff0c;MyBatis&#xff0c;大家都不陌生&#xff0c;它是一个ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;让咱们在操作数据库时能更加优雅。但今…

web漏洞总结大全(基础)

前言 本文章是和cike_y师傅一起写的&#xff0c;cike_y博客&#xff1a;https://blog.csdn.net/weixin_53912233?typeblog 也欢迎大家对本文章进行补充和指正&#xff0c;共同维护这个项目&#xff0c;本文的github项目地址&#xff1a; https://github.com/baimao-box/Sum…

Haxe-UnrealEngine5

Haxe-UnrealEngine5 结论 UE C header > External/**.hx.hx > .h/.cpp&#xff0c;和 UE C 一起编译使用 hxcpp 来调试 .hx good&#xff1a; 理论上不仅限反射代码走 UE C&#xff0c;无需维护 backend&#xff0c;比如 Lua Binding理论上接近 UE C 的性能 bad&…

六、Netty核心模块组件

目录 6.1 BootStrap&#xff0c;ServerBootStrap6.2 Future&#xff0c;ChannelFuture6.3 Channel6.4 Selector6.5 ChannelHandler 以及其实现类6.6 Pipeline 和 ChannelPipeline6.7 ChannelHandlerContext6.8 ChannelOption6.9 EventLoopGroup和其实现类 NioEventLoopGroup6.1…

【leetcode题解C++】454.四数相加II and 383.赎金信 and 15.三数之和 and 18.四数之和

454. 四数相加II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff…

激光无人机打击系统——光束控制和指向系统

激光无人机&#xff08;UAV&#xff09;打击系统中的光束控制和指向系统通常包括以下几个关键组件和技术&#xff1a; 激光发射器&#xff1a;这是系统的核心&#xff0c;负责生成高能量的激光束。常用的激光类型包括固体激光器、化学激光器、光纤激光器等&#xff0c;选择取决…

PHP反序列化漏洞-POP链构造

POP链构造 POP链(Property-Oriented Programming)是一种常用于构造特定调用链的方法,用于从现有运行环境中寻找一系列代码或指令调用。它的目的是构成一组连续的调用链,最终达到攻击者恶意利用的目的。POP链实质上是通过控制对象的可控属性来控制程序的执行流程,从而利用…

微软Microsoft推出针对学生的AI练习英语口语工具”阅读教练“:Reading Coach

阅读教练官网链接&#xff1a;https://coach.microsoft.com AI工具专区&#xff1a;AI工具-喜好儿aigc 学生可以通过选择角色和设定&#xff0c;利用AI生成独特的故事&#xff0c;从而激发阅读兴趣并提高阅读流畅度。语音转文本AI能够实时分析学生的阅读流利性&#xff0c;检测…

Golang 搭建 WebSocket 应用(八) - 完整代码

本文应该是本系列文章最后一篇了&#xff0c;前面留下的一些坑可能后面会再补充一下&#xff0c;但不在本系列文章中了。 整体架构 再来回顾一下我们的整体架构&#xff1a; 在我们的 demo 中&#xff0c;包含了以下几种角色&#xff1a; 客户端&#xff1a;一般是浏览器&am…

LeetCode第239题 - 滑动窗口最大值

题目 解答 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {if (nums null) {return null;}LinkedList<Integer> window new LinkedList<>();List<Integer> arr new ArrayList<>(k);int right 0;while (right < nums.len…

图论:最短路(dijkstra算法、bellman算法、spfa算法、floyd算法)详细版

终于是学完了&#xff0c;这个最短路我学了好几天&#xff0c;当然也学了别的算法啦&#xff0c;也是非常的累啊。 话不多说下面看看最短路问题吧。 最短路问题是有向图&#xff0c;要求的是图中一个点到起点的距离&#xff0c;其中我们要输入点和点之间的距离&#xff0c;来求…

day01.基础知识

目录 一.函数与语句 1.1进入C 1.1.1main( )头函数 1.1.2 注释 1.1.3头文件 1.1.4预处理 1.1.5命名空间 1.1.6输入与输出 1.1.7格式化 1.2语句 1.2.1声明语句与变量 1.2.2赋值语句 1.3函数 1.3.1使用有返回值的函数 一.函数与语句 1.1进入C 1.1.1main( )头函数 …

利用wireshark lua扩展能力增加自定义解析器[注释解读版]

前言 Wireshark提供了lua扩展能力&#xff0c;可以定制一些Listner和Dissector&#xff0c;用于一些自定义的使用场景&#xff0c;例如: lua插件适应场景Listener报文统计、内容抽取等Dissector协议树解析&#xff0c;在wireshark中立等可看 已在以前的文档中积累了对于List…