【Cocos2D学习】Lua——数学知识的基本应用

学习Cocox,真的是相当麻烦,IDE的支持太差了,Cocox的各种版本也是多种多样,我先研究的是用Lua语言开发,但是学习起来还是蛮有趣的,我喜欢这种学习。下面基本的数学知识在Cocox的几种应用:

1、跳动的小球(向量的应用)

local direction=cc.p(math.random(-1,1),math.random(-1,1))
    cc.pNormalize(direction)

    local dot=display.newDrawNode():addTo(self):center()
    dot:drawDot(cc.p(0,0),10,cc.c4f(1.0,1.0,1.0,1.0))
    self:getScheduler():scheduleScriptFunc(function()

            local px,py=dot:getPosition()

            if px<0 or px>display.width then
                direction.x=direction.x*-1
            elseif py<0 or py>display.height then
                direction.y=direction.y*-1
            end
            dot:pos(px+direction.x*10,py+direction.y*10)

    end,0,false)

2、小球跟着方块一起旋转(世界坐标和本地坐标的应用)

    local rect=display.newDrawNode():addTo(self):center()
    rect:drawRect(cc.p(0,0),cc.p(300,300),cc.c4f(1.0,0,0,1.0))
    -- self:add(rect)

    local dot=display.newDrawNode():addTo(rect):pos(20,20)
    dot:drawDot(cc.p(0,0),10,cc.c4f(1.0,1.0,1.0,1.0))

    self:getScheduler():scheduleScriptFunc(function()
    rect:rotation(rect:getRotation()+1)
    --     local px,py=dot:getPosition();
    --     print(px,py)
    local p=dot:convertToWorldSpace(cc.p(0,0))
    print(p.x,p.y)
    end,0,false)
    rect:size(300,300);
    rect:setAnchorPoint(cc.p(0.5,0.5))

3、小球做椭圆运动(三角函数的应用)

    local angle=0
    local dot=display.newDrawNode():addTo(self):pos(20,20):center()
    dot:drawDot(cc.p(0,0),10,cc.c4f(1.0,1.0,1.0,1.0))
    self:getScheduler():scheduleScriptFunc(function()
    dot:setPositionX(display.cx+math.cos(angle)*110+0.1)
    dot:setPositionY(display.cy+math.sin(angle)*100+0.1)
    angle=angle+0.1
    end,0,false)

时间: 2024-11-10 03:14:08

【Cocos2D学习】Lua——数学知识的基本应用的相关文章

学习大数据技术,需要具备哪些【数学知识】?你了解了吗?

谈起大数据技术,很多人都觉得是高大上的一门技术,学起来应该是困难重重!其实对于大数据技术而言,难的不是大数据技术本身,而是需要太多的基础知识,比如说:数学知识.英语能力.编程基础等等. 数学,我们从小就开始学习,一直在跟各种数据打交道,各种公式等等,是大数据学习的必备技术之一. 英语,对于大数据技术文章,比较先进的还是外文比较多,需要一定的英语基础,当然了翻译软件是个好东西,但必要的英语能力也是必须的. 编程,这个就不用我多说了吧,计算机语言,你学不会,该如何向电脑发布指令! 好了,回归我们今天

3D Game Programming withDX11 学习笔记(一) 数学知识总结

在图形学中,数学是不可或缺的一部分,所以本书最开始的部分就是数学知识的复习.在图形学中,最常用的是矢量和矩阵,所以我根据前面三个章节的数学知识,总结一下数学知识. 一.矢量 数学中的矢量,拥有方向和长度.其实矢量和点在坐标系中的表示完全一致(笛卡尔坐标系为准),区分矢量和点的关键,我觉得就是做平移.点是不能用平移操作来保证一致的,比如点A(1,2,3)经过平移矢量(1,2,3)后就是B(2,4,6),此时就是一个新的点.但是矢量经过相同平移操作后,还是矢量(1,2,3),这是因为矢量表示的是 v

编程需要知道多少数学知识?

数学和编程有一种容易让人误解的联系.许多人认为在开始学习编程之前必须对数学很在行或者数学分数很高.但一个人为了编程的话,需要学习多少数学呢? ([伯乐在线编注]:本文仅为 Al Sweigart 一家之言,再推荐 Alan Skorkin 的这篇文章<数学是成就卓越开发人员的必备技能>.) 实际上不需要很多.这篇文章中我会深入探讨编程中所需要的数学知识.你可能已经都知道了. 对于基本的编程,你需要知道下面的: 加减乘除 - 实际上,电脑会帮你作加减乘除运算.你仅需要知道什么时候运用它们. 模运

需要学习的数学

1.Linear Algebra (线性代数) 和 Statistics (统计学) 是最重要和不可缺少的. 这代表了Machine Learning中最主流的两大类方法的基础.一种是以研究函数和变换为重点的代数方法,比如Dimension reduction,feature extraction,Kernel等,一种是以研究统计模型和样本分布为重点的统计方法,比如Graphical model, Information theoretical models等.它们侧重虽有不同,但是常常是共同使

统计学习基本理论知识(一)

本篇将依据<统计自然语言处理>(宗成庆),重新梳理统计学习相关理论知识,相关概率论与梳理统计的课本不再列出来,可以找任意相关的课本复(预)习. 概率 概率是表示事件发生的可能性,将随机试验中的事件映射到实数域.用$P(A)$表示事件A的概率,$\Omega$表示试验的样本空间(所有可能发生的事件),则概率满足: 非负性:$P(A) \geq 0$ 规范性:$P(\Omega) = 1$ 可列可加性:对于可列个事件$A_1,A_2,...$,如果事件两两互不相容($A_i \bigcap A_j

第1课 - 学习Lua的意义

学习Lua的意义 1.Lua简介 (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目标是嵌入在C/C++中,为应用程序提供灵活的扩展和定制功能 (5) 不适合用于开发独立的应用程序 2.Lua产生的原因 C/C++工程中有大量的业务逻辑,而业务逻辑经常发生改变,这就需要更改源代码.由于C/C++是编译型语言,源码一旦改变就需要重新编译整个工程,在面对代码量很大的工程时需要耗费大量的时间.因此产生了一种想法

canvas绘图数学知识总结

题外话: 最近看了一本书叫 <HTML5 Canvas核心技术 图形.动画与游戏开发>已经算是看了85%,基本接近尾声,所以近期会多总结一些关于canvas的东西, 这本书讲的还算可以,最大的障碍就是一些数学知识和理论的应用,第八章的碰撞检测比较难理解,看这部分的时候,我感觉非常吃力,向量运算是主要技术点, 我这本书是以阅读源码为主的,有兴趣的朋友可以看看,大家交流一下. 三角函数 canvas中所有和角有关的api 都是用的弧度 js api 如 Math.sin(),Math.cos,Ma

Ant学习-001-ant 基础知识及windows环境配置

一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.TestNG等搭建持续集成测试开发环境,从而高效.高质量的构建产品. Ant 有以下一些优点: 跨平台,可移植.Ant 是 Java 语言编写的,所以有很好的跨平台性和可移植性,无论是在 windows.Linux,还是 mac. 操作简单. Ant 是由一个内置任务和可选任务组成的,运行时需要一个构

项目中几个需要学习的新知识

首先说今天学习的是做一个图书商城的小项目,但是之前学习的好多知识都要使用上面的啦,嘿嘿,顿时感觉有点成就感,因为之前学习的好多的知识点还是蛮碎的,现在可以通过做程序练习练习,这是在还不过的,在小项目做今天学习了很多的新知识,也许以后工作以后我会使用到这些吧,想清晰点的总结一下,以免忘记可以重新在这里找回,好啦总结一下今天学习的新知识. 一.发送邮件激活注册的账号 public static void SendManyEmail(string id, params string[] EamilTo