当前位置: 首页 > news >正文

大型企业网站优化手机网站解析

大型企业网站优化,手机网站解析,wordpress 关联文章,建立网站站点的步骤上一讲#xff0c;我们已经实现了点击play进入游戏界面但仅仅是个黑屏 今天#xff0c;我们就试着编写代码让它出现游戏的一些简单场景。还是在上一讲的代码基础上#xff0c;我们创建两个类#xff1a;World 和 WorldRenderer 1.Word类#xff1a; 12345678910111213141… 上一讲我们已经实现了点击play进入游戏界面但仅仅是个黑屏  今天我们就试着编写代码让它出现游戏的一些简单场景。还是在上一讲的代码基础上我们创建两个类World 和 WorldRenderer  1.Word类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package com.zhf.mylibgdx; /**  * 统一管理世界中各个部分  * author ZHF  *  */ public class World {     /**世界监听器接口**/     public interface WorldListener {         //跳跃         public void jump ();         //高跳         public void highJump ();         //碰撞         public void hit ();         //收集金币         public void coin ();     }                                                                                                                                                                                                                                                                                        //宽和高     public static final float WORLD_WIDTH  10;     public static final float WORLD_HEIGHT  15 * 20;     //状态     public static final int WORLD_STATE_RUNNING  0;  //运行     public static final int WORLD_STATE_NEXT_LEVEL  1;  //下一关     public static final int WORLD_STATE_GAME_OVER  2;  //游戏结束     //世界监听器     public  WorldListener listener;                                                                                                                                                                                                                                                                                        public World(WorldListener listener) {         this.listener listener;     } } 2.WorldRenderer类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 package com.zhf.mylibgdx; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; /**  * 用来把每个对象关联相应的图片资源同时控制相机实现动画。  * author ZHF  *  */ public class WorldRenderer {     //宽和高     static final float FRUSTUM_WIDTH  10;     static final float FRUSTUM_HEIGHT  15;                                                                                                                                                                                                                                                                             World world;  //世界     OrthographicCamera cam;  //相机     SpriteBatch batch;  //用于绘画     TextureRegion background;  //背景图片                                                                                                                                                                                                                                                                             public WorldRenderer(SpriteBatch batch, World world) {         this.world world;         //OrthographicCamera 被定义成 宽度为10高度为15同样的也把相机对准中心点。         this.cam  new OrthographicCamera(FRUSTUM_WIDTH, FRUSTUM_HEIGHT);         //它指定了和屏幕一样大小的 OrthographicCamera 并把相机对准屏幕的中心。         this.cam.position.set(FRUSTUM_WIDTH / 2, FRUSTUM_HEIGHT / 2, 0);         this.batch batch;     }                                                                                                                                                                                                                                                                             /**渲染**/     public void render () {         cam.update();         //它的作用都是通过把映射矩阵绑定给SpritBatch告诉SpritBatch怎么去绘制图形         batch.setProjectionMatrix(cam.combined);         //渲染背景         renderBackground();         //渲染游戏中各种元素Bob,跳板松鼠弹簧。。下一讲中会具体讲到 //      renderObjects();     }                                                                                                                                                                                                                                                                             /**渲染背景**/     public void renderBackground () {         batch.disableBlending();         batch.begin();         //绘制背景         batch.draw(Assets.backgroundRegion, cam.position.x - FRUSTUM_WIDTH / 2, cam.position.y - FRUSTUM_HEIGHT / 2, FRUSTUM_WIDTH,             FRUSTUM_HEIGHT);         batch.end();     } }    接下来就是在GameScreen中调用这两个类完成框架的连接搭建。 声明 1 2 3 4 //游戏场景 World world; WorldRenderer renderer; WorldListener worldListener; 实例化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //实例化场景         worldListener  new WorldListener() {             Override             public void jump () { //              Assets.playSound(Assets.jumpSound);             }             Override             public void highJump () { //              Assets.playSound(Assets.highJumpSound);             }             Override             public void hit () { //              Assets.playSound(Assets.hitSound);             }             Override             public void coin () { //              Assets.playSound(Assets.coinSound);             }         };         world  new World(worldListener);         renderer  new WorldRenderer(batcher, world); 调用在GameScreen的draw()方法中调用 1 2 //绘制游戏主场景 renderer.render(); 运行一下代码,发现我们的黑屏没有了     这里我需要再啰嗦几句相机的掌握是比较抽象的WorldRenderer 中 OrthographicCamera的定义就的得先说说游戏是怎么进行的为什么要把 WorldRender中的OrthographicCamera  定义10 *15实际上就是把屏幕320*480 映射成每个单位为32像素。这是因为游戏中的素材基本都是基于32像素为单位构建同时屏幕的分辨率也可以被分解成以32像素为单位。 游戏中我们的主角Bob会不断进行跳跃但是他的最高点始终不会超过屏幕的中点他停留在最高点的过程中会通过移动所有的物体来造成他看上去好像在往上跳实际上他一直停留在屏幕中点的高度。同时我们需要为每一关定义一个长度也就是需要‘跳’多高才能到达城堡顺利通关。并且要准备好整一关的过程中哪里应该出现什么物体然后根据Bob到达的高度不停的切换这些物体。 想象一下有一段被垂直放置的胶卷这就是我们的一个关卡也就是一个World它准备好了一个关卡的长度并且设置好了所有的物体。而我们的Bob和WorldRender中的OrthographicCamera 一开始被放置在胶卷的底部Bob开始不断的跳跃当超过屏幕中点的高度时则OrthographicCamera 会被往上移动并且所有进入OrthographicCamera 的物体都会被绘制。直到到达最高点或Bob死亡。 所以 WorldRender中的OrthographicCamera 被设置成 10 *15 。 并且而在World类中定义了两个变量    public static final float WORLD_WIDTH 10;    public static final float WORLD_HEIGHT 15 * 20; 同样的关卡的宽带也被定义为10个单位与WorldRender中的一致因为我们不需要在X方向进行移动而高度定义成15*20 这就是一关的长度也就是Bob要跳的高度。 从上面的分析可以得出分别设置两个不同 OrthographicCamera  就是因为不同场景的需求。并且 在WorldRender中的OrthographicCamera 其实也可以被设置成 320*480 只是为了简便才把单位设为32像素变成 10*15。 所以不管是哪个OrthographicCamera它提供的只是一个映射信息而这个映射的信息真正的使用者是SpriteBatch它会根据映射信息的不同来决定究竟要把图片绘制在什么位置上以及该不该绘制这些元素。    即使GameScreen和WorldRender使用的是同一个SpriteBatch只要在恰当的时候绑定相应的投影矩阵两者是互不影响的。     后面说了好多全是文字大家先理解着在下一讲中我们将加入各种对象Bob、跳板弹簧、松鼠、金币、城堡以及源码是如何定义他们的。 源码下载http://down.51cto.com/data/895165      本文转自zhf651555765 51CTO博客原文链接http://blog.51cto.com/smallwoniu/1263323如需转载请自行联系原作者
http://www.yutouwan.com/news/110702/

相关文章:

  • 做网站需要学会些什么软件怎么用linux做网站服务器吗
  • 外贸平台网站想做一个自己的网站
  • 网站 界面wordpress评论调用标签
  • 网站用什么框架网站设计心的
  • 公司网站不续费网站建设 图书管理网站
  • 网站建设增长率汕头seo网站建设
  • 金普新区城乡建设局网站一般的网站方案建设书模板
  • 怎么制作网站模板四海网络网站建设定制
  • 网站权重有什么用宣武深圳网站建设公司
  • 中国公共信息服务平台移动端seo
  • 路桥网站建设wordpress 信用卡收款
  • 网站内容转载个人网站可以做百度推广么
  • 深圳网站排名外贸公司取名字大全
  • 美食网站建设页面要求营销网站的主题 定位 修改建议
  • h5网站建设设计有特色的网站
  • 巩义网站建设方案书上海公司牌照价格走势
  • 做设计的一般用什么网站找素材知名企业网站人才招聘情况
  • 网站建设说明网络游戏对青少年的危害
  • 无锡网站关键词推广东莞网站设计百年
  • 网站建设工作会议上的讲话石家庄58同城最新招聘信息
  • 合肥建设学校网站首页搜索引擎营销经典案例
  • 百度网站认证v1北京新站优化
  • 钟楼网站建设网站代码字体变大
  • 网站以前在百度能搜索不到网站视频管理系统
  • 做网站的企业有哪些南京今天的最新消息
  • 做网站推广的需要了解哪些知识微信小程序开发者
  • 软工毕设做网站信息网站 cms
  • 网站建设推广刘贺稳1网站拍照的幕布
  • 天空台108网站找手工活带回家做网站建设招标说明书
  • 上海网站推广提供商什么是网络营销型网站