ผลต่างระหว่างรุ่นของ "418383/418587 ภาคปลาย 2553/คะแนนการบ้าน 2"
Cardcaptor (คุย | มีส่วนร่วม) |
Cardcaptor (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 12 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 17: | แถว 17: | ||
* 5210405036 ได้ 98 คะแนน | * 5210405036 ได้ 98 คะแนน | ||
** -2 for not having music when player clears a stage | ** -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 คะแนนเนื่องจากลอกเพื่อนหรือให้เพื่อนลอก === | ||
แถว 29: | แถว 34: | ||
* 5210450104 | * 5210450104 | ||
* 5210450147 | * 5210450147 | ||
− | |||
* 5210450597 | * 5210450597 | ||
− | |||
== การลอกกันที่ผมจับได้ == | == การลอกกันที่ผมจับได้ == | ||
แถว 503: | แถว 506: | ||
</geshi> | </geshi> | ||
</td> | </td> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<td> | <td> | ||
<geshi lang="csharp"> | <geshi lang="csharp"> | ||
แถว 524: | แถว 515: | ||
using Microsoft.Xna.Framework; | using Microsoft.Xna.Framework; | ||
using Microsoft.Xna.Framework.Content; | using Microsoft.Xna.Framework.Content; | ||
− | |||
namespace BreakoutLib | namespace BreakoutLib | ||
แถว 548: | แถว 538: | ||
get { return animation.Displacement; } | get { return animation.Displacement; } | ||
} | } | ||
− | + | ||
+ | |||
public Rectangle CollisionRect | public Rectangle CollisionRect | ||
{ | { | ||
แถว 557: | แถว 548: | ||
(int)(Position.Y), | (int)(Position.Y), | ||
(int)5, | (int)5, | ||
− | (int) | + | (int)10); |
} | } | ||
} | } | ||
แถว 567: | แถว 558: | ||
set { velocity = value; } | set { velocity = value; } | ||
} | } | ||
+ | |||
private int attackPower; | private int attackPower; | ||
public int AttackPower | public int AttackPower | ||
แถว 572: | แถว 564: | ||
get { return attackPower; } | get { return attackPower; } | ||
} | } | ||
+ | |||
private float xPositionFromBarCenter; | private float xPositionFromBarCenter; | ||
public float XPositionFromBarCenter | public float XPositionFromBarCenter | ||
แถว 577: | แถว 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; | ||
+ | |||
} | } | ||
แถว 592: | แถว 586: | ||
} | } | ||
− | + | public void CollideWithBrick(Brick brick) | |
{ | { | ||
− | + | //this.attackPower = 0; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
แถว 707: | แถว 607: | ||
if (intersectingArea.Height > intersectingArea.Width) | if (intersectingArea.Height > intersectingArea.Width) | ||
return false; | return false; | ||
− | + | ||
return true; | return true; | ||
} | } | ||
แถว 714: | แถว 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"> | ||
แถว 723: | แถว 633: | ||
using Microsoft.Xna.Framework; | using Microsoft.Xna.Framework; | ||
using Microsoft.Xna.Framework.Content; | using Microsoft.Xna.Framework.Content; | ||
+ | |||
namespace BreakoutLib | namespace BreakoutLib | ||
แถว 746: | แถว 657: | ||
get { return animation.Displacement; } | get { return animation.Displacement; } | ||
} | } | ||
− | + | ||
− | |||
public Rectangle CollisionRect | public Rectangle CollisionRect | ||
{ | { | ||
แถว 756: | แถว 666: | ||
(int)(Position.Y), | (int)(Position.Y), | ||
(int)5, | (int)5, | ||
− | (int) | + | (int)5); |
} | } | ||
} | } | ||
แถว 766: | แถว 676: | ||
set { velocity = value; } | set { velocity = value; } | ||
} | } | ||
− | |||
private int attackPower; | private int attackPower; | ||
public int AttackPower | public int AttackPower | ||
แถว 772: | แถว 681: | ||
get { return attackPower; } | get { return attackPower; } | ||
} | } | ||
− | |||
private float xPositionFromBarCenter; | private float xPositionFromBarCenter; | ||
public float XPositionFromBarCenter | public float XPositionFromBarCenter | ||
แถว 778: | แถว 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; | ||
− | |||
} | } | ||
แถว 792: | แถว 699: | ||
{ | { | ||
Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds); | Position = Position + velocity * (float)(gameTime.ElapsedGameTime.TotalMilliseconds); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
แถว 818: | แถว 720: | ||
return true; | return true; | ||
} | } | ||
− | } | + | } |
} | } | ||
</geshi> | </geshi> | ||
แถว 835: | แถว 737: | ||
{ | { | ||
public class Bullet : GameObject | public class Bullet : GameObject | ||
− | + | { | |
private static Animation bulletAnimation; | private static Animation bulletAnimation; | ||
แถว 842: | แถว 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 | ||
แถว 848: | แถว 749: | ||
get { return animation; } | get { return animation; } | ||
} | } | ||
− | |||
public Vector2 Position | public Vector2 Position | ||
{ | { | ||
แถว 854: | แถว 754: | ||
get { return animation.Displacement; } | get { return animation.Displacement; } | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
public Rectangle CollisionRect | public Rectangle CollisionRect | ||
แถว 893: | แถว 779: | ||
get { return attackPower; } | get { return attackPower; } | ||
} | } | ||
− | + | ||
private float xPositionFromBarCenter; | private float xPositionFromBarCenter; | ||
public float XPositionFromBarCenter | public float XPositionFromBarCenter | ||
แถว 900: | แถว 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) | ||
แถว 937: | แถว 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> |