Exemplo n.º 1
0
        public void UpdateSpeedBoostStars()
        {
            int howOften;

            if (Globals.g_world.deviceType == (int)UIDevicePlatform.UIDevice3GiPhone)
            {
                howOften = 5;
            }
            else
            {
                howOften = 3;
            }

            if (Utilities.GetRand(howOften) == 0)
            {
                Particle particle = (ParticleSystemRoss.Instance()).GetNextFreeParticleP1(ParticleList.t_WhiteStars, "speedbooststars");
                if (particle != null)
                {
                    Particle.ParticleInfo info = new Particle.ParticleInfo();
                    info.isAdditive       = true;
                    info.type             = ParticleType.kParticle_Generic;
                    info.texture[0]       = (Globals.g_world.GetGame()).GetTexture(TextureType.kTexture_SpeedTrailWhiteStar);
                    info.startPosition    = player.GetPosition();
                    info.startPosition.x += ((float)(Utilities.GetRand(30))) - 15;
                    info.startPosition.y += ((float)(Utilities.GetRand(30))) - 15;
                    info.startPosition.y -= player.GetActualSpeed().y * 1.5f;
                    info.velocity         = Utilities.CGPointMake(player.GetActualSpeed().x * 0.5f, player.GetActualSpeed().y * 0.5f);
                    info.startPosition.y += Utilities.GetYOffsetFromHeight(player.positionZ);
                    info.rotationSpeed    = 0.2f;
                    info.alphaStart       = 0.5f;
                    info.alphaSpeed       = 0.025f;
                    info.scaleSpeed       = Globals.g_world.GetRotationScaleForShorts(-0.075f);
                    info.scaleStart       = 0.25f;
                    float scaleFactor = Utilities.GetScaleFromHeight(player.positionZ);
                    if (scaleFactor > 1.0f)
                    {
                        info.scaleSpeed *= (scaleFactor * 1.0f);
                        info.scaleStart *= (scaleFactor * 1.0f);
                    }

                    particle.Launch_SingleParticle(info);
                    particle.SetAtlasAndSubTextureId(Globals.g_world.GetAtlas(AtlasType.kAtlas_ParticlesScene), 16);
                    particle.SetRotationScale(Globals.g_world.GetRotationScaleForShorts(22.63f * scaleFactor));
                    if (Globals.deviceIPad)
                    {
                        float rotScale = (Globals.g_world.GetAtlas(AtlasType.kAtlas_ParticlesScene)).GetSubTextureRotationScale(particle.subTextureId);
                        particle.SetRotationScale(rotScale);
                    }
                    particle.SetIsAdditive(true);
                }
            }
        }
Exemplo n.º 2
0
        public void UpdateBoostArrowStars()
        {
            for (int i = 0; i < 2; i++)
            {
                Particle particle = (ParticleSystemRoss.Instance()).GetNextFreeParticleP1(ParticleList.t_WhiteStars, "boost arrow stars");
                if (particle != null)
                {
                    Particle.ParticleInfo info = new Particle.ParticleInfo();
                    info.isAdditive       = true;
                    info.type             = ParticleType.kParticle_Generic;
                    info.texture[0]       = null;
                    info.startPosition    = player.GetPosition();
                    info.startPosition.x += ((float)(Utilities.GetRand(30))) - 15;
                    info.startPosition.y += ((float)(Utilities.GetRand(30))) - 15;
                    info.startPosition.y -= 15.0f;
                    info.startPosition.y += Utilities.GetYOffsetFromHeight(player.positionZ);
                    info.velocity         = Utilities.CGPointMake(player.GetActualSpeed().x * 0.5f, player.GetActualSpeed().y * 0.5f);
                    info.rotationSpeed    = 0.2f;
                    info.alphaStart       = 0.5f;
                    info.alphaSpeed       = 0.035f;
                    info.scaleSpeed       = Globals.g_world.GetRotationScaleForShorts(-0.05f * 3.56f);
                    info.scaleStart       = 0.25f * 3.56f;
                    float scaleFactor = Utilities.GetScaleFromHeight(player.positionZ);
                    if (scaleFactor > 1.0f)
                    {
                        info.scaleSpeed *= (scaleFactor * 1.0f);
                        info.scaleStart *= (scaleFactor * 1.0f);
                    }

                    if (Globals.deviceIPad)
                    {
                        info.scaleSpeed *= 2.0f;
                    }

                    particle.Launch_SingleParticle(info);
                    particle.SetAtlasAndSubTextureId(Globals.g_world.GetAtlas(AtlasType.kAtlas_ParticlesScene), 15);
                    particle.SetRotationScale(Globals.g_world.GetRotationScaleForShorts(Constants.ROT_SCALE_64 * scaleFactor));
                    if (Globals.deviceIPad)
                    {
                        particle.SetRotationScale(Globals.g_world.GetRotationScaleForShorts(Constants.ROT_SCALE_64 * scaleFactor * 2.0f));
                    }
                    particle.SetIsAdditive(true);
                }
            }
        }
Exemplo n.º 3
0
        public void UpdatePlaying()
        {
            if (ghostCurrentFrame >= numFrames)
            {
                ghostScreenPos.x = -100;
                ghostScreenPos.y = -100;
                return;
            }

            if (!ghostRecordedYet)
            {
                return;
            }

            position          = Utilities.CGPointMake(frameData[ghostCurrentFrame].x, frameData[ghostCurrentFrame].y);
            ghostScreenPos    = (Globals.g_world.game).GetScreenPosition(position);
            scale             = Utilities.GetScaleFromHeight(frameData[ghostCurrentFrame].positionZ);
            ghostScreenPos.y += Utilities.GetYOffsetFromHeight(frameData[ghostCurrentFrame].positionZ);
            ghostCurrentFrame++;
        }