GVKun编程网logo

cocos2dx 压缩图片的网站/工具(cocos creator打包apk)

20

对于cocos2dx压缩图片的网站/工具感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解cocoscreator打包apk,并且为您提供关于关于cocos2dx接Androidsdk的一些坑

对于cocos2dx 压缩图片的网站/工具感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解cocos creator打包apk,并且为您提供关于 关于cocos2dx接Android sdk的一些坑、Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x、Cocos2d-x-4.0在VS2019环境下的环境搭建(官方下载的cocos2dx压缩包)、cocos2d-x中的pvr.ccz压缩图片的宝贵知识。

本文目录一览:

cocos2dx 压缩图片的网站/工具(cocos creator打包apk)

cocos2dx 压缩图片的网站/工具(cocos creator打包apk)

1 压缩PNG 的在线网站, 支持png压缩

https://tinypng.com/


2 压缩图片的开源软件,支持JPEG PNG。(最近要出在线版的样子。网站Caesium Online coming soon)

https://SAErasoft.com/caesium/


3 shortpixel 支持jpg png gif在线压缩

https://shortpixel.com/

<cocos2dx 随记> 关于cocos2dx接Android sdk的一些坑

关于cocos2dx接Android sdk的一些坑

简单说说UI线程 :在Android中,有个非常重要的家伙非常霸道,那就是UI线程。这霸道之一:不能被阻塞。 之二:系统对每一个组件的调用都从UI线程分发出去。

简单说说openGL线程:但凡cocos2dx 启动的绘制线程都是openGL线程。就这么多


任何SDK界面的调用,必须从UI线程中调用,所以需要放到主线程中。如果我们直接从GL线程中调用,轻则调用不了,重者程序蹦死。

解决办法:

得到主线程的handler,这里简单说一种,就是在onCreate中new一个静态handler。

或者new Handler(Looper.getMainLooper()),且叫mainHandler吧,

启动一个线程,

[java] view plain copy
  1. ThreadsendThread=newThread(newRunnable(){
  2. publicvoidrun(){
  3. mainHandler.post(sendRun);
  4. }
  5. });

[html] copy

Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x

Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x

首先将src文件夹复制到jni文件夹,没有可以新建一个

新建两个文件Android.mkApplication.mk

Application.mk内容如下:

APP_ABI:=armeabiarmeabi-v7ax86

APP_PLATFORM:=android-8

APP_STL:=stlport_static

Android.mk内容如下:

LOCAL_PATH:=$(callmy-dir)

include$(CLEAR_VARS)

LOCAL_MODULE :=bullet_static(可随便起)

LOCAL_MODULE_FILENAME:=libbullet(可随便起)

LOCAL_C_INCLUDES:=src/(头文件位置)

(源文件,要列出所有用到的,这里用到BulletSoftBodyBulletDynamics

BulletCollisionsLinearMath

LOCAL_SRC_FILES := src/BulletSoftBody/btSoftBody.cpp\
	src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp \
	src/BulletSoftBody/btSoftBodyHelpers.cpp \
        src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp \
	src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp \
	src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp \
	src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp \
	src/BulletSoftBody/btDefaultSoftBodySolver.cpp \
	src/BulletDynamics/Character/btKinematicCharacterController.cpp \
	src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp \
	src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp \
	src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp \
	src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp \
	src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp \
	src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp \
	src/BulletDynamics/Dynamics/btdiscreteDynamicsWorld.cpp \
	src/BulletDynamics/Dynamics/btRigidBody.cpp \
	src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp \
	src/BulletDynamics/Vehicle/btRaycastVehicle.cpp \
	src/BulletDynamics/Vehicle/btWheelInfo.cpp \
	src/BulletDynamics/Featherstone/btMultiBody.cpp \
	src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp \
	src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp \
	src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp \
	src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp \
	src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp \
	src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp \
	src/BulletDynamics/MLcpsolvers/btDantzigLCP.cpp \
	src/BulletDynamics/MLcpsolvers/btMLcpsolver.cpp \
	src/BulletDynamics/MLcpsolvers/btLemkeAlgorithm.cpp \
	src/BulletCollision/broadphaseCollision/btAxisSweep3.cpp \
	src/BulletCollision/broadphaseCollision/btbroadphaseProxy.cpp \
	src/BulletCollision/broadphaseCollision/btCollisionAlgorithm.cpp \
	src/BulletCollision/broadphaseCollision/btDbvt.cpp \
	src/BulletCollision/broadphaseCollision/btDbvtbroadphase.cpp \
	src/BulletCollision/broadphaseCollision/btdispatcher.cpp \
	src/BulletCollision/broadphaseCollision/btMultiSapbroadphase.cpp \
	src/BulletCollision/broadphaseCollision/btOverlappingPairCache.cpp \
	src/BulletCollision/broadphaseCollision/btQuantizedBvh.cpp \
	src/BulletCollision/broadphaseCollision/btSimplebroadphase.cpp \
	src/BulletCollision/Collisiondispatch/btActivatingCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btBoxBoxCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btBox2dBox2dCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btBoxBoxDetector.cpp \
	src/BulletCollision/Collisiondispatch/btCollisiondispatcher.cpp \
	src/BulletCollision/Collisiondispatch/btCollisionObject.cpp \
	src/BulletCollision/Collisiondispatch/btCollisionWorld.cpp \
	src/BulletCollision/Collisiondispatch/btCollisionWorldImporter.cpp \
	src/BulletCollision/Collisiondispatch/btCompoundCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btCompoundCompoundCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btConvexConcaveCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btConvexConvexAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btConvexPlaneCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btConvex2dConvex2dAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btDefaultCollisionConfiguration.cpp \
	src/BulletCollision/Collisiondispatch/btEmptyCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btGhostObject.cpp \
	src/BulletCollision/Collisiondispatch/btHashedSimplePairCache.cpp \
	src/BulletCollision/Collisiondispatch/btInternalEdgeUtility.cpp \
	src/BulletCollision/Collisiondispatch/btManifoldResult.cpp \
	src/BulletCollision/Collisiondispatch/btSimulationIslandManager.cpp \
	src/BulletCollision/Collisiondispatch/btSphereBoxCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btSphereSphereCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btSphereTriangleCollisionAlgorithm.cpp \
	src/BulletCollision/Collisiondispatch/btUnionFind.cpp \
	src/BulletCollision/Collisiondispatch/SphereTriangleDetector.cpp \
	src/BulletCollision/CollisionShapes/btBoxShape.cpp \
	src/BulletCollision/CollisionShapes/btBox2dShape.cpp \
	src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp \
	src/BulletCollision/CollisionShapes/btCapsuleShape.cpp \
	src/BulletCollision/CollisionShapes/btCollisionShape.cpp \
	src/BulletCollision/CollisionShapes/btCompoundShape.cpp \
	src/BulletCollision/CollisionShapes/btConcaveShape.cpp \
	src/BulletCollision/CollisionShapes/btConeshape.cpp \
	src/BulletCollision/CollisionShapes/btConvexHullShape.cpp \
	src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp \
	src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp \
	src/BulletCollision/CollisionShapes/btConvexpolyhedron.cpp \
	src/BulletCollision/CollisionShapes/btConvexShape.cpp \
	src/BulletCollision/CollisionShapes/btConvex2dShape.cpp \
	src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp \
	src/BulletCollision/CollisionShapes/btCylinderShape.cpp \
	src/BulletCollision/CollisionShapes/btEmptyShape.cpp \
	src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp \
	src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp \
	src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp \
	src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp \
	src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp \
	src/BulletCollision/CollisionShapes/btpolyhedralConvexShape.cpp \
	src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp \
	src/BulletCollision/CollisionShapes/btShapeHull.cpp \
	src/BulletCollision/CollisionShapes/btSphereShape.cpp \
	src/BulletCollision/CollisionShapes/btStaticPlaneshape.cpp \
	src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp \
	src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp \
	src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp \
	src/BulletCollision/CollisionShapes/btTriangleCallback.cpp \
	src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp \
	src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp \
	src/BulletCollision/CollisionShapes/btTriangleMesh.cpp \
	src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp \
	src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp \
	src/BulletCollision/Gimpact/btContactProcessing.cpp \
	src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp \
	src/BulletCollision/Gimpact/btGImpactBvh.cpp \
	src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp \
	src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp \
	src/BulletCollision/Gimpact/btGImpactShape.cpp \
	src/BulletCollision/Gimpact/btTriangleShapeEx.cpp \
	src/BulletCollision/Gimpact/gim_Box_set.cpp \
	src/BulletCollision/Gimpact/gim_contact.cpp \
	src/BulletCollision/Gimpact/gim_memory.cpp \
	src/BulletCollision/Gimpact/gim_tri_collision.cpp \
	src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp \
	src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp \
	src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp \
	src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp \
	src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp \
	src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp \
	src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp \
	src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp \
	src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp \
	src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp \
	src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp \
	src/BulletCollision/NarrowPhaseCollision/btpolyhedralContactClipping.cpp \
	src/LinearMath/btAlignedAllocator.cpp \
	src/LinearMath/btConvexHull.cpp \
	src/LinearMath/btConvexHullComputer.cpp \
	src/LinearMath/btGeometryUtil.cpp \
	src/LinearMath/btPolarDecomposition.cpp \
	src/LinearMath/btQuickprof.cpp \
	src/LinearMath/btSerializer.cpp \
	src/LinearMath/btVector3.cpp 

最后还要加上一句,表示生成静态库如果将STATIC该文SHARED则生成动态库

include$(BUILD_STATIC_LIBRARY)

然后进入命令行

进入jni所在目录

ndk-build

等待编译完成


将三个目录下的libbullet.a分别复制到cocos2dx的安装目录下的

安装目录\Cocos\frameworks\cocos2d-x\prebuilt\android\相应文件下

进入Cocos\frameworks\cocos2d-x\external

新建文件夹Bullet,在Bullet下新建prebuild-mk

Box2D\prebuild-mk下的Android.mk复制到Bullet/prebuild-mk

修改如下3

LOCAL_MODULE:=bullet_static

LOCAL_MODULE_FILENAME:=libbullet

LOCAL_SRC_FILES:=../../../prebuilt/android/$(TARGET_ARCH_ABI)/libbullet.a


复制头文件

bullet3src的所有文件复制到新建的Bullet文件下


删除不是.h的所有文件

下一步任务繁重,

将所有用到BulletCollisionBulletDynamicsBulletSoftBodyLinearMath目录下的include都加上Bullet/,可以使用Notepad++Bullet目录搜索Bullet,并替换为Bullet/BulletLinearMath并替换为Bullet/LinearMath

进入Cocos\frameworks\cocos2d-x\cocos\prebuilt-mk

Android.mk

LOCAL_WHOLE_STATIC_LIBRARIES+=Box2d_static下面添加

LOCAL_WHOLE_STATIC_LIBRARIES+=bullet_static

$(callimport-module,Box2D/prebuilt-mk)下面添加

$(callimport-module,Bullet/prebuilt-mk)

至此已经完成编译静态库

下载地址

Cocos2d-x-4.0在VS2019环境下的环境搭建(官方下载的cocos2dx压缩包)

Cocos2d-x-4.0在VS2019环境下的环境搭建(官方下载的cocos2dx压缩包)

Cocos2dx环境搭建

写这篇文章的目的是,方便只装了VS2019不想装其他版本VS的新人,学会搭建cocos2dx环境,少走弯路。

搭建前的环境准备

  1. 需要先到python官网下载安装python2,并配置好环境变量。
  2. 配置cmake的环境变量,由于已经安装了VS2019所以直接使用VS的cmake,所在路径为
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin

开始搭建

首先使用cmake构建从官网下载的cocos2dx源码。编译的前两步和官网介绍的一样,先打开命令行跳转到cocos所在的目录,然后创建一个build文件,进入build文件。之后使用的命令和官网给出的不一样。使用的命令为

cmake .. -G"Visual Studio 16 2019" -A Win32

这里给不太了解cmake的朋友解释一下,cmake命令后的两个点是返回上一级目录,也就是指定需要被构建的CMakeList所在的路径,-G命令行参数的作用是指定要生成的项目类型,这里指定的是VS2019,有一点不同的是生成VS2019项目不像生成旧版的VS项目一样可以在引号内指定编译器架构,需要在引号外部用-A指定编译器架构。这里指定为Win32架构,默认不指定的话构建VS2019项目使用的是x64架构,为了避免不必要的麻烦,请一定要指定为Win32架构。等待cmake运行完毕,就可以按照官方文档中的介绍使用和学习了。打开build文件中的Cocos2d-x.sln,选择想看的项目右键设为启动项目,运行,就可以看着项目运行效果学习cocos的例程。

这是在segmentfault的第一篇文章,也是自己新的开始。

cocos2d-x中的pvr.ccz压缩图片

cocos2d-x中的pvr.ccz压缩图片

作者:83628410发布日期:2013-03-17 13:38:51

我来说两句(0)
0
Tag标签: cocos2d-x
  • 前几天打开了保卫萝卜的游戏,看到了其中有使用plist 和 *.pvr。czz文件。

    在网上查了一下说pvr。czz不能用图片名调用,测试了一下发现可以用,写下代码:

    1.首先将texturepacker 软件生产的文件,111.pliost 和111.pvr.czz文件拷贝到资源文件夹中。

    pvr.czz文件生产图片时一定要是一个正方形,否则据说编译到别的平台上有问题 www.it165.net

    2.添加测试代码


    view source print ?
    01. voidHelloWorld::showPVR()
    02. {
    03. //打开pvr支持
    04. CCTexture2D::PVRImagesHavePremultipliedAlpha(true);
    05. //添加到帧序列中
    06. CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("111.plist"07. //通过一个镇图片生产精灵
    08. CCSprite *sp =CCSprite::createWithSpriteFrameName("4.png"09. sp->setPosition(ccp(100,));
    10. this->addChild(sp);
    11. }

测试了一下没有问题,收工。

关于cocos2dx 压缩图片的网站/工具cocos creator打包apk的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于 关于cocos2dx接Android sdk的一些坑、Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x、Cocos2d-x-4.0在VS2019环境下的环境搭建(官方下载的cocos2dx压缩包)、cocos2d-x中的pvr.ccz压缩图片等相关内容,可以在本站寻找。

本文标签:

上一篇cocos2dx的数据保存之UserDault(cocos存档)

下一篇cocos2dx抗锯齿与渲染冲突——待解决(渲染抗锯齿是干什么用的)