웹 프론트엔드 H5 튜토리얼 零基础开发RPG游戏开源讲座(四)-游戏脚本化&地图跳转

零基础开发RPG游戏开源讲座(四)-游戏脚本化&地图跳转

May 17, 2016 am 09:09 AM
admin h

了解上三篇的内容请点击:

html5[color=rgb(68, 68, 68) !important]游戏
开发-零基础开发RPG游戏-开源讲座(一)

http://www.html5cn.org/article-1737-1.html

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

http://www.html5cn.org/article-1738-1.html

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

http://www.html5cn.org/article-1740-1.html


首先,本篇文章是零基础开发RPG游戏-开源讲座系列文章的第四篇,来实现游戏的脚本化,和利用游戏脚本实现地图场景的切换。如下应该是我们先了解的。

一,什么是游戏脚本

简单说,游戏脚本就是依据一定的格式编写的可执行文件,游戏可以通过脚本中自定义的语句来执行相应的逻辑。

二,为什么要将游戏脚本化

游戏脚本,可以令我们的游戏动态化,比如当我们开发了一款rpg游戏,里面的剧情,事件以及地图等,我们如果将这些全部写进程序里,当然是可以的,但是一旦出现问题,哪怕几个错别字,我们需要先将这几个错别字改正,并且将整个程序重新编译发布一遍,这个过程是相当令人反感的,因为如果游戏的程序跟着游戏的内容不断进行修改的话,那只会使你的程序越来越复杂。但是如果我们将这些可重复的数据,都定义到游戏程序之外的文件里面,当游戏引擎开发完毕,我们的游戏通过读取这些外部文件,来执行相应的剧情和事件,那么,像上述当我们的游戏出现了问题,我们只需要改动这些外部文件就可以了,并不需要重新编译整个程序,这样便使得我们的游戏开发,变得便利简洁。

*当然,对于html5来说,不需要重新编译程序,但是对于rpg的游戏来说,脚本还是必不可少的,因为游戏的剧本不可能全都写到程序里。

三,如何来实现游戏的脚本化

好了,接下来,先来考虑以什么形式来制作游戏的脚本,我们有多种选择,可以选择xml,可以选择json,也可以选择纯自定义语法,

这次,我为了省事,选用比较方便处理的json,因为javascript可以很轻松的处理json数据。

目前游戏中实现的内容有,地图场景添加,游戏人物添加,以及人物对话的实现。那么,我在设计游戏脚本的时候,必须包含这些数据,然后才能将这三项功能用脚本来控制。

首先看下面的json
  1. var script = {
  2.         stage01:{
  3.                 map:[
  4.                     [18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,18,18],
  5.                         [18,18,18,17,17,17,17,17,17,17,17,17,55,55,17,17,18],
  6.                         [18,18,17,17,17,17,18,18,17,17,17,17,55,55,17,17,18],
  7.                         [18,17,17,17,18,18,18,18,18,17,17,55,55,17,17,17,18],
  8.                         [18,17,17,18,22,23,23,23,24,18,17,55,55,17,17,17,18],
  9.                         [18,17,17,18,25,28,26,79,27,18,55,55,17,17,17,17,18],
  10.                         [18,17,17,17,17,10,11,12,18,18,55,55,17,17,17,17,18],
  11.                         [18,18,17,17,10,16,16,16,11,55,55,17,17,17,17,17,18],
  12.                         [18,18,17,17,77,16,16,16,16,21,21,17,17,17,17,17,18],
  13.                         [18,18,17,17,77,16,16,16,16,55,55,17,17,17,17,17,18],
  14.                         [18,18,18,18,18,18,18,18,18,55,55,18,18,18,18,18,18]],
  15.                 mapdata:[
  16.                         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
  17.                         [1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1],
  18.                         [1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1],
  19.                         [1,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1],
  20.                         [1,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1],
  21.                         [1,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,1],
  22.                         [1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1],
  23.                         [1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
  24.                         [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
  25.                         [1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
  26.                         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],
  27.                 add:[
  28.                      {chara:"player",img:"mingren",x:5,y:6},
  29.                      {chara:"npc",img:"npc1",x:7,y:6},
  30.                      {chara:"npc",img:"npc1",x:3,y:3}],
  31.                 talk:{
  32.                         talk1:[
  33.                                       {img:"m",name:"鸣人",msg:"我是木叶村的鸣人,你是谁?"},
  34.                                       {img:"n",name:"黑衣忍者甲",msg:"你就是鸣人?九尾还在你身体里吗?"}
  35.                               ],
  36.                     talk2:[
  37.                                   {img:"n",name:"黑衣忍者乙",msg:"鸣人,听说忍者大战就要开始了。"},
  38.                                       {img:"m",name:"鸣人",msg:"真的吗?一定要想想办法啊。"}
  39.                               ]
  40.                 }
  41.         }


  42. };
复制代码

我将脚本定义成了变量,实际游戏制作的时候,脚本应该储存到一个外部文档当中,在这里我只是讲解一下理论,如何完善那是后话了。

可以看到,json中,包含了地图相关的map数组和mapdata数组,添加人物的相关数据,以及对话的数组。这样,我在游戏显示的时候,只需要读入json数据,然后根据这些内容来显示游戏画面就可以了,定义一个initScript函数来进行这些操作。
  1. function initScript(){
  2.         //地图位置初始化
  3.         mapLayer.x = 0;
  4.         mapLayer.y = 0;


  5.         //地图层初始化
  6.         mapLayer.removeAllChild();
  7.         //人物层初始化
  8.         charaLayer.removeAllChild();
  9.         //效果层初始化
  10.         effectLayer.removeAllChild();
  11.         //对话层初始化
  12.         talkLayer.removeAllChild();
  13.         
  14.         //地图数据获取
  15.         map = stage.map;
  16.         mapdata = stage.mapdata;
  17.         //对话数据获取
  18.         talkScriptList = stage.talk;
  19.         
  20.         //添加地图
  21.         addMap(0,0);
  22.         delMap();
  23.         //添加人物
  24.         addChara();
  25. }
复制代码

removeAllChild方法是legendForHtml5Programming引擎独有的方法,可以用来移出LScript显示层上的所有子对象,从而实现本游戏中各个显示层的初始化工作。

修改一下addChara方法,如下
  1. //添加人物
  2. function addChara(){
  3.         var charaList = stage.add;
  4.         var chara,charaObj;
  5.         for(var i=0;i ;i++){
  6.                 charaObj = charaList[i];
  7.                 if(charaObj.chara == "player"){
  8.                         //加入英雄
  9.                         bitmapdata = new LBitmapData(imglist[charaObj.img]);
  10.                         chara = new Character(true,i,bitmapdata,4,4);
  11.                         player = chara;
  12.                 }else{
  13.                         //加入npc
  14.                         bitmapdata = new LBitmapData(imglist[charaObj.img]);
  15.                         chara = new Character(false,i,bitmapdata,4,4);
  16.                 }
  17.                 chara.x = charaObj.x * 32;
  18.                 chara.y = charaObj.y * 32;
  19.                 charaLayer.addChild(chara);
  20.         }
  21. }
复制代码

即,根据json脚本中的add数组,来添加游戏中的人物。

好了,运行一下游戏,可以看到,游戏正常显示了,和之前一模一样,实现了同样的功能。

1122.jpg



四,利用游戏脚本实现地图的切换

为了让大家看到游戏脚本的便利性,现在利用脚本实现游戏中的场景切换。

将json脚本修改如下
  1. var script = {
  2.         stage01:{
  3.                 map:[
  4.                     [18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,18,18],
  5.                         [18,18,18,17,17,17,17,17,17,17,17,17,55,55,17,17,18],
  6.                         [18,18,17,17,17,17,18,18,17,17,17,17,55,55,17,17,18],
  7.                         [18,17,17,17,18,18,18,18,18,17,17,55,55,17,17,17,18],
  8.                         [18,17,17,18,22,23,23,23,24,18,17,55,55,17,17,17,18],
  9.                         [18,17,17,18,25,28,26,79,27,18,55,55,17,17,17,17,18],
  10.                         [18,17,17,17,17,10,11,12,18,18,55,55,17,17,17,17,18],
  11.                         [18,18,17,17,10,16,16,16,11,55,55,17,17,17,17,17,18],
  12.                         [18,18,17,17,77,16,16,16,16,21,21,17,17,17,17,17,18],
  13.                         [18,18,17,17,77,16,16,16,16,55,55,17,17,17,17,17,18],
  14.                         [18,18,18,18,18,18,18,18,18,55,55,18,18,18,18,18,18]],
  15.                 mapdata:[
  16.                         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
  17.                         [1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1],
  18.                         [1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1],
  19.                         [1,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1],
  20.                         [1,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1],
  21.                         [1,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,1],
  22.                         [1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1],
  23.                         [1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
  24.                         [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
  25.                         [1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
  26.                         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],
  27.                 add:[
  28.                      {chara:"player",img:"mingren",x:5,y:6},
  29.                      {chara:"npc",img:"npc1",x:7,y:6},
  30.                      {chara:"npc",img:"npc1",x:3,y:3}],
  31.                 talk:{
  32.                         talk1:[
  33.                                       {img:"m",name:"鸣人",msg:"我是木叶村的鸣人,你是谁?"},
  34.                                       {img:"n",name:"黑衣忍者甲",msg:"你就是鸣人?九尾还在你身体里吗?"}
  35.                               ],
  36.                     talk2:[
  37.                                   {img:"n",name:"黑衣忍者乙",msg:"鸣人,听说忍者大战就要开始了。"},
  38.                                       {img:"m",name:"鸣人",msg:"真的吗?一定要想想办法啊。"}
  39.                               ]
  40.                 },
  41.                 jump:[
  42.                       {at:{x:6,y:5},to:"stage02"}
  43.                 ]
  44.         },
  45.         stage02:{
  46.                 map:[
  47.                     [0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
  48.                     [0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
  49.                     [0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
  50.                     [0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
  51.                         [0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
  52.                         [0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
  53.                         [0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
  54.                         [0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
  55.                         [0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]],
  56.                 mapdata:[
  57.                         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
  58.                         [1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
  59.                         [1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
  60.                         [1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
  61.                         [1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
  62.                         [1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
  63.                         [1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
  64.                         [1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
  65.                         [1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]],
  66.                 add:[
  67.                      {chara:"player",img:"mingren",x:7,y:8},
  68.                      {chara:"npc",img:"npc1",x:8,y:3},
  69.                      {chara:"npc",img:"npc1",x:10,y:3}],
  70.                 talk:{
  71.                       talk1:[
  72.                                     {img:"m",name:"鸣人",msg:"你们在干什么啊?"},
  73.                                             {img:"n",name:"黑衣忍者甲",msg:"我们在喝茶。"}
  74.                               ],
  75.                       talk2:[
  76.                                         {img:"n",name:"黑衣忍者乙",msg:"我们在喝茶,你不要打扰我们。"},
  77.                                             {img:"m",name:"鸣人",msg:"....."}
  78.                               ]
  79.                 },
  80.                 jump:[
  81.                       {at:{x:7,y:8},to:"stage01"}
  82.                 ]
  83.         }


  84. };
复制代码

可以看到,我添加了stage02,即第二个场景,并且在脚本里引入了jump节点来控制游戏场景的切换,其中jump中的at表示游戏主人公移动到达的坐标,to表示到达这个坐标后跳转到的画面名称。这里的jump之所以是数组,是因为一个场景也可以跳转到其他多个场景。

上面的脚本实现了stage01和stage02两个场景的互相跳转。

为了读取这个jump,以及实现跳转,我们需要在游戏主人公移动一个步长之后,判断一下是否应该跳转了,修改Character类的onmove方法
  1. /**
  2. * 开始移动
  3. **/
  4. Character.prototype.onmove = function (){
  5.         var self = this;
  6.         //设定一个移动步长中的移动次数
  7.         var ml_cnt = 4;
  8.         //计算一次移动的长度
  9.         var ml = STEP/ml_cnt;
  10.         //根据移动方向,开始移动
  11.         switch (self.direction){
  12.                 case UP:
  13.                         if(mapmove){
  14.                                 mapLayer.y += ml;
  15.                                 charaLayer.y += ml;
  16.                         }
  17.                         self.y -= ml;
  18.                         break;
  19.                 case LEFT:
  20.                         if(mapmove){
  21.                                 mapLayer.x += ml;
  22.                                 charaLayer.x += ml;
  23.                         }
  24.                         self.x -= ml;
  25.                         break;
  26.                 case RIGHT:
  27.                         if(mapmove){
  28.                                 mapLayer.x -= ml;
  29.                                 charaLayer.x -= ml;
  30.                         }
  31.                         self.x += ml;
  32.                         break;
  33.                 case DOWN:
  34.                         if(mapmove){
  35.                                 mapLayer.y -= ml;
  36.                                 charaLayer.y -= ml;
  37.                         }
  38.                         self.y += ml;
  39.                         break;
  40.         }
  41.         self.moveIndex++;
  42.         //当移动次数等于设定的次数,开始判断是否继续移动
  43.         if(self.moveIndex >= ml_cnt){
  44.                 //一个地图步长移动完成后,判断地图是否跳转
  45.                 if(self.isHero && self.moveIndex > 0)checkJump();
  46.                 self.moveIndex = 0;
  47.                 //一个地图步长移动完成后,如果地图处于滚动状态,则移除多余地图块
  48.                 if(mapmove)delMap();
  49.                 //如果已经松开移动键,或者前方为障碍物,则停止移动,否则继续移动
  50.                 if(!isKeyDown || !self.checkRoad()){
  51.                         self.move = false;
  52.                         return;
  53.                 }else if(self.direction != self.direction_next){
  54.                         self.direction = self.direction_next;
  55.                         self.anime.setAction(self.direction);
  56.                 }
  57.                 //地图是否滚动
  58.                 self.checkMap(self.direction);
  59.         }
  60. };
复制代码
我添加了一行
  1. if(self.isHero && self.moveIndex > 0)checkJump();
复制代码

表示,移动完后如果该人物是游戏主人公则进行跳转判断

所以,我们需要添加一个checkJump方法
  1. //游戏场景跳转测试
  2. function checkJump(){
  3.         var jump = stage.jump;
  4.         var jumpstage;
  5.         for(var i=0;i ;i++){
  6.                 jumpstage = jump[0];
  7.                 if(player.x == jumpstage.at.x * 32 && player.y == jumpstage.at.y * 32){
  8.                         //获取该场景脚本数据
  9.                         stage = script[jumpstage.to];
  10.                         //开始跳转
  11.                         initScript(stage);
  12.                         return;
  13.                 }
  14.         }
  15. }
复制代码

好了,一切都很简单吧,运行游戏看看效果吧,小鸣人走到地图的小房门的部分是,场景发生跳转

12121.jpg




游戏测试URL:

http://fsanguo.comoj.com/html5/rpg5/index.html

本次更新源代码下载:

http://legend-demo.googlecode.com/files/rpg5.zip



本文转自个人博客:http://blog.csdn.net/lufy_legend
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

uniapp이 미니 프로그램과 H5 간의 빠른 전환을 달성하는 방법 uniapp이 미니 프로그램과 H5 간의 빠른 전환을 달성하는 방법 Oct 20, 2023 pm 02:12 PM

유니앱이 미니 프로그램과 H5 사이를 빠르게 전환하려면 구체적인 코드 예제가 필요합니다. 최근 모바일 인터넷의 발전과 스마트폰의 대중화로 인해 미니 프로그램과 H5는 필수 애플리케이션 형태가 되었습니다. 크로스 플랫폼 개발 프레임워크인 uniapp은 코드 세트를 기반으로 작은 프로그램과 H5 간의 변환을 신속하게 실현하여 개발 효율성을 크게 향상시킬 수 있습니다. 이 기사에서는 uniapp이 미니 프로그램과 H5 간의 신속한 변환을 달성하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 유니앱 유니아 소개

win1121h2 또는 22h2 중 어느 버전이 더 안정적입니까? win1121h2 또는 22h2 중 어느 버전이 더 안정적입니까? Jan 04, 2024 am 08:53 AM

win1121h2와 22h2의 두 버전을 비교해 보면 후자의 22h2가 더 안정적이고, 이전 21h2에 비해 기능이 더 많이 개선된 점을 살펴보겠습니다. win1121h2와 22h2 중 어느 것이 더 안정적입니까? 답변: win1121h2와 22h2를 비교하면 22h2가 더 안정적입니다. 22h2에는 많은 기능이 추가되었고, 21h2의 문제점도 22h2에서는 개선되었습니다. 22h2 업데이트 기능: 시작 메뉴의 응용 프로그램 폴더. 시작 메뉴에서 조정 가능한 고정 영역. 작업 표시줄에 끌어다 놓습니다. Focus Assist는 알림 센터와 통합되어 있습니다. 새로운 "스포트라이트" 배경화면 기능. 새로운

springboot 관리자 모니터링의 역할과 사용법은 무엇입니까 springboot 관리자 모니터링의 역할과 사용법은 무엇입니까 May 25, 2023 pm 06:52 PM

적용 가능한 시나리오: 1. 프로젝트 규모가 크지 않습니다. 2. 사용자 수가 그리 많지 않으며 동시성 요구 사항이 강력하지 않습니다. 3. 전담 운영 및 유지 관리 인력이 없습니다. 정규 프로젝트 또는 책임 분배가 명확하지 않은 단위. 종종 시스템은 요구 사항부터 설계, 개발, 테스트, 최종 출시, 운영 및 유지 관리까지 진행됩니다. 개발팀이 작업의 80%를 완료하는 경우가 많습니다. 따라서 개발자는 시스템 기능을 구현하는 것 외에도 고객에게 상담을 제공하고 질문에 답변하며 생산 문제를 해결해야 합니다. 애플리케이션이 시작된 후에는 모니터링 조치가 없다고 상상해 보십시오. 대시보드 없이 자동차를 운전하는 것과 마찬가지로 도로에서 이렇게 안전하다고 느끼는 사람은 아무도 없습니다. 단순성과 효율성의 균형을 맞추는 방법은 생각해 볼 가치가 있는 문제입니다. 1. 스프링브

win101909와 21h2 중 어느 것이 더 좋나요? win101909와 21h2 중 어느 것이 더 좋나요? Dec 26, 2023 pm 02:01 PM

Windows 101909는 현재 가장 안정적이고 신뢰할 수 있는 버전 중 하나로 간주됩니다. 그러나 안타깝게도 이 버전에 대한 서비스 지원이 최근 종료되었습니다. 21H2는 비교적 안정적인 버전입니다. 사실 실제 상황에서 보면 둘 다 매우 좋은 선택입니다. win101909와 21h2 중 어느 것이 더 낫습니까? 답변: 1909가 더 안정적이고 21h2가 더 안전합니다. 현재 환경에서 1909는 여전히 일반적으로 가장 안정적이고 신뢰할 수 있는 버전 중 하나로 간주됩니다. 그러나 Win101909 버전은 2021년 5월 11일부로 공식적으로 서비스가 중단되었습니다. WindowsServer21h2는 대다수의 사용자에게 보다 전문적인 IT 기능 지원을 제공하기 위해 최선을 다하고 있습니다. 1. 많은 사용자들의 실제 테스트를 거쳐,

win1123h2 또는 22h2 중 어느 것이 더 나은 선택입니까? win1123h2 또는 22h2 중 어느 것이 더 나은 선택입니까? Dec 28, 2023 pm 03:09 PM

Windows 11 시스템의 23h2 버전과 22h2 버전은 각각 2023년과 2022년에 출시될 예정입니다. 일반적으로 시스템 업데이트가 점점 좋아지고 있습니다. 편집자 역시 22h2 버전보다 23h2 버전이 더 좋다고 생각합니다. win1123h2와 22h2 중 어느 것이 더 낫습니까? 답변: win1123h2가 더 낫습니다. 보도에 따르면 win1123h2는 22h2에서 다음 버전까지의 누적 버전 업데이트이며, 모두 동일한 플랫폼이라고 합니다. 이는 두 버전 간에 호환성 문제가 없다는 것을 의미하며, 제때에 업데이트하는 것이 좋습니다. win1123h2 버전은 작업 표시줄 창 응용 프로그램의 병합 안 함 모드와 같은 많은 실용적인 기능을 제공합니다. 더있다

이 파일을 변경하려면 관리자가 제공한 권한이 필요합니다. 이 문제를 해결하는 방법은 무엇입니까? 이 파일을 변경하려면 관리자가 제공한 권한이 필요합니다. 이 문제를 해결하는 방법은 무엇입니까? Jul 26, 2023 am 10:56 AM

이 파일을 변경하려면 관리자가 제공한 권한이 필요합니다. 해결 방법: 1. 로그인 인터페이스에서 관리자 계정을 선택하고 비밀번호를 입력한 후 파일을 원활하게 수정할 수 있습니다. 2. 파일을 마우스 오른쪽 버튼으로 클릭하고 선택할 수 있습니다. "관리자 권한으로" "다음 계정으로 실행" 방법; 3. 파일 권한을 수정하고, 파일을 마우스 오른쪽 버튼으로 클릭하고, "속성"을 선택하고, "보안" 탭을 클릭한 다음, "편집" 버튼을 클릭하고, 사용자 이름을 선택한 다음, "모든 권한" 옵션 4. 명령 프롬프트를 사용하여 문제를 해결합니다. 5. UA 권한을 설정합니다.

Flask-Admin을 사용하여 백그라운드 관리 인터페이스를 구현하는 방법 Flask-Admin을 사용하여 백그라운드 관리 인터페이스를 구현하는 방법 Aug 03, 2023 pm 11:30 PM

Flask-Admin을 사용하여 백엔드 관리 인터페이스를 구현하는 방법 배경 소개: 웹 사이트와 애플리케이션이 개발되면서 백엔드 관리 인터페이스가 점점 더 중요해지고 있습니다. 개발 과정에서 데이터, 사용자 및 기타 중요한 정보를 관리하기 위해 편리하고 빠른 백엔드 관리 인터페이스가 필요한 경우가 많습니다. Flask-Admin은 백그라운드 관리 인터페이스를 빠르게 구현하는 데 도움이 되는 강력하고 사용하기 쉬운 Flask 확장입니다. Flask-Admin은 Flask 및 SQLAlchemy를 기반으로 하는 오픈 소스 프로젝트입니다.

Win11 23H2 업데이트가 되지 않는 문제 해결 Win11 23H2 업데이트가 되지 않는 문제 해결 Jan 14, 2024 pm 09:24 PM

최근 Win11 23H2 버전을 모두 업데이트하고 싶어하지만 아직 업데이트 푸시 메시지를 받지 못한 사용자가 일부 있습니다. 백그라운드 업데이트 진행 중 프로세스가 멈춘 것일 수 있으며 잠시 후에는 괜찮을 것입니다. Win11 업데이트가 23H2를 가져오지 못한 경우 수행할 작업 방법 1: 인내심을 갖고 기다리십시오. 사용자가 컴퓨터의 업데이트 상태를 확인하고 중단된 것을 발견하면 잠시 기다리면 시스템이 계속 업데이트됩니다. 방법 2: 업데이트된 캐시를 삭제합니다. 사용자가 이전에 시스템을 업데이트하고 더 자세한 캐시를 삭제하지 않은 경우 23h2의 일반 업데이트에 영향을 미치게 됩니다. 수동으로 삭제할 수 있습니다. 방법 3: 이미지 설치 사용 Microsoft 공식 웹사이트로 이동하여 win1123h2 이미지 파일을 다운로드한 후 파일을 업데이트하는 것이 좋습니다.

See all articles