我和我的朋友决定一起创建一个平台,作为我们的计算机科学项目。我目前正在使用p5.js库中的图像函数在图像之间交换,并创建用于行走、跳跃等的动画。我查看了以前在Sega Mega Drive和NES等系统上进行2d游戏的方式,并了解到当时2D空间中所有用于图形的都是精灵。
经过更多的研究,我发现精灵被制作成一个大的图像文件,上面有很多不同的帧动画,像NES这样的系统甚至可以倒转这些图像的部分!我甚至读到,你可以把同样的雪碧还原到不同的调色板上!
我查阅了p5.js库,它具有sprite功能,但当我四处查看它们的工作方式时,它们总是只用于制作彩色方块,而不显示如何将它们与存储其中所有图像的图像文件
在相位器3中,我使用重叠来检查碰撞。我的代码如下:
//bulletA is an array(one of the 2 arrays where collison is being checked) it contains all my bullet sprites
//enemy1 is an array containing all the enemies, which I am testing for collision with my bullets. It contains all my enemy sprites
this.physics.add.overlap(bulletA,
我正在使用一个动画精灵来碰撞和删除敌人的精灵。敌人精灵在撞到我的地板时也消失了。(均有rigidbody2D)。我怎样才能让敌人的精灵无视地板和除动画精灵之外的其他一切?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Collision : MonoBehaviour
{
void Start()
{
}
void Update()
{
}
void OnCollisionEnter2D()
我正在开发一个游戏,其中一个精灵是连续生成的现场与随机路径。我将路径修饰符应用于它们。在现场的随机运动中,一个精灵和另一个精灵重叠。我想要停止这种重叠.
我立刻找到了两种解决方案。(可能)
First one:这个原因我认为如果我检测到它们之间的冲突,那么给出一条新的路径可能会得到解决。
第二个:当发生碰撞时,如果我暂停路径修饰符2/3秒,然后在恢复路径修饰符后再次移动。(这可能吗?)
我现在试着第一次接近。Problem:我无法在更新处理程序中唯一地识别sprite来迭代。我不使用图层来附加。
我使用泛型池来生成和循环它们。
代码:
public Iterator<EasyEnemy&
有一个项目与一个三角形图形在一个精灵。我将这些精灵排列在一个网格中,以便它们的矩形都是重叠的。当精灵被触摸时,它们的z顺序正在改变(由我),以将它们放在zOrder的顶部。
我使用的是Cocos 0.8.1和touch dispatcher方法。我有触摸工作,但显然“隐藏”精灵是重叠的其他精灵不能被触摸。
问题是,"Is the touch in my rect“方法是基于精灵的矩形,但图像是一个三角形,我想问一下,是否有人知道Cocos友好的方法来测试图像本身是否被击中。
我似乎记得这在当时是一种流行的点击测试方法,但我找不到任何关于它在Cocos/iPhone Land中如何实现的
我在无限跑步者上工作,我需要在单个精灵和精灵CCArray中的任何精灵之间进行碰撞检测。你建议我怎么做?目前,这是我用来检查冲突的方法,但它不起作用。
bool RunningScene::spritesAreColliding(cocos2d::CCSprite *spr1, cocos2d::CCSprite *spr2)
{
//Take the bounding box of the two sprites that are bounded
CCRect r1 = spr1->boundingBox();
CCRect r2 = spr2->boundingBox();
我正在尝试创建这个游戏,在启动时添加50个精灵到屏幕上。我在这个sprite的__init__函数中有以下内容:
if self.overlapping_sprites:
for sprite in self.overlapping_sprites:
self.game.make_obstacles(1, 1400, self.game.speed)
self.die()
这几乎检测到是否有任何重叠的精灵,并且对于每个精灵,它创建一个新的精灵并删除有问题的精灵。实现这段代码确实很神奇,但它仍然不是完美的。在加载中肯定还有一些重叠的精灵。哦,我应该提一下,
for spike in self.overlapping_sprites:
spike.handle_collide
这两行代码对初学者来说很神奇。然而,在我的游戏中,我似乎撞到了一块砖墙。经过测试后,我找不到一个方法来使碰撞更精确!我的意思是,不是当两个精灵真正接触到它们,而是它们周围的盒子重叠的时候。那么,我怎样才能做到,这样我的精灵周围的透明区域就不算碰撞,如果它碰到了其他精灵呢?
我正在创建一个加法和减法游戏,其中一个和被随机生成并显示在容器的顶部。然后,数字会从下到上呈现动画效果,这样就可以点击正确的数字。
数字在开始时被赋予一个随机的"x“位置,然后以相同的速度动画到顶部。
我遇到的问题是,当程序运行时,元素有时会重叠,因为它们在开始时被赋予了类似的"x“位置。
我需要告诉程序不要给出相同的"x“位置,直到使用它的元素在屏幕上足够远,以便它们不会重叠。
问题是在游戏第一次开始的时候是最糟糕的。
下面是相关的代码。
var currentMoving = [];
function moveRandom(id) {
// Mark t