MyException - 我的异常网
当前位置:我的异常网» 移动开发 » Rokon发动机主要类介绍

Rokon发动机主要类介绍

www.MyException.Cn  网友分享于:2013-06-27  浏览:25次
Rokon引擎主要类介绍
com.stickycoding.rokon包:

Rokon:提供静态函数和属性
属性:circle,Polygon实例,圆形
      rectangle,Polygon实例,矩形。Sprite类的polygon属性默认为该矩形
函数:getActivity(),获取当前activity实例

----------------------------------------------
RokonActivity:Activity子类,提供基本的引擎参数设置和视图转换
onCreate(),入口函数,子类须覆写该函数,在该函数中设置全屏,横(竖)屏,界面尺寸,创建引擎,实例化自定义类

createEngine(),创建只包含SurfaceView的引擎
createEngine(boolean createRelativeLayout),参数为true创建包含SurfaceView和RelativeLayout的引擎,RalativeLayout可添加其他Android组件。以下4个函数须在createEngine前调用:

forceFullscreen(),全屏
forceGameSize(float width, float height),设置游戏界面尺寸
forceLandscape(),横屏,同时须在AndroidManifest.xml中设置属性android:screenOrientation="landscape"
forcePortrait(),竖屏,同时须在AndroidManifest.xml中设置属性android:screenOrientation="portrait"

onLoadComplete(),引擎创建成功后自动调用,须在子类中覆写,在该函数中初始化要使用到的所有图片Texture,以及调用setScene显示当前的Scene

dispose(),退出游戏时自动调用进行垃圾回收,若子类有自定义的类实例,须覆写该函数并在函数体内设置object = null

getGameHeight(),获取界面高
getGameWidth(),获取界面宽
getInterface(),获取createEngine中创建的RalativeLayout实例,可向其添加其他组件
getScene(),获取当前显示的Scene实例

setDrawPriority(int drawPriority),设置绘图模式,0-VBO模式,1-一般模式,默认为0,一般不需要自己调用
setGameSize(float width, float height),设置游戏界面尺寸,和forceGameSize不同之处在于:若参数宽高与实际手机屏幕尺寸不一致,会根据屏幕宽高比重新设置界面宽,并返回宽度值
setGraphicsPath(java.lang.String path),设置图片资源根目录路径,游戏图片资源均放在assets/graphics下
setScene(Scene scene),设置当前要显示的Scene实例

disableBack(),back键不起作用,若自定义了退出按钮事件,则可调用该函数屏蔽back键的退出功能
enableBack(),back键起作用,默认值

----------------------------------------------
Scene:场景类,包含若干层(Layer)
属性:activity,RokonActivity实例引用
构造函数:
Scene(),创建默认只有1个层,该层最多包含32个绘制对象的场景
Scene(int layerCount),创建layerCount个层,每个层都最多包含32个绘制对象的场景
Scene(int layerCount, int layerObjectCount),创建layerCount个层,每个层都最多包含layerObjectCount个绘制对象的场景
Scene(int layerCount, int[] layerObjectCount),创建layerCount个层,每个层包含的绘制对象个数由layerObjectCount数组指定

抽象函数,须在子类中覆写,覆写的函数体可为空
onReady(),在RokonActivity的setScene中自动调用,在该函数中可获取到activity,构造函数中获取activity为空
onGameLoop(),游戏逻辑循环,一直都在调用
onPause(),游戏暂停时调用,比如来电
onResume(),游戏恢复时调用,比如挂断电话重新回到游戏

add(GameObject drawableObject),添加一个GameObject到第一层(索引号为0)
add(int layerIndex, GameObject drawableObject),添加一个GameObject到指定层(索引号)

clear(),删除所有绘制对象
clearLayer(int index),删除某层中的所有绘制对象

moveLayer(int startIndex, int endIndex),移动层序
switchLayers(int layer1, int layer2),互换层序
例:初始层序〔0,1,2...〕,调用moveLayer(0,2)后,层序变为〔1,2,0...〕;调用switchLayer(0,2)后,层序变为〔2,1,0...〕

getLayer(int index),根据索引号获取某层实例
getWindow(),获取窗体实例
getWorld(),获取World实例,box2d使用

setBackground(Background background),设置界面背景,参数其实为FixedBackground实例(Background的子类)
setLayer(int index, Layer layer),替换某层
setWindow(Window window),设置游戏窗体
setWorld(World world),设置box2d世界

remove(DrawableObject drawableObject),删除某个绘制对象
removeWindow(),删除游戏窗体
removeWorld(),删除box2d世界

onTouch(float x, float y, MotionEvent event, int pointerCount, int pointerId) ,游戏区域点击
onTouchReal(float x, float y, MotionEvent event, int pointerCount, int pointerId),实际屏幕点击

isPhysicsPaused(),物理引擎是否暂停
pausePhysics(),暂停物理引擎
resumePhysics(),恢复物理引擎

noPhysics(),不使用物理引擎,默认设置
usePhysics(),使用物理引擎,setWorld中会调用

stopInvoke(),关闭类外函数调用
useInvoke(),启动类外函数调用,在Sprite类中某些动作执行开始和结束时会调用Scene类的函数,函数名参看Sprite类源代码

toastLong(java.lang.String message),显示长消息
toastShort(java.lang.String message),显示短消息

invoke(Callback callback)
invoke(java.lang.String methodName)
invoke(java.lang.String method,java.lang.Class<?>[] param,java.lang.Object[] paramVal)
invoke(java.lang.String methodName, java.lang.Object[] paramValues)
以上4个函数作用都是调用该类的方法,等同于直接:函数名(参数)的调用方式

onFadeEnd(DrawableObject object),绘制对象渐现(失)完后调用,可在子类覆写
onMoveEnd(DimensionalObject object),画布对象移动完后调用,可在子类覆写,注:只有调用DimensionalObject的move函数来移动对象,最后运动停止才会调用该方法

onEndScene(),转换到另一场景时释放当前场景资源,自动调用,需在子类中覆写该函数以释放自定义类实例

----------------------------------------------
Layer:层,包含在Scene中,所有绘制对象均添加于层中。Layer实例已在Scene有初始化,若需要自定义子类继承Layer,则应调用Scene.setLayer函数设置为自定义层显示
构造函数:
Layer(Scene parentScene, int maximumDrawableObjects),创建位于父场景parentScene中,最多包含maximumDrawableObjects个绘制对象的层

add(GameObject drawableObject),添加一个Gameobject对象

clear(),删除层中的所有对象

getGameObject(int index),获取某个绘制对象

setDrawOrder(int type),设置绘图次序类型,一共6种类型,取值0,1,2,3,4,5,默认为0,详见DrawOrder类

ignoreWindow(),忽略窗体绘制
useWindow(),依赖窗体绘制,默认使用
isUsingWindow(),是否依赖窗体

----------------------------------------------
Sprite:精灵类,继承GameObject,该类为一层层继承下来,请熟悉其继承关系!子类包含:LineSprite, PhysicalSprite, PolygonSprite, TextSprite, TiledSprite
构造函数:
Sprite(float x, float y, float width, float height),根据坐标和宽高创建精灵

onRemove(),精灵被删除时自动调用,子类需覆写该函数,设置类变量为null
onUpdate(),状态属性更新函数,在该函数中改变精灵的位移,旋转角度等

accelerate(float acceleration, float angle),沿某一角度(弧度为单位)加速运动,该角度相对于y轴
accelerate(float acceleration, float angle, float terminalVelocity)
沿某一角度(弧度为单位)加速运动,当线速度大于等于terminalVelocity时,以terminalVelocity值匀速运动
accelerateX(float accelerationX),水平方向加速运动
accelerateX(float accelerationX, float terminalSpeedX),水平方向加速运动,当线速度大于等于terminalSpeedX时,以terminalSpeedX值匀速运动
accelerateY(float accelerationY),垂直方向加速运动
accelerateY(float accelerationY, float terminalSpeedY) ,垂直方向加速运动,当线速度大于等于terminalSpeedY时,以terminalSpeedY值匀速运动

addModifier(Modifier modifier),添加一个Modifier实例,最多能同时添加8个modifier。Modifier类作用:持续一段时间改变Sprite属性值,需要自定义其子类,在子类中实现函数体。比如alpha值,可呈现闪动效果

removeModifier(Modifier modifier),删除某一个modifier
clearModifiers(),删除添加的所有modifiers

getPolygon(),获取精灵的外观形状,一般为矩形
getVertex(int index),获取精灵的某一个顶点坐标,会依据旋转和缩放而改变

setPolygon(Polygon polygon),设置精灵的形状,box2d使用

setSpeed(int x, int y),设置水平和垂直方向上的速度(位移)
setVelocity(float velocity, float angle),设置沿某一角度方向运动的速度

intersects(Sprite sprite),碰撞检测,判断是否和其他精灵相交

stop(),停止所有运动,旋转和位移

moveTo(float x, float y, long time)
moveTo(float x, float y, long time, int type)
moveTo(float x, float y, long time, int type, Callback callback)
以上3个函数均为设置一段时间内移动到某点,type通常设置为Movement.LINEAR,详见Movement 类;callback可设置运动完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onMoveToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!

rotateTo(float angle, int direction, int time, int type)
rotateTo(float angle, int direc, int time, int type, Callback callback)
以上2个函数为设置一段时间旋转到某个角度,direction为精灵类自定义常量ROTATE_TO_ANTI_CLOCKWISE(逆时针),ROTATE_TO_CLOCKWISE(顺时针),ROTATE_TO_AUTOMATIC(根据当前精灵角度和要旋转至的角度自动判断逆或顺时针旋转);callback可设置旋转完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onRotateToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!

----------------------------------------------
GameObject:继承DrawableObject,Sprite的父类
isAdded(),是否已添加到场景中

isTouchable(),是否接收触摸事件
removeTouchable(),设置为不可触摸
setTouchable(),设置为可触摸

----------------------------------------------
DrawableObject,继承BasicGameObject,GameObject的父类,不能接收触摸事件
animate(int[] animationTiles, long frameTime),自定义播放动画帧序列,以frameTime时间间隔一直循环播放

animate(int[] animationTiles, long frameTime, int loops, boolean returnToStart),自定义播放动画帧序列,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧

animate(int startTile, int endTile, long frameTime),从startTile帧播放至endTile帧,以frameTime时间间隔一直循环播放

animate(int startTile, int endTile, long frameTime, int loops, boolean returnToStart),从startTile帧播放至endTile帧,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧

fade(float startAlpha, float alpha, int time, int movementType),从初始startAlpha值经历一段时间time后变为alpha值,movementType取值通常为Movement.LINEAR,实现对象的渐现(失)

fade(float alpha, int time)
fade(float alpha, int time, int movementType)
从当前透明度值经历一段时间time后变为alpha值

forceDrawType(int drawType),设置对象绘制类型,3种类型,取值0,1,2,详见DrawPriority,一般不需要调用该函数

getParentLayer(),获取父层
getTextureTile(),获取当前显示的帧序号
getZ(),获取该对象的层序

setAlpha(float alpha),设置透明度
setBorder(boolean border),设置是否有边框
setBorder(float red, float green, float blue, float alpha),设置边框颜色,仅对没有图片呈现的对象起作用,会绘制一个边框
setZ(int z),设置该对象层序,影响对象绘制先后顺序。调用该函数后,须调用layer.setDrawOrder(DrawOrder.Z_ORDER)才会起作用
noBorder(),设置无填充

setTexture(Texture texture),设置需呈现的图片Texture实例
setTextureTile(int tileIndex),设置显示某帧图片,从0计数
setTextureTile(int column, int row),设置显示图片上某行某列的帧图片
setTextureTile(Texture texture, int tileIndex),设置需呈现的图片Texture实例和要显示的某帧图片

show(),显示对象
hide(),隐藏对象
isAlive(),对象是否存活,若已删除了该对象,则为false,否则为true
isOnScreen(),是否在屏幕可视区域内
isVisible(),是否可见

stopFade(),停止渐现(失)动画

remove(),删除该对象,等价于Scene.remove(drawableObject)

onRemove(),删除对象时自动调用,如有必要,须在子类中覆写
onUpdate(),动画播放和渐现(失)更新函数

----------------------------------------------
BasicGameObject:继承RotationalObject,DrawableObject的父类
attemptInvoke(Callback callback)
attemptInvoke(java.lang.String methodSuffix) attemptInvoke(java.lang.String methodSuffix, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
attemptInvoke(java.lang.String methodSuffix, java.lang.Object[] parameters)
调用父场景(Scene)的函数,相当于scene.name_methodName()

getParentScene(),获取父场景
getId(),获取该对象id号
getName(),获取该对象名

setId(int id),设置对象id号
setName(java.lang.String name),设置对象名,若不设置对象名,attemptInvoke不会调用scene的函数

----------------------------------------------
RotationalObject:继承DimensionalObject,BasicGameObject的父类,只是比DimensionalObject多了旋转属性的控制
rotate(float rotation),旋转rotation(弧度)
rotateAboutCentre(),设置以中心点旋转
rotateAboutPoint(float rotationPivotX, float rotationPivotY),设置以参数指定参考点旋转
setRotation(float rotation),设置角度
setRotation(float rotation, float rotationPivotX, float rotationPivotY),以参考点设置角度

----------------------------------------------
DimensionalObject:继承Point,子类包括RotationalObject和Window
centre(float x, float y),以中心点为参考点放置对象

move(float x, float y, float width, float height, int time)
move(float x, float y, float width, float height, int time, int movementType),在一段时间内移动并缩放对象

move(float x, float y, int time)
move(float x, float y, int time, int movementType)
在一段时间内移动到某点,当运动完成后会自动调用Scene.onMoveEnd(object)

resize(float width),根据参数宽等比例重新设置对象尺寸
resize(float width, float height, int time)
resize(float width, float height, int time, int movementType)
在一段时间内缩放对象

grow(float width, float height),参数为正,则放大对象;参数为负,缩小对象
shrink(float width, float height),与grow函数相反

scaleFromCentre(float width, float height, int time, int movementType)
以对象中心点为参考点,在一段时间内缩放对象
stopMove(),停止移动
stopScale(),停止缩放

----------------------------------------------
Point:继承Vector2,DimensionalObject的父类
move(float x, float y),移动参数指定的位移

setXY(float x, float y),设置坐标位置

getParent(),获取相对父坐标
setParent(Point point),设置相对父坐标
removeParent(),移除相对父坐标,还原为以原点为参考点

----------------------------------------------
Texture:图片显示的依附体,包含子类:DynamicTexture, FontTexture, TextTexture, TextureAtlas
构造函数:
Texture(java.lang.String filename),以图片名创建一个Texture实例
Texture(java.lang.String filename, int columns, int rows),以图片名和图片行列数创建一个Texture实例,用在小图集成在大图上的情况

getWidth(),获取图片宽度
getHeight(),获取图片高度
getTileWidth(),若图片是小图的集成图,获取单个小图的宽度
getTileHeight(),若图片是小图的集成图,获取单个小图的高度

----------------------------------------------
TextureAtlas:可理解为Texture实例的集合,除了DynamicTexture,其他类型的Texture都可以加入到TextureAtlas,可以提高游戏速度
构造函数:
TextureAtlas(),创建默认最多加载64个Texture,图片宽高最大为1024的实例
TextureAtlas(int maxTextureCount),创建允许加载maxTextureCount个Texture,图片宽高最大为1024的实例
TextureAtlas(int maxTextureCount, int texAtlasWidth, int texAtlasHeight)
创建允许加载maxTextureCount个Texture,图片宽最大为texAtlasWidth,高最大为texAtlasHeight的实例

complete(),添加完所有Texture后,要调用该函数
insert(Texture texture),添加一个Texture实例(除了DynamicTexture)
setUnloaded(),注销添加的所有Texture

----------------------------------------------
TextSprite:用来显示文本
属性:
text,显示的文本
构造函数:
TextSprite(float x, float y, float characterWidth, float height)
创建一个在坐标(x,y)上,单个字符宽为characterWidth,高为height的文本Sprite

setTexture(Texture texture),参数必须为TextTexture实例(通过Font.createTexture(string)创建的TextTexture)!

----------------------------------------------
PhysicalSprite:创建用于box2d物理引擎的sprite
createDynamicBox(FixtureDef fixtureDef)
createStaticBox(FixtureDef fixtureDef)
createKinematicBox(FixtureDef fixtureDef)
创建不同类型的,形状为矩形的PhysicalSprite

createDynamicCircle(FixtureDef fixtureDef)
createStaticCircle(FixtureDef fixtureDef)
createKinematicCircle(FixtureDef fixtureDef)
创建不同类型的,形状为圆形的PhysicalSprite

----------------------------------------------
Font:字体类
属性:
paint,绘制文本的画笔,可用来设置字体样式和颜色
构造函数:
Font(Typeface typeface),以Typeface实例为参数创建一个字体类,Typeface类详见android.graphics.Typeface

createTexture(java.lang.String text),创建一个TextTexture实例
createTexture(java.lang.String text, int width),创建一个指定宽度范围的TextTexture实例

setFontSize(float fontSize),设置字体大小,默认大小为64.0f

----------------------------------------------
Polygon:多边形类,有子类CirclePolygon
构造函数:
Polygon(),创建一个没有顶点的实例,实际编程不会用到这种初始方式
Polygon(float[] vertices),创建包含若干顶点x,y坐标的多边形,坐标以float数组形式提供
Polygon(Point[] vertices),创建包含若干顶点坐标的多边形,坐标以Point数组形式提供

addVertex(float x, float y),添加一个顶点,参数为x,y
addVertex(Point location),添加一个顶点,参数为Point

complete()
findEdges()
以上2个函数其实一样,complete直接调用的findEdges,顶点添加完毕后调用,若是调用了addVertex函数增加了新的顶点,则需要调用该函数

getPolygonShape(),初始化一个PolygonShape实例,box2d使用
getVertex(int index),获取某个顶点Point
getVertexCount(),获取多边形总顶点数

----------------------------------------------
MathHelper:提供实用的静态常量和函数
常量:
DEG_TO_RAD,角度到弧度的转化值,例:degree×DEG_TO_RAD
RAD_TO_DEG,弧度到角度的转化值,例:radians×RAD_TO_DEG

distanceToShape(float x, float y, Sprite sprite),计算某点到精灵的最短距离

intersects(Sprite sprite1, Sprite sprite2),精灵间的碰撞检测,等同于sprite.intersects(otherSprite)

pointInRect(float pointX, float pointY, float x, float y, float width, float height),判断某点是否在矩形内

pointInShape(float x, float y, Sprite sprite),判断某点是否在sprite内

rectOverlap(float rect1X1, float rect1Y1, float rect1X2, float rect1Y2, float rect2X1, float rect2Y1, float rect2X2, float rect2Y2)
判断两矩形是否相交

rotate(float angle, float x, float y, float pivotX, float pivotY)
计算某点(x,y)依照参考点(pivotX,pivotY)旋转angle角度后的新坐标

----------------------------------------------
Callback:回调函数类
Callback(java.lang.String methodName)
创建无参的函数名为methodName的回调
Callback(java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
创建包含若干参数数据类型,参数值的回调
Callback(java.lang.String methodName, java.lang.Class<?> parameterType, java.lang.Object parameter)
创建包含一个参数类型,参数值的回调
Callback(java.lang.String methodName, java.lang.Object parameter)
创建包含一个参数值的回调
Callback(java.lang.String methodName, java.lang.Object[] parameters)
创建包含若干参数值的回调

----------------------------------------------
Modifier:动态改变精灵属性的类,目前只有Blink子类。需自定义其他子类继承该类实现想要的效果,子类需覆写的函数包括以下3个:
onStart(Sprite sprite),初始化自定义变量函数
onUpdate(Sprite sprite),状态属性持续更新函数
onEnd(Sprite sprite),调用end()函数结束更新时调用

end(),移除modifier实例
getSprite(),获取运行该modifier的精灵引用

----------------------------------------------
Preferences:数据存储类
静态属性:
object,SharedPreferences实例


----------------------------------------------
其他未提及但需要了解的类:Debug,DrawOrder,DrawPriority,Movement,Physics,TextureManager,Time,Window


忽略不看的类:AllocationGuard,BlendFunction,BufferObject,ColourBuffer,FixedSizeArray<T>,FPSCounter,GLHelper,GLSurfaceView,MotionEventWrapper5,MotionEventWrapper8,QuickSorter<Type>,RokonRenderer,RokonSurfaceView,Sorter<Type>,StandardSorter<T>,VBOManager






com.stickycoding.rokon.audio包:提供声音播放的类
RokonAudio:播放音效的类,最多包含50个音效,同时可最多播放5种音效
createSoundFile(java.lang.String filename),根据音频文件名创建一个 SoundFile实例,音频文件必须放在assets文件夹中(子目录也可)

destroy(),释放音频资源,通常在退出游戏时调用

removeSoundFile(SoundFile soundFile),删除某一个SoundFile

setMasterVolume(float masterVolume),设置音量大小,参数取值范围0-1

mute(),静音,仅对音效起作用,对背景音乐无用
unmute(),取消静音
isMuted(),是否静音

----------------------------------------------
SoundFile:音效文件类
getId(),获取该音效id号

play(),播放音效
playContinuous(),重复播放音效

unload(),从内存中删除音效

----------------------------------------------
RokonMusic:播放背景音乐的类,该类均为静态函数
getMediaPlayer(),获取MediaPlayer实例,请见android.media.MediaPlayer

pause(),暂停播放
play(),开始播放
stop(),停止播放

play(java.lang.String file),播放一次某个音频文件
play(java.lang.String file, boolean loop)播放某个音频文件,loop指代是否循环


----------------------------------------------
com.stickycoding.rokon.background包
FixedBackground:背景图片类,继承Background
构造函数:
FixedBackground(Texture texture),创建一个背景图片实例,调用Scene.setBackground(bg)可将其添加到场景上显示

----------------------------------------------
com.stickycoding.rokon.device包
Graphics:获取设备信息的类,均为静态函数
determine(Activity activity),调用该函数后,可获取屏幕尺寸等信息。当调用RokonActivity.createEngine()时已调用该函数。

getWidthPixels(),获取屏幕宽
getHeightPixels(),获取屏幕高

isSupportsVBO(),设备是否支持VBO模式
setSupportsVBO(boolean supportsVBO),设置是否支持VBO模式。不能自己调用

----------------------------------------------
OS:软件API版本,设备支持VBO与否,均为静态变量和函数
属性:
API_LEVEL,软件使用的API最低版本号

determineAPI(),获取版本号并设置运行该应用程序的设备是否支持VBO。当调用RokonActivity.createEngine()时已调用该函数。

----------------------------------------------
Accelerometer:加速计,主要均为静态变量和函数
属性:
minShakeInterval,晃动手机的最小事件间隔,默认值1000ms
shakeThreshold,晃动手机的最小力度,默认值3000

startListening(OnAccelerometerChange onAccelerometerChange),注册一个加速计监听接口
stopListening(),注销监听

----------------------------------------------
OnAccelerometerChange接口:实现加速计处理的接口,包含2个函数需要实现该接口的类实现具体函数体
onAccelerometerChange(float x, float y, float z),手机倾斜时调用,参数为各方向上的值
onShake(float intensity),晃动手机时调用,参数为晃动手机的力度

----------------------------------------------
Vibrator:震动控制,均为静态函数。须在AndroidManifest.xml中添加<uses-permission android:name="android.permission.VIBRATE"></uses-permission>

disable(),禁止震动
enable(),开启震动

vibrate(long time),震动多长时间
vibrate(long[] pattern, int repeat),以pattern定义的数组值在开启和关闭震动间转换,第一个数组值为开启震动前的等待时间,然后转换;repeat表示需要从数组的哪个索引开始循环如此的转换,若不需要循环,则该参数值为-1。


----------------------------------------------
com.stickycoding.rokon.modifiers包
Blink:Modifier子类,实现间隔500ms闪烁精灵,10s后停止闪烁的效果


----------------------------------------------
com.stickycoding.rokon.tileengine包
TiledLayer:继承Layer,包含子类RectangularLayer,呈现tile地图的类
TiledSprite:继承Sprite,添加到TiledLayer的专用精灵类

文章评论

什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
如何成为一名黑客
如何成为一名黑客
旅行,写作,编程
旅行,写作,编程
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
漫画:程序员的工作
漫画:程序员的工作
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
老程序员的下场
老程序员的下场
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
每天工作4小时的程序员
每天工作4小时的程序员
一个程序员的时间管理
一个程序员的时间管理
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
代码女神横空出世
代码女神横空出世
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
我的丈夫是个程序员
我的丈夫是个程序员
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
鲜为人知的编程真相
鲜为人知的编程真相
程序员必看的十大电影
程序员必看的十大电影
程序员都该阅读的书
程序员都该阅读的书
为什么程序员都是夜猫子
为什么程序员都是夜猫子
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
我是如何打败拖延症的
我是如何打败拖延症的
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
那些争议最大的编程观点
那些争议最大的编程观点
10个调试和排错的小建议
10个调试和排错的小建议
中美印日四国程序员比较
中美印日四国程序员比较
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员应该关注的一些事儿
程序员应该关注的一些事儿
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
编程语言是女人
编程语言是女人
 程序员的样子
程序员的样子
程序员的鄙视链
程序员的鄙视链
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
总结2014中国互联网十大段子
总结2014中国互联网十大段子
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有