自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 JavaEE项目中,Eclispe使用Junit进行单元测试出现ClassNotFoundException异常的解决方法

Project -> Clean

2018-04-30 11:29:41 508

原创 解决XAMPP无法启动Apache和MySQL的问题

XAMPP集成开发环境的安装十分简单,但是安装之后启动的时候很有可能出错。1、Apache启动失败。 一般情况下是端口占用的问题,80端口和443端口。比如Tomcat占用80,VMWare占用了443。这时候我们需要查询端口使用情况 win+r cmd 之后输入netstat -ano 查看本机所有端口,找到443端口占用程序,然后记下它对应的pid,启动任务管理器强行关闭即可。2、MySQ

2017-12-20 15:34:23 797

原创 Android中退出app的另类姿势

因为在app中使用singleTask启动模式启动一个不在栈顶的Activity a的话,已经存在的a会被加载到栈顶,同时a上面所有的Activity都会出栈,这样的话,我们可以把app的入口Activity启动模式设置为singleTask,在退出app的时候调用入口Activity,同时重写入口Activity的onNewIntent方法,使用finish()结束掉入口Activity,这样的

2017-06-26 13:16:57 285

原创 Android中加载SD卡中的html,背景音乐无法自动播放

废话不多说,两行代码搞定 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) webView.getSettings().setMediaPlaybackRequiresUserGesture(false);

2017-06-22 15:40:23 451

原创 Android中加载手机sd卡中的html文件

加载网页: mWebView.loadUrl(“https://www.baidu.com“);记载sd卡中的文件: 首先获取文件路径,比如:String url = “/storage/emulated/0/preview/index.html”; 然后加载: mWebView.loadUrl(“file://”+url);(注意使用的是file协议,切不要漏掉了“/”)

2017-04-20 15:07:29 3992

原创 Android 5.0以上实现透明状态栏

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManag

2017-04-20 10:57:56 531

原创 Android Studio引入第三方库-错误:Conflict with dependency 'com.google.code.findbugs:jsr305' 解决方法

在Android Studio中引入一些第三方库时,可能会出现题目中的错误,解决方法是在app的gradle中添加解决方案:configurations.all {resolutionStrategy.force ‘com.google.code.findbugs:jsr305:1.3.9’}

2017-04-18 09:51:57 1224

原创 Android RadioGroup的监听

监听器里的回调方法里的参数,checkedId,指的是资源R文件中的资源id,竟然一时忘了。

2017-04-05 22:27:50 2209

原创 一个简单的Android自定义view详解

众所周知,自定义view是衡量一个安卓开发人员水平的指标之一,但是自定义view的难度还是有的,需要我们熟知view的加载的三大流程:measure,layout,draw。对于初涉安卓的技术小白来说,想要学习这些内容是有点困难的,阅读源码需要有相当足够的耐心,和不算差的英语水平。在这里博主向大家推荐任玉刚大神的《Android开发艺术探索》,书中详解了view的事件体系还有工作原理。本篇文章,就是

2017-03-22 21:58:03 497

原创 LayoutInflater的inflate方法参数

在Android开发过程中,经常会遇到这种情况,通过java代码获取某个xml文件的view,然后将其添加到目标布局,这个时候我们会用到一个方法,就是LayoutInflater的inflate方法。说来惭愧,很长一段时间博主都是使用这个inflate(int resource,ViewGroup root),而且总是习惯性的吧第二个参数设置为null。先来解释一下这两个参数,resource指的是

2017-03-16 20:20:14 310

原创 初试Android中的IPC机制(2)————使用AIDL

谈到跨进程通信,实现的方式多种多样,比如上文简单讨论的Messenger,除此之外还有Bundle,文件共享,ContenProvider,Socket,还有就是本文讨论的AIDL。各种方式的和有优缺点,但是AIDL是所有方式中功能最强大的实现方式,支持一对多并发通信(弥补Messenger的缺点),适用场景是一对多通信而且有RPC需求,缺点是实现起来是上述方法中最麻烦的。 实现跨进程通信的方式一

2017-03-09 20:12:04 239

原创 初识Android中的IPC机制(1)————使用Messenger

Android开发过程中,IPC(跨进程通信)的技术并不常用,但是在一些特殊情况下确实要用到,而且很重要,比如通过开启一个进程来增加App的可用内存等。同时在面试的过程中也有可能被问到,所以,学习IPC还是很重要的。(因为笔者时间有限,本文仅提供最简单的实现方案,并不深究,兴趣的同学请参考任玉刚大神的《Android开发艺术探索》)Messenger实现跨进程通信总体来说还是比较简单的,他对AIDL

2017-03-07 19:08:44 346

原创 Android JNI写出Hello World

有的时候我们需要调用Android系统底层的命令,这就要求我们在Android平台运行c++代码,也就是本地(native)开发。那么作为小白,怎么才能使用NDK写出第一个Hello Word呢?1.下载NDK到了2017年,希望你用的是AS。好的,使用AS直接下载:File->Project Structure,选择左侧SDK Location,依次是SDK,JDK,NDK的Location,至于

2017-02-23 22:58:16 322

原创 Unity 3D——物理引擎之碰撞器

碰撞器非为很多种,在这就不一一介绍了,值得注意的物体间碰撞的忽略有两种方法,一种是通过脚本里的代码实现两个物体不发生碰撞,方法为//作用是设置游戏物体ball_a不与当前脚本挂到的物体发生碰撞,注意,参数是游戏物体的Collider组件Physics.IgnoreCollision(ball_a.GetComponent<Collider>(), gameObject.GetComponent<C

2016-12-08 22:14:11 506

原创 Unity——物理引擎之刚体

刚体属性: 质量(Mass): 阻力(Drag): 旋转阻力(Angular Drag): 使用重力(Use Gravity): 是否遵循运动学(Is Kinematic):ture代表该对象的运动只受脚本和动画的影响。 碰撞检测方式(Collision Detection):静止或者低速物体使用离散模式(Discrete),高速物体使用连续模式(Continuous),被使用了连续检测

2016-12-07 22:45:31 623

原创 Unity 3D——NGUI初级(3)

今天就先不写了,但是不代表今天没有学习。身体不舒服,家上还要早睡,而且看的东西也比较杂,加上傻妞来的的电话。明天见!

2016-12-06 22:26:20 267

原创 Unity Shader入门(1)

程序员三大浪漫之图形学基础篇 第2章:渲染流水线 第3章:Unity Shader基础 第4章:学习Shader所需的数学基础初级篇 第5章:开始Unity Shader学习之旅 第6章:Unity中的基础光照 第7章:基础纹理 第8章:透明效果中级篇第9章:更复杂的光照 第10章:搞基纹理 第11章:让画面动起来高级篇 第12章:屏幕后处理效果 第13章:使用深度和法线纹理

2016-12-05 21:21:41 385

原创 Unity 3D——NGUI初级(2)

进入了比较枯燥的NGUI的学习,内容还是不多,今天看的两集视频无非是介绍了label的几个属性,像Fonts Size、Modifier、Overflow里面的四个参数(Shrink Content、Clamp Content:类似于Android的裁切图片显示方式,Resize Freely:widget的size随着字体的大小改变、Resize Height:widget的高度会随着字体的siz

2016-12-05 20:59:36 305

原创 Unity 3D——NGUI初级(1)

实在不应该偷懒,所以今天只能说给NGUI学习开一个头。NGUI是Unity平台上面最强大的第三方UI系统。 NGUI插件的安装,可以到CSDN下载频道搜索,我用的是2.10.2版本。 导入的方法和普通的资源包一样,可以直接拖入Project面板(说实话,比Android的开发利索多了)。NGUI里面虽有的UI也都是基于组件。还有一点,我小看了游戏的UI界面。Unity最常用的NGUI,实现的效果

2016-12-04 23:58:10 309

原创 初试Unity 3D——飞盘射击案例(3)

随着学习的进行,今天把猴哥的Unity免费教程(不包括)学完了,在最后一节课中,主要是对飞盘射击案例的功能的增添和优化。如游戏结束之后的操作:停止倒计时、销毁飞盘、显示总分、分数清零、重新开始游戏。代码并不复杂,需要注意的地方是,通过父物体查找所有的子物体的时候,会把父物体本身已返回到数组当中,为第一个元素。所以销毁子物体的时候要适当注意。本游戏设计思路: 1、角色控制:包括武器的移动,ray的控

2016-12-03 13:16:51 926

原创 初始Unity 3D——飞盘射击案例(2)

今天和同学开语音时间有点长,得抓紧在凌晨之前写完博客。 本篇博客完成的功能是实现飞盘的设计。思路: 创建一个飞盘物体,设置tag,设置材质,创建预制体。创建一个空物体用来管理飞盘创建,挂在一个脚本,在start方法中使用Invoke函数来定时调用飞盘批量创建方法(最好在创建时使用transform的setParent方法将创建的飞盘都放FeiPanParent之下)。当摄像机发出的射线射到了飞盘

2016-12-01 23:46:45 827

原创 初识Unity 3D——飞盘射击案例(1)

接近“新手进阶”阶段尾声,猴哥演示了一个飞盘射击的案例。在这记录一下学习过程。首先学会导入unitypackage资源包,里面包括多种资源,有模型、场景、材质球、贴图等等。下面是案例的分析。一、UI展示: 1、游戏开始UI:游戏名称、游戏玩法、开始按钮 2、游戏运行UI:显示时间倒计时,显示当前分数 3、游戏结束UI:分数、返回按钮 二、主角控制 持枪手臂,枪口一直指向鼠标在屏幕上的位置,

2016-11-30 23:42:09 903

原创 初始Unity 3D——小Demo打砖块

需求:鼠标点击墙壁,从观察者角度发射子弹,击中墙壁砖块。子弹在五秒钟后消失从小Demo中学习解决问题的逻辑思路: 1:使用prafab循环创建一堵墙 2:监听鼠标与墙壁的“碰撞“事件 3:发射子弹1、循环创建墙壁 声明public变量,将砖块brick拖进去void CreateWall(){ for(int i=0;i< width;i++){ for(int j=

2016-11-30 13:20:31 2409

原创 初识Unity 3D——常用API(3)

本文收录三个常用类。照样很简单,很想快点接触新的东西。 Screen、Time、Mathf//不同的屏幕会显示不同的数值 Screen.width Screen.height//游戏从开始运行到现在的时间 Time.time //静态只读属性,时间增量,渲染上一帧所花费的时间,可以用来实现倒计时 Time.deltaTime //时间缩放,0:游戏暂停 1:正常游戏 0.5:

2016-11-29 19:11:04 350

原创 初试Unity 3D——常用API(2)

脚本的生命周期就是挂在到的游戏物体“从出生到死亡”所经历的的一系列事件。//唤醒事件,只会执行一次void Awake(){}//启用事件,只执行一次。当脚本组件被启用的时候执行一次void OnEnable(){}//开始事件,只执行一次void Start(){}//更新事件,执行N次,每帧执行一次void Update(){}//固定更新事件,执行N次,0.02秒执行一次,所有

2016-11-28 22:34:25 367

原创 初识Unity 3D——常用API(1)

言简意赅1、Invoke函数 Invoke本意是祈求,召唤,在U3D中用来控制函数的调用时间和重复调用时间://五秒钟之后调用CreateCubes方法Invoke("CreateCubes",5.0f); //五秒钟之后调用CreateCubes,然后,每过一秒调用一次InvokeRepeating ("CreateCubes",5.0f,1.0f); 2、SendMessage

2016-11-27 23:44:20 764

原创 初试Unity 3D——实例的创建与销毁

有很多时候,我们有这样的需求,就是在游戏场景中增加一个物体,这样的话以前我们通过拖拽来实现的方法肯定是行不通的,这就要求我们使用代码来实现实例的创建。为了方便温习之前学到的知识,我们来模拟一个情景:当我们按下键盘上额C键,游戏会在确定的空间范围内的随机位置出现五个红色正方体,而且,每个立方体创建之后,会在随机的时间之内自动销毁。首先来分析一下,这个功能的实现需要几个主体:1、一个控制脚本,监听我们键

2016-11-26 23:33:06 6752

原创 初识Unity 3D——TrialRenderer、LineRenderer、AduioClip

三集教程合在一起写:分别是拖尾特效,线性特效、音频片段。三个功能的实现都是采用同样的方式:先创建一个空物体,然后给这个空物体的添加一个组件,前两种的组件在Effects(特效分类)中,后一个在Audio(音频分类中)。感觉没什么好讲的。注意一下音频中的音频监听器,是在Camera上面的。拖尾特效和线性特效会用到材质球中的着色器,不是使用Standard版本,而是用到着色器中的Particles(颗粒

2016-11-26 14:43:45 512

原创 初试Unity 3D——GUI之GUIText和GUITexture

由于今天多学习了一些算法的知识,所以导致今天的U3D学习有些慢,但是明天周六,我会加快进度的。GUIText和GUITexture分别来显示文字和图片。使用的方式都是新建一个空物体,然后在空物体的上面添加一个组件,在Rendering命令下。本节课学习了一类监听事件,鼠标的监听,要区别于以前学习的Inout里面的方法,Input.GetMouseDown()是全局的监听,而OnMouseEnter等

2016-11-25 23:14:51 3766

原创 数据结构与算法——认识数据结构与算法

数据结构指的就是数据之间的相互关系,可以分为逻辑结构与物理结构 逻辑结构 1、集合结构,数据之间没有联系 2、线性结构,一对一 3、树形结构,一对多 4、图形结构,多对多 物理结构 物理结构指的是数据如何存放在存储单元中,不需要过多关心。还涉及到数据的存储方式,又分为顺序存储和链式存储。 顺序存储 编程语言的当中的数组,数据的逻辑地址和物理地址是一致的,也就是说,数组当中的两个数据

2016-11-25 21:34:40 525

原创 初识Unity 3D——小小小Demo(上)

首先,在了解了最基础的Unity的概念、操作之后,我们来模拟一个最简单的场景,运用学过的简单的知识。场景是这样子的: 有一扇门,一个学生,学生来到门前,门会自动打开,然后学生进去,门自动关闭。为了完成这个demo,首先我们能从上面的描述中得到两个主体,Door和Student。然后,注意一下我们需要完成的是需求是学生来到门前,这就意味着我们需要有一个触发器而不能用Door自带的碰撞体。所以,还有一

2016-11-24 22:35:32 1609 1

原创 初始Unity 3D——碰撞事件的监听

感觉现在学习的方法要调整一下,mokey老师的教程一集教的内容很少,比如这节课一共教了三个方法: 1、void OnCollisionEnter(Collision coll) 2、void OnCollisionStay(Collision coll) 3、void OnCollisionExit(Collision coll) 其中coll参数的意思是与该脚本挂载对象碰撞的物体,可以使用

2016-11-24 13:19:29 2177

原创 初始Unity 3D——刚体常用方法

因为这两天要准备面试,所以写的博客内容有点少,主要就是对今天所学内容的回顾。 1、刚体常用方法一: //这是相对于世界坐标的力 AddForce(Vector3.forward,ForceMode.Force); //这是相对于自身坐标的力 AddRelativeForce(Vector3.forward,ForceMode.Force);2、void FixedUpdate(){}

2016-11-23 22:32:11 751

原创 初试Unity 3D——刚体与碰撞体的比较

我们在创建游戏物体时,引擎都会默认给物体添加一个Collder属性,也就是碰撞体。拥有的碰撞体,游戏运行时才不会变得透明能够穿越,与刚体的区分可以这么来比较: ——刚体的话控制的物体的受力,运动,而Collider则控制的是物体之间接触时的反馈,要么发生碰撞要么穿过,秉着这个原则,刚体与碰撞体的概念就区别开了。

2016-11-22 13:19:52 953

原创 初识Unity 3D——刚体

今晚看的很简单,就是简单的学习了一下刚体,以及其四个简单的属性: 质量(Mass)、阻力(Drag)、角阻力(Angular Drag)、使用重力(Use Gravity)。需要注意的是加上刚体之后,物体之间不糊相互穿透,而且使用刚体组件同样可以使物体移动:void Update () { if(Input.GetKey(KeyCode.W)){ m_Rig

2016-11-21 20:54:09 487

原创 初试Unity 3D——理解U3D的组件和脚本

哈哈,昨晚弄清楚了U3D的组件到底是怎么个机制,今天中午就通过写博客来梳理一遍吧!1、首先,一个游戏之中会有很多的游戏场景(Scene),游戏场景中有很多的游戏物体(GameObject),包括摄像机、灯光、立方体等。这就构成了一个游戏的主体(当然还有脚本,待会再说)。其实,我们所说的的物体其实就是一个类,对应的是GameObject类,创建一个游戏物体也即是“new”了一个gameObject,只

2016-11-21 13:21:04 5838

原创 初试Unity 3D——认识脚本、组件、鼠标键盘输入

1、脚本,也就是控制游戏物体运动的代码。Scripts,5.0之后仅支持C#和JavaScript,当然C#是主流 2、组件,各个组件组成物体,不同的物体由不同的组件构成。但是所有的游戏物体都有Transform组件。也是不可隐藏的。 3、鼠标键盘的输入类似://键盘输入(参数A~Z,F1~F12) Input.GetKey(KeyCode.A); //持续返

2016-11-20 22:50:00 626

原创 初识Unity 3D——Camera和Light基础

都是很简单的操作: 1、摄像机的最常用操作为Ctrl+Shift+F实现将摄像机定位到当前的视角观察者的位置。 2、给地板Plane贴瓷砖,用到Shader中的Tiling属性 3、天空盒Skybox的使用 4、使用点光源、平行光源、锥形光源照明烘托氛围内容太少,博客写不出什么东西,一些简单的属性或者操作看到面板就知道该怎么做,没必要繁琐的罗列出来。预计入门基础部分都是这种效果。

2016-11-19 13:50:37 493

原创 初始Unity 3D——预制体

1 在U3D中可以给场景中的物体设置父子关系,便于管理与移动 2 将层级面板Hierarchy中的物体拖拽到Assets中就可以使其成为预制体,成为预制体之后,便于复制多个相同的物体,同时,修改其中一个物体可以使所有的物体发生改变(Apply)

2016-11-18 23:40:50 834

原创 初识Unity 3D——认识材质球、贴图

1、Unity中习惯将材质(Material)成为材质球,因为在U3D引擎中材质的预览方式为一个球体。 2、材质球的组成又分为贴图(Texture)和着色器(Shader)。 3、贴图就是普通的图片。 4、着色器是一种可以精确的控制材质球的工具。 通过贴图和着色器的配合,开发人员可以创造出逼真的模型。PS:会写Shader的人才是真正的高手。

2016-11-18 12:55:52 7188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除