当前位置:  编程技术>移动开发
本页文章导读:
    ▪sencha touch2学习札记(四)-panel容器        sencha touch2学习笔记(四)---panel容器   原文链接: http://chennaigong.iteye.com/blog/1555211   在sencha touch2中,panel就是一个容器,可以容纳很多组件,可以控制布局。代码如下     Ext.application( { name:".........
    ▪ Dialog式样        Dialog样式 样式一: styles.xml <style name="Dialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowFrame">@null</item> <!--边框--> <item .........
    ▪ 【转】一个容易的游戏服务器框架       【转】一个简单的游戏服务器框架 最近一段时间不是很忙,就写了一个自己的游戏服务器框架雏形,很多地方还不够完善,但是基本上也算是能够跑起来了。我先从上层结构说起,一直到.........

[1]sencha touch2学习札记(四)-panel容器
    来源: 互联网  发布时间: 2014-02-18
sencha touch2学习笔记(四)---panel容器

 

原文链接: http://chennaigong.iteye.com/blog/1555211

 

在sencha touch2中,panel就是一个容器,可以容纳很多组件,可以控制布局。代码如下

 

 

Ext.application(
{
	name:"sencha",
	launch:function()
	{
		var button = Ext.create('Ext.Button', {
	      text: 'Button',
	      id: 'rightButton'
		 });
		
		 Ext.create('Ext.Container', {
		     fullscreen: true,
		     items: [
		         {
		              docked: 'top',
		              xtype: 'titlebar',
		              items: [
		                  button
		              ]
		          }
		     ]
		 });
		
		 Ext.create('Ext.Panel', {
		     html: 'Floating Panel',
		     left: 0,
		     padding: 10
		 }).showBy(button);
		
	}
}
)

 docked:'top'表示工具栏位置在上。这只是个hello world式的例子 。如果想了解复杂的应用,可以参看文档的介绍哦。


    
[2] Dialog式样
    来源: 互联网  发布时间: 2014-02-18
Dialog样式
样式一:



styles.xml
<style name="Dialog" parent="android:style/Theme.Dialog"> 
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@null</item> <!--边框-->
<item name="android:windowIsFloating">true</item> <!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->  
<item name="android:background">@android:color/transparent</item><!--背景透明-->
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">true</item> <!--蒙版- 模糊 -->
</style>
 

样式二:styles.xml






    <style name="RecordAudioDialogSytle">
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowNoDisplay">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowBackground">@drawable/filled_box</item> 
        <item name="android:backgroundDimEnabled">false</item>
    </style>





圆角设置:





filled_box.xml



<shape xmlns:android="http://schemas.android.com/apk/res/android">  
    <solid android:color="#ffffffff"/>  
    <stroke android:width="1dip" color="@android:color/transparent"/>  
    <corners android:radius="7dip" />  
    <padding android:left="0dip" android:top="0dip"  
        android:right="0dip" android:bottom="0dip" />  
</shape> 

显示:



Dialog dialog = new Dialog(this,R.style.RecordAudioDialogSytle);
dialog.setCancelable(false);
dialog.setContentView(R.layout.main);
dialog.show();

android4.0设置状态栏:

    private void setStatusBarState(boolean statusBarState){
		StatusBarManager sbm = (StatusBarManager) mActivity.getSystemService("statusbar");
		if(statusBarState){
            sbm.disable(sbm.DISABLE_NONE);
		}else{
			sbm.disable(sbm.DISABLE_MASK);
		}
    }
加入权限
    <uses-permission android:name="android.permission.STATUS_BAR"/>
    <uses-permission android:name="android.permission.DISABLE_STATUS_BAR"/>

    
[3] 【转】一个容易的游戏服务器框架
    来源: 互联网  发布时间: 2014-02-18
【转】一个简单的游戏服务器框架
最近一段时间不是很忙,就写了一个自己的游戏服务器框架雏形,很多地方还不够完善,但是基本上也算是能够跑起来了。我先从上层结构说起,一直到实现细节吧,想起什么就写什么。

第一部分 服务器逻辑

服务器这边简单的分为三个部分,客户端的连接首先到达网关服务器,网关这里有个线程用来监听来自与客户端的连接,然后在将这些数据发送到游戏逻辑服务器上,这个逻辑游戏服务器上,数据的交互就是通过与数据服务器进行交互。RecordServer专门用来处理与数据库的连接,查询这些事情。当然为了游戏服务器能够最大程度的不卡,肯定就得规定好网关服务器上的连接数量,免得像我们号称流畅的铁道部订票网络一样做个卡B,想想玩一局dota被卡的悲剧吧。当我们要做一个大型网游时,这三个服务器显然不够。当然在自己写的小游戏的时候就无所谓了,几个服务器全部架设在自己的破笔记本上,不就是启动几个程序而已。

这个感觉写得就差不多了,到细节吧。

第二部分 实现细节

这个就比较乱了,零零散散的,随便写了。这里很多都是对各种工具的封装,以便于自己 在项目的使用

1.make

项目这么多目录,这么多子目录,肯定得用工具去编译了,使用aclocal,automake,autoconf,make,就把我们的程序编译好了,编写自己configure.in文件,定义编译选项、链接库等等一系列乱七八糟的东西,然后对每个需要编译的子项目编写Makefile.am,有的需要要编译成库的,比如base等基类这些,其他的都编译成可执行文件了,GatewayServer,LogicalServer,RecordServer。

2.套接字封装,epoll使用

linux里,我们使用socket来读写网络上的数据,这个很简单了,gateway上一个客户端连接过来,我们就为它分配一个socket 描述符了,在网关上,一个线程用来accept,一个线程用来做数据的处理,当accept一个连接请求后,放到数据处理的线程,接受到一个数据,然后直接转发到logical server上,我们使用epoll_wait,来处理套接上的读写处理。每n ms处理一次循环,每次循环中使用一次epoll_wait,一次把这些有事件的socket取出来。

3.数据加密解密,压缩解压

对网络上的数据,为了保证安全性,必须对它们进行加密解密处理,这个简单了,网上各种内容,这里就不说了(全部写完了,有时间再写)。对数据进行压缩,能减少带宽吞吐,就是简单的调用几个zlib函数的调用,不细说,在前面转发的《zlib使用》中有讲,发现自己太懒,实在是懒得打字了。

4.线程封装,互斥量,读写锁

这些都是简单的使用RAII或其他方式,对这些东西进行一次本地封装。(应该得写一个线程池去管理这些线程,todo)

5.数据库封装

使用mysql,使用mysql的C API函数,这个必须得封装一下,不是每次数据的处理,都得去做很多事情,实现一个本地的数据的Field(列),Record(记录),Table(表),DataBase(数据库),RecordSet(查询结果集)。制作一个数据库连接句柄MysqlHandle,处理对数据库的连接,处理等,实现一个HandlerPool,,每次从Pool中取出一个句柄来对数据库进行查询,免得每次都去重新连接,什么的。

6.自己的内存池

在之前分享的文章中《内存池技术详解》《编写自己的内存分配器》,自己的《内存池应用》,已经很详细的说明了,内存池的制作,当然我在这里还是有一些改动的,但是大概思路就是这些了。

7.有一个状态机的实现

这个也在自己之前写的那个状态机相关的文章里,也做记录了。哈哈,实在是不想继续码字了,但是还是坚持下去。

8.lua与c++交互框架

这个暂时写了一半,等全部完成了,再来弄,反正就是像npc处理这些,脚本处理这些,使用tolua++。

9.tinyxml封装,正则表达式封装

tinyxml一个轻量级的xml解析器,很简单,反正是把这些现成的东西拿来自己用。正则表达式没有进入c++标准,但是还是很多现成的正则表达式的处理,直接用linux库下的regex.h,就是编译正则表达式,匹配结果这些,

10.log系统

一个项目怎么能没有自己的日志系统呢,反正就是打日志,往文件里面写东西,用std::fstream轻松搞定,定义好日志级别:error / debug / fatel / info这些

11.时间封装

这个必须有,否则自己还每次去调用get_clocktime,gmtime,time各种函数呀。

12.使用boost库里的,Noncopyable,Singleton这些设计方法,来写我们的代码

13.定义好各种信号句柄,信号发生时采用什么策略,如SIGPIPE,做忽略处理

待续。。。。。。。。(睡觉了)

游戏服务器技术应该算来已经很成熟了,相比客户端,它的技术更新速度很慢了。客户端这边,技术很多,各种游戏引擎比如3D的虚幻这些,什么粒子引擎,声音这些,页游的flash, html5,utility,,太多了,搞不过来呀。我先把服务器这边好好专专,其他的等以后再说吧。
转自http://software.intel.com/zh-cn/blogs/2012/03/22/400010056/?cid=sw:prccsdn2203

    
最新技术文章:
▪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按钮单击事件的四种常用写法总结
c/c++开源软件 iis7站长之家
▪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