uni app 打肉肉(打飞机)小游戏

news2025/1/11 16:56:20

都给老婆和孩子写了 合十  钓鱼了,给自己写个打飞机吧。没找飞机怪兽的图片。就用馒头和肉肉代替了。有问题不要私信我。自己改哈

<template>
	<view class="page_main">


		<view class="contentone">
			<canvas class="canvas_cla" style="z-index: 1;" canvas-id="myCanvas" id="myCanvas"></canvas>

		</view>
		<view class="contentone">
			<canvas class="canvas_cla" style="z-index: 2;" canvas-id="myCanvasb" id="myCanvasb"></canvas>

		</view>

		<view class="contenttwo">
			<canvas class="canvas_cla" style="z-index: 9;" canvas-id="myCanvasa" id="myCanvasa" @touchstart="touchstart"
				@touchend="touchend" @touchmove="touchmove"></canvas>

		</view>


		<view class="zhezhao" v-if="isshowstart">
			<view class="dialog_back">
				<cover-view class="add_button_ef" style=" color: #07a5a6;" @tap.stop.prevent="start_zhezhao">
					开始
				</cover-view>
				<cover-view class="add_button_ef" style="color: #07a5a6;" @tap.stop.prevent="back_zhezhao">
					返回
				</cover-view>
			</view>
		</view>







	</view>
</template>

<script>
	export default {
		data() {
			return {
				isshowstart: true,
				canvaswidth: 0,
				canvasheight: 0,

				ctx: null, // canvas 上下文  
				ctxtwo: null, // canvas 上下文  
				ctxthree: null, // canvas 上下文  

				background: {
					images: ['../static/fangzi1.png', '../static/fangzi1.png'], // 图片资源数组

					speed: 2, // 滚动速度  
					position: 0, // 图片当前位置 
				},

				zhujue: {
					x: 0,
					y: 0,
					image: '../static/addpeople.png',
					size: 50,
					speed: 2,
					ismoveing: false,
					value: 200,
					zdvalue: 20,
					fstime: 120,
					zdsize: 10,
					lives: 5,
					wdtime: 0,
					isdie: false,



				},
				zhujpz: false,
				zjzdlist: [],
				gslist: [],
				bosslist: [],

				guankadefen: 0,
				defen: 0,
				guanka: 1,
				isboos: false,



				ytimerX: null, // requestAnimationFrame 的 ID 
				zjfszdtimer: '',

				jspztimer: '',


			};
		},
		onLoad() {


		},

		onReady() {


			this.init()
		},

		/**
		 * 生命周期函数--监听页面卸载
		 */
		onUnload: function() {
			this.game_stop()
		},
		methods: {
			start_zhezhao: function() {
				this.isshowstart = false

				this.game_start(); // 开始滚动  

			},
			back_zhezhao: function() {
				uni.navigateBack({
					delta: 1
				})
			},
			init: function() {

				this.ctx = uni.createCanvasContext('myCanvas');
				this.ctxtwo = uni.createCanvasContext('myCanvasa');
				this.ctxthree = uni.createCanvasContext('myCanvasb');
				let canvas = uni.createSelectorQuery().select('#myCanvas');
				canvas.boundingClientRect(rect => {
					this.canvaswidth = rect.width
					this.canvasheight = rect.height
					this.zhujue.x = (rect.width - this.zhujue.size) / 2
					this.zhujue.y = rect.height - this.zhujue.size - 50
					this.drawzj()
				}).exec();
				this.drawbackg();


			},

			drawzj: function() {

				if (this.zhujue.x < 0) {
					this.zhujue.x = 0
				}
				if (this.zhujue.x > this.canvaswidth - this.zhujue.size) {
					this.zhujue.x = this.canvaswidth - this.zhujue.size
				}

				if (this.zhujue.y < 0) {
					this.zhujue.y = 0
				}
				if (this.zhujue.y > this.canvasheight - this.zhujue.size) {
					this.zhujue.y = this.canvasheight - this.zhujue.size
				}
				if (this.zhujpz) {
					this.ctxtwo.drawImage('../static/mantou.png', this.zhujue.x, this.zhujue.y - 30, this.zhujue.size -
						20, this.zhujue.size - 20); // 绘制图片  
					this.zjdrawbaopo()
				}
				this.ctxtwo.drawImage(this.zhujue.image, this.zhujue.x, this.zhujue.y, this.zhujue.size, this.zhujue
					.size); // 绘制图片  

				this.ctxtwo.draw();

			},
			drawzjzd: function() {



				for (var i = 0; i < this.zjzdlist.length; i++) {

					if (this.zjzdlist[i].isuse) {
						this.zjzdlist.splice(i, 1)
						i--
					} else {
						this.ctxthree.drawImage(this.zjzdlist[i].image, this.zjzdlist[i].x, this.zjzdlist[i].y,
							this.zhujue.zdsize, this.zhujue.zdsize); // 绘制图片  
					}


				}
				if (this.isboos) {
					this.drawboos()
				} else {
					this.drawgs()
				}

				this.ctxthree.draw();
			},

			zjfszd: function() {
				this.zjfszdtimer = setInterval(() => {
					var zd = {
						x: this.zhujue.x + this.zhujue.size / 2 - this.zhujue.zdsize / 2,
						y: this.zhujue.y,
						image: '../static/mantou.png',
						speed: 3,
						isuse: false
					}
					this.zjzdlist.push(zd)
				}, this.zhujue.fstime);
			},

			scgs: function() {


				let gs = {
					x: this.getRandomInt(50, this.canvaswidth - 50),
					y: -45,
					size: 20 + this.guanka * 3,
					image: "../static/rou.png",
					value: 100 * this.guanka * 0.8,
					speed: 0.5 * this.guanka * 0.8,
					isfszd: this.getRandomInt(0, 1),
					isdj: this.getRandomInt(0, 2), // 怪兽携带道具 0 不带 1 子弹威力+0.1   2 发射速度-0.5
					zdspeed: 5 * this.guanka * 0.5,
					isover: false
				}
				this.gslist.push(gs)

			},
			drawgs: function() {
				for (var i = 0; i < this.gslist.length; i++) {
					if (this.gslist[i].isover) {
						this.drawbaopo(this.gslist[i])
						this.gslist.splice(i, 1)
						i--
					} else {
						this.gslist[i].y += this.gslist[i].speed
						this.ctxthree.drawImage(this.gslist[i].image, this.gslist[i].x, this.gslist[i].y, this
							.gslist[i].size, this.gslist[i].size); // 绘制图片  	
					}

				}

			},
			drawboos: function() {
				var that = this
				// 计算物体A需要移动的距离和方向
				const dx = that.bosslist[0].x + that.bosslist[0].size / 2 - that.bosslist[0].mbx; // 水平移动距离  
				const dy = that.bosslist[0].y + that.bosslist[0].size / 2 - that.bosslist[0]
					.mby // 垂直移动距离为0,因为我们只想在水平方向上移动  


				if (dx > 10) {
					that.bosslist[0].x = that.bosslist[0].x - that.bosslist[0].speed
				} else if (dx < -10) {
					that.bosslist[0].x = that.bosslist[0].x + that.bosslist[0].speed
				}
				if (dy > 10) {
					that.bosslist[0].y = that.bosslist[0].y - that.bosslist[0].speed
				} else if (dy < -10) {
					that.bosslist[0].y = that.bosslist[0].y + that.bosslist[0].speed
				}


				that.ctxthree.drawImage(that.bosslist[0].image, that.bosslist[0].x, that.bosslist[0].y,
					that.bosslist[0].size, that.bosslist[0].size); // 绘制图片

				if (dy <= 10 && dy >= -10 && dx <= 10 && dx >= -10) {

					if (!that.bosslist[0].isover) {
						that.bosslist[0].mbx = that.getRandomInt(50, that.canvaswidth - 50)
						that.bosslist[0].mby = that.getRandomInt(50, that.canvasheight - 50)
						that.bosslist[0].speed = that.getRandomInt(1, 5)

					}

				}



			},
			drawbaopo: function(bean) {
				var that = this
				let counter = 0; // 计数器,记录执行次数  
				const intervalId = setInterval(function() {
					// 这里是你的操作代码  
					that.ctxthree.drawImage("../static/mantou.png", bean.x, bean.y, bean.size, bean
						.size); // 绘制图片  

					counter++; // 每次执行,计数器加1  

					// 检查是否达到了执行三次的条件  
					if (counter >= 10) {
						clearInterval(intervalId); // 清除定时器  

					}
				}, 100); // 每秒执行一次(1000毫秒)


			},
			zjdrawbaopo: function() {
				var that = this
				let counter = 0; // 计数器,记录执行次数  
				const intervalId = setInterval(function() {
					// 这里是你的操作代码  

					counter++; // 每次执行,计数器加1  

					// 检查是否达到了执行三次的条件  
					if (counter >= 10) {
						that.zhujpz = false
						clearInterval(intervalId); // 清除定时器  

					}
				}, 100); // 每秒执行一次(1000毫秒)


			},


			/**
			 * 触摸屏幕开始 记录开始坐标
			 */
			touchstart: function(e) {

				let startx = e.touches[0].x
				let starty = e.touches[0].y

				if (startx > this.zhujue.x && startx < this.zhujue.x + this.zhujue.size && starty > this.zhujue.y &&
					starty < this.zhujue.y + this.zhujue.size) {

					this.zhujue.x = startx - this.zhujue.size / 2
					this.zhujue.y = starty - this.zhujue.size / 2
					this.zhujue.ismoveing = true

					this.drawzj()
				}



			},
			/**
			 * 触摸屏幕结束 计算
			 */
			touchend: function(e) {
				let x = e.changedTouches[0].x
				let y = e.changedTouches[0].y
				this.zhujue.ismoveing = false
			},
			/**
			 * 触摸屏幕移动  画框
			 */
			touchmove: function(e) {
				let x = e.touches[0].x
				let y = e.touches[0].y
				if (this.zhujue.ismoveing) {
					this.zhujue.x = x - this.zhujue.size / 2
					this.zhujue.y = y - this.zhujue.size / 2


					this.drawzj()
				}

			},

			drawbackg: function() {




				this.background.position += this.background.speed; // 更新图片位置
				if (this.background.position > this.canvasheight) { // 如果图片完全移出视口  
					this.background.position = 0; // 将图片重新放置在视口的另一端  
				}
				this.ctx.clearRect(0, 0, this.canvaswidth, this.canvaswidth); // 清除画布  
				this.ctx.drawImage(this.background.images[0], 0, this.background.position, this.canvaswidth, this
					.canvasheight); // 绘制图片  
				this.ctx.drawImage(this.background.images[1], 0, this.background.position - this.canvasheight, this
					.canvaswidth, this
					.canvasheight); // 绘制图片 

				this.ctx.setFontSize(14); // 设置字体大小  
				this.ctx.setFillStyle('white'); // 设置填充颜色为白色  
				this.ctx.setTextAlign('center'); // 设置文本水平对齐方式为居中  
				this.ctx.setTextBaseline('middle'); // 设置文本垂直对齐方式为中间  
				this.ctx.fillText('剩余' + this.zhujue.lives, 40, 30); // 在圆心位置绘制文本“按钮” 

				this.ctx.setFontSize(14); // 设置字体大小  
				this.ctx.setFillStyle('white'); // 设置填充颜色为白色  
				this.ctx.setTextAlign('center'); // 设置文本水平对齐方式为居中  
				this.ctx.setTextBaseline('middle'); // 设置文本垂直对齐方式为中间  
				this.ctx.fillText('总得分' + this.defen, 120, 30); // 在圆心位置绘制文本“按钮” 

				this.ctx.setFontSize(14); // 设置字体大小
				this.ctx.setFillStyle('white'); // 设置填充颜色为白色  
				this.ctx.setTextAlign('center'); // 设置文本水平对齐方式为居中  
				this.ctx.setTextBaseline('middle'); // 设置文本垂直对齐方式为中间  
				this.ctx.fillText('关卡' + this.guanka, 200, 30); // 在圆心位置绘制文本“按钮” 

				this.ctx.setFontSize(14); // 设置字体大小
				this.ctx.setFillStyle('white'); // 设置填充颜色为白色  
				this.ctx.setTextAlign('center'); // 设置文本水平对齐方式为居中  
				this.ctx.setTextBaseline('middle'); // 设置文本垂直对齐方式为中间  
				this.ctx.fillText('关卡得分' + this.guankadefen, 280, 30); // 在圆心位置绘制文本“按钮” 

				this.ctx.draw();
			},



			game_start: function() {

				this.zjfszd()

				this.jisuanpz()

				this.ytimerX = setInterval(() => {

					for (var i = 0; i < this.zjzdlist.length; i++) {
						this.zjzdlist[i].y -= this.zjzdlist[i].speed
						if (this.zjzdlist[i].y < 0) {
							this.zjzdlist.splice(i, 1)
						}
					}
					if (this.isboos) {
						if (this.bosslist.length == 0) {
							this.bosslist = [{
								x: this.canvaswidth / 2,
								y: 0,
								size: 30 + this.guanka * 8,
								image: "../static/rou.png",
								value: 1000 * this.guanka * 0.8,
								speed: this.getRandomInt(1, 5),
								isfszd: this.getRandomInt(0, 1),
								zdspeed: 5,
								isover: false,
								mbx: this.getRandomInt(50, this.canvaswidth - 50),
								mby: this.getRandomInt(50, this.canvasheight - 50),

							}]
						}

					} else {
						if (this.gslist.length == 0) {
							this.scgs()
						}
						for (var i = 0; i < this.gslist.length; i++) {
							this.gslist[i].y += this.gslist[i].speed
							if (this.gslist.length < 12 && this.gslist[this.gslist.length - 1].y > 80) {
								this.scgs()
							}
							if (this.gslist[i].y > this.canvasheight) {

								this.gslist[i].y = -45
							}
						}
					}



					this.drawbackg();
					this.drawzjzd()

				}, 16); // 每100毫秒更新一次位置 
			},


			jisuanpz: function() {



				this.jspztimer = setInterval(() => {


					if (this.zhujue.wdtime > 0) {
						this.zhujue.wdtime -= 1
					}
					this.isCollidingbyzjzdAndGS()
					this.isCollidingbyzjAndGS()

				}, 16); // 每100毫秒更新一次位置 
			},


			game_stop: function() {

				clearInterval(this.ytimerX); // 停止动画  
				clearInterval(this.zjfszdtimer);

				clearInterval(this.jspztimer);

				this.isshowstart = true

			},

			/**
			 * 生成min 到 max 的随机数
			 */
			getRandomInt: function(min, max) {
				min = Math.ceil(min);
				max = Math.floor(max);
				return Math.floor(Math.random() * (max - min + 1)) + min;
			},
			isCollidingbyzjzdAndGS: function() {
				var arr
				if (this.isboos) {
					arr = this.bosslist

				} else {
					arr = this.gslist
				}


				for (var j = 0; j < arr.length; j++) {
					let gsbean = arr[j]
					if (!gsbean.isover && gsbean.y > 0) {
						for (var i = 0; i < this.zjzdlist.length; i++) {
							let zjzdbean = this.zjzdlist[i]
							if (!zjzdbean.isuse) {
								let zdx = zjzdbean.x + this.zhujue.zdsize / 2
								let zdy = zjzdbean.y + this.zhujue.zdsize / 2
								if (zdx > gsbean.x && zdx < gsbean.x + gsbean.size && zdy > gsbean.y && zdy < gsbean
									.y + gsbean.size) {
									this.zjzdlist[i].isuse = true
									if (this.isboos) {
										this.defen += 10
										this.guankadefen += 10
										gsbean.value = gsbean.value - this.zhujue.zdvalue
										if (gsbean.value <= 0) {
											//消灭怪兽
											console.log(JSON.stringify(gsbean))
											if (gsbean.isdj == 1) {
												this.zhujue.zdvalue += 0.1
											}
											if (gsbean.isdj == 2) {
												this.zhujue.fstime -= 0.5
											}
											this.bosslist[j].isover = true
											this.defen += 100
											this.bosslist = []
											this.isboos = false
											this.guanka += 1
											this.guankadefen = 0
											this.zhujue.zdvalue += 5
											this.zhujue.fstime -= 1
											if (this.guanka % 2 == 0) {
												this.zhujue.lives += 1
											}
										}

									} else {
										//产生碰撞

										this.defen += 5
										this.guankadefen += 5
										gsbean.value = gsbean.value - this.zhujue.zdvalue
										if (gsbean.value <= 0) {
											//消灭怪兽
											console.log(JSON.stringify(gsbean))
											if (gsbean.isdj == 1) {
												this.zhujue.zdvalue += 0.1
											}
											if (gsbean.isdj == 2) {
												this.zhujue.fstime -= 0.5
											}
											this.gslist[j].isover = true
											this.defen += 5
											this.guankadefen += 5
										}

									}
									if (this.guankadefen >= 1000 * this.guanka * 1) {
										this.isboos = true
										this.gslist = []
									}
								}
							}
						}
					}
				}
			},
			isCollidingbyzjAndGS: function() {



				let zjx = this.zhujue.x + this.zhujue.size / 2
				let zjy = this.zhujue.y + this.zhujue.size / 2

				var arr
				if (this.isboos) {
					arr = this.bosslist
				} else {
					arr = this.gslist
				}


				for (var j = 0; j < arr.length; j++) {
					let gsbean = arr[j]

					if (!gsbean.isover) {
						let gsx = gsbean.x
						let gsy = gsbean.y
						let gssize = gsbean.size

						if (zjx < gsx + gssize && zjx > gsx && zjy < gsy + gssize && zjy > gsy) {
							console.log("11111")
							console.log("主角发生碰撞", this.zhujue.wdtime)
							if (this.zhujue.wdtime <= 0) {
								if (this.isboos) {

									this.zhujue.value -= gsbean.value

								} else {
									this.gslist[j].isover = true
									this.zhujue.value -= gsbean.value
									this.zhujpz = true
								}
							}



							if (this.zhujue.value <= 0) {
								console.log("主角死了。结束")
								this.zhujue.lives -= 1
								this.zhujue.wdtime = 300
								if (this.zhujue.lives < 0) {
									this.game_stop()
								} else {
									this.zhujue.value = 200
								}

							}

						}


					}

				}
			},

		}
	};
</script>

<style scoped>
	.contentone {
		width: 100vw;
		height: 100vh;
		position: absolute;

		display: flex;
		justify-content: center;

	}

	.contenttwo {
		width: 100vw;
		height: 100vh;
		position: absolute;

		display: flex;
		justify-content: center;

	}

	.canvas_cla {
		width: 100vw;
		height: 100vh;
	}


	.top_linear {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		display: flex;
		flex-direction: row;
		height: 80rpx;

	}

	.top_mean_left {
		margin-left: 32rpx;

	}

	.top_mean_right {
		margin-right: 32rpx;

	}

	.top_mean_tv {
		color: #07a5a6;
	}


	.page_main {
		position: fixed;
		overflow: hidden;
		width: 100vw;
		height: 100vh;
		background-color: #efefef;
	}

	.zhezhao {
		position: fixed;
		top: 0;
		bottom: 0;
		width: 100vw;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: rgba(0, 0, 0, 0.4);
		z-index: 9999;
	}

	.dialog_back {
		position: fixed;
		z-index: 12;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		background: rgba(0, 0, 0, 0.3);
		justify-content: center;
		align-items: center;
		display: flex;
	}

	.add_button_ef {
		margin-left: 32rpx;
		margin-right: 32rpx;
		padding-top: 30rpx;
		padding-bottom: 30rpx;
		width: 300rpx;

		border: solid 2rpx #efefef;
		color: #999;
		background: #efefef;
		font-size: 32rpx;
		border-radius: 10rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		vertical-align: center;


	}
</style>

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

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

相关文章

吴恩达机器学习笔记 二十一 迁移学习 预训练

迁移学习&#xff08;transfer learning&#xff09;&#xff1a;直接把神经网络拿来&#xff0c;前面的参数可以直接用&#xff0c;把最后一层改了。 两种训练参数的方式&#xff1a; 1.只训练输出层的参数 2.训练所有参数 当只有一个小数据集的时候&#xff0c;第一种方法…

uniapp小程序:使用uni.getLocation通过腾讯地图获取相关地址信息详情(超详细)

先看运行结果&#xff1a; 流程&#xff1a; 1、在edge网页搜索腾讯位置服务 搜索后点击这里 已经有账号的就进行登录&#xff0c;没有账号的进行注册即可 点击控制台&#xff1a; 进去后点击成员管理---->我的应用---->创建应用 输入相应的参数应用名称&#xff08;随便…

Docker:常用命令

文章目录 docker作用常用指令 docker 作用 Docker 是一种容器化平台&#xff0c;可以让开发者打包应用程序及其依赖项&#xff0c;并以容器的形式进行发布、交付和运行。 Docker 的一些主要作用&#xff1a; 应用程序隔离&#xff1a;Docker 使用容器技术&#xff0c;将应用程…

NCP1271D65R2G中文资料规格书PDF数据手册引脚图参数图片价格功能特性描述

产品描述&#xff1a; NCP1271 是成功的 7 引脚电流模式 NCP12XX 系列的新一代引脚-引脚兼容新产品。该控制器通过使用可调节 Soft Skip 模式和集成的高电压启动 FET&#xff0c;实现了卓越的待机功耗。此专属 Soft Skip 还大大降低了噪音的风险。 因此可以在箝位网络中使用不…

音频提取:分享几个常用方法,简单好用

有时候我们会在视频中发现一首非常好听的歌曲&#xff0c;但是我们并不需要视频本身。 这时&#xff0c;我们可以提取视频中的音频&#xff0c;将其转化为音频文件&#xff0c;然后在任何时间、任何地点进行欣赏。 下面给大家分享几个提取视频中音频的几个方法&#xff0c;供…

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404解决方法

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404&#xff0c;或者域名后带路径参数刷新就报404 解决方法&#xff1a; 宝塔中站点配置修改&#xff1a;【配置文件】中添加下面代码&#xff0c;具体如图&#xff1a; location / {try_files $uri $uri/ /index.html…

【Go语言】Go语言中的函数

Go语言中的函数 Go语言中&#xff0c;函数主要有三种类型&#xff1a; 普通函数 匿名函数&#xff08;闭包&#xff09; 类方法 1 函数定义 Go语言函数的基本组成包括&#xff1a;关键字func、函数名、参数列表、返回值、函数体和返回语句。Go语言是强类型语言&#xff0…

【C#】数组string类型输出

示例 代码 internal class Program{static void Main(string[] args){List<int> list new List<int>() { 1,2,3,4,5,6,7,8,9,10};string output1 string.Join(",", list);Console.WriteLine(output1);string output2 string.Join("\n", lis…

深度学习指标| 置信区间、Dice、IOU、MIOU、Kappa

深度学习部分指标介绍 置信区间混淆矩阵DiceIOU和MIOUKappa 置信区间 95%CI指标 读论文的时候&#xff0c;常会看到一个“95%CI”的评价指标。 其中CI指的是统计学中的置信区间&#xff08;Confidence interval&#xff0c;CI&#xff09;。在统计学中&#xff0c;一个概率样…

【Streamlit学习笔记】实现包含多个sheet的excel文件下载

1、什么是Streamlit Streamlit是一个免费的开源框架&#xff0c;用于快速构建和共享漂亮的机器学习和数据科学Web应用程序&#xff0c;官网链接 Streamlit Streamlit API链接 API reference 实际项目中遇到的问题&#xff1a;包含多个sheet的excel文件下载&#xff0c;下面将给…

小程序路由跳转---事件通信通道EventChannel(二)

事件通信通道EventChannel实现两个页面之间的数据传输已在上篇小程序路由跳转—事件通信通道EventChannel&#xff08;一&#xff09;展开叙述&#xff0c;接下来讨论下多个页面&#xff08;三个及以上&#xff09;数据的通道如何构建。 本文重点&#xff1a;三个以上页面需将…

使用 Boot Camp 助理查明您的 Mac 需不需要 Windows 安装介质

使用 Boot Camp 助理查明您的 Mac 需不需要 Windows 安装介质 当前的 Mac 机型无需介质即可安装 Windows&#xff0c;也就是说&#xff0c;您不需要用到外置驱动器。较早的 Mac 机型需要用到 USB 驱动器或光盘驱动器。使用 Boot Camp 助理可查明您需要用到什么。 Boot Camp 助…

openGauss使用BenchmarkSQL进行性能测试(下)

上一篇我们分享了测试方法&#xff0c;本篇我们将发起测试及测试结果。 背景 本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。 BenchmarkSQL&#xff0c;一个JDBC基准测试工具&#xff0c;内嵌了TPC-C测试脚本&#xff0c;支持很多数据库&#xff0c;…

百度paddleocr GPU版部署

显卡&#xff1a;NVIDIA GeForce RTX 4070&#xff0c;Nvidia驱动程序版本&#xff1a;537.13 Nvidia驱动程序能支持的最高cuda版本&#xff1a;12.2.138 Python&#xff1a;python3.10.11。试过python3.12&#xff0c;安装paddleocr失败&#xff0c;找不到相关模块。 飞桨版本…

使用C#的winform控制数据库实例服务的运行状态

一、得到sqlserver的实例名 二、引用对应的程序集和命名空间 using System.ServiceProcess; C#操作服务要用的类 ServiceController 声明类 private ServiceController serviceController new ServiceController("MSSQLSERVER"); 三、判断服务状态 serviceCon…

centos云服务器安装cs(cobaltstrike4.0)教程

1、先安装JAVA环境 mkdir download #创建download目录 cd download #进入download目录 mkdir java1.8 #在download目录下再创建java1.8目录 cd java1.8 #进入java1.8目录 wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz #下载jdk压缩包 tar…

HarmonyOS NEXT应用开发—验证码布局

介绍 本示例介绍如何使用Text组件实现验证码场景&#xff0c;并禁用对内容的选中、复制、光标。 效果图预览 使用说明 单击组件可弹出输入法在进行验证码输入时&#xff0c;无法对中间单个数字进行更改&#xff0c;无法选中输入内容&#xff0c;无光标 实现思路 因为要禁用…

c语言实现https客户端 源码+详细注释(OpenSSL下载,visual studio编译器环境配置)

OpenSSL的下载和环境配置 请参考&#xff1a;openssl下载安装教程 步骤&#xff1a;官网下载->安装到选定目录->配置环境变量->打开命令窗口检查是否安装成功 注意&#xff1a; 打开命令窗口&#xff08;快捷键winr,在弹出窗口内输入cmd按回车&#xff09;&#xff0…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+OSD动态字符叠加,提供1套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收HLS多路视频融合叠加应用本方案的S…

用连续自然数之和来表达整数 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 一个整数可以由连续的自然数之和来表示。给定一个整数&#xff0c;计算该整数有几种连续自然数之和的表达式&#xff0c;且打印出每种表达式。 输入描述 一个目…