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-游戏滚动背景相关推荐

  1. 《飞机大战》安卓游戏开发源码(三)

    为什么80%的码农都做不了架构师?>>>    本文章属于原创性文章,珍惜他人劳动成果,转载请注明出处:http://www.pm-road.com/index.php/2014/1 ...

  2. c语言小程序飞机大战,飞机大战微信小游戏:经典像素飞机大战小程序,点开即玩...

    50000+游戏爱好者已加入我们! 每天推荐好玩游戏! 关注我们,沐沐带你发现好游戏! <经典像素飞机大战>游戏小程序好玩吗? <经典像素飞机大战>小游戏怎么玩? 怎么进入&l ...

  3. JAVA 实现《飞机大战-II》游戏

    前言 <飞机大战-II>是一款融合了街机.竞技等多种元素的经典射击手游.华丽精致的游戏画面,超炫带感的技能特效,超火爆画面让你肾上腺素爆棚,给你带来全方位震撼感受,体验飞行战斗的无限乐趣. ...

  4. JAVA 实现《飞机大战-I》游戏

    前言 <飞机大战-I>是一款融合了街机.竞技等多种元素的经典射击手游.华丽精致的游戏画面,超炫带感的技能特效,超火爆画面让你肾上腺素爆棚,给你带来全方位震撼感受,体验飞行战斗的无限乐趣. ...

  5. python轰炸敌机小游戏_python实现飞机大战微信小游戏

    0.前言 我学一种语言,可以说学任何东西都喜欢自己动手实践,总感觉自己动手一遍,就可以理解的更透彻,学python也一样,自己动手写代码,但更喜欢做点小东西出来,一边玩一边学.下面我就展示一下我最近做 ...

  6. HTML+CSS+JS制作【飞机大战】小游戏(键盘版和鼠标版)

    文章目录 一.效果演示 设计思路 二.鼠标版飞机大战代码展示 1.HTML结构代码 2.CSS样式代码 3.JavaScript代码 js.js文件 plane.js文件 三.键盘版飞机大战代码展示 ...

  7. 太空射击unity工程素材文件 飞机大战 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本

    飞机大战素材 太空大战unity工程文件 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本 希望能对初学者提供帮助,代码根据教材以及out了的代码更新了, ...

  8. 飞机大战python小游戏

    python飞机大战 #导入模块 import pygame import random from pygame.locals import * from os import path #获取图片库和 ...

  9. 飞机大战——Java小游戏

    飞机大战 文章目录 飞机大战 游戏需求 代码实现 子弹类 英雄机类 小敌机类 大敌机类 小蜜蜂类 飞行物类 接口类 爆炸类 游戏窗口类 游戏需求 所参与角色:英雄机.子弹.小敌机.大敌机.小蜜蜂.天空 ...

  10. MFC实现简单飞机大战(含游戏声音)

    1 实验内容 本实验主要是实现简单的飞机大战游戏,包含游戏声音.碰撞后爆炸效果,有大小敌机等.所用到的知识点如下: 1.贴图技术 2.飞机类.子弹类实现 3.位图移动 4.碰撞判断,实现爆炸效果 5. ...

最新文章

  1. 438. Find All Anagrams in a String
  2. Python基础——数据分析考核(基础版本)
  3. kafka发送消息至指定分区
  4. 网络工程师考试2005年上半年下午试题解析(二)
  5. Navicat 连接Oracle时提示oracle library is not loaded的问题解决
  6. opencv笔记(6):彩色图像直方图
  7. [FFmpeg] 在 ffplay 源码中嵌入 YOLO 算法实现实时物体检测
  8. NAT网络映射设置:允许局域网用户访问VMWare内linux的SSH
  9. 数据提交到服务器后,在中间层所做的修改,能及时反应到客户端吗?
  10. oracle空值问题
  11. 七月算法机器学习1 机器学习初识
  12. 机器视觉常用算法C语言实现
  13. Dubbo实现分布式架构原理
  14. Centos7安装sqliteman
  15. 离散数学知识点总结(3):等值演算,16个命题定律 / 基础等价式,重言式的替换规则,证明有效性和可满足性的方法
  16. 用AI让逝去的亲人照片动起来后,数百万网友泪目:原来思念这么重
  17. 公共数据库介绍~google公共数据
  18. iframe嵌套视频,视频全屏用不了
  19. 刷算法第五天——P5594 模拟赛
  20. 最强量子计算机争霸:谷歌和IBM,谁是真正赢家?

热门文章

  1. python爬虫 - 代理ip正确使用方法
  2. 流程类测试用例设计方法和测试策略
  3. 优化工具 Neos Server
  4. rsync下行同步与inotify实时同步
  5. UI设计培训主要学习哪些内容
  6. 我花了五个小时的时间,将全部文章详细整理出来了,千万不要错过!
  7. Unity接入OneStore内购
  8. 数据挖掘:基于规则的分类器Rule-Based Classifier
  9. 计算机毕业设计 SSMKTV点歌系统 音创ktv点歌系统 卡拉ok点歌系统Java Vue MySQL数据库 远程调试 代码讲解
  10. 如何建设运维告警体系,保障SLA的5个9