《运动的小球》第一篇

Visual C++游戏编程基础之匀速运动 一、基本思路 1.匀速运动:物体在每一个时刻的速度是相同的,即Vx和Vy保持不变; 2.关于下次的贴图坐标: 下次X的坐标=当前X的坐标 + Vx; 下次Y的坐标=当前Y的坐标 + Vy; 3.设小球匀速运动,碰到窗口边缘则反弹; 二、效果... 阅读详情

此项目用cocos2d-x 3.2 编写,极其简单
(我也想做有难度点的,可是能力还不足0.0)~~

首先创建一个名为Ball的项目。。。
修改HelloWorldScene.h文件为PhysicsWorld.h:
            

#ifndef __PHYSICSWORLD_H__
#define __PHYSICSWORLD_H__

#include "cocos2d.h"

USING_NS_CC;

class Physicsworld : public Layer
{
public:

    static Scene* createScene();
    virtual bool init();      
    CREATE_FUNC(Physicsworld);    

private:
 Size winSize;
};
#endif 

 

HelloWorldScene.cpp改为PhysicsWorld.cpp,首先创建一个物理世界(其实就是把窗口设置成盒子,
盒子里有重力,里面空心,就像小黑屋-@_@-)

#include "PhysicsWorld.h"

Scene* Physicsworld::createScene()
{
 //物理场景
 auto scene = Scene::createWithPhysics();
       //重力设置为水平向下
 Vect gravity(0, -10.0f);
 scene->getPhysicsWorld()->setGravity(gravity);

 //开启测试模式
 scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);

 Size winSize = Director::getInstance()->getWinSize();
 //创建边界,为空心盒子刚体,参数分别为刚体大小,材质,边线厚度
 auto body = PhysicsBody::createEdgeBox(Size(winSize.width, 
  winSize.height), PHYSICSBODY_MATERIAL_DEFAULT, 2);

 //创建一个节点, 用于承载刚体
 auto node = Node::create();
 node->setPosition(Point(winSize.width/2, winSize.height/2));
 node->setPhysicsBody(body);
 scene->addChild(node);

    auto layer = Physicsworld::create();
    scene->addChild(layer, 1);

    return scene;
}

bool Physicsworld::init()
{
    if ( !Layer::init() )
    {
        return false;
    }   

    return true;
}



其实很简单啦,我懂的都写上注释了,没注释的都是很简单的
(其实是我不知道怎么注释,不要揭穿我(>_<)~~)

 

最后别忘了在AppDelegate.h中修改

#include "PhysicsWorld.h"

和

 auto scene = Physicsworld::createScene();

    // run
    director->runWithScene(scene);


 

好了,物理世界创建好了,看看效果图:


 

 

嗯~~  白色的背景是因为我在AppDelegate.h中添加了

glClearColor(1.0, 1.0, 1.0, 1.0);

 

对了,这个物理世界是借鉴了笨木头前辈的

http://www.benmutou.com/blog/archives/804

 

 

小球运动及碰撞3D仿真模型 物体运动及碰撞是一个非常基础但是很普遍物理过程,在许多场景中都会发生,小到微观世界中研究气体反应的分子碰撞理论,大到宇宙中星体运动及星系演化。不管是游戏领域,机器人领域,还是计算化学领域,都会涉及到物体运动和碰撞过程。 阅读详情

相关推荐

javaScript实现小球运动Demo

代码如下:&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;    &lt;meta charset="utf-8"&gt;    &lt;meta name="Keywords" content="28-JS作业小球运动"&gt;    &lt;meta name="Description" cont

码农云云的博客 3578

小球匀速运动碰壁时弹回

代码入下: 代码的运行结果如下图所示:

haha-zhao的博客 636

Threejs,小球沿随机线的轨迹运动

最近想做一个粒子沿轨迹线运动的东东,不过还是先实现了一个小目标,有空在添加粒子的部分。 功能:主要的功能如下,就是一个小球沿着一个随意生成的线运动。 原理:原理也不复杂,两个点之间的向量差就是小球应该运动的方向。直接加上小球当前的位置就是小球要到达的目标位置。 主要代码:默认为threeJS标准场景,参考:(留个坑,假装有连接) 先随机生成几个点存下来,我想让点都在坐标轴正方向的象限内,就取了随...

映月潜的博客 6198

C语言 小球碰撞

(1)ASD控制的小球_EasyX教程作业 https://blog.csdn.net/crazyacm/article/details/48163245 (2)用EasyX绘制多球碰撞中的碰撞代码 https://blog.csdn.net/winter_wu_1998/article/details/78060609 ...

JxufeCarol的博客 1856

QT5-实现小球运动碰撞

QT实现小球运动碰撞思路程序结构设置运动速度画出小球boundingRect和Shape函数运动和碰撞反弹 编程工具为vs2010+qt 5.1.2 思路 由于第一次刚使用qt,所以就写写博客分享一个qt新手从入门到放弃这个过程。 这个小设计使用QT中的QGraphics框架,这个框架适用于2D图像和动画的操作,包括各种变换以及事件检测等,而在其中的Colliding函数对于碰撞检测这一功能的实现...

qq_37643985的博客 3097

Android UI之小球运动

前言 最近接了个私活(比较简单),其中用到了自定义小球的部分,借此学习并记录一下。。 要求: 绘制一个运动的小球,小球有4个运动方向,分别是45度、135度、225度和315度。开始时小球位于任意位置,并以4个方向中的任意一个方向开始运动,当遇到区域边缘(屏幕边缘)时,以相反角度(镜面反射)回弹。 整体思路: 自定义小球view 获取屏幕宽高,生成随机圆心坐标,定义四个反向的运行速度 定义一...

qq_34341338的博客 1358

js实现小球随机运动

HTML <div class='box'> <div class='ball'></div> </div> style: .box{ width:300px; height:400px; background-color:green; opacity:0.5; margin:auto; position:r...

Sunday97的博客 2742

js运动 小球在页面内回弹

html> html> head lang="en"> meta charset="UTF-8"> title>title> style type="text/css"> #div{ width: 100px;height: 100px;background-color: #ff0000;position: absolute;

kkm486622296的博客 2224

js实现简单的小球与边框碰撞反弹改变运动方向及颜色,并且继续运动的特效

js实现简单的小球与边框碰撞反弹改变运动方向及颜色,并且继续运动特效 思路:首先先实现一个小球的运动和撞边框反弹效果,并且改变其颜色 主要实现方法:1.小球定位,运动靠改变它的position上下左右值;2.获取浏览器的宽高,由此设置小球运动的最大范围,大于等于这个范围的时候就改变运动方向;3.颜色的改变采用rgb方法,rgb的三个数值均用Math.random随机生成;

YaWen的博客 1万+

Java实验(20) 沿正弦曲线运动的小球

如图,编程实现让小球沿着正弦曲线从左向右运动,如果到达曲线右边界,则回到最左边重新开始运动。用户按一次空格键可以暂停小球运动,再按一次空格键可以让小球继续运动。 import javafx.animation.PathTransition; import javafx.animation.Timeline; import javafx.application.Applicat

黄瓜菜生长的土地 3327

js实现小球抛物线轨迹运动的两种方式

js实现小球抛物轨迹运动的大致思路:   1、用setInterval()方法,进行间隔性刷新,更新小球位置,以实现动态效果    2、绘制小球和运动区域,运动区域可通过flex布局实现垂直居中    3、用物理公式S(y)=1/2*g*t*t,S(x)=V(x)t来计算路径   现确定V(x)=4m/s,刷新的时间间隔设置为0.1s。原本px和米之间的转换,不同尺寸转换不同,本例采用17

u013420372的博客 1万+

【Unity】控制小球运动

如果相机位置固定,小球运动的时候无法实时看到小球的运动,因此要让相机跟随运动,才有运动的效果;给小球创建一个刚体(有重力的物体),并添加一个Player脚本;建立地面Plane、小球Player和四面墙Wall。

DevFrank的博客 2666

js 小球碰壁反弹and小球碰撞

好像好几天没有更博了呢,最近有点变懒了,这样不好,不好~~我们要做热爱学习的好孩子,嘻嘻,今天下午补上。。。我们在学习js的时候,一个很经典的案例就是小球的碰壁反弹效果啦~简单的小球碰壁效果可以慢慢延伸,让我们做出的效果更漂亮。如图~这个样子放上好像有点单调,这个案例就是实现了多个小球的同时碰壁反弹,并且不同的小球碰撞后也可发生碰撞反应,相应的小球运动方向也会发生改变。什么事情都要从简单开始,一点一

敲代码不爱找bug的妹子 1万+

javafx小球运动

javafx使用图形界面在随机位置生成颜色随机、半径随机、初始运动速度随机的小球,然后按照某种轨迹进行运动(运动轨迹方程自选),到边界碰撞返回。 我太爱我的java张春凤老师了,第一次写博客记录编程生涯,新人还请多多关照! 根据大佬内容改编: link. package application; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx

CHIhacker666的博客 3267

MFC框架下的简单动画:小球平抛运动的源代码分析

分析程序 从程序的运行效果来看,白色的小球在黑色的背景下,从左上角出发作平抛运动,当小球达到最底面和最右边的边界的时候会反弹。注意观察的话,小球的白色是非常特别的,请原谅我这一个理科生不知道用专业术语来描述,视觉上来看,就是有一束光照着小球,让小球出现了明暗的变化,非常有立体感。除此之外,没有什么特别的,程序运行的效果并不复杂。   分析源代码 本程序运用了MFC框架(单文档),所以看起来

zy825316的专栏 3100

如何利用js实现小球运动【全网最详解析】

js实现小球运动随着人工智能的不断发展,web前端这门技术也越来越重要,很多人都开启了学习web前端,本文就介绍web前端的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了js怎样实现小球运动,以上用到了DOM距离,分别为:元素的可视距离: tag.clientHeight,tag.clientWidth ,元素控件距离: tag.offsetHeight,tag.offsetWidth,被撑开的距离: tag.scrollHieght,tag.scrollWidth。.........

weixin_54139195的博客 2839

原生JS实现小球运动案例

1、创建一个小球 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin:0; padding:0 } body{ background-color: #

Pure_White520的博客 1383

在 Coze 平台工作流开发中,使用图生视频大模型需要时间比较长比如5分钟,如何解决工作流运行超时的问题以及等在视频生成以后再向下走

在 Coze 平台工作流开发中,使用图生视频大模型需要时间比较长比如5分钟,如何解决工作流运行超时的问题以及等在视频生成以后再向下走 同步的比较简单,直接在coze 工作流里面就可以搞定了,也不用写代码之类的

AI懒虫 2358

使用pygame库实现小球的运动

今天偶然发现Python还能开放小游戏,自己试着了解了下pygame库,做了一个简单的小球运动的游戏。 其中用到了image.load方法加载图片生成Surface对象time.Clock控制小球的运动频率,transform.scale设置小球的大小, ballrect.move控制小球移动,screen.blit刷新屏幕。使用键盘上下,左右来控制木板来接小球。 具体代码如下: imp...

dhxjd735933的博客 2085

SBP依赖计算中的蝴蝶效应:一个Prefab修改如何触发全量重建?

本文深入探讨了Unity中SBP(Scriptable Build Pipeline)依赖计算的蝴蝶效应,解析了Prefab修改如何触发全量重建的机制。通过分析Asset与Object的层级关系、依赖计算的三种维度及CacheEntry系统,揭示了全量重建的根本原因,并提供了依赖可视化工具开发、优化策略与最佳实践,帮助开发者提升构建效率。

weixin_29015051的博客 444

RKNN3588——YOLOv8的PT模型转RKNN模型

1. 首先克隆rknn修改后的ultralytics版本项目到本地主要是修改了源码的ultralytics/nn/modules/head.py和ultralytics/engine/exporter.py两个文件。2. 使用修改后的ultralytics对pt模型进行模型转换,此处的format=rknn代表支持rknn后续的转换,而不是用onnx,一定要注意!!!

张飞飞的博客 7173
上一篇: 《运动的小球》开启
下一篇: 《运动的小球》第二篇
Cross_0113
博客等级 码龄12年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值