C++实现满天星效果静态图片

 用编程C++实现随机生成不同效果的星星,实现看星星的效果图片,借助EasyX图形化工具!!!

在vs2019中新建文件夹,并且注意在项目目录下保存两张小人的抬头观看背景的图片

将下面代码粘贴进去实现效果: 

#define _CRT_SECURE_NO_WARNINGS
#include<graphics.h>
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<string.h>

#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
#define MAX_STAR 100
#define MAX_STEP 5
#define MAX_RADIUS 3
#define BOTTOM_MARGIN 100


using namespace std;

//星星状态
enum STATUS {
	STOP = 0,
	UP,
	DOWN,
	LEFT,
	RIGHT,
	RANDOM,
	ALL_STATUS
};

struct STAR {
	int x;//星星的x坐标
	int y;//星星的y坐标
	enum STATUS stat;//星星的状态
	unsigned radius;//星星的半径
	int step;//每次跳跃的间隔
	int color;//颜色
}star[MAX_STAR];

void initStar(int i) {
	int rgb = 0;

	if (i<0 || i>MAX_STAR)
	{
		fprintf(stderr, "超出星星范围", i);//日志
	}
	//rand()得到随机数的范围0-32767 
	star[i].x = rand() % SCREEN_WIDTH;
	star[i].y = rand() % (SCREEN_HEIGHT- BOTTOM_MARGIN);
	//
	star[i].radius = 1 + rand() % MAX_RADIUS;//半径控制在1-3
	star[i].step = 1+rand() % MAX_STEP ;//0-5阶跃跳
	rgb = 255 * star[i].step / (MAX_STEP + 1);
	star[i].color = RGB(rgb, rgb, rgb);

}

int main()
{
	//搭台唱戏
	initgraph(SCREEN_WIDTH, SCREEN_HEIGHT);//设置终端窗口大小

	//循环初始化每一个星星
	for (int i = 0; i < MAX_STAR; i++)
	{
		initStar(i);
	}
	//输出每一个星星
	for (int i = 0; i < MAX_STAR; i++) {
		setfillcolor(star[i].color);
		solidcircle(star[i].x, star[i].y, star[i].radius);

	}

	IMAGE bg_img[2];//设置图片变量
	loadimage(&bg_img[0], _T("boy.bmp"), 30, 30, false);//将背景图片赋值到图片变量
	putimage(SCREEN_WIDTH*4/10-30, SCREEN_HEIGHT-30, &bg_img[0]);//将背景图片刷到终端窗口

	loadimage(&bg_img[1], _T("girl.bmp"), 30,30, false);//将背景图片赋值到图片变量
	putimage(SCREEN_WIDTH * 6 / 10, SCREEN_HEIGHT - 30, &bg_img[1]);//将背景图片刷到终端窗口

	setfont(24, 0, _T("楷体"));
	setcolor(LIGHTGRAY);
	outtextxy(400, 215, _T("看星星,Hi,LiNing......"));

	system("pause");
	closegraph();
	return 0;
}

其中函数:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端canvas项目实战——简历制作网站(三)——右侧属性栏(线条宽度样式)

目录 前言一、效果展示二、实现步骤1. 实现线条宽度&#xff08;strokeWidth&#xff09;的属性模块2. 实线线条样式&#xff08;strokeDashArray&#xff09;的属性模块3. 意料之外的“联动” 三、Show u the code后记 前言 上一篇博文中&#xff0c;我们初步实现了右侧属性栏…

IDEA 创建maven项目没有src

环境&#xff1a; IntelliJ IDEA 2022.3.3 (Ultimate Edition) JDK 17 Windows 11 10.0 Maven 3.9.5 创建maven项目的时候没有src目录 试过网上说的重新配置maven库&#xff0c;增加vm-options&#xff0c;并没有什么用。直到我看见了 正常创建就好了。

QoS服务质量

内存QoS——服务质量&#xff08;Quality of Service&#xff09; 作用&#xff1a;如果不开启QoS&#xff0c;会通过内存复用技术&#xff0c;动态调整虚拟机的资源&#xff0c;如果说有一台跑核心业务&#xff0c;然后通过QoS技术&#xff0c;通过限额&#xff0c;预留&…

思考,是世界上最有趣的事

经常有读者问我&#xff1a; 你总说我们要多思考&#xff0c;可是每天的生活就那样&#xff0c;究竟要怎么思考&#xff0c;思考什么呢&#xff1f; 跟大家分享我上周日的一天&#xff1a; 读完一篇推理小说&#xff0c;写了一篇书评发给作者&#xff0c;并跟作者聊了聊写作的…

vivado 配置I/O端口

配置I/O端口 AMD设备支持可配置的SelectIO™ 接口驱动程序和接收器&#xff0c;支持各种标准接口。这些标准接口包括输出的可编程控制强度和转换速率&#xff0c;使用DCI的片上终端&#xff0c;以及内部VREF的生成。你可以配置一个或多个I/O端口以定义I/O标准、驱动器强度、转…

LaTeX基础使用【系列四】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;LaTeX基础使用 &#x1f984;1 LaTeX的多行数学公式&#x1f420;1.1 导入包&#x1f420;1.2 gather环境&#xff1a;多行公式&#x1f420;1.3 gather\* &#xff1a;无编号公式&#x1…

【Javaweb程序】【C00156】基于SSM餐饮管理系统(论文+PPT)

基于SSM餐饮管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的餐饮管理系统 本系统分为前台用户模块和后台管理员模块 其中前台用户模块的权限&#xff1a;当游客打开系统的网址后&#xff0c;首先看到的就是首页…

Day01_Java概述(JDK的下载安装,初学者常见错误)

文章目录 JavaSE_Day01 Java概述学习目标1.1 JavaSE课程体系介绍1.2 计算机语言概述1、计算机语言是什么2、计算机语言发展3、计算机语言分类4、计算机语言排行榜 1.3 Java语言概述1、Java语言发展历史2、Java是最好的语言吗&#xff1f;3、Java语言的特点4、Java生态圈5、Java…

【MySQL】学习如何通过DML更新数据库的数据

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-QIqURn9fNFMjLD9l {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

【贪吃蛇:C语言实现】

文章目录 前言1.了解Win32API相关知识1.1什么是Win32API1.2设置控制台的大小、名称1.3控制台上的光标1.4 GetStdHandle&#xff08;获得控制台信息&#xff09;1.5 SetConsoleCursorPosition&#xff08;设置光标位置&#xff09;1.6 GetConsoleCursorInfo&#xff08;获得光标…

mysql 存储过程学习

存储过程介绍 1.1 SQL指令执行过程 从SQL执行的流程中我们分析存在的问题: 1.如果我们需要重复多次执行相同的SQL&#xff0c;SQL执行都需要通过连接传递到MySQL&#xff0c;并且需要经过编译和执行的步骤; 2.如果我们需要执行多个SQL指令&#xff0c;并且第二个SQL指令需要…

Linux文本三剑客---awk

awk&#xff08;是一种处理文本文件的应用程序&#xff0c;它依次处理文件的每一行&#xff0c;并读取里面的每一个字段。&#xff09; awk 包含几个特殊的内建变量&#xff08;可直接用&#xff09;如下所示&#xff1a; 1、获取根分区剩余大小 #可以使用df -h命令来查看所有…

AlexNet,ZFNet详解

1 AlexNet 网络结构 对于AlexNet网络来说&#xff0c;因为当时资源环境受限&#xff0c;他从第一步卷积开始就把一个图像分到两个GPU上训练&#xff0c;然后中间进行组合最后进行融合成全连接成1000个置信度 1 得到一张3x224x224的图像&#xff0c;然后进行11x11的卷积&…

1|Java代码是怎么跑起来的?

相信每个Java程序员都想过一个问题&#xff1a; “我写的Java代码时怎样在机器上跑起来的&#xff1f;“&#x1f914; 这篇文章就尝试把这个问题说一下✍ Java代码执行流程 二话不说先把图丢出来&#xff1a; 大概经历了这么几个步骤&#xff1a; 一位高级程序猿&#xff0…

竞赛练一练 第31期:GESP和电子学会相关题目练习

Day20&#xff1a;CIE一级2020.09_小鸡与鸭妈拥抱 1. 准备工作 &#xff08;1&#xff09;背景&#xff1a;Farm; &#xff08;2&#xff09;角色&#xff1a;Chick、Duck。 2. 功能实现 &#xff08;1&#xff09;角色的初始位置、方向和造型如图所示。 &#xff08;2&am…

DualSPHysics v5.0源码编译教程,新手入门

目录 一、前期准备1. 安装C编译器2. 安装CUDA 二、下载源码三、编译四、报错解决五、验证 一、前期准备 DualSPHysics是可以编译运行在CPU和GPU上的&#xff0c;所以需要安装C编译器&#xff1a;例如gcc&#xff0c;和CUDA编译器&#xff1a;nvcc。 如果电脑上不支持CUDA&…

【笔试常见编程题01】删除公共字符串、组队竞赛、倒置字符串、排序子序列

1. 删除公共字符串 输入两个字符串&#xff0c;从第一字符串中删除第二个字符串中所有的字符。 例如&#xff0c;输入”They are students.”和”aeiou”&#xff0c;则删除之后的第一个字符串变成”Thy r stdnts.” 输入描述 每个测试输入包含2个字符串 输出描述 输出删除后的…

翻译: GPT-4 Vision静态图表转换为动态数据可视化 升级Streamlit 三

GPT-4 Vision 系列: 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式二 1. 将任何静态图表转换为动态数据可视化 ChatGPT Vision 不仅可以将涂鸦变成功能齐全的 Streamlit 应用程序&#xff0c;还…

Python算法题集_无重复字符的最长子串

本文为Python算法题集之一的代码示例 题目3&#xff1a;无重复字符的最长子串 说明&#xff1a;给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "a…

LeNet跟LeNet5详解

1 LeNet结构 主要是为了手写数字识别 具体结构讲解&#xff1a;从图中例子可得 1 先传入一个灰度图像尺寸为1x28x28&#xff0c;通道数为1&#xff0c;尺寸为28x28的灰度图像 2 第一层5x5卷积&#xff0c;经过公式 输入图像尺寸-卷积核尺寸2padding/步长1&#xff0c;&#…