- 博客(77)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注
原创 碰撞算法14 --多边形与矩形的碰撞
-这里涉及到一个叉乘的概念,叉乘的模的公式为 vec1length * vec2length * sin角度 (这里可以看出当模为0的时候两条直线平行)--思想点与线两边线段的距离跟线的距离的判断,相等就是在同一直线。--这里叉乘一下判断一个两个点是否在lineVec1的两边。--向量表示为X12*Y34 - X34*Y12 及为模。--这里叉乘一下判断两个点是否在lineVec2的连边。--lineVec1 叉乘 lineVec2。--多边形与矩形碰撞。--多边形与点的碰撞。--直线和矩形的碰撞。
2024-12-12 10:24:21
339
原创 碰撞算法13 --多边形与圆形的碰撞
-这里就是pointLinePoint1Length * cos角度 及为lineVec 的投影长度,温馨提示pointLinePoint1ToLine可能为正负值 取决于向量的夹角的cos值。--思想点与线两边线段的距离跟线的距离的判断,相等就是在同一直线。--这里需要分成两种情况,一种是线段两边的点是否在圆内。--若尔当曲线定理 需要的同学可以去学习一下。--相当于到线段的投影比例。--多边形是否与圆点碰撞。--如果点到半径的距离。--寻找圆心最近的点。--多边形与圆形碰撞。--多边形与点的碰撞。
2024-12-12 10:08:45
409
原创 碰撞算法12 --多边形与点的碰撞
-思想点与线两边线段的距离跟线的距离的判断,相等就是在同一直线。--若尔当曲线定理 需要的同学可以去学习一下。--多边形与点的碰撞。
2024-12-11 17:48:12
469
原创 碰撞算法11 --三角形和点的碰撞
-一种是让三角形三个点顺时针或逆时针组合成三个向量 再让各自向量起点与point构成一个新的向量 然后分别取叉乘,得到的数是同正或者同负(当然还需要判断点是否在直线上的情况就是叉乘结果为0的情况)--叉乘公式自己可以去了解一下 二维叉乘 A X B = (0,0,A.x * B.y - A.y * B.x)向量。--以下第二种做法,大家可以去了解一下 叉乘的模 / 2 为两个向量围成的三角形面积,下面以面积的方式进行运算。--这里有多种做法,--三角形与点的碰撞。
2024-12-11 15:18:12
362
原创 碰撞算法10 --线段和矩形的碰撞
-这里涉及到一个叉乘的概念,叉乘的模的公式为 vec1length * vec2length * sin角度 (这里可以看出当模为0的时候两条直线平行)--思想点与线两边线段的距离跟线的距离的判断,相等就是在同一直线。--这里叉乘一下判断一个两个点是否在lineVec1的两边。--向量表示为X12*Y34 - X34*Y12 及为模。--这里叉乘一下判断两个点是否在lineVec2的连边。--判断点跟直线是否同个线段中。--直线和矩形的碰撞。--点和矩形是否碰撞。
2024-12-09 20:40:41
406
原创 碰撞算法9 --线段与线段的碰撞
-这里涉及到一个叉乘的概念,叉乘的模的公式为 vec1length * vec2length * sin角度 (这里可以看出当模为0的时候两条直线平行)--思想点与线两边线段的距离跟线的距离的判断,相等就是在同一直线。--这里叉乘一下判断一个两个点是否在lineVec1的两边。--向量表示为X12*Y34 - X34*Y12 及为模。--这里叉乘一下判断两个点是否在lineVec2的连边。--lineVec1 叉乘 lineVec2。--判断点跟直线是否同个线段中。
2024-12-09 20:10:01
309
原创 碰撞算法8 --直线与圆的碰撞
-这里就是pointLinePoint1Length * cos角度 及为lineVec 的投影长度,温馨提示pointLinePoint1ToLine可能为正负值 取决于向量的夹角的cos值。--点乘向量公式 相当于 lineLength * pointLinePoint1Length * cos角度。--思想点与线两边线段的距离跟线的距离的判断,相等就是在同一直线。--这里需要分成两种情况,一种是线段两边的点是否在圆内。--相当于到线段的投影比例。--如果点到半径的距离。--寻找圆心最近的点。
2024-12-09 17:48:43
443
原创 碰撞算法4 -- 判断点和矩形的碰撞
--点和矩形是否碰撞function PointToRect(point,rectLeftBottomX,rectLeftBottomY,rectWidth,rectHeight) if rectLeftBottomX <= point.x and point.x <= (rectLeftBottomX + rectWidth) and rectLeftBottomY <= point.y and point.y <=
2024-12-09 15:25:01
219
原创 碰撞算法之1 点与点的碰撞(lua写法)
n久没法过技术博客,最近项目缓一缓,给大家分享一些技术干伙,关于碰撞相关的算法。由简到复杂,(接下来博客有什么纰漏的,希望大家指正一下我哈哈哈)
2024-12-09 15:00:53
122
原创 c++ 桥接模式
#ifndef Product_hpp#define Product_hpp#include #include using namespace std;class Product {public: Product() {}; ~Product() {}; virtual void info();};#endif /* Product_hpp */#i
2016-03-10 15:50:36
481
原创 c++ 单例模式
#ifndef CCriticalSection_hpp#define CCriticalSection_hpp#include #include class CCriticalSection {private: pthread_mutex_t mutex;public: CCriticalSection(); ~CCriticalSection();pub
2016-03-10 14:32:52
492
原创 c++ 抽象工厂与工厂混合写法
#ifndef Animal_hpp#define Animal_hpp#define CC_SYNTHESIZE(varType, varName, funName)\protected: varType varName;\public: virtual varType get##funName(void) const { return varName; }\public: virt
2016-03-09 18:59:02
582
原创 宏定义的好用方法
//设置set跟get的方法#define CC_SYNTHESIZE(varType, varName, funName)\protected: varType varName ;\public: virtual varType get##funName(void) const { return varName; }\public: virtual void set##funName(va
2016-03-09 18:50:54
450
原创 c++ 工厂模式
#ifndef Animal_hpp#define Animal_hpp#define CC_SYNTHESIZE(varType, varName, funName)\protected: varType varName ;\public: virtual varType get##funName(void) const { return varName; }\public: vir
2016-03-09 18:48:13
475
原创 c++ 组合模式
#ifndef Staff_hpp#define Staff_hpp#define CC_SYNTHESIZE(varType, varName, funName)\protected: varType varName;\public: virtual varType get##funName(void) const { return varName; }\public: virtua
2016-03-08 16:42:27
419
原创 c++ 观察者模式
#ifndef Observer_hpp#define Observer_hpp#define CC_SYNTHESIZE(varType, varName, funName)\protected: varType varName;\public: virtual varType get##funName(void) const { return varName; }\public:
2016-03-08 16:39:26
586
原创 c++ 访问者模式
写个基类#ifndef Employee_hpp#define Employee_hpp#define CC_SYNTHESIZE(varType, varName, funName)\protected: varType varName;\public: virtual varType get##funName(void) const { return varName
2016-03-08 16:31:14
463
转载 lua 闭包的概念
lua的闭包是个新概念,理解它需要个过程。今天在网上找了几篇文章看,不错,先记录下。1,lua闭包普通篇 http://hi.baidu.com/happynp/blog/item/b7736a1f7f65b3ffe0fe0b90.html2,lua闭包文艺篇 http://www.ibm.com/developerworks/cn/linux/l-cn-closure/3,lua闭包
2014-08-09 00:38:35
987
原创 点击交互的四种处理
1、概述 游戏也好,程序也好,只有能与用户交互才有意义。手机上的交互大致可以分为两部分:点击和输入。其中点击更为重要,几乎是游戏中全部的交互。在Cocos2d-x 3.0中,更改了dispatch机制。同时加入了两种新的交互形式:listener 和touchEvent回调。加上先前版本中的点击函数回调,与重写layer层的touch消息响应,构成了一个相对完整的交互模式。先上一
2014-08-04 23:56:23
2336
原创 cocos2dx3.0 使用Physicals代替Box2D和chipmunk
1、 概述 游戏中模拟真实的世界是个比较麻烦的事情,通常这种事情都是交给物理引擎来做。首屈一指的是Box2D了,它几乎能模拟所有的物理效果。而chipmunk则是个更轻量的引擎,能够满足简单的物理需求,比如最常用的的碰撞检测等。这些引擎在使用的过程中有个令人讨厌的地方,它们参数太多了。通常为了初始化一个简单的场景要写很多代码。在cocos2d-x 3.0版本中,出现了一个新类族—
2014-08-01 00:14:10
1184
转载 Cocos2dx 3.0 话说ValueMap的一般使用
这次就说ValueMap吧,别问我这是什么,自己去Value.h里看!当然了,在这个谷歌“已死”的年代,不建议你去百度,因为百度上根本搜不到和ValueMap有关的词,不信你试试,反正我瞎说的。ValueMap的作用和ValueVector一样,只能存放数据类型的元素。其他不多说看,直接看一些常见的使用:1、往ValueMap中添加一个元素:[cpp] view
2014-07-30 13:40:07
2278
转载 cocos2dx 之Vector
先说Vector吧。如果说C++的vector容器怎么用,如果我说太多肯定一下子就暴露了我菜鸟的身份。所以呢,在这里不过多阐述,也请大神绕路。所以,还是回到Vector的使用问题上吧。该怎么用?既然Vector是替代了Array,那就拿Array 和Vector进行对比吧。下面我就以创建 Sprite 精灵对象的容器为例介绍吧1、创建先创建两个精灵:
2014-07-30 11:32:35
1359
原创 关于cocos2dx 3.0rc在mac 上的创建项目以及发布android
首先下载cocos2dx3.0rc , 记得下载ant ,ndk, sdk,下载跟eclipe一起下载下就有的,到http://www.eclipse.org/downloads/ 这里下载,ant我是在这里下载的 http://ishare.iask.sina.com.cn/f/66944701.html ndk在http://developer.android.com/tools/sdk/
2014-04-12 14:57:14
1826
原创 在cocos2dx3.0 lua教程 自己写的类连接lua 使lua能调用自己类的函数
我们可以在lua上面编写cocos2dx 用lua调用到cocos2dx的api 是因为在lua_cocos2dx_auto这类函数里面建立的连接,大家可以参考然后自己写做连接。如我一下建立一个类 如buildingclass Building : public Node{public: Building(const std::string &fileName);
2014-03-31 18:31:06
2166
原创 cocosdx3.0 lua项目 从cocostudio中到处得ui 获取button 以及button监听
local winsize=cc.Director:getInstance():getWinSize() local layer=cc.Layer:create() local scene=cc.Scene:create() n=2 local function touchEvent(sender,eventType) cclog(sender:g
2014-03-06 10:54:32
4840
原创 cocos2dx3.0 lua项目创建cpp文件时候不能导入extensions头文件时无法使用或报错
在遇到这个问题时纠结了很久之前使用了用这个#include "../cocos2d/extensions/cocos-ext.h"导入似乎可以了,不过最终在编译的时候还是报错了我是用xcode的,最后是在Search Paths 的User Header Search Paths 中添加这$(SRCROOT)/../cocos2d,$(SRCROOT)/../cocos2d/exstens
2014-03-03 23:46:15
1422
原创 lua继承c++类
local MyScrollView =class("MyScrollView",function () local scrollview = cc.ScrollView:create() -- _minScale=scrollview._minScale -- _maxScale=scrollview._maxScale return scro
2014-02-28 10:36:51
2404
2
原创 cocos2dx3.0-lua获取cocosstudio场景以及获取ui等控件
local node = ccs.SceneReader:getInstance():createNodeWithSceneFile("background_wave.json") -- node:setPosition(cc.p(100,100)) local t = node:getChildByTag(10004) if t==nil then
2014-02-26 16:32:56
5986
原创 在生成android版本时候出现的蛋疼问题Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1),
01-11 19:47:57.153: A/libc(27675): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 27675 (com.bs.game)出现这个问题我查了好久,在xcode上编辑以及跟windows上编辑都没有报错,查了好久这个错误是因为我在cpp中定义了一个内部全局变量,我以为能在函数外部给它付
2014-01-14 23:01:34
4974
转载 Cococs2d-x通过TexturePacker加密图片资源(Cocos2d-x方式)
TexturePacker最新版本中增加了一个新功能以防止你的产品资源被反编译出来。它被称为ContentProtection,即图片加密。但目前官方只支持Cocos2d-iphone的解密.TexturePacker作者说,不久Cocos2d-x也将集成解密功能.代码已经提交Cocos2d-x github官方库.(文章内容复制泰然论坛TexturePacker 图片加密,只是修改了相应部分
2014-01-09 17:22:33
8616
原创 关于cocos2dx 对tiled地图编辑器的使用
CC_BREAK_IF(! CCLayer::init()); count=0; _tiled=CCTMXTiledMap::create("tiled.tmx"); this->addChild(_tiled); //获取英雄的对象层,再根据层获取某英雄的对象 CCTMXObjectGroup *object =_tiled->objectGroupNamed("
2014-01-09 17:12:33
1517
转载 Cocos2d-x 中使用多线程
原文章在http://blog.csdn.net/huutu/article/details/9889447一直以为Cocos2d-x中只有事件队列,只有一个主线程。。。首先设置头文件[cpp] view plaincopyE:\Cocos2d-X\cocos2d-2.1rc0-x-2.1.2\cocos2dx\p
2014-01-08 15:25:00
1067
原创 cocos2dx如何解析json
由于项目需要json格式解析,一开始没接触过 所以比较烦恼,不过现在都可以理解了,给大家分享学习一下,我用的cocos2dx版本是2.2.1如下先添加头文件:#include "HelloWorldScene.h"#include "json_lib.h"using namespace std;USING_NS_CC;这里写了两个函数//这里为获取jsonvalue的值CSJs
2014-01-02 23:30:48
2434
原创 sqllite 数据加密以及转换数据类型
在HelloWorld类中添加函数int isExisted( void * para, int n_column, char ** column_value, char ** column_name ) { bool *isExisted_=(bool*)para; *isExisted_=(**column_value)!='0'; return 0; }在init()
2013-12-31 18:49:40
1490
转载 dynamic_cast < type-id > ( expression )
用法本文引用于http://baike.baidu.com/link?url=Ao6yji5MV3UYwKzeEa1d33e5FrNNyOBagjz4EXcVQpKIdxllaTE51d-N0lAnx6dlY0myuVnyit9k5x_OUd_Jnqdynamic_cast ( expression )该运算符把expression转换成type-id类型的对象。Type-id必
2013-12-26 16:00:42
782
sqlserver以及mysql hibernate xml映射语句
2012-11-27
J2EE程序设计实验指导书
2012-11-27
cocos2dx sqllite的使用【小菜在学习】
2013-06-28
以box2d做小车demo
2013-10-19
数码管(动态)片选
2012-11-28
个人博客源码加素材
2012-11-27
译码器c语言
2012-11-28
J2EE帮助文档
2012-11-27
单片机跑马灯c程序
2012-11-28
静态数码管
2012-11-28
调用addArmatureFileInfoAsync在android上出现闪退
2013-12-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人