コード例 #1
0
ファイル: Game1.cs プロジェクト: Yuugoh/Yuugosu
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            // TODO: Add your drawing code here
            spriteBatch.Begin();
            gameField.Draw(spriteBatch);
            spriteBatch.Draw(mouseTexture, new Vector2(mousePosition.X, mousePosition.Y), Color.White);

            currentObjects.Clear();
            foreach (HitCircle circle in map.hitObjects)
            {
                int time = bassPosition();
                if (time >= circle.hitTime - map.getRealtimeAR() &&
                        time <= circle.hitTime + 50)
                {
                    currentObjects.Add(circle);
                    circle.Scale = map.circleSize;
                    circle.ApproachScale = circle.approachSize(time, map.getRealtimeAR());

                    circle.Draw(this.spriteBatch);
                }
            }

            int theTime = bassPosition();
            if ((mCurrentMouseState.LeftButton == ButtonState.Pressed && mPreviousMouseState.LeftButton == ButtonState.Released)
                    ||(mCurrentMouseState.RightButton == ButtonState.Pressed && mPreviousMouseState.RightButton == ButtonState.Released))
            {
                for (int i = 0; i < currentObjects.Count; i++)
                {
                    HitCircle hc = (HitCircle)currentObjects.ElementAt(i);
                    Rectangle rect = new Rectangle((int)hc.position.X, (int)hc.position.Y, hc.size.Width, hc.size.Height);
                    if (rect.Contains(mousePosition) && (theTime >= hc.hitTime - map.getRealtimeAR() &&
                            theTime <= hc.hitTime + 50))
                    {
                        int accuracy = checkHitTiming(hc, theTime);
                        ScoreObject scr = new ScoreObject(theTime, accuracy, this.Content);
                        if (!currentScoreObjects.Contains(scr))
                            currentScoreObjects.Add(scr);

                        foreach (ScoreObject so in currentScoreObjects)
                        {
                            so.LoadContent(this.Content);
                            so.Draw(spriteBatch, new Vector2(rect.X, rect.Y), theTime);
                        }
                        currentObjects.Remove(hc);
                    }
                }
            }

            spriteBatch.End();

            base.Draw(gameTime);
        }
コード例 #2
0
ファイル: Game1.cs プロジェクト: Yuugoh/Yuugosu
 public void onMouseClick(int theTime)
 {
     for(int i = 0; i < currentObjects.Count; i++)
     {
         HitCircle hc = (HitCircle)currentObjects.ElementAt(i);
         Rectangle rect = new Rectangle((int)hc.position.X, (int)hc.position.Y, hc.size.Width, hc.size.Height);
         if (rect.Contains(mousePosition) &&  (theTime >= hc.hitTime - map.getRealtimeAR() &&
                 theTime <= hc.hitTime + 50))
         {
             int accuracy = checkHitTiming(hc, theTime);
             ScoreObject so = new ScoreObject(theTime, accuracy, this.Content);
             so.LoadContent(this.Content);
             so.Draw(this.spriteBatch, new Vector2(rect.X, rect.Y), theTime);
             currentObjects.Remove(hc);
         }
     }
 }