J2ME:clip窗口可使用anchor--转 -游戏开发频道-中国IT实验室-技术·资讯·教育·服务·社区
首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
 您现在的位置: 中国IT实验室 >> 游戏开发 >> 游戏开发文档 >> 正文
J2ME:clip窗口可使用anchor--转
来源:ChinaItLab 作者: 时间:2005-4-14


  /**
  
  * drawClip 画一个图片的一部分。clip窗口可使用anchor。
  
  *
  
  * @param g
  
  *  Graphics
  
  * @param x
  
  *  int 要画的位置x
  
  * @param y
  
  *  int 要画的位置y
  
  * @param image
  
  *  Image 图片
  
  * @param clipX
  
  *  int clip在图片中的坐标x
  
  * @param clipY
  
  *  int clip在图片中的坐标y
  
  * @param clipWidth
  
  *  int clip在图片中的宽度
  
  * @param clipHeight
  
  *  int clip在图片中的高度
  
  * @param anchor
  
  *  int 链接锚点
  
  */
  
      public static void drawClip(Graphics g, int x, int y, Image image,
  
     int clipX, int clipY, int clipWidth, int clipHeight, int anchor) {
  
     int[] old = { g.getClipX(), g.getClipY(), g.getClipWidth(),
  
    g.getClipHeight() }; //存储原来的初始Clip大小和坐标
  
  
  
     int offsetX = 0, offsetY = 0;
  
     switch (anchor) {
  
     // 对各种的anchor的处理就是对Graphics.TOP|Graphics.LEFT的相对偏移
  
     // 取各种情况下的相对于Graphics.TOP|Graphics.LEFT的X,Y偏移,最后
  
     // 以Graphics.TOP|Graphics.LEFT的anchor画出图形
  
     case Graphics.HCENTER | Graphics.TOP:
  
     offsetX = clipWidth / 2;
  
     break;
  
     case Graphics.RIGHT | Graphics.TOP:
  
     offsetX = clipWidth;
  
     break;
  
     case Graphics.LEFT | Graphics.VCENTER:
  
     offsetY = clipHeight / 2;
  
     break;
  
     case Graphics.HCENTER | Graphics.VCENTER:
  
     offsetX= clipWidth /2;
  
     offsetY = clipHeight / 2;
  
     break;
  
     case Graphics.RIGHT | Graphics.VCENTER:
  
     offsetX = clipWidth;
  
     offsetY = clipHeight /2;
  
     break;
  
     case Graphics.LEFT | Graphics.BOTTOM:
  
     offsetY = clipHeight;
  
     break;
  
     case Graphics.HCENTER | Graphics.BOTTOM:
  
     offsetX = clipWidth / 2;
  
     offsetY = clipHeight;
  
     break;
  
     case Graphics.RIGHT | Graphics.BOTTOM:
  
     offsetX = clipWidth;
  
     offsetY = clipHeight;
  
     break;
  
     }
  
     g.setClip(x - offsetX, y - offsetY, clipWidth, clipHeight);
  
     g.drawImage(image, x - clipX - offsetX, y - clipY - offsetY,
  
    Graphics.TOP | Graphics.LEFT);
  
     g.setClip(old[0], old[1], old[2], old[3]); //画完后恢复CLIP大小位置
  
      }
  
  
  
【责编:admin】

中国IT教育热线咨询

相关文章
dx8中关于用索引缓冲渲染索引图元
作为一个状态机的OpenGL
OGRE中的四元数与旋转
[RGSS]Sprite类方法教学
[RGSS]去掉“战斗|逃跑”选项
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
 基础入门  开发文档
 最新推荐
  多数的Windows程序都需要Windows.h和Windowsx.h这两个头文件,要确保使用它们。当然,你还需要其它......
游戏引擎演化史
在Windows上安装OGRE的方法
关于滤镜遮罩概念,Sobel 遮罩
游戏开发新手入门之Windows编程
游戏开发新手入门之位图化图形
教你实现卡通渲染的另类勾边方法
游戏设计大师谈如何成为一名游戏设
Visual C#编写 3D游戏框架示例
真正的 Java 学习从入门到精通
游戏开发经验——游戏开发的基本常
  为什么要研究攻击行为在人类有记载的5600年的历史中,共计发生了14,400次战争;今天,平均一天要发生............
游戏开发中显示对话的特殊句法
游戏原型设计的介绍
网络游戏中的攻击行为
谈动作类游戏的必要条件
规则的多元分析模式
载入位图文件到DirectDraw
Archer Game Suite 是什么?
浅谈游戏企划-新手入门篇
暴雪称霸游戏业界的六大秘密绝招
骨骼动画及示例Skinned Mesh的解析
  培训中心