ผลต่างระหว่างรุ่นของ "418383/418587 ภาคปลาย 2553/คะแนนการบ้าน 2"
Cardcaptor (คุย | มีส่วนร่วม) |
Cardcaptor (คุย | มีส่วนร่วม) |
||
| (ไม่แสดง 19 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
| แถว 1: | แถว 1: | ||
== คะแนน == | == คะแนน == | ||
=== คนที่ไม่ได้ 0 คะแนน === | === คนที่ไม่ได้ 0 คะแนน === | ||
| + | * 47180278 ได้ 83 คะแนน | ||
| + | ** -5 for only adding one ball | ||
| + | ** -5 for not shooting the ball immediately | ||
| + | ** -5 for shooting only one bullet | ||
| + | ** -2 for having no music when the player clears a stage | ||
| + | * 51180198 ได้ 100 คะแนน | ||
| + | * 51180248 ได้ 100 คะแนน | ||
| + | * 5210400425 ได้ 100 คะแนน | ||
| + | * 5210400514 ได้ 93 คะแนน | ||
| + | ** -2 for no background music" | ||
| + | ** -5 for not changing the background image | ||
| + | * 5210404889 ได้ 100 คะแนน | ||
| + | * 5210404897 ได้ 98 คะแนน | ||
| + | ** -2 for not having music when player clears a stage | ||
| + | * 5210405036 ได้ 98 คะแนน | ||
| + | ** -2 for not having music when player clears a stage | ||
| + | * 5210450937 ได้ 94 คะแนน | ||
| + | ** -2 for no sound when bar hits wall | ||
| + | ** -2 for no sound when bar dies | ||
| + | ** -2 for not playing a song when the player clears a stage | ||
| + | * 5210450562 ได้ 100 คะแนน | ||
| + | |||
=== คนที่ได้ 0 คะแนนเนื่องจากลอกเพื่อนหรือให้เพื่อนลอก === | === คนที่ได้ 0 คะแนนเนื่องจากลอกเพื่อนหรือให้เพื่อนลอก === | ||
| + | * 51180537 | ||
| + | * 51180628 | ||
| + | * 51180727 | ||
| + | * 51180644 | ||
| + | * 5210400433 | ||
| + | * 5210404803 | ||
| + | * 5210450040 | ||
| + | * 5210450058 | ||
| + | * 5210450104 | ||
| + | * 5210450147 | ||
| + | * 5210450597 | ||
== การลอกกันที่ผมจับได้ == | == การลอกกันที่ผมจับได้ == | ||
| แถว 138: | แถว 171: | ||
=== Bullet.cs (Pattern 1) === | === Bullet.cs (Pattern 1) === | ||
| − | นิสิตหลายคนทำการคัดลอก Ball.cs มาเป็น Bullet.cs (5210400425 และ 5210405036) นี่ไม่นับเป็นการลอกเนื่องจากเป็นการใช้โค้ดเก่าของอาจารย์ อย่างไรก็ดีโค้ดของนิสิต 7 คนข้างล่างนี้มีลักษณะเด่นเหมือนๆ กัน ดังต่อไปนี้ คือ | + | นิสิตหลายคนทำการคัดลอก Ball.cs มาเป็น Bullet.cs (47180278, 51180248, 5210404889, 5210404897, 5210400425, และ 5210405036) นี่ไม่นับเป็นการลอกเนื่องจากเป็นการใช้โค้ดเก่าของอาจารย์ อย่างไรก็ดีโค้ดของนิสิต 7 คนข้างล่างนี้มีลักษณะเด่นเหมือนๆ กัน ดังต่อไปนี้ คือ |
* เหลือเมธอด CollideOnTopSurface และ ColildeOnButtomSurface ไว้ ไม่คง CollideOnLeftSurface และ CollideOnRightSurface ของ Ball.cs เดิมไว้ | * เหลือเมธอด CollideOnTopSurface และ ColildeOnButtomSurface ไว้ ไม่คง CollideOnLeftSurface และ CollideOnRightSurface ของ Ball.cs เดิมไว้ | ||
* กำหนดให้ Bullet มีขนาด 5 x 5 ช่องเหมือนๆ กัน | * กำหนดให้ Bullet มีขนาด 5 x 5 ช่องเหมือนๆ กัน | ||
| แถว 473: | แถว 506: | ||
</geshi> | </geshi> | ||
</td> | </td> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<td> | <td> | ||
<geshi lang="csharp"> | <geshi lang="csharp"> | ||
| แถว 494: | แถว 515: | ||
using Microsoft.Xna.Framework; | using Microsoft.Xna.Framework; | ||
using Microsoft.Xna.Framework.Content; | using Microsoft.Xna.Framework.Content; | ||
| − | |||
namespace BreakoutLib | namespace BreakoutLib | ||
| แถว 518: | แถว 538: | ||
get { return animation.Displacement; } | get { return animation.Displacement; } | ||
} | } | ||
| − | + | ||
| + | |||
public Rectangle CollisionRect | public Rectangle CollisionRect | ||
{ | { | ||
| แถว 527: | แถว 548: | ||
(int)(Position.Y), | (int)(Position.Y), | ||
(int)5, | (int)5, | ||
| − | (int) | + | (int)10); |
} | } | ||
} | } | ||
| แถว 537: | แถว 558: | ||
set { velocity = value; } | set { velocity = value; } | ||
} | } | ||
| + | |||
private int attackPower; | private int attackPower; | ||
public int AttackPower | public int AttackPower | ||
| แถว 542: | แถว 564: | ||
get { return attackPower; } | get { return attackPower; } | ||
} | } | ||
| + | |||
private float xPositionFromBarCenter; | private float xPositionFromBarCenter; | ||
public float XPositionFromBarCenter | public float XPositionFromBarCenter | ||
| แถว 547: | แถว 570: | ||
get { return xPositionFromBarCenter; } | get { return xPositionFromBarCenter; } | ||
set { xPositionFromBarCenter = value; } | set { xPositionFromBarCenter = value; } | ||
| − | } | + | } |
public Bullet() | public Bullet() | ||
{ | { | ||
| − | velocity = new Vector2(0, -0. | + | velocity = new Vector2(0, -0.5f); |
animation = new TranslationAnimation(bulletAnimation); | animation = new TranslationAnimation(bulletAnimation); | ||
| − | + | ||
attackPower = 1; | attackPower = 1; | ||
| + | |||
} | } | ||
| แถว 562: | แถว 586: | ||
} | } | ||
| − | + | public void CollideWithBrick(Brick brick) | |
{ | { | ||
| − | + | //this.attackPower = 0; | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| แถว 677: | แถว 607: | ||
if (intersectingArea.Height > intersectingArea.Width) | if (intersectingArea.Height > intersectingArea.Width) | ||
return false; | return false; | ||
| − | + | ||
return true; | return true; | ||
} | } | ||
| แถว 684: | แถว 614: | ||
</geshi> | </geshi> | ||
</td> | </td> | ||
| + | </tr> | ||
| + | </table> | ||
| + | |||
| + | ==== อีกรูปแบบหนึ่งที่คล้ายๆ กัน ==== | ||
| + | <table> | ||
| + | <tr> | ||
| + | <td align="center">5210450040</td> | ||
| + | <td align="center">5210450104</td> | ||
| + | </tr> | ||
| + | <tr> | ||
<td> | <td> | ||
<geshi lang="csharp"> | <geshi lang="csharp"> | ||
| แถว 693: | แถว 633: | ||
using Microsoft.Xna.Framework; | using Microsoft.Xna.Framework; | ||
using Microsoft.Xna.Framework.Content; | using Microsoft.Xna.Framework.Content; | ||
| + | |||
namespace BreakoutLib | namespace BreakoutLib | ||
| แถว 716: | แถว 657: | ||
get { return animation.Displacement; } | get { return animation.Displacement; } | ||
} | } | ||
| − | + | ||
| − | |||
public Rectangle CollisionRect | public Rectangle CollisionRect | ||
{ | { | ||
| แถว 726: | แถว 666: | ||
(int)(Position.Y), | (int)(Position.Y), | ||
(int)5, | (int)5, | ||
| − | (int) | + | (int)5); |
} | } | ||
} | } | ||
| แถว 736: | แถว 676: | ||
set { velocity = value; } | set { velocity = value; } | ||
} | } | ||
| − | |||
private int attackPower; | private int attackPower; | ||
public int AttackPower | public int AttackPower | ||
| แถว 742: | แถว 681: | ||
get { return attackPower; } | get { return attackPower; } | ||
} | } | ||
| − | |||
private float xPositionFromBarCenter; | private float xPositionFromBarCenter; | ||
public float XPositionFromBarCenter | public float XPositionFromBarCenter | ||
| แถว 748: | แถว 686: | ||
get { return xPositionFromBarCenter; } | get { return xPositionFromBarCenter; } | ||
set { xPositionFromBarCenter = value; } | set { xPositionFromBarCenter = value; } | ||
| − | } | + | } |
public Bullet() | public Bullet() | ||
{ | { | ||
| − | velocity = new Vector2(0, -0. | + | velocity = new Vector2(0, -0.2f); |
animation = new TranslationAnimation(bulletAnimation); | animation = new TranslationAnimation(bulletAnimation); | ||
| − | + | ||
attackPower = 1; | attackPower = 1; | ||
| − | |||
} | } | ||
| แถว 762: | แถว 699: | ||
{ | { | ||
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds); | Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds); | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| แถว 788: | แถว 720: | ||
return true; | return true; | ||
} | } | ||
| − | } | + | } |
} | } | ||
</geshi> | </geshi> | ||
| แถว 805: | แถว 737: | ||
{ | { | ||
public class Bullet : GameObject | public class Bullet : GameObject | ||
| − | + | { | |
private static Animation bulletAnimation; | private static Animation bulletAnimation; | ||
| แถว 812: | แถว 744: | ||
bulletAnimation = Animation.Load("bullet.anim", content); | bulletAnimation = Animation.Load("bullet.anim", content); | ||
} | } | ||
| − | |||
private TranslationAnimation animation; | private TranslationAnimation animation; | ||
public override GameLib.Animation.Animation Animation | public override GameLib.Animation.Animation Animation | ||
| แถว 818: | แถว 749: | ||
get { return animation; } | get { return animation; } | ||
} | } | ||
| − | |||
public Vector2 Position | public Vector2 Position | ||
{ | { | ||
| แถว 824: | แถว 754: | ||
get { return animation.Displacement; } | get { return animation.Displacement; } | ||
} | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
public Rectangle CollisionRect | public Rectangle CollisionRect | ||
| แถว 863: | แถว 779: | ||
get { return attackPower; } | get { return attackPower; } | ||
} | } | ||
| − | + | ||
private float xPositionFromBarCenter; | private float xPositionFromBarCenter; | ||
public float XPositionFromBarCenter | public float XPositionFromBarCenter | ||
| แถว 870: | แถว 786: | ||
set { xPositionFromBarCenter = value; } | set { xPositionFromBarCenter = value; } | ||
} | } | ||
| − | |||
| − | |||
public Bullet() | public Bullet() | ||
{ | { | ||
| − | velocity = new Vector2(0 | + | velocity = new Vector2(0, -0.2f); |
animation = new TranslationAnimation(bulletAnimation); | animation = new TranslationAnimation(bulletAnimation); | ||
attackPower = 1; | attackPower = 1; | ||
| − | |||
} | } | ||
| − | |||
| − | |||
public void UpdatePosition(GameTime gameTime) | public void UpdatePosition(GameTime gameTime) | ||
| − | { | + | { |
| − | + | Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds); | |
} | } | ||
| − | |||
| − | |||
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea) | private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea) | ||
| แถว 907: | แถว 816: | ||
if (intersectingArea.Height > intersectingArea.Width) | if (intersectingArea.Height > intersectingArea.Width) | ||
return false; | return false; | ||
| − | + | ||
return true; | return true; | ||
} | } | ||
| − | } | + | } |
} | } | ||
</geshi> | </geshi> | ||
รุ่นแก้ไขปัจจุบันเมื่อ 09:53, 21 มีนาคม 2554
เนื้อหา
คะแนน
คนที่ไม่ได้ 0 คะแนน
- 47180278 ได้ 83 คะแนน
- -5 for only adding one ball
- -5 for not shooting the ball immediately
- -5 for shooting only one bullet
- -2 for having no music when the player clears a stage
- 51180198 ได้ 100 คะแนน
- 51180248 ได้ 100 คะแนน
- 5210400425 ได้ 100 คะแนน
- 5210400514 ได้ 93 คะแนน
- -2 for no background music"
- -5 for not changing the background image
- 5210404889 ได้ 100 คะแนน
- 5210404897 ได้ 98 คะแนน
- -2 for not having music when player clears a stage
- 5210405036 ได้ 98 คะแนน
- -2 for not having music when player clears a stage
- 5210450937 ได้ 94 คะแนน
- -2 for no sound when bar hits wall
- -2 for no sound when bar dies
- -2 for not playing a song when the player clears a stage
- 5210450562 ได้ 100 คะแนน
คนที่ได้ 0 คะแนนเนื่องจากลอกเพื่อนหรือให้เพื่อนลอก
- 51180537
- 51180628
- 51180727
- 51180644
- 5210400433
- 5210404803
- 5210450040
- 5210450058
- 5210450104
- 5210450147
- 5210450597
การลอกกันที่ผมจับได้
โค้ดเปลี่ยนด่านใน PlayScreen.cs
| 51180537 | 51180628 | 51180727 |
|
<geshi lang="csharp"> else if (playScreen.gameState.BrickCount <= 0)
{
if (lv == 3)
{
Constants.MAP_NAME = "map03";
}
else
{
Constants.MAP_NAME = "map02";
lv = 3;
}
playScreen.LoadContent();
if (lv2 != 3)
{
lv2 += 1;
MediaPlayer.Stop();
MediaPlayer.Play(song3);
playScreen.Game.SwitchScreen(Constants.NEXT_LV_SCREEN_NAME);
}
else
{
lv = 1;
lv2 = 1;
Constants.MAP_NAME = "map01.txt";
playScreen.LoadContent();
playScreen.Game.SwitchScreen(Constants.GAME_CLEARED_SCREEN_NAME);
}
}
else if (playScreen.keySensor.IsKeyTyped(KeyMapping.pauseKey))
playScreen.ChangeState(playScreen.pauseState);
}
</geshi> |
<geshi lang="csharp"> else if (playScreen.gameState.BrickCount <= 0)
{
if (lv == 3)
{
Constants.MAP_NAME = "map03";
MediaPlayer.Stop();
}
else
{
Constants.MAP_NAME = "map02";
MediaPlayer.Stop();
lv = 3;
}
playScreen.LoadContent();
if (lv2 != 3)
{
lv2 += 1;
MediaPlayer.Play(song4);
playScreen.Game.SwitchScreen(Constants.NEXT_LV_SCREEN_NAME);
}
else
{
lv = 1;
lv2 = 1;
Constants.MAP_NAME = "map01";
MediaPlayer.Play(song5);
Constants.ascore = 0;
playScreen.LoadContent();
playScreen.Game.SwitchScreen(Constants.GAME_CLEARED_SCREEN_NAME);
}
}
else if (playScreen.keySensor.IsKeyTyped(KeyMapping.pauseKey))
playScreen.ChangeState(playScreen.pauseState);
}
</geshi> |
<geshi lang="csharp"> else if (playScreen.gameState.BrickCount <= 0)
{
if (lv == 3)
{
Constants.MAP_NAME = "map03";
}
else
{
Constants.MAP_NAME = "map02";
lv = 3;
}
playScreen.LoadContent();
if (lv2 != 3)
{
lv2 += 1;
playScreen.Game.SwitchScreen(Constants.NEXT_LV_SCREEN_NAME);
}
else
{
lv = 1;
lv2 = 1;
Constants.MAP_NAME = "map01.txt";
playScreen.Game.SwitchScreen(Constants.GAME_CLEARED_SCREEN_NAME);
}
}
else if (playScreen.keySensor.IsKeyTyped(KeyMapping.pauseKey))
playScreen.ChangeState(playScreen.pauseState);
</geshi> |
- 51180537 และ 51180644
Bullet.cs (Pattern 1)
นิสิตหลายคนทำการคัดลอก Ball.cs มาเป็น Bullet.cs (47180278, 51180248, 5210404889, 5210404897, 5210400425, และ 5210405036) นี่ไม่นับเป็นการลอกเนื่องจากเป็นการใช้โค้ดเก่าของอาจารย์ อย่างไรก็ดีโค้ดของนิสิต 7 คนข้างล่างนี้มีลักษณะเด่นเหมือนๆ กัน ดังต่อไปนี้ คือ
- เหลือเมธอด CollideOnTopSurface และ ColildeOnButtomSurface ไว้ ไม่คง CollideOnLeftSurface และ CollideOnRightSurface ของ Ball.cs เดิมไว้
- กำหนดให้ Bullet มีขนาด 5 x 5 ช่องเหมือนๆ กัน
นอกจากนี้ไฟล์ของนิสิตบางคู่ัยังเหมือนกันทุกไบต์ จึงสันนิษฐานเอาไว้ว่าลอกกัน
| 5210450058 | 5210450147 | 5210450597 | |
|
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using GameLib.Animation; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
private Vector2 velocity;
public Vector2 Velocity
{
get { return velocity; }
set { velocity = value; }
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
velocity = new Vector2(0.0f, -0.2f);
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
}
public void UpdatePosition(GameTime gameTime)
{
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds);
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X),
(int)(Position.Y),
(int)5,
(int)5);
}
}
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y > brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
public void CollideWithBrick(Brick brick)
{
} private bool CollidedOnBottomSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y < brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
}
} </geshi> |
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using GameLib.Animation; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
private Vector2 velocity;
public Vector2 Velocity
{
get { return velocity; }
set { velocity = value; }
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
velocity = new Vector2(0.0f, -0.2f);
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
}
public void UpdatePosition(GameTime gameTime)
{
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds);
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X),
(int)(Position.Y),
(int)5,
(int)5);
}
}
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y > brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
public void CollideWithBrick(Brick brick)
{
} private bool CollidedOnBottomSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y < brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
}
} </geshi> |
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using GameLib.Animation; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
private Vector2 velocity;
public Vector2 Velocity
{
get { return velocity; }
set { velocity = value; }
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
velocity = new Vector2(0.0f, -0.2f);
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
}
public void UpdatePosition(GameTime gameTime)
{
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds);
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X),
(int)(Position.Y),
(int)5,
(int)5);
}
}
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y > brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
public void CollideWithBrick(Brick brick)
{
} private bool CollidedOnBottomSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y < brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
}
} </geshi> |
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using GameLib.Animation; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X),
(int)(Position.Y),
(int)5,
(int)10);
}
}
private Vector2 velocity;
public Vector2 Velocity
{
get { return velocity; }
set { velocity = value; }
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
velocity = new Vector2(0, -0.5f);
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
}
public void UpdatePosition(GameTime gameTime)
{
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds);
}
public void CollideWithBrick(Brick brick)
{
//this.attackPower = 0;
}
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y > brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
private bool CollidedOnBottomSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y < brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
}
} </geshi> |
อีกรูปแบบหนึ่งที่คล้ายๆ กัน
| 5210450040 | 5210450104 |
|
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using GameLib.Animation; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content;
public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X),
(int)(Position.Y),
(int)5,
(int)5);
}
}
private Vector2 velocity;
public Vector2 Velocity
{
get { return velocity; }
set { velocity = value; }
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
velocity = new Vector2(0, -0.2f);
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
}
public void UpdatePosition(GameTime gameTime)
{
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds);
}
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y > brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
private bool CollidedOnBottomSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y < brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
}
} </geshi> |
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using GameLib.Animation; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X),
(int)(Position.Y),
(int)5,
(int)5);
}
}
private Vector2 velocity;
public Vector2 Velocity
{
get { return velocity; }
set { velocity = value; }
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
velocity = new Vector2(0, -0.2f);
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
}
public void UpdatePosition(GameTime gameTime)
{
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds);
}
private bool CollidedOnTopSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y > brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
private bool CollidedOnBottomSurface(Brick brick, Rectangle intersectingArea)
{
if (intersectingArea.Center.Y < brick.CollisionRect.Center.Y)
return false;
if (intersectingArea.Height > intersectingArea.Width)
return false;
return true;
}
}
} </geshi> |
Bullet.cs (Pattern 2)
เหมือนทุกไบต์
| 5210400433 | 5210404803 |
|
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using GameLib; using GameLib.Animation; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
public int Radius
{
get { return (int)Constants.BALL_RADIUS; }
}
public int Diameter
{
get { return Radius * 2; }
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X - Radius),
(int)(Position.Y - Radius),
(int)Diameter,
(int)Diameter);
}
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
xPositionFromBarCenter = Radius;
}
public void UpdatePosition(GameTime gameTime)
{
Position = new Vector2(Position.X,
Position.Y - Constants.BALL_VERTICAL_SPEED * (float)gameTime.ElapsedGameTime.TotalMilliseconds);
}
}
} </geshi> |
<geshi lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using GameLib; using GameLib.Animation; namespace BreakoutLib { public class Bullet : GameObject
{
private static Animation bulletAnimation;
public static void LoadContent(ContentManager content)
{
bulletAnimation = Animation.Load("bullet.anim", content);
}
private TranslationAnimation animation;
public override GameLib.Animation.Animation Animation
{
get { return animation; }
}
public Vector2 Position
{
set { animation.Displacement = value; }
get { return animation.Displacement; }
}
public int Radius
{
get { return (int)Constants.BALL_RADIUS; }
}
public int Diameter
{
get { return Radius * 2; }
}
public Rectangle CollisionRect
{
get
{
return new Rectangle(
(int)(Position.X - Radius),
(int)(Position.Y - Radius),
(int)Diameter,
(int)Diameter);
}
}
private int attackPower;
public int AttackPower
{
get { return attackPower; }
}
private float xPositionFromBarCenter;
public float XPositionFromBarCenter
{
get { return xPositionFromBarCenter; }
set { xPositionFromBarCenter = value; }
}
public Bullet()
{
animation = new TranslationAnimation(bulletAnimation);
attackPower = 1;
xPositionFromBarCenter = Radius;
}
public void UpdatePosition(GameTime gameTime)
{
Position = new Vector2(Position.X,
Position.Y - Constants.BALL_VERTICAL_SPEED * (float)gameTime.ElapsedGameTime.TotalMilliseconds);
}
}
} </geshi> |