- 探索智能边缘计算:Game-Theoretic-Deep-Reinforcement-Learning
瞿旺晟
探索智能边缘计算:Game-Theoretic-Deep-Reinforcement-LearningGame-Theoretic-Deep-Reinforcement-LearningCodeofPaper"JointTaskOffloadingandResourceOptimizationinNOMA-basedVehicularEdgeComputing:AGame-TheoreticDRL
- unity 保存实例到新预制,保存实例到原预制
米酒老花生
unityc#Prefab
保存预制,很简单的功能,但是走了弯路,记录一下吧privatevoidSavePrefab(Transformroot){ PrefabInstanceStatusstatus=PrefabUtility.GetPrefabInstanceStatus(Root.gameObject); if(status==PrefabInstanceStatus.NotAPrefab) { //如
- 用Python制作动态音频可视化:音乐律动动效
屿小夏
#Python动效python音视频pygame
文章目录引言准备工作前置条件代码实现与解析导入必要的库初始化Pygame加载音频文件实现音频可视化主循环完整代码引言音频可视化是一种将音频信号转换为视觉效果的技术,常用于音乐播放器和现场演出中。在这篇博客中,我们将使用Python创建一个动态的音频可视化效果。通过利用Pygame和NumPy库,我们可以实现一个具有视觉吸引力的音乐律动动效。准备工作前置条件在开始之前,你需要确保你的系统已经安装了P
- - = =ヘ( ´Д`)ノ停电了!停电了!突然间停电!!崩溃……
陌蔷薇
今天你们快乐么?反正我是真的“快乐…”我快乐的要gameover了!!正当我在快落的作为一名码字农的时候……写道兴头上,当场就想来一段兔子舞来表达我兴奋的心……然鹅,眼前突然一黑~我得心里咯噔一下…完辽~我可能突然间瞎了,摸摸搜搜找到我的手机一碰,哦!我没瞎,原来是停电了,淡定不过3秒钟,请跟着我默数~1~2~3~啊啊啊啊啊啊…!!!!!!停电了!!!没事个锤子啊!!!!我电脑没保存!!!啊啊啊啊
- Unity:CritterAI与Recast Navigation寻路
真像大白阿
KBEngineUnity3dunity服务器导航
Unity的导航信息,可以在客户端使用,也可以导出NavMesh信息后,在服务器端进行加载几何映射,实现在服务器端进行导航,例如KBEngine,摸索了几天,把整个流程搞清楚,CritterAI可以简单的实现,在KBEngine的论坛中找到了管理员转载的该文章,讲述了详细的CritterAI和Unity寻路。UnityUnity中为一个GameObject添加导航信息首先,需要为GameObjec
- Unity编辑器的扩展:IMGUI
dghpxuv1568
游戏uiruntime
IMGUI介绍所有关于Editor的相关UI,包括Inspector、Hierarchy、Window、Game视图上动态创建的那些半透明UI、还有Scene视图上可添加的辅助显示UI,叫做IMGUI,全称ImmediateModeGUI。该名字来源于两类型的UI系统:immediate和retained。retained:当你设置好各种组件如Text、Button等的信息,或修改它们的相关属性后
- [UE4] 常用控制台命令
somnusand
UE4ue4
~“键调用控制台命令0,技巧键盘↑键可以看到之前输入过的指令控制台指令并不需要打全名,空格+指令可以模糊搜索Ctrl+Shift+逗号,打开GPUProfile面1,调试类statfps——显示帧率statunit——显示包括DrawCall,游戏逻辑等各种项的消耗statUnitGraph——显示各个参数的实时曲线图statrhi——显示各种GPU上的消耗细则statgame——显示当前帧的时间
- 地平线零之曙光
花七喜
地平线零之曙光(HorizonZeroDawn)是一款由索尼旗下第一方工作室GuerrillaGames制作的第三人称动作角色扮演游戏。本作采用的游戏引擎是杀戮地带暗影坠落的Decima改良版,能够让玩家拥有更好的游戏体验,并且游戏的画面是由Guerrilla所制作,超强的技术实力和美术功力如期而至的为我们带来了可能是目前最好的开放世界游戏画面。不仅如此,游戏在人物的服饰质感,各种不同属性的武器特
- unity中的动态绑定、赋值等
hhsass
unity游戏引擎
1.动态给游戏对象赋值//声明私有变量GameObjectobj;//在Strart事件中:obj=GameObject.Find("obj_name");2.动态给UI组件赋值以及绑定响应事件这里以Slider为例,Button,Toggle和Text之类的也一样//虽然直接声明我们的slider对象是一个Slider类的实例很方便地可以调用Slider的用法,但是无法动态地初始化(其实是我不会
- atcoder ABC 354-E题
CodeWizard~
算法c++
atcoderABC354-E题ProblemStatementTakahashiandAokiareplayingagameusingNcards.Thefrontsideofthei-thcardhasAiwrittenonit,andthebacksidehasBiwrittenonit.Initially,theNcardsarelaidoutonthetable.WithTakahash
- 链游开发教学
Willin 老王躺平不摆烂
区块链元宇宙区块链web3前端后端
文章目录**概念设计****教程****智能合约开发****Solidity基础**:**智能合约教程**:**项目**:**链下与链上集成****教程**:**项目**:**测试与迭代****教程**:**项目**:**上线与运营****教程**:**项目**:**长期发展****教程**:**项目**:**开源项目参考****工具与资源**概念设计教程GameDesignforWeb3:一个关
- 备战秋招60天算法挑战,Day26
华南溜达虎
数据结构与算法算法数据结构javac++python
题目链接:https://leetcode.cn/problems/jump-game/视频题解:https://www.bilibili.com/video/BV1gwYKekEVN/LeetCode55.跳跃游戏题目描述给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。举个例子:输入:nums=[2,3,
- Python学习笔记36:进阶篇(二十五)pygame的使用之事件监听控制切歌和暂停,继续播放
明月望秋思
学习pythonpygamepython学习
前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,领取pythoncrashcourse中文版PDF。pygamePygame是一个开源的Python多媒体开发
- 2019-05-14
gong圈圈
unity3D使用教程软件简介Unity3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blendergameengine,Virtools或TorqueGameBuilder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行
- 2024年加密货币市场展望:L1、L2、LSD、Web3 和 GameFi 板块的全面分析与预测
电报号dapp119
区块链开发web3区块链
随着区块链技术的快速发展,加密货币市场在2024年继续展现出蓬勃的生机和创新的潜力。本文将深入分析L1、L2、LSD、Web3和GameFi这五大板块的发展趋势和预测,帮助投资者和爱好者更好地理解和把握市场机遇。一、L1:基础层协议的持续进化L1(Layer1)作为区块链的基础层协议,是整个加密生态系统的基石。在2024年,我们预计L1协议将继续向高效、安全和可扩展性方向发展。以太坊2.0的全面实
- lucky记录184天
杉杉妈Alice
2021年08月08日扇贝每日一句2022年倒计时145天ThebrighteststarsarethosewhocompetedvaliantlyintheOlympicGames.在奥运会上拼搏而归的你们是最闪耀的星!-Shanbay今天看到已经坚持了184天,虽然写作没有进步吧,但至少这184天几乎每天都有她的照片之类的。这对我来说也是一种进步吧,之前就是想让宝贝每天都做了些啥事,有所记录!
- 有没有大佬帮孩子看看问题出在哪啊啊啊啊
MinerTob
pythonpygame
我写了一个python音乐播放器,在实现进度条功能时为什么拖动进度条后,进度条后会退回原来的位置,而不是在拖动到的位置继续加载啊求个大佬解答啊(qmq)这是我写的代码(有注释)importosimportsysimporttkinterastkfromtkinterimportfiledialog,messageboximportpygameimportjsonfrommoviepy.editor
- C语言程序设计-扫雷游戏
元气代码鼠
游戏
愿你我成功会师,翻过雪山,走过草地,不远万里。扫雷游戏game.h#pragmaonce#include#include#include#defineROW9#defineCOL9#defineROWSROW+2#defineCOLSCOL+2#defineEASY_COUNT10voidInitBoard(charboard[ROWS][COLS],introws,intcols,charset
- 【UE 网络】Gameplay框架在DS架构中的扮演的角色
海码007
UE网络架构phpUE
目录0引言1核心内容1.1Gameplay各部分创建的流程1.2Gameplay框架在DS和客户端的存在情况1.3数据是独立存在于DS和客户端的2Gameplay框架各自负责的功能2.1GameMode2.2GameState2.3PlayerController2.4PlayerState2.5Pawn2.6AIController2.7Actor2.8HUD2.9UI♂️作者:海码007专栏
- Game AI ——游戏人工智能(逻辑及剧情生成)
爱研究的小牛
AIGC人工智能深度学习游戏
一、GameAI的介绍"GameAI"(游戏人工智能)通常指的是在电子游戏中使用的各种人工智能技术和算法,用于控制游戏中的非玩家角色(NPC)、敌人、队友等,以及为玩家提供有挑战性的对手或有趣的互动体验。GameAI的核心目的是增强游戏的可玩性和沉浸感,使游戏世界更加生动和富有挑战性。包括AIbot、NPC逻辑及剧情生成和数字资产生成。游戏AI主要关注实体根据当前条件所采取的行动。这就是传统人工智
- 2018-09-04 day 12 python pygame
nothingpy
1.步骤1.初始化游戏模块pygame.init()2.创建游戏窗口'''display.set_mode(窗口大小):创建窗口,并返回窗口窗口大小:是一个元组,并且元组中需要两个值分别表示宽度和高度(px)'''pygame.display.set_mode(600,400)window.fill(颜色值)'''背景填充颜色。RGB:三原色,每个颜色对应的值得范围是0-255.颜色值:是一个元组
- AdventureCreator学习笔记13:脸部表情
AlpacasKing
BlendShape设置在模型上添加Shapeable脚本,可以添加表情组,然后在表情组里可以添加表情。BlendShape设置表情设置在NPC脚本上,还需要添加表情,名字与表情组相同。表情设置使用表情可以在ActionList中添加新的Action,也可以直接写在对话文本中。使用表情嘴型设置对话时根据内容嘴型可以相应变化。首先在ACGameEditor的Speech选项卡开启Lipsyncing
- 【web安全】从2022中科大hackgame web中学习pdflatex RCE和python反序列化
热心网友易小姐
pythonweb安全前端
ctf比赛地址:https://hack.lug.ustc.edu.cn大佬博客里wp写的很清楚了,官方wp也写的很好,我比不过大佬,只能把基础多讲一些(大佬在tttang把wp全发了T0T)官方wp:https://github.com/USTC-Hackergame/hackergame2022-writeups大佬全WP:https://miaotony.xyz/?utm_source=tt
- monster-summon
爱你的虎口我脱离了危险
Richandfungameplay,alotofcontentisnotfun!ThegameisbasedoninstantgameplayandchallengestheultimateBOSS!
- 语音识别技能汇总
语音不识别
语音识别语音识别人工智能linuxpython
语音识别技能汇总常见问题汇总importwarningswarnings.filterwarnings('ignore')基础知识Attention-注意力机制原理:人在说话的时候或者读取文字的时候,是根据某个关键字或者多个关键字来判断某些句子或者说话内容的含义的。即通过对上下文的内容增加不同的权重,可以实现这样对局部内容关注更多。常用语音识别工具相关包的安装pipinstallpygameSpe
- 第十四章- 面对墙壁
Xiao悟空
Qtqt
这是最后的例子:一个完整的游戏。我们添加键盘快捷键并引入鼠标事件到CannonField。我们在CannonField周围放一个框架并添加一个障碍物(墙)使这个游戏更富有挑战性。lcdrange.h包含LCDRange类定义lcdrange.cpp包含LCDRange类实现cannon.h包含CannonField类定义cannon.cpp包含CannonField类实现gamebrd.h包含Ga
- 《黑神话·悟空》的编程语言探讨
hawkol
c++小程序开发C++学习笔记游戏微信小程序小程序游戏源码C++
《黑神话·悟空》作为备受瞩目的国产单机动作游戏,其开发技术和使用的编程语言一直是业界和玩家关注的热点。本文将详细探讨这款游戏主要使用的编程语言及其背后的技术考量。主要编程语言:C++根据多方信息参考《黑神话·悟空》的主要编程语言是C++。这一选择并非偶然,而是基于其开发所依赖的虚幻引擎(UnrealEngine)的底层源码特性。虚幻引擎,作为由EpicGames开发的一款强大的游戏开发平台,其核心
- 【Python游戏】用Python做一个雷霆战机小游戏(附素材和原码)
苏南Python~
Pythonpython游戏pygame
前言hello,大家好鸭之前有很多朋友都在问我要一些游戏的代码所以这篇文章就出来啦模块准备importpygame,osimporttimeimportrandom素材准备需要源码.素材.点击即可领取(备注:苏)实现代码前期准备设置开火音乐effect=pygame.mixer.Sound('sounds/fire.wav')pygame.mixer.Sound.play(effect)加载BOS
- 基于pygame的雷电战机小游戏
莫听穿林打叶生
pygamepython雷电小游戏
importpygameimportsysimportrandom#初始化Pygamepygame.init()#设置窗口尺寸WIDTH,HEIGHT=800,600screen=pygame.display.set_mode((WIDTH,HEIGHT))pygame.display.set_caption("雷电战机")#设置颜色BLACK=(0,0,0)RED=(255,0,0)GREEN=
- c语言 三子棋
努力编程,活在当下
算法
game.c#include#include"game.h"voidInitarr(chararr[row][col],intROW,intCOL){for(inti=0;i#include#definerow3//不要加;#definecol3voidInitarr(chararr[row][col],intROW,intCOL);voidDisplay(chararr[row][col],in
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。