当前位置:  编程技术>移动开发
本页文章导读:
    ▪Unity3D作2D横版游戏小demo(源码)        Unity3D做2D横版游戏小demo(源码)           用Unity3D做的一个小demo,简单地实现了人物行走、跳跃,以及场景的碰撞,给需要的朋友做个参考。为什么要用U3D搞2D游戏呢?想想看,如果你.........
    ▪ verilog中reg跟wire类型的区别和用法        verilog中reg和wire类型的区别和用法 reg相当于存储单元,wire相当于物理连线 Verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位.........
    ▪ View 流入事件       View 注入事件 注入是事件处理流程如: 1 .View 接受到上报的Touch事件,被分发到相应的View的OnTouch事件中, 2 .我可以通过覆盖这个方法,向InputManager中注入KeyCode事件,如:back,home等 3. .back ,.........

[1]Unity3D作2D横版游戏小demo(源码)
    来源: 互联网  发布时间: 2014-02-18
Unity3D做2D横版游戏小demo(源码)


 

 

      用Unity3D做的一个小demo,简单地实现了人物行走、跳跃,以及场景的碰撞,给需要的朋友做个参考。为什么要用U3D搞2D游戏呢?想想看,如果你希望你的游戏可以在Android、Iphone、PC甚至网页上跑,是不是要学Android、XCODE、C++、AS3?有U3D,虽然做2D游戏有点绕,但开发一次就全搞定啦。

 

      如果你还不了解U3D,请看一下我附件里的教学文档,然后看一看网上的一些入门视频,很快就能上手。

 

      对于这个demo要阐述的几点:

      1)如何做2D游戏。

            其实还是3D的,只不过模型都是一个单面,忽视Z轴的处理,摄像机始终面向Z轴,让你的游戏看上去像2D而已。

      2)如何实现碰撞。

            如图所示,我是添加了一些刚体做地面碰撞,然后给精灵也添加刚体属性。脚本里只根据按键改变精灵的位置,物理运算就交给U3D了。

      3)如何实现精灵的动画。

            我的方法是不断地给精灵模型设置不同的纹理图片。当然你也可以用一张整的纹理图片,然后通过UV设置纹理。

 

      最后附上工程文件。刚接触U3D不久,欢迎朋友加入我的群一起探讨游戏开发:50184572。

      个人原创,转载请注明。

1 楼 逍遥天下 2011-08-14  
呵呵  聪哥的太给力了··
2 楼 gjs4136 2011-08-20  
haha,下来瞅瞅
3 楼 cloud21 2012-01-30  
多交流了,哈
4 楼 y89696043 2012-06-14  
感谢分享哈

    
[2] verilog中reg跟wire类型的区别和用法
    来源: 互联网  发布时间: 2014-02-18
verilog中reg和wire类型的区别和用法

reg相当于存储单元,wire相当于物理连线

Verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位可以是0,1,X,Z。其中x代表一个未被预置初始状态的变量或者是由于由两个或多个驱动装置试图将之设定为不同的值而引起的冲突型线型变量。z代表高阻状态或浮空量。

线型数据包括wire,wand,wor等几种类型在被一个以上激励源驱动时,不同的线型数据有各自决定其最终值的分辨办法。

两者的区别是:即存器型数据保持最后一次的赋值,而线型数据需要持续的驱动

输入端口可以由net/reg驱动,但输入端口只能是net;输出端口可以使net/reg类型,输出端口只能驱动net;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型
用关键词inout声明一个双向端口, inout端口不能声明为寄存器类型,只能是net类型。

***************************************************************************************************************************************************

    wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。

        不指定就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中。

        在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或下降沿,那么这个硬件模型就是一个触发器;如果这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;如果这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。

        输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以使wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型;输入和双向端口不能声明为寄存器类型。

       简单来说硬件描述语言有两种用途:1、仿真,2、综合。

对于wire和reg,也要从这两个角度来考虑。

*********************************************************************************
从仿真的角度来说,HDL语言面对的是编译器(如Modelsim等),相当于软件思路。
这时:
wire对应于连续赋值,如assign
reg对应于过程赋值,如always,initial

*********************************************************************************
从综合的角度来说,HDL语言面对的是综合器(如DC等),要从电路的角度来考虑。
这时:
1、wire型的变量综合出来一般是一根导线;
2、reg变量在always块中有两种情况:
(1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑
(2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)

在设计中,输入信号一般来说你是不知道上一级是寄存器输出还是组合逻辑输出,那么对于本级来说就是一根导线,也就是wire型。而输出信号则由你自己来决定是寄存器输出还是组合逻辑输出,wire型、reg型都可以。但一般的,整个设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。


    
[3] View 流入事件
    来源: 互联网  发布时间: 2014-02-18
View 注入事件

注入是事件处理流程如:

1 .View 接受到上报的Touch事件,被分发到相应的View的OnTouch事件中,

2 .我可以通过覆盖这个方法,向InputManager中注入KeyCode事件,如:back,home等

3. .back ,home 等注入事件,然后分别通过Activity.java,和PhoneWindowsManager.java的处理Event实现功能

 

 

在3.0中,我可以通过

1 .framework/base/SystemUI/src/com/android/systemui/policy/KeyButtonView.java

    可以看到注入事件使用IwindowManager接口中injectInputEventNoWait(KeyEvent event);

    这个接口实现在WindowManagerService.java中

2 .然后WindowManagerService中将事件上报给相应的当前系统,被应用或者系统处理

 

 

 

====================================================================

下面是3.0中Home键的处理过程

 

 

1 .framework/base/SystemUI/src/com/android/systemui/policy/KeyButtonView.java 中,通过

    injectInputEventNoWait ,输入Home键的keyCode(在Manifest中使用这个view中添加Keycode属性)

2 .Home事件在PhoneWindowManager中interceptKeyBeforeDispatching方法中被处理

 

3 .调用launchHomeFromHotKey();方法回到Launch主页面

 

 

 

===================================================================

 

android中,有4种注入输入事件的方法分别是:

   1.boolean injectKeyEvent(in KeyEvent ev,boolean sync);               //注入key事件

   2.boolean injectPointerEvent(in MotionEvent ev,boolean sync);      //注入mouse事件

   3.boolean injectTrackballEvent(in MotionEvent ev,boolean sync);    //注入轨迹球事件

   4.boolean injectInputEventNoWait(in InputEvent ev);                   //注入输入事件

这个四个方法都是通过IWindowManager.aidl 方式提供给别的进程调用的。

 

可利用这个接口实现,windows鼠标,keyboard等事件通过socket传送给android,android的server实现注入事件,进而模拟windows的鼠标的事件,从而达到window鼠标控制android的系统。

 

 

 

 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3