2021-04-28-飞机大战-001-day5-游戏滚动背景
2021-04-28-飞机大战-001-day5-游戏滚动背景
- 1:游戏滚动背景
- 1.1 **背景**类设计
- 1.2 成员函数的实现
- 效果显示
1:游戏滚动背景
1.1 背景类设计
#ifndef __LayerScrollBackground_H__
#define __LayerScrollBackground_H__
#include "Util.h"class ScrollBackground : public Sprite{protected:Sprite* _background;
public:ScrollBackground() {};~ScrollBackground() {};CREATE_FUNC(ScrollBackground);bool init();void addBackGround();CC_SYNTHESIZE(float, _speeds, Speeds); //背景速度CC_SYNTHESIZE(float, _angle, Angle); //背景方向void ChangeSpeedAngle(float speed, float angle);//改变背景移动速度和方向
};
#endif // !__LayerScroll_Background_H__
对于背景类,如果仅作为一个滚动背景的话,本身其实是不需要专门为其创建一个类来表示,因为仅需要一个精灵即可表示背景的存在,设计其为一个**精灵*。飞机移动的同时,背景应做反向移动;
但有想以后背景其实应该作为天空的一部分存在,和飞机运动并无直接关系,因此还是设计了一个类来表示。
用到的成员变量一个精灵_background,保护类型参数速度和方向想,(暂时设定其不用,后续可能会用)。
一个成员函数用于背景的移动,参数速度和方向。
飞机大战背景为从飞机前到飞机后不停的刷新,模拟飞机前进的状态,并带有速度(矢量)。
1.2 成员函数的实现
初始化函数init(),初始化父类即可。
#include "spriteScrollBackground.h"bool ScrollBackground::init()
{Sprite::init();return true;
}void ScrollBackground::addBackGround()
{_background = Util::addSprite(IMAGE_BACKGROUND);addChild(_background);setSpeeds(0);setAngle(0);
}void ScrollBackground::ChangeSpeedAngle(float speed, float angle)
{auto rect = _background->getTextureRect();rect.origin.x += speed * sin(M_PI / 180 * angle);rect.origin.y -= speed * cos(M_PI / 180 * angle);_background->setTextureRect(rect);
}
addBackGround()函数添加一个精灵,并添加到当前层中, 设置背景速度和方向,速度默认为0,方向默认为0(向北为0,顺时针为正)
ChangeSpeedAngle()函数用于改变背景的移动方向和速度,getTextureRect()函数可以获取背景精灵的左下角坐标,并改变其位置为当前位置加速度乘以速度方向上的大小,最后移动背景到改变位置。
效果显示
GIF图截图完太大了, 然后压缩了一下,结果就成这样了。
游戏默认速度为0,角度为0,速度飞机向前为正,背景向后为正,角度正北为0,顺时针为正。
飞机有了速度之后,意味着飞机向前,背景向飞机前进的反方向。
2021-04-28-飞机大战-001-day5-游戏滚动背景相关推荐
- 《飞机大战》安卓游戏开发源码(三)
为什么80%的码农都做不了架构师?>>> 本文章属于原创性文章,珍惜他人劳动成果,转载请注明出处:http://www.pm-road.com/index.php/2014/1 ...
- c语言小程序飞机大战,飞机大战微信小游戏:经典像素飞机大战小程序,点开即玩...
50000+游戏爱好者已加入我们! 每天推荐好玩游戏! 关注我们,沐沐带你发现好游戏! <经典像素飞机大战>游戏小程序好玩吗? <经典像素飞机大战>小游戏怎么玩? 怎么进入&l ...
- JAVA 实现《飞机大战-II》游戏
前言 <飞机大战-II>是一款融合了街机.竞技等多种元素的经典射击手游.华丽精致的游戏画面,超炫带感的技能特效,超火爆画面让你肾上腺素爆棚,给你带来全方位震撼感受,体验飞行战斗的无限乐趣. ...
- JAVA 实现《飞机大战-I》游戏
前言 <飞机大战-I>是一款融合了街机.竞技等多种元素的经典射击手游.华丽精致的游戏画面,超炫带感的技能特效,超火爆画面让你肾上腺素爆棚,给你带来全方位震撼感受,体验飞行战斗的无限乐趣. ...
- python轰炸敌机小游戏_python实现飞机大战微信小游戏
0.前言 我学一种语言,可以说学任何东西都喜欢自己动手实践,总感觉自己动手一遍,就可以理解的更透彻,学python也一样,自己动手写代码,但更喜欢做点小东西出来,一边玩一边学.下面我就展示一下我最近做 ...
- HTML+CSS+JS制作【飞机大战】小游戏(键盘版和鼠标版)
文章目录 一.效果演示 设计思路 二.鼠标版飞机大战代码展示 1.HTML结构代码 2.CSS样式代码 3.JavaScript代码 js.js文件 plane.js文件 三.键盘版飞机大战代码展示 ...
- 太空射击unity工程素材文件 飞机大战 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本
飞机大战素材 太空大战unity工程文件 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本 希望能对初学者提供帮助,代码根据教材以及out了的代码更新了, ...
- 飞机大战python小游戏
python飞机大战 #导入模块 import pygame import random from pygame.locals import * from os import path #获取图片库和 ...
- 飞机大战——Java小游戏
飞机大战 文章目录 飞机大战 游戏需求 代码实现 子弹类 英雄机类 小敌机类 大敌机类 小蜜蜂类 飞行物类 接口类 爆炸类 游戏窗口类 游戏需求 所参与角色:英雄机.子弹.小敌机.大敌机.小蜜蜂.天空 ...
- MFC实现简单飞机大战(含游戏声音)
1 实验内容 本实验主要是实现简单的飞机大战游戏,包含游戏声音.碰撞后爆炸效果,有大小敌机等.所用到的知识点如下: 1.贴图技术 2.飞机类.子弹类实现 3.位图移动 4.碰撞判断,实现爆炸效果 5. ...
最新文章
- 438. Find All Anagrams in a String
- Python基础——数据分析考核(基础版本)
- kafka发送消息至指定分区
- 网络工程师考试2005年上半年下午试题解析(二)
- Navicat 连接Oracle时提示oracle library is not loaded的问题解决
- opencv笔记(6):彩色图像直方图
- [FFmpeg] 在 ffplay 源码中嵌入 YOLO 算法实现实时物体检测
- NAT网络映射设置:允许局域网用户访问VMWare内linux的SSH
- 数据提交到服务器后,在中间层所做的修改,能及时反应到客户端吗?
- oracle空值问题
- 七月算法机器学习1 机器学习初识
- 机器视觉常用算法C语言实现
- Dubbo实现分布式架构原理
- Centos7安装sqliteman
- 离散数学知识点总结(3):等值演算,16个命题定律 / 基础等价式,重言式的替换规则,证明有效性和可满足性的方法
- 用AI让逝去的亲人照片动起来后,数百万网友泪目:原来思念这么重
- 公共数据库介绍~google公共数据
- iframe嵌套视频,视频全屏用不了
- 刷算法第五天——P5594 模拟赛
- 最强量子计算机争霸:谷歌和IBM,谁是真正赢家?