当前位置: 首页 > 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.sadfv.cn/news/110702/

相关文章:

  • 自助开通网站找源码的网站
  • farfetch 购物网站wordpress主题+演示数据
  • 门户网站cms程序网站死链
  • 凡诺网站建设江苏网站关键词优化优化
  • 下载中国建设银行官网站珠海知名网站
  • 网站技术方案上海最近新闻事件
  • 怎么做家具定制网站常见的管理系统
  • 全网营销培训公司旺道seo优化
  • 如何运营一个公众号重庆seo报价
  • 网站后台设置网站地图阿里巴巴数据分析官网
  • 网站免费维护期是多少wordpress数据库thinkphp
  • 温州网站建设 seo天河手机建网站
  • 珠海手机网站建设费用腾讯云远程安装wordpress
  • 网站开发项目视频网页编辑快捷键
  • 云溪网络建站宝盒专业做网站服务
  • 去哪学做网站深圳住房和建设局网站
  • 百度竞价推广收费seo服务公司深圳
  • 网站建设手机登录密码是什么啊云南网络公司网站建设
  • 影响网站收录的因素微页制作网站模板
  • 成都网站建设技巧乐清网站优化
  • 有什么做服装的网站自媒体网站大全
  • 郑州网站建设 智巢网站开发实训指导书
  • 一个空间建多个网站企业文化墙设计
  • 电商网站seo优化域名策划方案
  • 怎么做网站 教学网络设备管理系统
  • 提供网站建设电话烟台网站建设哪家专业
  • 爱名网22自助网站建设网易企业邮箱改密码
  • 漯河网站建设zrgu搭建影视网站
  • 网站关键词用什么做中山专业网站建设
  • 网站建设课程内容小型企业门户网站制作