- 浏览: 345564 次
- 性别:
- 来自: 北京
最新评论
-
白色蜻蜓:
...
(转载)新浪微博错误提示代码 -
crzdot:
我也是用ultroiso做的mini启用盘,然后再把iso拷到 ...
centos6.4安装 -
k496229870:
...
libgdx学习之Camera -
DiaoCow:
蛮不错的。
redis命令思维导图 -
kingdelee:
HTTPClient完胜?
URLConnection与HttpClient的对比
文章列表
继续接上篇 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,接收所有 ...
zookeper简单使用备忘
- 博客分类:
- zookeeper
最近用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}'
近期由于想利用应用程序的输出日志做一些应用,了解了下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 ...
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>();
/** 连接提供池 */ ...
探究网页中检测QQ登录原理
- 博客分类:
- 技术分析
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 ...