ADT连接不到手机

今日碰到一个情况,ADT的Devices里面死活看不到LG L24的手机,但是手机能连上,其他手机也可以,又没提示找不到设备的

后来重新安装了一个他的官方驱动就KO了

logcat没有输出

简单的恢复方法: 1、clean logcat的内容 2、在Android 的 Devices视图,对自己的应用点一下debug。 一般这样以后Logcat 里就会突然出现很多消失了很久的log了。

多是这样引起的: 1.logcat那里可能选’V’显示全部;其它的是特定的信息。 2.device栏里,应该选中emulator,而不是下面正在运行的各个app。

来自:http://www.eoeandroid.com/thread-866-1-1.html

quick cocos2dx 让窗口变灰

Quick-x cocos2dx的各种变灰

  1. 使用quick封装好的滤镜效果filters,源码framework目录下有个filter.lua,直接使用里面的方法就可以了,一般都是对单个Sprite有效,而且只对单个哦

  使用方法:

 变灰:display.newFilteredSprite("a.png", unpack({"GRAY",{0.2, 0.3, 0.5, 0.1}})     )    
 或者先一个nil后面再加图:  local grayImg1 = display.newFilteredSprite( nil  , unpack({"GRAY",{0.2, 0.3, 0.5, 0.1}})  )  
再或者直接使用灰图 local grayImg1 = display.newGraySprite( nil  ,  {0.2, 0.3, 0.5, 0.1}  )  
--以下只对quick 2.2.X下有用 local texture  = cc.TextureCache:sharedTextureCache():addImage( "16.png") 
grayImg1:setTexture(texture)
grayImg1:addTo(node)
grayImg1:setPosition(img1:getPositionX(), img1:getPositionY())
具体有多少种滤镜呢?可以看samples\filters例子 

   MainScene._FILTERS = {
    -- colors
    {"GRAY",{0.2, 0.3, 0.5, 0.1}},
    {"RGB",{1, 0.5, 0.3}},
    {"HUE", {90}},
    {"BRIGHTNESS", {0.3}},
    {"SATURATION", {0}},
    {"CONTRAST", {2}},
    {"EXPOSURE", {2}},
    {"GAMMA", {2}},
    {"HAZE", {0.1, 0.2}},
    --{"SEPIA", {}},
    -- blurs
    {"GAUSSIAN_VBLUR", {7}},
    {"GAUSSIAN_HBLUR", {7}},
    {"ZOOM_BLUR", {4, 0.7, 0.7}},
    {"MOTION_BLUR", {5, 135}},
    -- others
    {"SHARPEN", {1, 1}},
    {{"GRAY", "GAUSSIAN_VBLUR", "GAUSSIAN_HBLUR"}, {nil, {10}, {10}}},
    {{"BRIGHTNESS", "CONTRAST"}, {{0.1}, {4}}},
    {{"HUE", "SATURATION", "BRIGHTNESS"}, {{240}, {1.5}, {-0.4}}},
}

  参考列表:

  • filter源码 GitHub>>>
  • display源码>>>

    上面办法有个缺点就是对一张图来灰化,因为Sprite嘛,对一个容器就无能为力了,要对整个容器,看下面这个方法

    2.setColor 确切来说,变色,不叫变灰,但是效果也是一样的,变成灰色而已, 好处是对他层下的整个容器有效果

    –白色跟任何色混合还是原来的颜色,和黑色变黑,红色和绿色混合会变成黄色 if not found then self._Canvas:setCascadeColorEnabled(true) self._Canvas:setColor(ccc3(80, 80, 80)) else self._Canvas:setColor(display.COLOR_WHITE) end

setCascadeColorEnabled 可以当前这个容器下的一级层起到变色效果,但对更深入和层就无招了,比较适合从CCS导入的容器

3. 使用Shader (着色器),但只有quick 3.X版本才引入了,这东西在cocos2dx里面用到,因为OpenGL嘛, 3D常用的嘛,看这个文章里面的图>>>

local function darkNode(node) 

 local vertDefaultSource = "\n"..
                       "attribute vec4 a_position; \n" ..
                       "attribute vec2 a_texCoord; \n" ..
                       "attribute vec4 a_color; \n"..                                                    
                       "#ifdef GL_ES  \n"..
                       "varying lowp vec4 v_fragmentColor;\n"..
                       "varying mediump vec2 v_texCoord;\n"..
                       "#else                      \n" ..
                       "varying vec4 v_fragmentColor; \n" ..
                       "varying vec2 v_texCoord;  \n"..
                       "#endif    \n"..
                       "void main() \n"..
                       "{\n" ..
                        "gl_Position = CC_PMatrix * a_position; \n"..
                       "v_fragmentColor = a_color;\n"..
                       "v_texCoord = a_texCoord;\n"..
                       "}"

local pszFragSource = "#ifdef GL_ES \n" ..
                      "precision mediump float; \n" ..
                        "#endif \n" ..
                        "varying vec4 v_fragmentColor; \n" ..
                        "varying vec2 v_texCoord; \n" ..
                        "void main(void) \n" ..
                        "{ \n" ..
                         "vec4 c = texture2D(CC_Texture0, v_texCoord); \n" ..
                        "gl_FragColor.xyz = vec3(0.4*c.r + 0.4*c.g +0.4*c.b); \n"..
                        "gl_FragColor.w = c.w; \n"..
                        "}"

local pProgram = cc.GLProgram:createWithByteArrays(vertDefaultSource,pszFragSource)

pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION,cc.VERTEX_ATTRIB_POSITION)
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_COLOR,cc.VERTEX_ATTRIB_COLOR)
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD,cc.VERTEX_ATTRIB_FLAG_TEX_COORDS)
pProgram:link()
pProgram:updateUniforms()
node:setGLProgram(pProgram)

end
local img1 = cc.uiloader:seekNodeByName(node, "Image_34_0")
 darkNode(img1   )

更多有纹理的CCTexture2D \ CCTexturePVR\ CCTextureCache \CCTextureAtlaslink>>>

以上代码来源于网络: – Link1 >>>

OpenGL绘图初学习

源起 0107 想要一个蒙板效果:

    if not found then 
      self._Canvas:setCascadeColorEnabled(true)
--整个变个半黑色,注意这人_canvas结构不能再有目录了,只对他目录下的层有效,目前的cocos2dx是这样
      self._Canvas:setColor(ccc3(80, 80, 80))
    else 
--显示原来颜色
      self._Canvas:setColor(display.COLOR_WHITE)
    end 

1.关于OpenGL与DirectX的故事:>>>

2.混合:有时候想使新画的颜色和已经有的颜色按照一定的方式进行混合,比如想使物体拥有半透明的效果,或者绘制叠加光亮的效果,这时候就要用到glBlendFunc()函数 >>>

3.蒙板的使用 >>>

4.Cocos2dx绘图机制 >>>

利用CCRenderTexture渲染文理的方式生成带有描边效果的文字

这种方式难点在于,很多人不了解OpenGl的绘图着色机制,不过也不要紧,这里只用到了一点着色知识,就是颜色的混合,这个大多数的人都知道,红色和绿色混合会变成黄色,黑色和任何颜色混合还是黑色(0*任何数=0),任何颜色和白色的混合不改变颜色。

绘图时,OpenGL会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后做运算得到新的颜色值,并按照新的颜色来绘制。

比如,RGB格式,原来的颜色是(255,0,0)–红色,目标颜色是(0,255,0)–绿色,加入系数为{1,0},运算方式为颜色的叠加,这意味着新的颜色为(255,0,0)*1+(0,255,0)*0=(255,0,0)–红色,就是完全不用目标颜色的值,相当于没变色,系数中源因子为前者:1,目标因子为后者:0,这是{1,0}的混合机制。

android项目编译有时会出奇怪的问题

id/Android.mk: Cannot find module with tag ‘android’ in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?



其实不是没有android模块也不是ndk_module_path没配置,其实是其他一个.a文件没加进来,去掉编译,又报这个错,加上这个.a文件就OK了,也不报这个错了,libPluginProtocolStatic.a 文件

软考-设计模式-组合Composite模式


Composite模式的意图是“将对象组合成树形结构表示‘整体-部分’的层次结构。
Composite使得用户对单个对象和组合对象的使用更具有一致性”。


在Word中我们经常会将一些图元进行“组合”,组合以后的图形还可以向简单图元那样进行移动、变形等等操作;
除此以外,在Word中,我们对于一个字符、一个词组、一句话、一个段落,甚至是整篇文章的操作是相同的,
我们都可以进行剪切、复制,进行字体与大小的调整,进行颜色的变换。这些例子都是Composite模式的实例,
我们将简单的元素组合成复杂的元素,然后还可以像操作简单元素那样操作组合元素。


“组合模式方便于处理递归以及分级数据结构。例如:计算机的文件系统,文件系统由目录和文件组成。目录之中可以是目录,也可以是文件。
因而,计算机的文件系统由递归结构组织而成。如果想编程表示这一数据结构,就可以使用组合模式。”
组合模式有三种元素:元素接口、叶子元素(即文件)、组合元素(即目录)。叶子和组合都实现同一个接口,例如 ↓↓
以上只是举个例子,请根据实际情况考虑。之所以让叶子和组合实现相同的接口是因为这样可以以相同的方式对待所有的元素。
例如我们平时所用到的移动文件,复制文件什么的,这些操作对于叶子(文件)还是组合(文件夹)都是相同的,
只要保证了它们的接口相同,就可以相同的对待。而不同的有例如组合(文件夹)可以加减 item,而叶子(文件)不可以等。
这些可以通过它们接口方法的各自实现不同来做到,像上述接口中的 addItem(),
在组合里就是加 item 的相关操作,而在叶子里就是空的,来实现叶子不能加 item 的效果


参考:星际里面的选地图:>>>>


详细代码:>>>


透明模式和安全模式 >>>>

可以打印出如下目录
目录 C:
-文件: 小说.txt
-目录 动作片
–文件: 苍老师.avi
–目录 爱情动作片
—文件: 苍老师大战automan.avi
-目录 空目录1 
–空目录11 该目录没有东西 
–空目录12 该目录没有东西 
–空目录13 该目录没有东西 
-空目录2 该目录没有东西 
-空目录3 该目录没有东西 
-文件: 小说2.txt


手动档开车,离合器,换档

——-转的

http://a.xcar.com.cn/bbs/thread-17342709-0-2.html

这个看速度,如果速度慢到要降档了,就要踩离合,如果1挡,没法降了,就踩住离合。

我说详细点吧,如果路上你跑100,要刹车了,就踩刹车,不用踩离合。 一直刹车到速度大概40多,你车子还在5档,明显撑不住了,赶紧踩离合,判断路况,如果觉得车子还要降速度,就换4挡,如果速度可以起来了,就控制离合保持5档,如果加油没力,就换4档冲起来,具体路况灵活应用。

如果急刹车也一样,直接采刹车,不踩离合,速度慢到车子抖动了,前面没危险了,可以踩离合换挡。如果前面还有危险,管他死火不死火,别踩离合。

刹车踩不踩离合制动距离差很远。

lua的异常处理

异常处理

function catch(what) 
   return what[1] 
end 

function try(what) 
   status, result = pcall(what[1]) 
   if not status then 
      what[2](result) 
   end 
   return result 
end 



try { 
   function() 
      error('oops') 
   end, 

   catch { 
      function(error) 
         print('caught error: ' .. error) 
      end 
   } 
 } 

所以可以用下面的办法

local status, result = pcall( function() 
trace("1111") 
end 
) 
if not status then  
print(result) 
end  

quick cocos2dx –layer

1.创建一个有颜色的层

--红色,透明度100。其中255为不透明,最后一个为透明
local  color4B = ccc4(255, 0, 0, 100); 
local  layerColor = CCLayerColor:create(color4B, 300, 300); 
layerColor:setContentSize(50,50);--也只有他设置setcontentSize才有效,其他的layer都没有用,包括从cocosStudio创建出来的也不会 

参考文档:
CCLayer调整触摸区域的大小 接受触摸事件 调整优先级等的理解 颜色布景层CCLayerColor

2.设置层大小

--红色,透明度100。其中255为不透明,最后一个为透明
local  layer1= display.newLayer(); 
layer1:setContentSize(50,50);-- 这样是不没有用的,只有建一个颜色层才有用