第一篇:打砖块游戏设计报告
*************
面向对象方法及程序设计
课程设计报告
打砖块游戏的设计与开发
分 组: 第九组 组员姓名:******************** 班 级: *********** 指导教师: ****
完成日期:2014年 06月21日
面向对象方法及程序设计课程设计
题目:打砖块游戏的开发与设计
为了加强计算机科学与技术专业学生的学科实践能力,巩固和强化所学专业知识,提高学生的学习兴趣,本课程设计实践周特别强调理论与实践相结合,利用所学专业知识,进行实践项目的开发,提高学生的实践编程能力和技术文档的写作能力,提高学生的学习兴趣,为后期的学习奠定一定的实践基础。
目 录
第一章 课程设计的目的与要求.............................................................................................3 1.1课程设计目的................................................................................................................3 1.2 课程设计的实验环境...................................................................................................3 1.3 课程设计的预备知识...................................................................................................3 1.4课程设计要求................................................................................................................3 1.4.1人员分配,形成课程设计小组............................................................................3 1.4.2 分析课程设计的题目要求.................................................................................3 1.4.3写出详细的设计说明............................................................................................3 第二章 课程设计内容.............................................................................................................3 2.1设计思路........................................................................................................................3 2.2功能介绍........................................................................................................................4 2.3相关素材........................................................................................................................4 2.4程序整体设计说明........................................................................................................4 2.5程序部分源代码及注释................................................................................................4 2.6程序结构流程图............................................................................................................6 2.7程序代码........................................................................................................................6 2.8运行程序......................................................................................................................17 第三章 课程设计总结...........................................................................................................17
/ 19 面向对象方法及程序设计课程设计
第一章 课程设计的目的与要求
1.1课程设计目的
本次课程设计是计算机科学与技术专业最重要的实践环节之一。本次课程设计的目的和任务:
1.巩固和加深学生对VC++语言的基本知识的理解和掌握; 2.掌握VC++语言编程和程序调试的基本技能; 3.利用VC++语言进行基本的软件设计; 4.掌握书写程序设计说明文档的能力; 5.提高运用VC++解决实际问题的能力;
1.2 课程设计的实验环境
硬件环境要求能运行Windows 2000/XP操作系统的微机系统,VC++程序设计及相应的开发环境。
1.3 课程设计的预备知识
熟悉C语言及C语言的开发工具
1.4课程设计要求
1.4.1人员分配,形成课程设计小组
按照指导教师的要求,参与课程设计的同学根据彼此学习间的默契度以及在游戏设计上想法的不谋而合,自由的选择自己的队友,形成课题设计小组。
指导教师要求每组成员人数必须控制在3~5人之间,使得在课程设计的过程中,尽量的保证每个人都能够参与其中,积极的动脑思考。我们是第九组课程设计小组。
1.4.2 分析课程设计的题目要求
为了使得课程设计能够更加的独特,并且能够在最大限度上呈现出一个完美的课程设计,体现出同学们的创新的好的想法,指导教师给我们准备了不同的设计课题。
我们组选择的课题是“打砖块”的游戏设计与开发。
1.4.3写出详细的设计说明
针对我们的这个课程设计,我们小组的成员,查阅了大量的相关的专业书籍,并在游戏的一些细节问题上,充分参考了指导老师的意见和建议。
第二章 课程设计内容
2.1设计思路
首先,本次课程设计的主要目的就是为了增强同学们的专业课知识,是对专业书上的知识的进一步巩固和实践!为了更好的去完成本次的课程设计,我们针对手机游戏被广大消费
/ 19
面向对象方法及程序设计课程设计
者接受的现状以及小组成员的真实感受,设计了这一款手机游戏!
随着社会生活节奏的加快,越来越多的人,选择在自己的闲暇时间用玩游戏的方式去缓解自己生活和工作上的压力,所以,此款游戏的最终目标就是给游戏玩家带来一种精神上的放松以及娱乐消遣带来的快乐。
所以经过反复仔细的思考,我们小组成员共同决定:在用一种简单、大方的颜色,作为游戏的背景色,主色调采用欢快,鲜明的绿色,在视觉上来达到一种使人感到有活力积极的不紧绷的一种生活的状态!
2.2功能介绍
此款游戏的设计步骤没有主次之分,每一步都至关重要!
可以简单的分为初始化状态,游戏状态以及游戏结束状态!
初始化状态:
在此状态下,感受最鲜明的就是游戏界面的呈现!为了能够吸引更广大的消费群体,我们除了在界面颜色的选择上有所侧重之外,在页面的布局上也要有设计,要给人一种惊喜感!
游戏状态:
此状态下,是检验游戏功能是否实现的状态,也是验收我们实验成果的一个状态!
游戏能够在系统下顺利进行只是是课程设计成功的一方面!我们认为更为重要的是能够在玩家那里得到一种好的反馈!这样我们才会在游戏点击量上有所取胜!(前提:游戏被投资运行。)
在游戏刚刚被激活时,小球的挡板会在界面的最左端,并且此时玩家可以任意的滑动挡板,来接住下落的小球,由于每一次小球与挡板碰撞角度不同,那么,所达到的再次上升撞击砖块的角度也会不同,所以在此功能上我们设计小组成员根据自然规律以及数学函数设计出了10中不同的角度范围,分别是0···20度,20···40度,40··60度,60···80度,80···90度,90···100度,100···120度,10···140度,140···160度,160···180度。当小球成功撞击到砖块的时候,被成功撞击都的砖块,我们采用用背景色覆盖的方式来完成,从而达到游戏功能实现的目的。游戏结束状态:
此状态的前提是,小球没有成功的被挡板接住,出现此种情况是,游戏界面会自动显示提示信息的消息框######。
2.3相关素材 2.4程序整体设计说明
本程序整体设计思路是首先建立三个类:弹球CBoll、弹板CDong、砖块CRet,再向各个类中添加变量和函数,如向CBoll中添加变量choice和bollpoint,还有函数Draw()和move();其次在各个函数下添加代码实现函数的功能,最后添加3个windows消息,响应用户消息。
2.5程序部分源代码及注释
(1)首先新建三个类:CBoll(弹球)、CDong(弹板)和CRet(砖块)
CBoll类有以下成员及变量:
public:
int choice;//判断小球从哪个方向来
void Draw(CDC* pDC);//绘制小球
CPoint bollpoint;//小球位置坐标
/ 19 面向对象方法及程序设计课程设计
void move(CDC *pDC);//小球的移动
CDong类有以下成员及变量:
public:
void Draw(CDC *pDC);//绘制弹板
int direct;//弹板的移动方向---键盘控制
void Move(int direct,CDC* pDC);//弹板的移动
CPoint dongpoint;//弹板坐标
CRet 类有以下成员及变量:
public:
BOOL Isliving[5][6];//判断砖块是否还存在,是否已被小球打掉
CRet FK[5][6];//存放砖块的数组
void Destroy(int x,int y,CDC* pDC);//销毁砖块
void Draw(CDC* pDC);//绘制砖块
(2)通过类向导新建以上三个类,一次添加各个成员及变量
CBoll类中各个成员的实现:CBoll::CBoll()
函数实现:void CBoll::move(CDC* pDC)
绘制小球:void CBoll::Draw(CDC *pDC)
CDong类的实现:CDong::CDong()
函数实现:弹板移动void CDong::Move(int direct,CDC* pDC)
绘制弹板:void CDong::Draw(CDC *pDC)
CRet类的实现:CRet::CRet()
函数实现:绘制砖块void CRet::Draw(CDC *pDC)
销毁砖块:void CRet::Destroy(int x, int y,CDC* pDC)
(3)在View类中声明以上三个类的对象
CBoll boll;
CDong dong;CRet rc;
(4)在View类的OnDraw()函数中添加以下代码
//绘制背景
CBrush beijing;
CBrush* obeijing;beijing.CreateSolidBrush(RGB(160,240,120));
obeijing=pDC->SelectObject(&beijing);
pDC->Rectangle(0,0,1272,765);
pDC->SelectObject(obeijing);
//绘制方块
/ 19 面向对象方法及程序设计课程设计
rc.Draw(pDC);
//绘制动块
dong.Draw(pDC);
//绘制小球
boll.move(pDC);
boll.Draw(pDC);
(5)右击View类添加三个windows消息:
WM_KEYDOWM;WM_CREATE;WM_TIMER;
(6)在OnKeyDown()函数中添加: CDC* pDC=GetDC();
switch(nChar)
{
case VK_LEFT :
dong.Move(2,pDC);
dong.Draw(pDC);
break;case VK_RIGHT :
dong.Move(1,pDC);
dong.Draw(pDC);
break;}
2.6程序结构流程图
2.7程序代码
/ 19 面向对象方法及程序设计课程设计
CBricksView:
void CBricks1View::OnDraw(CDC* pDC){ CBricks1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);//绘制背景
CBrush beijing;CBrush* obeijing;beijing.CreateSolidBrush(RGB(160,240,120));obeijing=pDC->SelectObject(&beijing);
pDC->Rectangle(0,0,1272,765);pDC->SelectObject(obeijing);
//绘制方块
rc.Draw(pDC);//绘制动块
dong.Draw(pDC);//绘制小球
boll.move(pDC);boll.Draw(pDC);}
///////////////////////////////////////////////////////////////////// // CBricks1View diagnostics
#ifdef _DEBUG void CBricks1View::AssertValid()const { CView::AssertValid();}
void CBricks1View::Dump(CDumpContext& dc)const { CView::Dump(dc);}
CBricks1Doc* CBricks1View::GetDocument()// non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBricks1Doc)));return(CBricks1Doc*)m_pDocument;}
/ 19 面向对象方法及程序设计课程设计
#endif //_DEBUG
///////////////////////////////////////////////////////////////////////////// // CBricks1View message handlers
void CBricks1View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags){ // TODO: Add your message handler code here and/or call default
CDC* pDC=GetDC();switch(nChar){ case VK_LEFT :
dong.Move(2,pDC);
dong.Draw(pDC);
break;case VK_RIGHT :
dong.Move(1,pDC);
dong.Draw(pDC);
break;}
CView::OnKeyDown(nChar, nRepCnt, nFlags);}
int CBricks1View::OnCreate(LPCREATESTRUCT lpCreateStruct){ if(CView::OnCreate(lpCreateStruct)==-1)
return-1;
// TODO: Add your specialized creation code here SetTimer(1,1,NULL);
return 0;}
void CBricks1View::OnTimer(UINT nIDEvent){ // TODO: Add your message handler code here and/or call default
CDC* pDC=GetDC();for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
{
if((boll.bollpoint.x>=(rc.FK[i][j].left-10)&&boll.bollpoint.x<=(rc.FK[i][j].right-70))&&
((boll.bollpoint.y+10==rc.FK[i][j].top)||(boll.bollpoint.y+50==rc.FK[i][j].bottom)))
/ 19 面向对象方法及程序设计课程设计
{
rc.Destroy(rc.FK[i][j].left,rc.FK[i][j].top,pDC);
rc.Isliving[i][j]=false;
}
}
if((boll.bollpoint.x>=dong.dongpoint.x)&&(boll.bollpoint.x<=dong.dongpoint.x+100)
&&(boll.bollpoint.y+10==dong.dongpoint.y)){
if(boll.choice==7)
boll.choice=8;
else if(boll.choice==1)
boll.choice=4;
else if(boll.choice==2)
boll.choice=3;}
InvalidateRect(CRect(boll.bollpoint.x-10,boll.bollpoint.y-10,boll.bollpoint.x+10,boll.bollpoint.y+10),NULL);
CView::OnTimer(nIDEvent);}
CBALL: void CBoll::Draw(CDC *pDC){ CBrush bru;
CBrush* obru;
bru.CreateSolidBrush(RGB(255,2,5));
obru=pDC->SelectObject(&bru);
pDC->SelectObject(::GetStockObject(NULL_PEN));
pDC->Ellipse(bollpoint.x-10,bollpoint.y-10,bollpoint.x+10,bollpoint.y+10);
pDC->SelectObject(obru);
bru.DeleteObject();}
void CBoll::move(CDC *pDC){//移动之前先将上一个小球用背景色掩盖掉,如下
CBrush bru;
CBrush* obru;
bru.CreateSolidBrush(RGB(160,240,120));
obru=pDC->SelectObject(&bru);
pDC->SelectObject(::GetStockObject(NULL_PEN));//选入透明画笔
/ 19 面向对象方法及程序设计课程设计
pDC->Ellipse(bollpoint.x-10,bollpoint.y-10,bollpoint.x+10,bollpoint.y+10);
pDC->SelectObject(obru);
bru.DeleteObject();
//根据小球来的方向判断小球碰到墙壁之后的移动方向,并设置移动后将要运行的方向
if((choice==4&&bollpoint.y==10)||(choice==2&&bollpoint.x==10)||(bollpoint.x==10&&bollpoint.y==10))
{
choice=1;
bollpoint.x++;
bollpoint.y++;
}
else if((bollpoint.x==1262&&bollpoint.y==10)||(choice==3&&bollpoint.y==10)||(choice==1&&bollpoint.x==1262))
{
choice=2;
bollpoint.x--;
bollpoint.y++;
}
else if((bollpoint.x==1262&&bollpoint.y==755)||(choice==2&&bollpoint.y==755)||(choice==4&&bollpoint.x==1262))
{
choice=3;
bollpoint.x--;
bollpoint.y--;
}
else if((bollpoint.x==10&&bollpoint.y==755)||(choice==1&&bollpoint.y==755)||(choice==3&&bollpoint.x==10))
{
choice=4;
bollpoint.x++;
bollpoint.y--;
} //正常情况下(没有碰壁),根据小球的移动方向设置小球的坐标
else
{
switch(choice)
{
case 1 :
bollpoint.x++;
/ 19 面向对象方法及程序设计课程设计
bollpoint.y++;
break;
case 2 :
bollpoint.x--;
bollpoint.y++;
break;
case 3 :
bollpoint.x--;
bollpoint.y--;
break;
case 4 :
bollpoint.x++;
bollpoint.y--;
break;
case 5 :
bollpoint.x++;
break;
case 6 :
bollpoint.x--;
break;
case 7 :
bollpoint.y++;
break;
case 8 :
bollpoint.y--;
break;
}
} }
CDong:
CDong::CDong(){ direct=0;
dongpoint.x=0;//弹板初始坐标
dongpoint.y=600;}
CDong::~CDong(){ } / 19
面向对象方法及程序设计课程设计
void CDong::Draw(CDC *pDC){pDC->SelectObject(::GetStockObject(NULL_PEN));CBrush bru;CBrush *obru;bru.CreateSolidBrush(RGB(255,1,2));obru=pDC->SelectObject(&bru);pDC->Rectangle(dongpoint.x,dongpoint.y,dongpoint.x+100,dongpoint.y+30);pDC->SelectObject(obru);}
void CDong::Move(int direct, CDC *pDC){//同样先将上一个弹板用背景色覆盖掉
CBrush bru;CBrush *obru;bru.CreateSolidBrush(RGB(160,240,120));obru=pDC->SelectObject(&bru);pDC->SelectObject(::GetStockObject(NULL_PEN));pDC->Rectangle(dongpoint.x,dongpoint.y,dongpoint.x+100,dongpoint.y+30);pDC->SelectObject(obru);switch(direct){
case 1:
if(dongpoint.x<1272)
{
dongpoint.x+=10;
}
break;
case 2 :
if(dongpoint.x>0)
{
dongpoint.x-=10;
}
break;} }
#include “stdafx.h” #include “Bricks1.h” #include “Ret.h”
/ 19 面向对象方法及程序设计课程设计
#ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__;#define new DEBUG_NEW #endif //////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////
CRet::CRet(){ //初始化砖块生命值 for(int i=0;i<5;i++)
for(int j=0;j<3;j++)
Isliving[i][j]=true;
//1 //砖块所在区域初始化
FK[0][0].left=0;
FK[0][0].top=0;
FK[0][0].right=212;
FK[0][0].bottom=100;
FK[0][1].left=212;
FK[0][1].top=0;
FK[0][1].right=424;
FK[0][1].bottom=100;
FK[0][2].left=424;
FK[0][2].top=0;
FK[0][2].right=636;
FK[0][2].bottom=100;
FK[0][3].left=636;
FK[0][3].top=0;
FK[0][3].right=848;
FK[0][3].bottom=100;
FK[0][4].left=848;
FK[0][4].top=0;
FK[0][4].right=1060;
FK[0][4].bottom=100;
FK[0][5].left=1060;
FK[0][5].top=0;
FK[0][5].right=1272;
FK[0][5].bottom=100;
//2
FK[1][0].left=0;/ 19
面向对象方法及程序设计课程设计
FK[1][0].top=100;
FK[1][0].right=212;
FK[1][0].bottom=200;
FK[1][1].left=212;
FK[1][1].top=100;
FK[1][1].right=424;
FK[1][1].bottom=200;
FK[1][2].left=424;
FK[1][2].top=100;
FK[1][2].right=636;
FK[1][2].bottom=200;
FK[1][3].left=636;
FK[1][3].top=100;
FK[1][3].right=848;
FK[1][3].bottom=200;
FK[1][4].left=848;
FK[1][4].top=100;
FK[1][4].right=1060;
FK[1][4].bottom=200;
FK[1][5].left=1060;
FK[1][5].top=100;
FK[1][5].right=1272;
FK[1][5].bottom=200;
//3
FK[2][0].left=0;
FK[2][0].top=200;
FK[2][0].right=212;
FK[2][0].bottom=300;
FK[2][1].left=212;
FK[2][1].top=200;
FK[2][1].right=424;
FK[2][1].bottom=300;
FK[2][2].left=424;
FK[2][2].top=200;
FK[2][2].right=636;
FK[2][2].bottom=300;
FK[2][3].left=636;
FK[2][3].top=200;
FK[2][3].right=848;
FK[2][3].bottom=300;
FK[2][4].left=848;
FK[2][4].top=200;
FK[2][4].right=1060;/ 19
面向对象方法及程序设计课程设计
FK[2][4].bottom=300;
/*FK[2][5].left=1060;
FK[2][5].top=200;
FK[2][5].right=1272;
FK[2][5].bottom=300;*/ //4
/*FK[3][0].left=0;
FK[3][0].top=300;
FK[3][0].right=212;
FK[3][0].bottom=400;
FK[3][1].left=212;
FK[3][1].top=300;
FK[3][1].right=424;
FK[3][1].bottom=400;
FK[3][2].left=424;
FK[3][2].top=300;
FK[3][2].right=636;
FK[3][2].bottom=400;
FK[3][3].left=636;
FK[3][3].top=300;
FK[3][3].right=848;
FK[3][3].bottom=400;
FK[3][4].left=848;
FK[3][4].top=300;
FK[3][4].right=1060;
FK[3][4].bottom=400;
FK[3][5].left=1060;
FK[3][5].top=300;
FK[3][5].right=1272;
FK[3][5].bottom=400;*/
//5
/*FK[4][0].left=0;
FK[4][0].top=400;
FK[4][0].right=212;
FK[4][0].bottom=500;
FK[4][1].left=212;
FK[4][1].top=400;
FK[4][1].right=424;
FK[4][1].bottom=500;
FK[4][2].left=424;
FK[4][2].top=400;
FK[4][2].right=636;/ 19
面向对象方法及程序设计课程设计
FK[4][2].bottom=500;
FK[4][3].left=636;
FK[4][3].top=400;
FK[4][3].right=848;
FK[4][3].bottom=500;
FK[4][4].left=848;
FK[4][4].top=400;
FK[4][4].right=1060;
FK[4][4].bottom=500;
FK[4][5].left=1060;
FK[4][5].top=400;
FK[4][5].right=1272;
FK[4][5].bottom=500;*/ }
CRet::~CRet(){ }
void CRet::Destroy(int x, int y, CDC *pDC){CBrush brush;CBrush *obrush;brush.CreateSolidBrush(RGB(160,240,120));obrush=pDC->SelectObject(&brush);pDC->SelectObject(::GetStockObject(NULL_PEN));pDC->Rectangle(x,y,x+132,y+40);pDC->SelectObject(obrush);brush.DeleteObject();}
void CRet::Draw(CDC *pDC){for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
{
if(Isliving[i][j])
{
CBrush brush;
CBrush *obrush;
brush.CreateSolidBrush(RGB((16*i+i)%5,(49*j+j)%5,(i*25+j*87)%5));
obrush=pDC->SelectObject(&brush);
pDC->SelectObject(::GetStockObject(NULL_PEN));
/ 19 面向对象方法及程序设计课程设计
pDC->Rectangle(FK[i][j].left,FK[i][j].top,FK[i][j].right-80,FK[i][j].bottom-60);
pDC->SelectObject(obrush);
}
//Isliving[i][j]=true;//如果砖块生命值为false,就用背景色把它覆盖掉
else
{
CBrush brush;
CBrush *obrush;
brush.CreateSolidBrush(RGB(160,240,120));
obrush=pDC->SelectObject(&brush);
pDC->SelectObject(::GetStockObject(NULL_PEN));
pDC->Rectangle(FK[i][j].left,FK[i][j].top,FK[i][j].right-80,FK[i][j].bottom-60);
pDC->SelectObject(obrush);
}
} }
2.8运行程序 2.8.1结果
2.8.2效果
第三章 课程设计总结
士不可以不弘毅,任重而道远!经过近两个星期的努力,终于完成了本次的课程设计!
/ 19 面向对象方法及程序设计课程设计
在本次课程的设计过程中,很感谢指导老师给予的意见和建议,包括前期在准备素材的时候,老师给予和很多宏观上的指导。可能我们很大一部分同学更加看重的是游戏的运行结果,而忽略了一些细节方面的东西!就像是老师说的那样,游戏界面的设计同样很重要!所以我们小组在游戏的编程初期,在游戏的界面设计方面花了很多的心思,想了好几种不同的游戏风格的界面,而且针对我们开发的游戏设计了不同的关卡,大大的增加了游戏的趣味性!但由于自身的专业知识受限,并没有达到我们预期的结果!但这个过程是确确实实的给我们小组的成员带来了很大的不同于以往的感受!我们真心的感受到了,认认真真去做一件事情,是需要多么大的耐心和决心!同时也认识到了,短暂的灵感,只是一个很美好的想法,真正的要做到把每一个有价值的想法,都进行更加完备的整理,是一件很困难的事情!本次打砖块游戏的设计过程中,我们遇到了很多的瓶颈。起初在收集素材的阶段还算比较顺利,因为我们每个人都有自己的设计风格,都想要把自己的设计想法应用到本次的游戏设计中,所以我们小组成员决定,每一个人都针对游戏界面的设计模块部分设计出自己的作品,根据最后所呈现出的效果,再挑选出最好的那一份设计!在游戏功能的实现方面,是我们进展最困难的一个模块!我们要把我们的一个个想法都变成我们不是很理解的编程代码来实现!这真的是考验我们小组凝聚力的时候了!因为本次的游戏编程很可能止步于此阶段!一个不小心,两个一放松,三个一懈怠,就会造成很难挽回的局面,游戏编程就次无法进行!
通过本次的课程设计,使我们更深刻的了解到了程序设计的基本思想,巩固了程序设计的基本知识,理解了读万卷书不如行万里路的真正意义,并学会了合作与分工,一次次的搜集查阅资料,一次次的调试代码,终于完成本次课程设计——打砖块游戏。游戏实现了一些基本功能,如界面设置、动画设置、玩家的控制键设置。但游戏功能还存在很大不足,首先,没有游戏开始提示界面,让玩家丈二和尚摸不着头脑;其次,对游戏的动画设计不够熟悉,技巧性不强,界面的设置也不美观,这些对于玩家来说非常重要;最后,还有一些功能没有实现,比如消掉砖块会有道具下落,增加生命值,或减慢小球速度等等。游戏还有很多需要改进的地方,我们需要不断学习去提高自己的技术,做出好的游戏。
通过游戏设计,我们意识到理论与实践的差距有多大,明白“纸上得来终觉浅,绝知此事要躬行”的意义。最后感谢老师的指导!
/ 19 面向对象方法及程序设计课程设计
参 考 文 献
[1]AndreLamothe.WINDOWS游戏编程大师技巧.北京:中国电力出版社,2001.[2]谭浩强,贾振华.VC++程序设计项目实践.北京:清华大学出版社,2010.19 / 19
第二篇:亲子游戏-打豆腐
亲子游戏:打豆腐
游戏目标:锻炼孩子身体的灵活性。
玩法:
1、妈妈和孩子相对站立,双手互相拉开后一高一低。
2、游戏时,一边换手的高低位置,一边说:“哪边高,哪边低,打豆腐,快来买。”
3、说完后,让孩子从拉开的双手中间穿插,翻身360度。
第三篇:scratch3.0_前置课_第八讲弹球打砖块讲义无logo
软件编程系列课讲义
Scratch前置课第八讲:弹球打砖块
一、教学目标
1、重点掌握面向()方向,移动()步,碰到边缘就反弹,重复执行直到()、克隆【克隆(自己)、当作为克隆体启动时、删除此克隆体】的积木脚本使用
2、掌握移到x()y()、在()和()之间取随机数的积木脚本使用。
3、学习侦测角色碰到舞台下边缘的方法。
二、主要程序脚本
编号
详细内容
功能描述
【1】
“面向()方向”
让角色面向指定方向,改变角色在舞台区的面向方向
(方向的赋值范围为:-179-180之间的整数)
【2】
“移到x()y()”
让角色移动到舞台区指定坐标位置
(赋值范围为:和角色大小相关)
【3】
“移动()步”
让角色在舞台区移动指定的步数,使角色的位置发生变化
(步数的赋值范围为:0-240之间的整数)
【4】
“碰到边缘就反弹”
角色碰到舞台区四周边缘时,面向方向改变为反射方向
【5】
“重复执行直到()”
该积木内的脚本一直执行直到指定的条件为真
【6】
“y坐标”
记录角色当前在舞台区的y坐标
【7】
“()<()”
用于比较前面的值是否小于后面
(可填入数字或字母,也可放入其他返回型积木)
【8】
“停止()”
停止脚本执行
(可停止的脚本为:全部脚本、这个脚本、该角色的其他脚本)
三、课堂准备
编号
名称
内容
来源
备注
【1】
PPT课件
课堂全流程演示文稿
火星科学盒官网
【2】
课程资料
PPT课件、讲义、视频
火星科学盒官网
【3】
学生上课使用器材
笔记本电脑或者台式电脑
老师自备
电脑建议使用Windows系统,苹果电脑和Linux系统需要从官网上单独下载对应的软件
游戏手柄
火星人商城采购
弹球打砖块初始程序
网盘链接下载
【4】
编程软件下载
Scratch3.0
火星科学盒官网
火星科学盒官网在线编辑版
离线下载版
安装好后测试一下是否可以使用
四、上课流程
本节课包括7步具体流程:
(1)第1步为引入部分,可以通过让学生介绍自己喜欢的球类运动来引出弹球或者通过让学生介绍打砖块游戏来引入本节课的弹球打砖块游戏。时长控制在10分钟内。
(2)第2步为角色功能分析,通过展示效果视频分析角色的动作,对任务进行拆分。时长控制在5分钟内。
(3)第3-6步为项目制作,首先使用移到x()y()、面向()方向与在()和()之间取随机数,为小球设置初始位置和随机的出发方向;之后实现小球在舞台区自由弹跳,重点学习移到()步和碰到边缘就反弹;实现小球碰到挡板后弹起的效果;学习重复执行直到()积木,实现小球碰到下边缘后停止移动并停止游戏运行。最后复习克隆相关积木,修改砖块角色的脚本,实现多个砖块在舞台区出现。时长控制在70分钟内。
(3)第7步为总结与巩固,考察对本节课重点知识脚本和脚本逻辑的掌握。时长控制在5分钟内。
上课步骤
主要内容
备注
【第1步】引入
【对应PPT】“开始页”“效果视频”部分
【时长】10min
【引入话术】有没有同学玩过或者看其他人玩过打砖块的游戏,能描述一下打砖块的游戏是什么样子的吗?(学生自由回答)
【话术】在我们平时玩的打砖块游戏中,最上方会有几行砖块,下面有一个能自由弹跳的小球,还有一个挡板,我们可以控制挡板去接住小球,然后小球碰到砖块时砖块会消失。这是我们平时玩的普通的打砖块游戏,那在这节课中,老师带大家一起来制作一个不一样、不普通的弹球打砖块游戏。在我们要制作的游戏中,砖块不是排列成一行一行的了,而是能够出现在舞台区的随机位置。(播放效果视频)
课堂引入时多和学生互动。
【第2步】角色功能分析
【对应PPT】“项目拆解”
【时长】5min
【衔接话术】在给出的初始程序中,挡板的脚本已经拼接完成,也就是说,我们已经可以用左右方向键控制挡板左右移动了,现在,我们只需要为小球和砖块这两个角色拼接脚本就可以了。那下面就看一下我们本节课要完成的任务,任务一:实现小球在舞台区弹跳,并且挡板能接住小球;任务二:实现砖块在舞台区随机出现,被小球击中后消失。
让学生打开初始程序,根据初始程序分析任务。
【第3步】小球自由弹跳
【对应PPT】任务一小球自由弹跳
【时长】35min
【衔接话术】下面我们就拼接积木让小球弹跳起来吧。在小球开始跳之前,我们要为它设置一个出发的初始位置和面向的方向。
【提问】同学们还记得设置初始位置和初始面向方向的积木是什么吗?(学生回答)
【讲解】设置角色初始位置的积木是“移到x()y()”,设置初始方向的是“面向()方向”。现在我们想让角色向随机方向出发,所以还需要用到“在()和()之间取随机数”积木。因为旋转一周的角度是360度,所以在取随机数积木中可以填入的数字范围是0~360。(等待学生拼接)(程序样例见“第五部分
–
程序1-1”)
【衔接话术】初始位置和出发方向已经设置好了,接下来我们就添加积木让小球动起来。
【提问】我们学过的能让角色移动的积木有哪些?(学生自由回答)
【讲解】我们学过的能让角色移动的积木有“移到x()y()”、“在()秒内滑行到x()y()”、“将x坐标增加()”和“将y坐标增加()”。现在,小球是向一个不确定的随机方向移动,还可以使用这些积木吗?是不可以的,使用这些积木时角色移动的方向是固定的,比如“将x坐标增加()”是让角色左右移动。所以,应该使用“移动()步”积木,这个积木会让角色向面向的方向移动。小球弹出去之后会在舞台区不停地弹跳,所以还需要在“移动()步”的外面添加“重复执行”。(等待学生拼接)(程序样例见“第五部分
–
程序1-2”)
【衔接话术】拼接好这组积木之后,点击小绿旗运行一下,看看小球在舞台区有什么样的效果,可以在舞台区不停地自由弹跳吗?(学生运行观察并描述效果)
【讲解】小球现在并不能在舞台区自由的弹跳,在小球碰到边缘之后就会沿着边缘滚动。为了实现小球碰到边缘后就弹回来的效果,需要添加运动分类中的“碰到边缘就反弹”积木。这块积木会让小球检测到碰到边缘时,改变面向方向为相反的反向。小球在弹跳的过程中需要一直检测有没有碰到边缘,所以要把这个积木放在“重复执行”中。(等待学生拼接)(程序样例见“第五部分
–
程序1-3”)
【衔接话术】小球在碰到边缘时会反弹,那它在碰到挡板时应不应该改变方向弹起来呢?小球在碰到挡板时是应该向上弹起的。
【提问】小球由向下移动变成了向上移动是什么发生了改变?位置还是方向?(学生回答)
【讲解】小球碰到挡板时向上弹起是方向发生了改变,也就是说“如果小球碰到挡板,那么面向向上的方向”。改变角色方向的积木是“面向()方向”,在这里,我们让小球弹起时不要朝向一个固定的方向,所以,使用“在()和()之间取随机数”积木来选取一个范围。在这里选取的是-40~40的范围,可以点击角色区“方向”后面的数字打开小圆盘可以看到,-40到40的范围是一个朝上的夹角。拼接完成这组积木,实现用挡板接住小球的效果。(等待学生拼接)(程序样例见“第五部分
–
程序1-4”)
【衔接话术】既然可以用挡板去接小球了,那我们就为游戏增加一些难度,让小球碰到下边缘的时候就停下来。
【讲解】也就是小球会一直移动,直到碰到下边缘。在实现小球一直移动时,使用的是“重复执行”积木,让脚本不停地执行。现在,小球仍然会一直移动,但是碰到下边缘就会停下来,所以我们不能再使用“重复执行”积木,而是使用“重复执行直到()”。“重复执行直到()”会让这个积木内的脚本一直执行,在满足直到后面的条件时停下来。
【衔接话术】小球会碰到下边缘时停止,也就是在“重复执行直到()”这个积木中我们要填入的条件是碰到下边缘。
【提问】在积木区的侦测分类中可以找到能侦测小球碰到下边缘的积木吗?(学生自由回答)
【讲解】在侦测分类中只有“碰到舞台边缘”没有直接侦测角色碰到舞台下边缘的积木。
【话术】那我们如何判断角色碰到了舞台下边缘呢?
【提问】角色在向下移动时是哪个坐标在变化?向下移动时这个坐标是越来越大还是越来越小?(学生回答)
【讲解】角色向下移动时,y坐标会越来越小,也就是说y坐标小于一个数值时就代表它碰到了舞台下边缘。在舞台区拖动小球,把它放在舞台下边缘的地方,观察角色区小球的y坐标,当小球小于这个数字时,它一定碰到了舞台下边缘,所以说,使用“y坐标”和“()<()”这两个积木就可以判断小球是否碰到舞台下边缘。把这两个积木组合起来,添加到“重复执行直到()”中,就可以实现小球碰到下边缘时停止运动的效果。(等待学生拼接)(程序样例见“第五部分
–
程序1-5”)
【衔接话术】点击小绿旗运行看看,小球碰到下边缘时是不是停止移动了,挡板在小球停止移动后还可以动吗?(学生运行观察)现在小球在碰到下边缘后停下了,但是,我们依然可以控制挡板运动。下面呢我们就添加积木实现游戏停止的效果,让整个作品停止运行,小球碰到下边缘后,所有角色都无法移动。
【提问】停止游戏的积木是什么?(学生回答)
【讲解】使用“停止(全部脚本)”可以停止整个游戏的运行,游戏是在小球碰到下边缘之后停止的,所以这个积木应该拼接在“重复执行直到()”的下面。
(等待学生拼接)(程序样例见“第五部分
–
程序1-6”)
1.第一步中,如果学生不了解为什么要添加随机积木,可以说明一下,如果小球不向随机方向出发,小球每次的移动路线都是相同的;
2.在第二步提问学生学过哪些积木时,有些学生应该会提到移动()步,或者其他的没有学过的积木,必要的话要简单讲一下使用那些积木时的角色的移动过程;
3.讲解“重复执行直到()”时,如果学生不容易理解,可以举一个生动的例子。
【第4步】任务一梳理
【对应PPT】任务一梳理
【时长】5min
【衔接话术】刚刚我们已经完成了任务一,下面我们来梳理一下任务一完成的效果,看看同学们为我们的游戏添加了什么样的功能。
【提问】在任务一中为哪个角色实现了什么样的效果?(学生回答)
【总结】在任务一中实现了小球从初始位置出发向随机方向移动,在舞台区弹跳。碰到挡板时向上反弹,碰到下边缘后游戏停止的效果。
【提问】如何实现小球碰到下边缘时停止移动的效果?(学生回答)
【总结】小球会一直移动直到y坐标<-160。
【提问】设置角色出发方向的积木是什么?(学生回答)
【总结】“面向()方向”。
【提问】让脚本一直执行直到满足某个条件的积木是什么?(学生回答)
【总结】“重复执行直到()”。
【提问】让小球向面向方向移动的积木是什么?(学生回答)
【总结】“移动()步”。
【提问】使用什么积木能让小球碰到边缘时改变方向?(学生回答)
【总结】“碰到边缘就反弹”。
在提问过程中可以进行引导性提示。
【第5步】砖块的随机出现
【对应PPT】任务二砖块的随机出现
【时长】25min
【衔接话术】小球自由弹跳的效果已经制作完成了,接下来要为砖块拼接脚本,实现砖块在舞台区随机位置出现的效果。在弹球打砖块游戏中,肯定不止有一个砖块会出现在舞台区,应该有多个砖块。
【提问】如何让多个同样的角色出现在舞台区呢?(学生回答)
【讲解】让砖块不断地克隆自己就可以实现砖块不断出现在舞台区。接下来我们实现每隔3~5秒就有新的砖块出现在舞台区的效果。也就是每等待3~5秒,砖块就克隆一次自己。需要用到的有“等待()秒”、“在()和()之间取随机数”、“克隆(自己)”以及“重复执行”。把这几个积木组合起来,拼接在“当小绿旗被点击”的下方,实现砖块克隆。(等待学生拼接)(程序样例见“第五部分
–
程序2-1”)
【衔接话术】添加完刚刚那组积木,在我们运行程序后,每隔几秒就会有新的砖块出现,那这些新的砖块应该实现什么样的效果呢?
【讲解】原角色只需要进行克隆工作,那克隆后出现的新砖块应该显示出来,出现在舞台区的随机位置,如果被小球击中就会消失。现在在砖块的舞台区已经有一组脚本,这组脚本中包含让角色移到随机位置已经碰到小球就消失的积木。
【提问】是原角色还是克隆体会执行这组脚本?(学生回答)
【讲解】这组脚本是在小绿旗被点击后执行,所以是原角色执行这组脚本。如果想让克隆体执行这组脚本,实现出现在随机位置并且被小球击中后就消失的效果,需要把“当小绿旗被点击”替换成“当作为克隆体启动时”。
【提问】能够让克隆体消失的积木是什么?(学生回答)
【讲解】“删除此克隆体”积木能够让克隆体消失,所以需要把“隐藏”积木替换为“删除此克隆体”。因为没有给原角色添加碰到小球后隐藏的积木,所以它会一直显示在舞台区,为了避免这种情况,需要为原角色添加“隐藏”积木,让原角色一开始就在舞台区隐藏。(等待学生拼接)(程序样例见“第五部分
–
程序2-2”)
注意先通过提问的方式提醒学生要在砖块角色上拼接脚本,需要选中砖块角色。
【第6步】任务二梳理
【对应PPT】任务二梳理
【时长】5min
【提问】在任务二中实现了什么效果?(学生回答)
【总结】实现了每隔3~5秒有新砖块在舞台区随机位置出现的效果。
【提问】如何实现不断有新砖块出现?(学生回答)
【总结】砖块重复执行等待3~5秒后克隆自己的脚本。
【提问】使多个同样的角色出现在脚本区的积木是?(学生回答)
【总结】“克隆(自己)”。
【提问】让角色出现在舞台区的积木是什么?(学生回答)
【总结】“显示”。
在提问过程中可以进行引导性提示。
【第7步】总结与巩固
【对应PPT】总结与巩固
【时长】5min
【衔接话术】在这节课中完成了一个弹球打砖块的小游戏,下面老师就要来考考你们,看看同学们对这节课掌握得怎么样。
【知识点巩固】
老师以提问的方式进行复习。
1.各个脚本的作用分别是什么?
2.各个脚本在本节课中实现了什么样的效果?
【我问你答】
Q1.给小球编写了这样的程序,小球碰到边缘后不能一直弹跳,为什么呢?
A1.把【碰到边缘就反弹】积木放到了【如果
那么】积木里面,当小球碰到挡板时才会执行这个积木。
Q2.重复执行有几种方式,它们之间有什么区别?
A2.重复执行有三种方式
没有限制
条件限制
次数限制
五、主要程序说明
程序样例编号
程序样例与说明
对应的角色
1-1
【程序1-1描述】程序运行后,小球移到(-24,-6)的初始位置,面向130~270之间的方向。
【Ball】
1-2
【程序1-2描述】程序运行后,小球移到(-24,-6)的初始位置,向130~270之间的随机方向出发移动。(在碰到舞台边缘时会沿边缘移动)
1-3
【程序1-3描述】程序运行后,小球移到(-24,-6)的初始位置,向130~270之间的随机方向出发移动,碰到边缘时会反弹。
1-4
【程序1-4描述】程序运行后,小球移到(-24,-6)的初始位置,向130~270之间的随机方向出发移动,碰到边缘时会反弹,碰到挡板时会面向-40~40之间的任意方向,也就是向上弹起。
1-5
【程序1-5描述】程序运行后,小球移到(-24,-6)的初始位置,向130~270之间的随机方向出发移动,碰到边缘时会反弹,碰到挡板时会面向-40~40之间的任意方向,也就是向上弹起,碰到下边缘时会停止移动。
1-6
(任务一的最终版程序)
【程序1-6描述】小球在碰到舞台下边缘时会停止移动,之后游戏停止。
2-1
【程序2-1描述】作品运行后,每隔3~5秒有一个新的砖块出现在舞台区。
【砖块】
2-2
【程序2-2描述】作品运行后,砖块的原角色隐藏,每隔3~5秒有一个新的砖块出现在舞台区。新出现的砖块会在舞台区x坐标为-200~200,y坐标为-150~160的范围内出现,在被小球击中时消失。
第四篇:小班体育游戏:打气球
【设计意图】
小班幼儿入园时间短,团结协作的能力差,为了培养孩子团结协作的能力,体验协作的乐趣,我设计了这个游戏。
【活动目标】
1、能够积极参与集体游戏活动,并能在活动中听老师的指挥。
2、训练幼儿手拉手拉一个圆圈,体验共同协作的乐趣。
【活动准备】
一块足够大的场地。
【活动过程】
一、活动导入
引起幼儿的兴趣
1、你们玩过气球吗?
2、喜欢玩气球吗?
3、与幼儿一起回忆玩气球的情景:说说气球的颜色、形状、大小等,激发幼儿学习的动机。
4、今天我们用我们的身体来变一个大气球好吗?
二、活动指导
1、请小朋友手拉手拉成一个大圆圈。
2、老师说放气时,大家嘴巴里发出放气的声音并向圆中心走,小手不能放掉;当老师说打气时小朋友立即后退把圆圈拉大,但是手不能放掉,放掉了气球就爆炸了。
3、组织幼儿游戏。-------师随时关注幼儿、提醒幼儿要慢慢的走,当心气球爆炸。
【活动延伸】
让幼儿在户外模仿气球来回飘动、旋转、下落等的样子,感受快乐的情绪。
第五篇:打野鸭游戏的作文
打野鸭游戏的作文(精选6篇)
在日常学习、工作和生活中,许多人都有过写作文的经历,对作文都不陌生吧,作文是由文字组成,经过人的思想考虑,通过语言组织来表达一个主题意义的文体。那么,怎么去写作文呢?下面是小编精心整理的打野鸭游戏的作文(精选6篇),欢迎大家借鉴与参考,希望对大家有所帮助。
打野鸭游戏的作文1刚一下课,操场上就传来阵阵欢声笑语,这是在干什么?原来同学们在玩“打野鸭”的游戏呀!
首先要在操场上画两条横线,两条线之间大概相距4——5米的距离,我也参入其中。男生和女生猜拳,输的要当猎人,赢的要当野鸭,猎人用沙包扔野鸭,扔中了野鸭就被淘汰出局。结果还是女生胜了。
游戏开始了,我们男生把沙包用力的朝女生扔去,可是总也扔不准,女生们活蹦乱跳的。我的眼珠咕碌一转,假装向左边扔去,其实根本没有扔出去,野鸭成了热锅上的蚂蚁乱作一团。然后,我突然把沙包往右边扔出去,不偏不倚砸到一个女生的后背上,她被淘汰出局了。我的眼珠又咕碌一转,又想到了另一个策略,我向对面的队友眨了一下眼睛,他明白了我的意思,我把沙包直接扔给了他,“小野鸭”还真的上了我们的当,对面的队友以闪电般的速度把沙包扔了出去,砸中了一只“小野鸭”的肩部,又淘汰了一只,我们开心地直拍手。过了一会儿,只剩下最后一只“野鸭”了。一个人孤军奋战,我们打了很久,这只“野鸭”就像一只“无头苍蝇”一样。
上课铃声响了,我们依依不舍地回到了教室!操场上仿佛还荡漾着我们的笑声。
打野鸭游戏的作文2今天下午,老师带着我们在操场上玩打“野鸭”的游戏。
游戏的规则是我们在操场上先围成一个圈,按照1—4报数。然后,老师喊一个数,报那个数的同学就到圈中间当“野鸭”,其余的同学当“猎人”。
游戏开始了,一个同学拿球向“野鸭”砸去,结果没打中,球却落到了我身边。我忙拾起球,看了一下“野鸭”们,正好,一只“野鸭”背对着我。我举起球奋力向“它”砸去,那球风驰电掣一般直奔向“它”的后背上,他只好灰溜溜地下场了。
轮到我当“野鸭”了,我信心十足地上场。刚刚上场,一个球向我飞来,我机警地往后一仰,那球从我的头上飞走。我刚站直身子,另一个球又从地面向我滚来,我一跳,那球从我脚下溜了过去。这时,又有一球向我砸来,我把身子往右一歪,球从我旁边擦身而过。连躲过三个球后,我发现一前一右的同学都瞄准了我,我往右一躲,忘了右边也有人要砸我。我躲闪不及,被球砸中了,只好垂头丧气地下场了。
游戏结束了,我们兴高采烈地向教室走去,虽然满头大汗,却一点也不感觉到累。我们不仅玩得很快乐,还懂得了连做游戏时注意力都要高度集中的道理。
打野鸭游戏的作文3一个阳光明媚的下午,朱老师带领我们玩打“野鸭”的游戏,我兴奋的不得了。
朱老师讲了一下游戏规则:“男生做‘猎人’围成一个圈,拿两个球作为‘子弹’,女生做‘野鸭’在‘猎人’的圈内。男生大众女生后,女生就到圈外。
游戏开始了,女生像一只只受了惊吓的野鸭似的,四处乱逃。我拿到球就往王乐之打去,王乐之还来不及躲闪,就被我大中了。我们“猎人”用“子弹”大中了好多“野鸭”,我心里正暗暗高兴着。最后就剩姚于廷没被打中,我趁他不注意,用“子弹”一打就打中了。女生被我们打得落花流水,我很高兴。
这次该女生打男生了,王乐之一打就打中了丁寅,丁寅下去了,“猎人”用“子弹”打中了许多“野鸭”,最后就剩下我和周楠了。袁亦纯一打就打中了周楠,现在我是第一名了。我更加高兴了。
这次玩打“野鸭”的游戏可真好玩。
打野鸭游戏的作文4今天中午,阳光明媚。随着一阵“叮零零……”的声音,午休的时间已经到了。同学们一阵欢呼,跑到操场上去,兴致勃勃地做起了“打野鸭”的游戏。
作为“猎人”的我们,先围成一个圆圈,席地而坐。最先到的三位同学做“野鸭”,他们分别是:“糖炒李子”——李根锐、“蘑菇头”——吴庭轩和“飞毛腿”——刘颖凡。
戏开始了,我们女孩子相互传球,可是,一只野鸭也没打中。怪了吧!其实,我们正在“使计”让野鸭们放松警惕,准备“上当受骗”吧!10秒钟竟传了八次,现在,你知道了吧!我们是想让野鸭们眼花缭乱,然后再打他个措手不及。果然“野鸭”们中计了,传到我的时候,看到场上“野鸭”的头都转来转去的,好像有些“头晕眼花”了,我便瞄准了吴庭轩,双手向前撑开,从腰旁往前用力一推,球便马上回弹了出去,不偏不倚刚好打在了吴庭轩的脚上。这是,站在一旁的李根锐长大了嘴,好像在说:“兄弟,怎么这么快就被打下场了?”趁李根锐还在发呆,王X丰也象我这样把球回弹出去,不费吹灰之力就把他打下了场。
接下来是童瑶,她说她有一种新的打法。于是,她把球当作保龄球似的打了出去。这下可把同学们逗得哈哈大笑,有的用手撑着地面,朝着天空大笑;有的笑得前仰后合,有的捧着肚子,眼泪都快出来了;还有的一边笑,一边叫着:“哈哈!哈哈!我们的排球变成保龄球了!哈哈哈!质量翻倍!哈哈!哈哈哈!”这是,球传到了我这儿,我大声叫到:“有什么了不起,看我的!”于是,我想打高尔夫一样把它踢了出去。全班笑得更欢了……
操场上荡漾着快乐的笑声。我非常喜欢这个游戏——打野鸭。
打野鸭游戏的作文5今天我们做了一个有趣的游戏——猎人打野鸭。
我们的游戏规则是:四位同学当猎人,剩下的'全当鸭子,每位猎人的手中都有两颗子弹,如果打中一只鸭子,那子弹就可以拿回重新使用,但猎人一定要站在一条指定的线上,如果越过这条线,就算掉入池塘淹死了。
游戏开始了,“鸭子”们沉着应战,面对英勇善战的“敌人”,没有露出丝毫畏惧之色。可“猎人”们也是相当聪明的,其中一个猎人趁三四只鸭子聚在一起的时候,找准了目标,果断出手,射中了其中一只又肥又大的鸭子,把它捡了过来,心想:这么大的鸭子,晚上一定可以尽情享受了。心里乐开了怀。接着猎人们又射中了好几只,打得鸭子落花流水。这让原本放松的鸭子们提心吊胆了起来,面对猎人的子弹时心里忐忑不安,一副瑟瑟发抖的样子。果然不出所料,鸭子越来越少了。最后只剩两只了!但其中一只非常机灵,很多猎人用尽了手中的弹子都不能将它射中,最后只剩一个猎人手中握有一颗子弹了,那个猎人想要把握住最后的机会将它射中,最后终于想出了一个两全其美的好办法——声东击西。然后趁其不注意的时候,立马打出子弹,结果真让猎人成功了!
这个游戏真有趣!我们玩得很开心!
打野鸭游戏的作文6今天下午第一节课是体育课,我们玩打野鸭的游戏,我高兴的连蹦带跳!
我们到了操场上,先围个圈,再报数,单数的同学当鸭子,双数的同学当猎人。游戏开始了!陆天豪快速的拿起球,用力扔向杜勇,由于程子阳的身手太敏捷了,轻易的就躲过了球。这是,野鸭们欢呼起来,说:“你们仍的准一点!”这分明是嘲笑我们。这是,球滚到了我的脚下,我是当猎人的,心想:我一定要打中一只野鸭,如果打不中,起不是太没面子了吗?于是我快速的拿起球,又向程子阳扔去,终于打中了一只野鸭。这时候,猎人们欢呼起来!于是,野鸭们被接二连三的的打下去。最后,猎人们胜利了!
这真是一次又有趣又快乐的游戏!