设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2015|回复: 3
打印 上一主题 下一主题

[讨论] 《我们都是是一家人》

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
跳转到指定楼层
1
发表于 2011-11-3 02:07:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 黑之翅膀 于 2011-11-3 02:10 编辑

我们都是一家人...《疯狂的学生》结局篇










广大成员3.jpg (157.69 KB, 下载次数: 15)

广大成员3.jpg

点评

防卡有什么用,其实真正的防卡脚本是不存在的哦亲,就算在强大的防卡脚本,放100个事件还是会卡的, lz这个地图已经有100个了吧……(7x16)  发表于 2011-11-3 22:22
黑之结界勇士

Lv1.梦旅人

星君

梦石
0
星屑
83
在线时间
2980 小时
注册时间
2011-10-9
帖子
2317

贵宾短篇七萝莉正太组冠军

2
发表于 2011-11-3 22:12:30 | 只看该作者
这么多事件不会卡么

点评

俺有防卡  发表于 2011-11-3 22:17

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
3
 楼主| 发表于 2011-11-4 00:08:02 | 只看该作者
皮卡星 发表于 2011-11-3 22:12
这么多事件不会卡么

暂时还没卡,不知道有没有一些脚本时临时缓冲地图的,如同网游,走到哪里缓冲哪里,而不是一次过加载完毕的...


黑之翅膀于2011-11-4 00:14补充以下内容:
不知道是啥...类似的...扣分吧...
  1. package zhangrb.ui;  
  2. import javax.microedition.lcdui.Graphics;  
  3. import javax.microedition.lcdui.Image;  
  4. /**
  5. * 地图缓冲类,生成一个和屏幕显示大小相同的缓冲图片,根据地图移动,尽量少的重绘地图
  6. * @author zhangrb
  7. */
  8. public abstract class BufferedImage{  
  9.     protected int x,y;// x,y坐标  
  10.     protected int w,h;// 宽度,高度  
  11.     protected int offx,offy;// 偏移量  
  12.     protected int Offx,Offy;// 当前偏移量  
  13.     protected Image buf;//缓冲图片  
  14.     protected Graphics bg;//缓冲绘制对象  
  15.     /**
  16.      * 构造方法,指定宽度和高度
  17.      */
  18.     public BufferedImage(int w,int h) {  
  19.         this.w=w;  
  20.         this.h=h;  
  21.         buf=Image.createImage(w,h);  
  22.         bg=buf.getGraphics();  
  23.         bufferImpl(0,0,w,h);  
  24.     }  
  25.     /**
  26.      * 绘制方法,供Canvas的绘制调用
  27.      * @param g
  28.      */
  29.     public final void paint(Graphics g) {  
  30.         int clipX=g.getClipX();  
  31.         int clipY=g.getClipY();  
  32.         int clipW=g.getClipWidth();  
  33.         int clipH=g.getClipHeight();  
  34.         int tempx=offx%w;  
  35.         int tempy=offy%h;  
  36.         {  
  37.             g.clipRect(x,y,w-tempx,h-tempy);  
  38.             g.drawImage(buf,x-tempx,y-tempy,0);  
  39.             g.setClip(clipX,clipY,clipW,clipH);  
  40.         }         
  41.         if(tempx>0)  
  42.         {  
  43.             g.clipRect(x-tempx+w,y,tempx,h-tempy);  
  44.             g.drawImage(buf,x-tempx+w,y-tempy,0);  
  45.             g.setClip(clipX,clipY,clipW,clipH);  
  46.         }         
  47.         if(tempy>0)  
  48.         {  
  49.             g.clipRect(x,y-tempy+h,w-tempx,tempy);  
  50.             g.drawImage(buf,x-tempx,y-tempy+h,0);  
  51.             g.setClip(clipX,clipY,clipW,clipH);  
  52.         }         
  53.         if(tempx>0 && tempy>0)  
  54.         {  
  55.             g.clipRect(x-tempx+w,y-tempy+h,tempx,tempy);  
  56.             g.drawImage(buf,x-tempx+w,y-tempy+h,0);  
  57.             g.setClip(clipX,clipY,clipW,clipH);  
  58.         }         
  59.     }  
  60.     /**
  61.      * 地图滚动
  62.      */
  63.     public final void scroll(int dx,int dy)  
  64.     {  
  65.         Offx+=dx;  
  66.         Offy+=dy;  
  67.     }  
  68.     /**
  69.      * 滚动地图到指定坐标
  70.      */
  71.     public final void scrollTo(int x,int y)  
  72.     {  
  73.         this.Offx=x;  
  74.         this.Offy=y;  
  75.     }  
  76.     /**
  77.      * 缓冲地图
  78.      * @param force,强制重新缓冲
  79.      */
  80.     public final void buffer(boolean force)  
  81.     {  
  82.         /*
  83.          * 地图无变化,
  84.          */
  85.         if(!force && Offx==offx && Offy==offy) return;  
  86.         /*
  87.          * 地图变化较大,则全部重新缓冲
  88.          */
  89.         if(force || Math.abs(Offx-offx)>=w || Math.abs(Offy-offy)>=h)  
  90.             bufferImpl(0,0,w,h);  
  91.         else
  92.         {  
  93.             int minX=Math.min(Offx%w,offx%w);  
  94.             int maxX=Math.max(Offx%w,offx%w);  
  95.             int minY=Math.min(Offy%h,offy%h);  
  96.             int maxY=Math.max(Offy%h,offy%h);  
  97.             if(Offx/w==offx/w && Offy/h==offy/h)  
  98.             {  
  99.                 bufferImpl(minX,0,maxX-minX,minY);  
  100.                 bufferImpl(0,minY,w,maxY-minY);  
  101.                 bufferImpl(minX,maxY,maxX-minX,h-maxY);  
  102.             }  
  103.             else if(Offx/w==offx/w)  
  104.             {  
  105.                 bufferImpl(0,0,w,minY);  
  106.                 bufferImpl(minX,minY,maxX-minX,maxY-minY);  
  107.                 bufferImpl(0,maxY,w,h-maxY);  
  108.             }  
  109.             else if(Offy/h==offy/h)  
  110.             {  
  111.                 bufferImpl(0,0,minX,h);  
  112.                 bufferImpl(minX,minY,maxX-minX,maxY-minY);  
  113.                 bufferImpl(maxX,0,w-maxX,h);  
  114.             }  
  115.             else
  116.             {  
  117.                 bufferImpl(0,0,w,minY);  
  118.                 bufferImpl(0,minY,minX,maxY-minY);  
  119.                 bufferImpl(maxX,minY,w-maxX,maxY-minY);  
  120.                 bufferImpl(0,maxY,w,h-maxY);  
  121.             }  
  122.         }  
  123.     }  
  124.     /*
  125.      * 缓冲具体实现,调用具体绘制方法 drawBuffer
  126.      */
  127.     private final void bufferImpl(int clipX,int clipY,int clipW,int clipH)  
  128.     {  
  129.         if(clipW<=0 || clipH<=0) return;  
  130.         int tempx=Offx%w;  
  131.         int tempy=Offy%h;  
  132.         // A  
  133.         {  
  134.             bg.translate(-bg.getTranslateX(),-bg.getTranslateY());  
  135.             bg.translate(-(Offx-tempx),-(Offy-tempy));  
  136.             bg.setClip(Offx,Offy,w-tempx,h-tempy);            
  137.             drawBuffer(bg);  
  138.         }  
  139.         // B  
  140.         if(tempx>0)  
  141.         {  
  142.             bg.translate(-bg.getTranslateX(),-bg.getTranslateY());  
  143.             bg.translate(-(Offx-tempx+w),-(Offy-tempy));  
  144.             bg.setClip(Offx-tempx+w,Offy,tempx,h-tempy);  
  145.             drawBuffer(bg);  
  146.         }         
  147.         // C  
  148.         if(tempy>0)  
  149.         {  
  150.             bg.translate(-bg.getTranslateX(),-bg.getTranslateY());  
  151.             bg.translate(-(Offx-tempx),-(Offy-tempy+h));              
  152.             bg.setClip(Offx,Offy-tempy+h,w-tempx,tempy);  
  153.             drawBuffer(bg);  
  154.         }  
  155.         // D  
  156.         if(tempx>0 && tempy>0)  
  157.         {  
  158.             bg.translate(-bg.getTranslateX(),-bg.getTranslateY());  
  159.             bg.translate(-(Offx-tempx+w),-(Offy-tempy+h));  
  160.             bg.setClip(Offx-tempx+w,Offy-tempy+h,tempx,tempy);  
  161.             drawBuffer(bg);  
  162.         }         
  163.         offx=Offx;  
  164.         offy=Offy;  
  165.     }  
  166.     /**
  167.      * 缓冲绘制,子类实现
  168.      */
  169.     protected abstract void drawBuffer(Graphics g);  
  170. }  
复制代码


黑之翅膀于2011-11-4 01:04补充以下内容:
这道他们在干什么吗?他们都准备往河里跳,打算把那条河流给埋了

点评

我们看到的只是一个窗口范围,其他我们还没看到的范围,其实系统也没看到...(因为还没加载= =)  发表于 2011-11-4 01:03
这么多事件都不卡……果然我的5岁电脑鸭梨山大么……  发表于 2011-11-4 00:24
黑之结界勇士
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4517
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

4
发表于 2011-11-4 15:35:47 | 只看该作者
      画面还工整,想要多少人都不卡的话,就把人物行走图放到地图元件E试试。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-29 04:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表