html5游戏开发-零基础开发RPG游戏-开源讲座(三)-卷轴&对话实现

前两篇,RPG的开发已经实现了添加地图和添加游戏人物,本篇来实现地图的卷轴滚动和人物对话的实现,效果如下



想要了解前两篇内容,请电击下面的链接

html5游戏开发-零基础开发RPG游戏-开源讲座(一)

http://blog.csdn.net/lufy_legend/article/details/7063316


html5游戏开发-零基础开发RPG游戏-开源讲座(二)-跑起来吧英雄

http://blog.csdn.net/lufy_legend/article/details/7076064




地图的滚动

关于地图的滚动原理,可以参照下图

按照上图说明,实现地图滚动,只需要先把即将出现的地图(中黄色部分)画上,然后滚动地图,待地图滚动完毕之后,将屏幕之外的部分(图中绿色部分)移除

首先要添加一个变量来控制地图是否滚动

//地图滚动
var mapmove = false;
然后,在人物移动的时候,判断地图是否需要滚动
/**
 * 地图是否滚动
 **/
Character.prototype.checkMap = function (dir){
	var self = this;
	mapmove = false;
	//如果不是英雄,则地图不需要滚动
	if(!self.isHero)return;
	
	switch (dir){
		case UP:
			if(self.y + charaLayer.y> STEP)break;
			if(mapLayer.y >= 0)break;
			addMap(0,-1);
			mapmove = true;
			break;
		case LEFT:
			if(self.x + charaLayer.x > STEP)break;
			if(mapLayer.x >= 0)break;
			addMap(-1,0);
			mapmove = true;
			break;
		case RIGHT:
			if(self.x < 480 - 2*STEP)break;
			if(480 - mapLayer.x >= map[0].length*STEP)break;
			addMap(1,0);
			mapmove = true;
			break;
		case DOWN:
			if(self.y < 288 - 2*STEP)break;
			if(288 - mapLayer.y >= map.length*STEP)break;
			addMap(0,1);
			mapmove = true;
			break;
	}
};
在移动过程中,判断地图是否处于滚动状态,如果地图处于滚动,则滚动地图,否则移动人物
/**
 * 开始移动 
 **/
Character.prototype.onmove = function (){
	var self = this;
	//设定一个移动步长中的移动次数
	var ml_cnt = 4;
	//计算一次移动的长度
	var ml = STEP/ml_cnt;
	//根据移动方向,开始移动
	switch (self.direction){
		case UP:
			if(mapmove){
				mapLayer.y += ml;
				charaLayer.y += ml;
			}
			self.y -= ml;
			break;
		case LEFT:
			if(mapmove){
				mapLayer.x += ml;
				charaLayer.x += ml;
			}
			self.x -= ml;
			break;
		case RIGHT:
			if(mapmove){
				mapLayer.x -= ml;
				charaLayer.x -= ml;
			}
			self.x += ml;
			break;
		case DOWN:
			if(mapmove){
				mapLayer.y -= ml;
				charaLayer.y -= ml;
			}
			self.y += ml;
			break;
	}
	self.moveIndex++;
	//当移动次数等于设定的次数,开始判断是否继续移动
	if(self.moveIndex >= ml_cnt){
		//一个地图步长移动完成后,如果地图处于滚动状态,则移除多余地图块
		if(mapmove)delMap();
		self.moveIndex = 0;
		//如果已经松开移动键,或者前方为障碍物,则停止移动,否则继续移动
		if(!isKeyDown || !self.checkRoad()){
			self.move = false;
			return;
		}else if(self.direction != self.direction_next){
			self.direction = self.direction_next;
			self.anime.setAction(self.direction);
		}
		//地图是否滚动
		self.checkMap(self.direction);
	}
};
最后,将地图的数组和地形扩大为大于屏幕大小

//地图图片数组
var map = [
[18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,18,18],
[18,18,18,17,17,17,17,17,17,17,17,17,55,55,17,17,18],
[18,18,17,17,17,17,18,18,17,17,17,17,55,55,17,17,18],
[18,17,17,17,18,18,18,18,18,17,17,55,55,17,17,17,18],
[18,17,17,18,22,23,23,23,24,18,17,55,55,17,17,17,18],
[18,17,17,18,25,28,26,79,27,18,55,55,17,17,17,17,18],
[18,17,17,17,17,10,11,12,18,18,55,55,17,17,17,17,18],
[18,18,17,17,10,16,16,16,11,55,55,17,17,17,17,17,18],
[18,18,17,17,77,16,16,16,16,21,21,17,17,17,17,17,18],
[18,18,17,17,77,16,16,16,16,55,55,17,17,17,17,17,18],
[18,18,18,18,18,18,18,18,18,55,55,18,18,18,18,18,18]
];
//地图地形数组
var mapdata = [
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1],
[1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1],
[1,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1],
[1,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1],
[1,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,1],
[1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1],
[1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
];

为了实现地图滚动,修改添加地图的方法,根据参数来实现添加上面图片的黄色地图部分

//添加地图
function addMap(cx,cy){
	var i,j,index,indexX,indexY;
	var bitmapdata,bitmap;
	var mapX = mapLayer.x / STEP;
	var mapY = mapLayer.y / STEP;
	var mx = cx<0?-1:0,my = cy<0?-1:0;
	if(imageArray == null){
		//地图图片数据
		bitmapdata = new LBitmapData(imglist["map"]);
		//将地图图片拆分,得到拆分后的各个小图片的坐标数组
		imageArray = LGlobal.divideCoordinate(bitmapdata.image.width,bitmapdata.image.height,10,10);
	}
	mapLayer.removeAllChild();
	//在地图层上,画出15*10的小图片
	for(i=my;i<9 +Math.abs(cy) && i-mapY < map.length;i++){
		for(j=mx;j<15 +Math.abs(cx)&& j-mapX < map[0].length;j++){
			//从地图数组中得到相应位置的图片坐标
			index = map[i-mapY][j-mapX];
			//小图片的竖坐标
			indexY = Math.floor(index /10);
			//小图片的横坐标
			indexX = index - indexY*10;
			//得到小图片
			bitmapdata = new LBitmapData(imglist["map"],indexX*32,indexY*32,32,32);
			bitmap = new LBitmap(bitmapdata);
			//设置小图片的显示位置
			bitmap.x = j*STEP - mapLayer.x;
			bitmap.y = i*STEP - mapLayer.y;
			//将小图片显示到地图层
			mapLayer.addChild(bitmap);
		}
	}
}
//移除多余地图块
function delMap(){
	var bitmap,i;
	for(i=0;i<mapLayer.childList.length;i++){
		bitmap = mapLayer.childList[i];
		if(bitmap.x + mapLayer.x < 0 || bitmap.x + mapLayer.x >= 480 || 
				bitmap.y + mapLayer.y < 0 || bitmap.y + mapLayer.y >= 288){
			mapLayer.removeChild(bitmap);
			i--;
		}
	}
}

看一下效果如下



人物的对话

对话的实现,在点击控制按钮的方形按钮时添加,所以,先在鼠标抬起的时候,判断是否点击了方形按钮

function onup(event){
	isKeyDown = false;
	if(event.offsetX >= ctrlLayer.x + 280 && event.offsetX <= ctrlLayer.x+330){
		if(event.offsetY >= ctrlLayer.y+40 && event.offsetY <= ctrlLayer.y+100){
			//对话
			addTalk();
		}
	}
}


在完善addTalk()方法的时候,首先准备好对话的内容

var talkScriptList = {
	"talk1":new Array(
		{img:"m",name:"鸣人",msg:"我是木叶村的鸣人,你是谁?"},
		{img:"n",name:"黑衣忍者甲",msg:"你就是鸣人?九尾还在你身体里吗?"}
		),
	"talk2":new Array(
		{img:"n",name:"黑衣忍者乙",msg:"鸣人,听说忍者大战就要开始了。"},
		{img:"m",name:"鸣人",msg:"真的吗?一定要想想办法啊。"}
		)
};
talk1,talk2中talk后面的数字,代表人物的编号,其中每个对话单位的img为人物的头像,name为人物的名称,msg为对话的内容
添加对话时的做法是,当点击方形按钮后,判断小鸣人前方是否有人,如果有人,则将这个人物的编号取出来,再从上面的数组中获取相应的对话内容,然后,将相应的内容显示到游戏屏幕上,具体实现代码如下

//对话内容
var talkScript;
var talkScriptList = {
	"talk1":new Array(
		{img:"m",name:"鸣人",msg:"我是木叶村的鸣人,你是谁?"},
		{img:"n",name:"黑衣忍者甲",msg:"你就是鸣人?九尾还在你身体里吗?"}
		),
	"talk2":new Array(
		{img:"n",name:"黑衣忍者乙",msg:"鸣人,听说忍者大战就要开始了。"},
		{img:"m",name:"鸣人",msg:"真的吗?一定要想想办法啊。"}
		)
};
//对话序号
var talkIndex = 0;
//对话中
var talking = false;

/**
 * 添加对话
 * */
function addTalk(){
	//如果对话内容为空,则开始判断是否可以对话
	if(talkScript == null){
		var key,tx = player.x,ty = player.y;
		switch (player.direction){
		case UP:
			ty -= STEP;
			break;
		case LEFT:
			tx -= STEP;
			break;
		case RIGHT:
			tx += STEP;
			break;
		case DOWN:
			ty += STEP;
			break;
		}
		for(key in charaLayer.childList){
			//判断前面又没有npc,有则开始对话
			if(charaLayer.childList[key].x == tx && charaLayer.childList[key].y == ty){
				if(talkScriptList["talk"+charaLayer.childList[key].index]){
					talkScript = talkScriptList["talk"+charaLayer.childList[key].index];
					talkIndex = 0;
				}
			}
		}
		//如果前方没有npc,则返回
		if(talkScript == null)return;
	}
	//将对话层清空
	talkLayer.removeAllChild();
	//当对话开始,且按照顺序进行对话
	if(talkIndex < talkScript.length){
		//得到对话内容
		var talkObject = talkScript[talkIndex];
		//对话背景
		bitmapdata = new LBitmapData(imglist["talk"]);
		bitmap = new LBitmap(bitmapdata);
		bitmap.width = 330;
		bitmap.height = 70;
		bitmap.x = 100;
		bitmap.y = 20;
		bitmap.alpha = 0.7;
		talkLayer.addChild(bitmap);
		//对话头像
		bitmapdata = new LBitmapData(imglist[talkObject.img]);
		bitmap = new LBitmap(bitmapdata);
		bitmap.x = 0;
		bitmap.y = 0;
		talkLayer.addChild(bitmap);
		//对话人物名称
		var name = new LTextField();
		name.x = 110;
		name.y = 30;
		name.size = "14";
		name.color = "#FFFFFF";
		name.text = "[" + talkObject.name + "]";
		talkLayer.addChild(name);
		//对话内容
		var msg = new LTextField();
		msg.x = 110;
		msg.y = 55;
		msg.color = "#FFFFFF";
		msg.text = talkObject.msg;
		talkLayer.addChild(msg);
		//对话内容逐字显示
		msg.wind();
		talkLayer.x = 20;
		talkLayer.y = 50;
		talkIndex++;
	}else{
		//对话结束
		talkScript = null;
	}
}
效果看下图


游戏演示地址

http://lufylegend.com/demo/rpg/index.html

lufylegend.js引擎包内包含这个demo,请直接下载lufylegend.js引擎,查看引擎包内源码

lufylegend.js引擎下载地址

http://lufylegend.com/lufylegend


下一篇,将研究地图的切换,和如何将游戏脚本化,请大家多支持


html5游戏开发-零基础开发RPG游戏-开源讲座(一)

http://blog.csdn.net/lufy_legend/article/details/7063316


html5游戏开发-零基础开发RPG游戏-开源讲座(二)-跑起来吧英雄

http://blog.csdn.net/lufy_legend/article/details/7076064


lufylegend.js引擎的官方网址

http://lufylegend.com/lufylegend



已标记关键词 清除标记
相关推荐
&lt;p&gt; &lt;strong&gt;&lt;span style=&quot;font-size:24px;&quot;&gt;课程简介:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt; &lt;span style=&quot;font-size:18px;&quot;&gt;历经半个多月的时间,&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Debug&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;亲自撸的 &ldquo;企业员工角色权限管理平台&rdquo; 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。&lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:18px;&quot;&gt;其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Debug&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程!&lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:24px;&quot;&gt;&lt;strong&gt;核心技术栈列表&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;font-size:24px;&quot;&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:18px;&quot;&gt;值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Spring Boot&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Spring MVC&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Mybatis&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Mybatis-Plus&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Shiro(&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;身份认证与资源授权跟会话等等&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Spring AOP&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、防止&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;XSS&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;攻击、防止&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;SQL&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;注入攻击、过滤器&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Filter&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、验证码&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Kaptcha&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、热部署插件&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Devtools&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;POI&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Vue&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;LayUI&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;ElementUI&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;JQuery&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;HTML&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Bootstrap&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Freemarker&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;、一键打包部署运行工具&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Wagon&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;等等,如下图所示:&lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070402564453.png&quot; alt=&quot;&quot; /&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:24px;&quot;&gt;课程内容与收益&lt;/span&gt;&lt;span style=&quot;font-size:24px;&quot;&gt;:&lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070403452052.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:18px;&quot;&gt;总的来说,&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;本课程是一门具有很强实践性质的&ldquo;项目实战&rdquo;课程,即&ldquo;&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;企业应用员工角色权限管理平台&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;&rdquo;,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Shiro&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;的资源授权实现员工&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;角色&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;操作权限、员工&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;角色&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图:&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070404285736.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:18px;&quot;&gt;&lt;strong&gt;以下为项目整体的运行效果截图:&lt;/strong&gt;&lt;/span&gt; &lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070404538119.png&quot; alt=&quot;&quot; /&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070405002904.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070405078322.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070405172638.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070405289855.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070405404509.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070405523495.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p style=&quot;text-align:left;&quot;&gt; &lt;span style=&quot;font-size:18px;&quot;&gt;值得一提的是,在本课程中,&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;Debug&lt;/span&gt;&lt;span style=&quot;font-size:18px;&quot;&gt;也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:&lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;/p&gt; &lt;img src=&quot;https://img-bss.csdn.net/201908070406328884.png&quot; alt=&quot;&quot; /&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt;
&lt;p&gt; &lt;strong&gt;&lt;span style=&quot;background-color:#FFFFFF;color:#E53333;font-size:24px;&quot;&gt;本页面购买不发书!!!仅为视频课购买!!!&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; &lt;strong&gt;&lt;span style=&quot;color:#E53333;font-size:18px;&quot;&gt;请务必到&lt;/span&gt;&lt;/strong&gt;&lt;a href=&quot;https://edu.csdn.net/bundled/detail/49?utm_source=banner&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color:#E53333;font-size:18px;&quot;&gt;https://edu.csdn.net/bundled/detail/49&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style=&quot;color:#E53333;font-size:18px;&quot;&gt;下单购买课+书。&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:14px;&quot;&gt;本页面,仅为观看视频页面,如需一并购买图书,请&lt;/span&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;务必到&lt;/span&gt;&lt;a href=&quot;https://edu.csdn.net/bundled/detail/49?utm_source=banner&quot;&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;https://edu.csdn.net/bundled/detail/49&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;下单购买课程+图书!!!&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; &lt;/p&gt; &lt;p&gt; &lt;span style=&quot;font-size:14px;&quot;&gt;疯狂Python精讲课程覆盖《疯狂Python讲义》全书的主体内容。&lt;/span&gt; &lt;/p&gt; &lt;span style=&quot;font-size:14px;&quot;&gt;内容包括Python基本数据类型、Python列表、元组和字典、流程控制、函数式编程、面向对象编程、文件读写、异常控制、数据库编程、并发编程与网络编程、数据可视化分析、Python爬虫等。&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:14px;&quot;&gt; 全套课程从Python基础开始介绍,逐步步入当前就业热点。将会带着大家从Python基础语法开始学习,为每个知识点都提供对应的代码实操、代码练习,逐步过渡到文件IO、数据库编程、并发编程、网络编程、数据分&nbsp;析和网络爬虫等内容,本课程会从小案例起,至爬虫、数据分析案例终、以Python知识体系作为内在逻辑,以Python案例作为学习方式,最终达到&ldquo;知行合一&rdquo;。&lt;/span&gt;&lt;br /&gt;
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了易用的一键式设计,只要点击主界面上的&ldquo;检测并修复&rdquo;按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。在常规修复过程中,程序还会自动检测DirectX加速状态,在异常时给予用户相应提示。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅&ldquo;致Windows XP用户.txt&rdquo;文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V4.0版分为标准版、增强版以及在线修复版。所有版本都支持修复DirectX的功能,而增强版则额外支持修复c++的功能。在线修复版功能与标准版相同,但其所需的数据包需要在修复时自动下载。各个版本之间,主程序完全相同,只是其配套使用的数据包不同。因此,标准版和在线修复版可以通过补全扩展包的形式成为增强版。本程序自V3.5版起,自带扩展功能。只要在主界面的&ldquo;工具&rdquo;菜单下打开&ldquo;选项&rdquo;对话框,找到&ldquo;扩展&rdquo;标签,点击其中的&ldquo;开始扩展&rdquo;按钮即可。扩展过程需要Internet连接,扩展成功后新的数据包可自动生效。扩展用时根据网络速度不同而不同,最快仅需数秒,最慢需要数分钟,烦请耐心等待。如扩展失败,可点击&ldquo;扩展&rdquo;界面左上角小锁图标切换为加密连接,即可很大程度上避免因防火墙或其他原因导致的连接失败。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有更新系统c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。除常规修复外,新版程序还支持C++强力修复功能。当常规修复无效时,可以到本程序的选项界面内开启强力修复功能,可大幅提高修复成功率。请注意,请仅在常规修复无效时再使用此功能。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的&ldquo;Settings.ini&rdquo;文件(如果没有可以自己创建),将其中的&ldquo;FormStyle&rdquo;一项的值改为&ldquo;Simple&rdquo;并保存即可。 新版程序支持命令行运行模式。在命令行中调用本程序,可以在路径后直接添加命令进行相应的设置。常见的命令有7类,分别是设置语言的命令、设置窗口模式的命令,设置安全级别的命令、开启强力修复的命令、设置c++修复模式的命令、控制Direct加速的命令、显示版权信息的命令。具体命令名称可以通过&ldquo;/help&rdquo;或&ldquo;/?&rdquo;进行查询。 程序有高级筛选功能,开启该功能后用户可以自主选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立&ldquo;Filter.dat&rdquo;文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的&ldquo;选项&rdquo;对话框中包含了7项高级功能。点击&quot;常规&rdquo;选项卡可以调整程序的基本运行情况,包括日志记录、安全级别控制、调试模式开启等。只有开启调试模式后才能在C
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页