IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言小小小项目 仿天天酷跑——Day1 -> 正文阅读

[C++知识库]C语言小小小项目 仿天天酷跑——Day1

在b站刷到了rock老师的视频,于是就跟着做了,攒点经验,学点知识

视频链接:C语言手写天天酷跑_哔哩哔哩_bilibili

今天迟了,就把代码贴上来

明天开始认真写

先上一下到目前为止的效果(只是让窗口动起来了

C语言小小小项目 仿天天酷跑——Day1

然后是代码

/*
	天天酷跑开发日志(BV1Ca411k7wU)
	2022.3.1
		1.创建项目
		2.导入素材
		实际的开发流程
		对于初学者来说,从游戏用户界面入手

		游戏基于“EasyX”图形库开发
	2022.3.2
		1.创建游戏窗口
		2.设计游戏背景
			1)三重背景不同速度移动
			2)循环滚动的实现
		3.实现游戏背景
			1)加载背景资源
			2)渲染(坐标:图片左上角相对窗口左上角的位置)
			遇到问题:背景图片的png格式遇到黑色
			解决方式:面向复制黏贴编程,面向百度编程,引入头文件与源文件tools
*/

/*
	构思:
	加入难度系统,不同难度速度与障碍物刷新率不同
	尝试加入二段跳
*/

#include<stdio.h>
//EasyX图形化界面
#include<graphics.h>
//自己写的,引入的头文件,要用""
#include"tools.h"

//游戏窗口大小
#define WIN_WIDTH 1012
#define WIN_HEIGHT 396

//用数组储存三张背景图
//全局变量,大型项目少定义全局变量
IMAGE imgBgs[3];
//背景图片x坐标
int bgX[3];
//背景速度
int bgSpeed[3] = { 1,2,4 };

//初始化
void init() {
	//创建游戏界面
	initgraph(WIN_WIDTH, WIN_HEIGHT);
	
	//加载背景资源
	char name[64];
	for (int i = 0; i < 3; i++) {
		//"res/bg001.png""res/bg002.png""res/bg003.png"
		//sprintf 主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串
		//运行C4996错误,将项目属性 -> C/C++ -> sdl检查调为否
		sprintf(name, "res/bg%03d.png",i+1);
		//使用多字节字符集
		loadimage(&imgBgs[i],name);
		//位置
		bgX[i] = 0;
	}
}

//渲染游戏背景
void updateBg() {
	putimagePNG2(bgX[0], 0, &imgBgs[0]);
	putimagePNG2(bgX[1], 119, &imgBgs[1]);
	putimagePNG2(bgX[2], 0, &imgBgs[2]);
}

//背景滚动
void bgRoll() {
	for (int i = 0; i < 3; i++) {
		bgX[i] -= bgSpeed[i];
		if (bgX[i] < -WIN_WIDTH) {
			bgX[i] += WIN_WIDTH;
		}
	}
}

int main() {
	init();
	while (1) {
		//解决屏幕闪烁问题
		//这个函数用于开始批量绘图。
		//执行后,任何绘图操作都将暂时不输出到绘图窗口上。
		BeginBatchDraw();
		updateBg();
		//直到执行 FlushBatchDraw 或 EndBatchDraw 才将之前的绘图输出。
		EndBatchDraw();
		bgRoll();
		Sleep(1);
	}

	system("pause");
	return 0;
}

tools头文件可以去看Rock老师的视频,加他那个群

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:19:49  更:2022-03-04 15:20:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:42:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码