- 博客(14)
- 收藏
- 关注
原创 R语言 解决Error in install.packages : package ‘RGtk2’ not installed because it is not built for UCRT
安装rattle包时需要装RGtk2包,有可能报错:package ‘RGtk2’ successfully unpacked and MD5 sums checkedError in install.packages : package ‘RGtk2’ not installed because it is not built for UCRT
2022-05-27 18:11:31 6421 5
原创 Unity下落式音游实现——(6)串口编程与UI
Unity下落式音游实现——(6)串口编程与UI前期准备还差输入处理(串口编程)和杂七杂八的UI就完成了思路串口编程比想象中简单,需要用到System.IO.Ports库,其实只要提前和硬件那边商量好,记录几个关键参数(baudRate、dataBits、端口号)就行。其中端口号就是插哪个USB口UI大部分都很简单,无非就是用我们之前写好的观察者模式(或者用自带的SendMessage也行),主动地读取数据,或者被动地在某些功能函数中接受通知来更改信息。另外,假设你和我有一样的需求:在正式游戏之
2022-03-28 20:53:18 2703
原创 Unity下落式音游实现——(5)根据音乐生成滑块
Unity下落式音游实现——(5)根据音乐生成滑块前期准备终于到了最激动人心的时刻!仔细回忆需求,“需要在对应节奏处生成滑块”,其实就是在固定的时间点生成滑块。可以用一个dictionary存储对应时间点和生成的滑块类型,然后在update中每帧记录运行时间,到点了就生成对应的滑块。easy!right?但这样似乎不能很好地满足某些需求,比如根据难度不同音乐播放速度会变化、音乐并不是连续播放,音乐与音乐会有停顿,同时得实现回放功能。对上述问题,好像不难想到对应解决办法:在每帧记录运行时间时乘上一个表示
2022-03-28 20:45:34 6001 1
原创 Unity下落式音游实现——(4)鼓盘动画及敲击判定
Unity下落式音游实现——(4)鼓盘动画及敲击判定前期准备导入资源及布置UI,创建脚本DrumController.cs思路由于有多个鼓盘,需要为每个鼓盘创建一个Animator,每个鼓盘有错误敲击和正确敲击两个Animation。另外正确敲击时在鼓盘的上方会有额外的动画,由于美术那边将额外动画和正确敲击的鼓盘分开给我,而且出于复用性考虑,我将额外动画配置鼓盘动画保存为一个prefab,在显示正确动画的同时在对应位置创建(事实证明这是个错误…)。配置动画难度不高,但会有很多很烦人的坑正常的音游判
2022-03-28 20:44:21 4318 1
原创 Unity下落式音游实现——(3)实现观察者模式
Unity下落式音游实现——(3)实现观察者模式前言本来这一部分是计划放在后面的,但在整理鼓盘敲击判定时优化了原来的部分代码(删掉了一个不必要地函数),顺理成章地出了bug。最后发现是这个函数原会在另一个脚本中用unity自带地消息系统传递(SendMessage),麻烦在于SendMessage传递函数名参数用的是字符串,所以当我回滚代码,查找那个函数的引用时什么也没找到,很麻烦。于是就先将观察者模式提前…前期准备观察者模式有监听者和被监听者两类对象,当某事件出现时,被监听者会对所有监听者进行广
2022-03-28 20:42:44 2075
原创 Unity下落式音游实现——(2)滑块移动及生成
Unity下落式音游实现——(2)滑块移动及生成前期准备导入资源及布置UI,创建脚本SliderController.cs、SceneController.cs、GameInformation.cs鼓盘属于UI还是游戏对象?毫无疑问,分数条、进度条等属于UI(给玩家展示信息);滑块属于游戏对象(频繁生成和销毁)问题就在于鼓盘,从游戏逻辑的角度,滑块需要在鼓盘附近作位置判断(hit or miss),当成游戏对象处理更方便;从功能看,鼓盘需要频繁播放动画。最后还是决定将鼓盘放在UI层,用SceneCo
2022-03-28 20:34:10 5460
原创 Games101作业3:重心插值、着色模型
Assignment3前置知识Blinn-Phong一种局部着色模型(不会生成阴影,因为不涉及多物体)光源方向I和视角方向v均是从片元出发(指向光源或摄像机)diffuse(漫反射):与视角无关,只与接受到的光的总量有关Ld=kd(I/r2)max(0,n∗I)L_d=k_d(I/r^2)max(0,n*I)Ld=kd(I/r2)max(0,n∗I)specular(高光):与视角有关,用光源和视角的半角和法向量作比较Ls=ks(I/r2)max(0,n∗h)pL_s=k_s(I/
2022-02-23 12:25:50 431
原创 Games101作业2:光栅化
Assignment2前置知识光栅化将数据绘制成图像(呈现到屏幕上)采样:用某种方法(函数)对某个点给出确定的值光栅化采样的任务:屏幕上的像素是离散的,要判断该像素是否需要绘制(该点是否在绘制的三角形中)包围盒(Bounding Box):减少需要扫描的范围,取三角形三个点XY的最大和最小值,构建一个正方形的包围盒走样走样本质:采样的频率低于信号频率,使信号与信号之间发生重叠反走样(antialiasing):先模糊,再采样;本质是滤波使信号“变窄了”,截去了重叠的部分MSAA(Supe
2022-02-21 23:01:23 333
原创 Games101作业1:旋转矩阵及投影变换
Assignment1前置知识旋转矩阵(二维)(cosα−sinαsinαcosα)\begin{pmatrix} cos\alpha&-sin\alpha \\ sin\alpha&cos\alpha \end{pmatrix}(cosαsinα−sinαcosα)三维的旋转矩阵,保持这四个系数的值和相对位置不变,绕哪个轴转,就将对应列设成1,四个系数补到对应位置上。唯一例外是绕y轴旋转,右上角的符号要移到左下角(相对其他两矩阵转置),因为绕y转时叉积方向和另外两条轴相反(
2022-02-02 22:29:56 877
原创 C++学习笔记
C++学习笔记(前言:看侯捷视频做的一些笔记。主要分两部分,第一部分为C++ STL相关知识;第二部分为内存管理)STLOOP vs GPOOP(Object-Oriented programming)将数据和方法结合(封装成类)GP(Generic Progarmming)将数据和方法分离STL用GP的思想实现,将数据和方法分开分别在容器头文件(vector、list等)和algorithm中实现;容器和算法之间用迭代器沟通某些容器不支持某些特定的算法,比如list不能用algorithm里
2022-01-09 19:16:53 620
原创 Unity下落式音游实现——(1)需求分析
Unity下落式音游实现——(1)需求分析前言由于项目比较繁杂,因此根据基本模块会分为数篇博客,记录了主要流程和某些具体的技术难点,以此作一个技术总结效果预览图GamePlay1、记忆部分。播放音乐,在某一时间滑块从轨道滑下,**经过一段时间后(SlideTime)**滑到判定区,此时对应鼓面播放动画以提示玩家正确的音乐节奏2、操作部分。此时回放上一部分的音乐片段,玩家根据记忆和听觉反馈(音乐节奏鼓点)在正确的时间内做出击打看不见的滑块模块划分其他功能难度控制有三种难度(简单、中等、
2021-11-01 22:26:58 4405 4
原创 《Unity Shader入门精要》学习笔记
《Unity Shader入门精要》学习笔记简单说明为控制渲染过程提供一层抽象,避免许多繁琐配置;用ShaderLab编写,使用一些嵌套在{}的语义;定义了要显示材质所需的全部,不仅仅是着色器代码Unity Shader != Shader(在同一个Unity Shader中定义顶点和片元着色器代码)整体结构// 指定该shader名字Shader "Unlit/Shader"{ // 声明属性,方便以后调用 Properties { // Name:通常由下
2021-07-25 11:34:06 485 2
原创 Unity实现简单卡牌游戏框架
Unity卡牌游戏教程(一)简单框架前言项目的初衷是以项目形式串起unity各种零散知识,语言风格较(详细)啰嗦需求先来看需要实现什么东西构建卡牌对象简单的UI系统UI和场景的简单交互前期准备打开unity,新建2D项目左键点击Main Camera,在Inspector面板中点击Background修改背景颜色,同时将size修改为**屏幕像素高度/100f/2),比如你的屏幕像素是1920x1080,那么size就应该设置为5.4,这样屏幕上一个像素对应图像中一个像素(所谓Pixel
2021-03-25 09:09:21 16968 11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人