OGEngine教程: 图片资源加载及工具使用

OGEngine源代码 OGEngine 源代码,可以用来参考用,以及其他学习用途 立即下载

 

下面给大家讲下关于图片资源从下载到使用的一个流程

说明

TexturePacker这个词从字面来说就是Texture(纹理) + Packer(打包)。将材质打包成大图,将小图通过算法合并成大图,减少了io的读取,同时占用了更少的内存空间。并且代码里也更容易管理这些材质。

下载

官网:http://www.codeandweb.com/texturepacker

使用

安装完毕,现在我们来使用这个工具吧!首先看到的是默认界面:

 

和普通的程序相同,软件大致分为三个区最左边为参数配置区,中间为预览区,最右边为图片素材区。点击Add Sprite或Add Folder按钮或者直接拖拽图片进去即可添加图片素材。

左边的设置区域中,Output相关设置:

OGEngine是基于OpenGl ES 2绘制图片的,软件经默认帮我们把2的幂次方选项选上了,Max size最好选择1024*1024以下即可:

另外,根据各自需要,选择是否要切除原图空白处以节省空间。

加载

根据使用说明,我们将TexturePacker导出的三个文件放到assets目录下

如图所示

 

然后,我们需要把这些文件形成我们能用的纹理区域,为此OGE为我们封装了RegionRes的类,我们只需要编写一张表,用于存放对应的纹理(Texture)及纹理里面的各种纹理区域(TextureRegion)。

另外,帧动画我们是以这种方式来命名   XXX_01,XXX_02,XXX_03...(其中,帧动画每张图片尺寸要一致)

public class Res {

//TexturePacker导出的文件path

public static final String XML_GFX_GAME_01 = "gfx/game_01.xml";

public static final String[] ALL_XML = new String[]{

Res.XML_GFX_GAME_01

};

 

//以文件名的方式作为对应的Key

public static final String NUM_BIG = "Num_big";//数字帧动画

public static final String BAR_DOWN = "bar_down";

public static final String BAR_UP = "bar_up";

public static final String BRID_YELLOW = "brid_yellow";//小鸟帧动画

...

}

然后我们以下方法就可以加载纹理了

RegionRes.loadTexturesFromAssets(Res.XML_GFX_GAME_01)

完成读取后那么我们就可以创建各种AnimateSprite(即使它不是帧动画)

AnimatedSprite bird = new AnimatedSprite

(0, 0, Res.BRID_YELLOW, getVertexBufferObjectManager());

以上就是静态加载图片资源了,下面介绍图片加载(不用TexturePacker打包)

RegionRes.loadBitmapTextureFromAssets(pFileName)

pFileName:assets目录下文件路径

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OGEngine开发者文档和api文档 自己整理制作的OGEngine开发者文档,和官方的api文档,希望能给Android手游开发学习者带来一些帮助。OGEngine是使用java语言编程的游戏引擎 立即下载

相关推荐

OGEngine_hjdj.pdf

OGEngine使用说明文档

OGEngine系列教程1.介绍OGEngine与环境搭建

OGEngine是国际著名开源引擎AndEngine的一个分支,遵循LGPL开源协议开发出来的游戏开发引擎,使用OpenGL ES2进行图形绘制。同时集成了Box2D物理引擎,因此可以实现复杂的物理效果。 OGEngine主要使用Java语言开发,但在大运算量的耗时功能时,OGEngine使用了C/C++本地代码进行开发。比如物理引擎及音频处理。作为用户,你只需要关注Java端就可以了,它已

wang93712wei的专栏 2495

OGEngine_v2.1

OGEngine_v2.1 源代码。OGEngine是国际著名开源引擎AndEngine的一个分支,遵循LGPL开源协议使用OpenGL ES进行图形绘制。

OGEngine——基于java的手游开发开源引擎

OGEngine是国际著名开源引擎AndEngine的一个分支,遵循LGPL开源协议使用OpenGL ES进行图形绘制。同时集成了Box2D物理引擎,因此可以实现复杂的物理效果。 OGEngine主要使用Java语言开发,但在大运算量的耗时功能时,OGEngine使用了C/C++本地代码进行开发。比如物理引擎及音频处理。作为用户,你只需要关注Java端就可以了,它已经

louiscool87的专栏 2652

使用AndroidStudio搭建OGengine工程 - 知乎.rar

使用OGengine时,利用AndroidStudio开发的时候需要注意的一些工程问题。

安路科技FPSoC开发实战:从芯片特性到边缘计算应用

本文深入解析安路科技FPSoC芯片在边缘计算领域的开发实战,重点介绍SALDRAGON系列芯片的异构计算架构优势,包括RISC-V/ARM处理器与FPGA的协同工作。通过工业控制和智能视觉应用案例,展示硬件加速实现与低功耗设计技巧,帮助开发者高效利用FPSoC进行边缘计算应用开发。

weixin_29248611的博客 375

java 跨平台 ios_OGEngine发布跨平台版本,支持iOS及Android

OGEnginev2.1.1拓展了跨平台,支持iOS平台和Android平台,我们现在来搭建下开发环境。注意,由于iOS版本的编译开发必须在Mac系统上,所以我们的部署也是在Mac环境下进行的。1.检查系统建议系统版本在v10.8.5以上 2.安装Xcode建议5.1.1以上版本可打开AppStore下载,程序较大2.3G大小,时间可能较长。 安装完后可以确认下是否安装成功:打开Xcode...

weixin_30486717的博客 322

傻瓜式下载、安装CentOS7操作步骤

CentOS7.9下载和安装操作步骤

weixin_45608163的博客 1万+

OGEngine基于java支持跨平台的手游开发开源引擎

OGEngine是国际著名开源引擎AndEngine的一个分支,遵循LGPL开源协议使用OpenGL ES进行图形绘制。同时集成了Box2D物理引擎,因此可以实现复杂的物理效果。 OGEngine主要使用Java语言开发,但在大运算量的耗时功能时,OGEngine使用了C/C++本地代码进行开发。比如物理引擎及音频处理。作为用户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了。OGEngine支持Android和iOS平台,支持使用java直接编写iOS游戏。相比于其他游戏引...

wubaohu1314的博客 1039

搭建微信机器人的方案都在这了!

功能超级强大,虽不支持二次开发,但已有的功能足够个人使用,可惜官方作品已被腾讯告死,好在市面上还流落着不少破解版,有需要的自行搜索。可惜的是,微信官方已不准许新的微信号再使用 web 登录,这就直接从源头扼杀了 web 协议的微信机器人,虽说老的微信号还是能凑合着用,不过部分功能也受限。所以,这些都属于 PC 端的微信机器人。无论是 PC 端还是手机端,用 hook 方式实现的最大缺点就是要和某一个版本的微信客户端进行绑定,如果框架本身不对最新版本的微信适配,那使用的时候就无法升级到最新版本的微信。

weixin_47246330的博客 1万+

gRPC之gRPC开发流程与入门案例

gRPC之gRPC开发流程与入门案例

YIYIYI 3759

Win7系统下OGEngine环境搭建

OGEngine_环境搭建前言OGEngine开源引擎是一款开源免费、简单易学、高效实用的android游戏引擎,适用于不同层次不同专业的人员,降低广大用户在android平台上开发游戏的门槛。引擎可用于完整开发游戏框架,并提供了很多快捷、高性能的内存管理技术,同时支持第3方jar包接入,有无限的扩展性。搭建WIN7系统开发环境1.下载JDK,JDK8在windows xp下...

weixin_34119545的博客 157

鸿蒙录屏推流应用完整解决方案

本文介绍了鸿蒙录屏推流应用的完整解决方案。项目采用分层架构设计,包含录屏、编码、推流等功能模块,要求实现4小时稳定运行且延迟小于3秒。技术实现包括:1) 通过config.json配置应用权限和功能;2) 使用ScreenRecorderManager类管理录屏服务,实现视频采集、音频录制和编码参数配置;3) 核心功能包含初始化录屏器、开始/停止录屏等操作。该方案充分利用鸿蒙系统的多媒体API,实现了高性能的屏幕录制与实时推流功能。

huanghm88的专栏 289

OGEngine 手游引擎教程:图片资源加载及工具使用

下面给大家讲下关于图片资源从下载到使用的一个流程说明TexturePacker这个词从字面来说就是Texture(纹理)+Packer(打包)。将材质打包成大图,将小图通过算法合并成大图,减少了io的读取,同时占用了更少的内存空间。并且代码里也更容易管理这些材质。下载官网:http://www.codeandweb.com/texturepacker使用安装完毕,现在我...

weixin_33928137的博客 338

雨雾天YOLOv8检测拉胯?暗通道去雾+上下文注意力双优化,mAP从58%飙到79%,暴雨也能看清车牌

室外交通监控:高速、省道的雨雾天检测,重点解决小车、货车漏检;车载ADAS系统:雨天行车时的前方车辆、行人识别,需实时性(<40ms);隧道出入口:明暗交界+雾天的复杂场景,暗通道能平衡亮度。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1380

【在 WSL2 GUI 中使用 pulseaudio 播放声音】

最近在搞一个Linux项目,由于WSL2中需要用到声音外放,无奈只能潜心研究。后来就使用了一种折中的方式替代,那就是pulseaudio。目前来讲WSL2对硬件外设的支持还是不太友好,关于USB的支持我之前在其他文章中已经论述过了,这里不讨论。1、Windows11别忘记打开声音2、可能有一定延迟,因为是通过网络传输的。3、效果的话只能见仁见智了,如果不能满足要求就安装一个实实在在的Ubuntu吧!

jiexijihe945的博客 4530

OGEngine相关开发工具

下面介绍OGE相关开发工具   roboVM:eclipse插件,当OGE开发者对开发IOS应用时必须使用的插件 RoboVM环境搭建Jar包下载 搭建RoboVM开发环境时需要配置两个jar包,下载地址:http://pan.baidu.com/s/1nt4vXB7 将下列两个文件夹分别放到Eclipse程序下的Plugins和features文件夹中。 org.robovm.ecl

OrangeGame的专栏 829

AI算力网络与通信领域QoS保障的测试方法

在当今数字化时代,AI技术蓬勃发展,AI算力网络应运而生。它将分布在不同地理位置的算力资源进行整合,以高效地支持各种AI应用,如深度学习训练、智能图像识别等。而通信领域则是信息传输的基石,确保数据能够准确、快速地在不同节点之间传递。QoS保障在通信领域至关重要,它可以确保不同类型的业务(如语音通话、视频会议、在线游戏等)获得与其需求相匹配的服务质量。在AI算力网络中,QoS保障同样不可或缺,因为AI任务对网络的带宽、延迟、可靠性等指标有严格要求。

AI算力网络与通信的博客 526

OGEngine初次使用

      最近有点空余时间,看了下OGEngine,OGEngine遵循Apache License 2.0开源协议;使用OpenGL ES2进行图形绘制,同时集成了Box2D物理引擎,因此可以实现复杂的物理效果.他是基于Android游戏开源引擎AndEngine       这里简单介绍下如何使用,以android环境来说      首先我们需要去官网下载该引擎,对应的地址http...

随手记 730

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OGEngine开发2048游戏及完整源代码揭秘和下载 (一)

使用OGEngine开发2048游戏机源码解析         最近有一款2048的游戏非常火,本文将来介绍一下使用OGEngine游戏引擎开发游戏2048。 OGEngine引擎是开源的,我们很容易找到,搭建起来也很方便,我们只需在Android工程下添加OGEngine的jar包或者直接引用源码就可以了。 OGEngine引擎官网2048游戏源码下载 1.创建游戏的主Activ...

louiscool87的专栏 503

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OGEngine工程目录

工程目录前置条件:看完OGE工程搭建我们以FlappyBird来对工程目录做说明首先是我们的游戏工程,这是个纯粹的java工程,不涉及任何平台(如Android、IOS等)该工程创建后引入OGE引擎,或者根据需求引入对应的扩展包(如Box2d)在src中,我们需要一个类去继承OGE引擎中的GameLauncher作为程序的入口,在这个Demo中MainLaunch...

weixin_34198797的博客 110

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TexturePacker简单使用

OGengine开发可以使用TexturePacker进行图片资源加载,TexturePacker这个词从字面来说就是Texture(纹理) + Packer(打包)。将材质打包成大图,将小图通过算法合并成大图,减少了io的读取,同时占用了更少的内存空间。并且代码里也更容易管理这些材质。和普通的程序相同,软件大致分为三个区最左边为参数配置区,中间为预览区,最右边为图片素材区。...

weixin_34254823的博客 143

Godot Unpacker 使用指南:从基础到进阶的资源提取工具

Godot Unpacker 是一款专为 Godot Engine 设计的资源提取工具,支持解析非加密的 .pck 文件及游戏可执行文件,提取内部资源并提供格式转换功能,适用于游戏资源分析、 mod 开发等场景。 ## 📋 环境配置与基础准备 ### 系统环境要求 - Python 版本需 3.10 及以上,通过以下命令验证: ```bash python --version #

gitblog_00090的博客 415

OGEngine游戏开发之精灵(sprite)

Spirte简介sprite可以说是游戏中的主角,我们建立各种图片,人物的显示都离不开它。sprite类很丰富,如果看过源代码的不难发现,可用的类型很多:基础精灵Spirte、动画精灵AnimatedSpirte、按键精灵ButtonSprite.你可以有多种选择,可以直接使用AnimatedSprite来绘制人物动画,可以使用ButtonSprite来绘制按钮,也可以继承S...

weixin_34275734的博客 362

使用OGEngine开发微信经典飞机大战

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34050427的博客 308
上一篇: OGEngine相关开发工具
下一篇: OGEngine教程:声音加载
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值