`
macken
  • 浏览: 342128 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
继续接上篇 http://macken.iteye.com/blog/1816783 写写metagun的图片加载机制 libgdx的坐标系使用的是笛卡尔坐标系,原点位于左下角。由于计算机图形学的历史,图形的渲染基本都是左上角开始,这种渲染方式也比较舒服。因此需要设置一下坐标系的原点为左上角;设置代码 public final void init (Metagun metagun) { this.metagun = metagun; Matrix4 projection = new Matrix4(); projection.setToOrtho(0, 320, 24 ...
继续上一篇 http://macken.iteye.com/blog/1816708  这篇写一下metagun的时钟周期 Metagun实现了ApplicationListener接口,程序会调用定时调用render()函数进行渲染 render函数实现 public void render () { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); accum += Gdx.graphics.getDeltaTime();// 1/60s为 一个时钟 while (accum > 1.0f / 60.0f) { ...
最近看android下的游戏开发,看了《Beginning Android Game》,顺便研究了下libgdx框架,看了下metagun源码,整体结构还是比较简单的,但是里面涉及到的数字运算还是比较吃力,把自己对源码的理解写下来备忘   整体类结构   1.应用程序全局类 Metagun:主应用程序类,render渲染,在render进行窗口渲染和维护时钟周期; Art:游戏图片资源加载类; Sound:游戏资源加载类,全部是wav,sound文件,没有什么可说的; Stats:游戏过程中的状态信息类; Input:输入监听器,实现了InputProcessor,接收所有 ...
最近用zookeeper搞了个黑名单系统,把在学习zookeeper的过程看过的资料整理记录一下   一、安装配置 安装:http://zookeeper.apache.org/releases.html 下载最新版本,解压文件即可使用; 解压得到的文件        配置文件位于conf目录下 zoo.cfg,一台服务器使用多个zookeeper服务时,可以设置多个配置文件        调用脚本位于bin目录下               zkCleanup.sh 清除zookeeper数据               zkServer.sh 启动\关闭zookeeper ...
脚本代码   date1=`date -d "$date1" +%Y%H%M` logpath="access.log" cat $logpath |awk -v now=$date1 'BEGIN{count=0}{if(match($4,'/\\\\/[0-9:]+/')){ date=substr($4,RSTART+1,10);if(date>=now && match($10,"500")){count=count+1;}}} END{print count}'

slf4j源码分析

    博客分类:
  • Java
近期由于想利用应用程序的输出日志做一些应用,了解了下java的log框架,先说slf4j,slf4j用来做什么的呢?官网解释            The Simple Logging Facade for Java or (SLF4J) serves as a simple facade or abstraction for various logging frameworks, e.g. java.util.logging, log4j and logback, allowing the end user to plug in the desired logging framewor ...
之前没用过HashSet,听到别人提到HashSet,看了下源码,HashSet基本是将HashMap进行了一层封装,通过一个静态变量实现了不允许存储相同key add方法实现   public boolean add(E e) { return map.put(e, PRESENT)==null; } private static final Object PRESENT = new Object();   每个存入的key,在HashMap中的value是一个静态对象,当下次再存入时,如果原来已经存入过时,map.put(K,V)会返回一个oldValue不为 ...
看源码可以知道HashMap内部是由一个  Entry[] table组成 Entry的定义如下   static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; final int hash; }    key、value 一个hash值,next ...
测试代码:https://github.com/taobao/taokeeper/blob/master/taokeeper-research/src/main/java/com/taobao/taokeeper/research/sample/JavaApiSample.java missing jmxtools 解决方法     <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> ...

logback udp appender

    博客分类:
  • Java
package com.macken; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.Appen ...

log4j

    博客分类:
  • Java
log4j简要结构图   logback

ThreadLocal这么回事

    博客分类:
  • Java
 今天线程池实现,看到一个使用ThreadLocal的地方,研究了一下ThreadLocal这东西,发现很有意思。 从源码研究看ThreadLocal的实现原理吧   package com.sogou.game.cms.pool; import org.apache.thrift.transport.TSocket; public class ConnectionManager { ThreadLocal<TSocket> socketThreadSafe = new ThreadLocal<TSocket>(); /** 连接提供池 */ ...
http://taurus-ly.com/articles/2012/02/153.html
{"code":"10025"}:发送重复内容   A00001:"系统繁忙,请稍候再试。" A00003:"无权限操作。" A00004:"该条留言不存在。" A00005:"评论内容含有非法关键字。" A00006:"操作成功" E00001:" ...
访问试听页面,由于使用了windows media player插件,所以一定能够拿到音频文件的播放地址,就看对方隐藏的巧妙程度了。。。   1.音频文件页面http://wuquku.com/music-play-9923.html,看了一下没有将地址存放在html页面中; 2.继续找,找到是通过Ajax形式进行加载,9923是音乐id; 3.发送ajax请求获取音频文件地址:http://wuquku.com/template/music/ajax.php?action=geturl&t=p&id=9923 返回音频文件的地址  http%3A%2F%2Fw ...
Global site tag (gtag.js) - Google Analytics