监控键盘事件,监控方向键,然后根据方向键判断角色的对应方向是否有箱子,有箱子,在判断箱子的前方是否有路;没有箱子就角色移动到那个位置。
公司主营业务:成都网站制作、网站建设、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出雁山免费做网站回馈大家。
假设有个方法判断坐标是箱子还是空地或者越界check(int x,int y)通过返回类型判断,返回类型可以自己定义,这里定义成int类型,0代表箱子,1代表空地,2代表越界
if(check(X+1,y)==0){
if(check(x+2,y)==1){
//箱子往右移动一格,同时角色也往右移动一个
}else if(check(x+2,y)==2){
//箱子推不动,角色也不动,箱子到了墙角,给出提示或者保持角色和箱子原地不动、
}
}
if(check(x+1,y)==1){
//角色往右移动,箱子不动
}
同理等于2的时候,角色原地不动。。。
这只是简单的做了判断,具体的实现看你自己了,可以把人和箱子分开判断。。总之把思路分析清楚就OK
首先你别想图了,想想玩法吧。我估计你玩法都已经会了 就先不说了。
那么地图来实现地图部分的构思
地图无非就是你用坐标构成的 咋实现自己想吧 是二维数组还是啥自己选吧。
地图有些地方不可以移动的,设置一个状态标志吧。让箱子和人都过不去,并且不能移动
地图上有箱子 可以移动,但是人不能过 也设置一个标志吧
地图上有人 不能过地图 不能过箱子,自己设置标志吧
其实很简单 给你个简单的例子
000000
012000
000333
000000
033300
000009
1 是人 2是箱子 3是墙 9 是终点
至于图象么
你都有坐标了 规定一下图象的坐标 这个可以用网格布局来做
响应用户输入的命令 比如方向
改变图片的位置 你比如说 人向下走了 那么人的图片向下移动 同时原来位置的图片改成默认图片
累死了啊 汉
这个十分容易,我说下基本的就是了,你是一个5*5的黑点,箱子是5*5的白点,所有的箱子的坐标在一个arraylist里,每次你按方向是,判断你的位置先,如果是边就不动,如果不是边,就判断有没有箱子,如果有箱子再判断后面,用while就行了,记得你把可能会移动的东西记下到另外的arraylist,如果可以动,就把另外的arraylist的元素的坐标适应加5,然后重画下
/墨攻作为一款全新型策略征战的网页游戏深受各阶层人的喜爱啊!我们夏令营的教官居然也会玩!OMG玩的还不赖,不是我这种小罗罗能比的,他们都在乐都网新开的墨攻双线二服!我决定了,以后跟教官混乐都去,他们开双线二服(http-activity-ledu-com/edm/sf)好像还有NBA凡客T恤送,连大礼包赚的都是元宝,真是大手笔!
1. 确定的功能:让玩家通过按上下左右键推箱子,当箱子们都推到了目的地后出现过关信息,并显示下一关。推错了玩家还按空格键从新玩过这关。直到过完全部关卡。
2. 定义的核心数据结构:我们定义一个二维数组ghouse来记录屏幕上各点的状态。char ghouse[20][20]; 其中:0表示什么都没有,'b'表示箱子,'w'表示墙壁,'m'表示目的地,'i'表示箱子在目的地。
3. 对整个进行功能模块划分。
(1)。初始化:在屏幕上输出欢迎信息,把ghouse数组的元素初始化为0。并根据各关的要求在屏幕上输出墙、箱子、目的地和人。并用ghouse 数组记录各点的状态。
(2)。进入游戏循环:这个游戏主循环是等待按键。当接受到上下左右键时执行相关操作:接受ESC键时退出游戏;接受空格键时返回本关开头;接受无效按键时做忽略处理。重点介绍按上下左右键时如何执行相关操作。
(3)。判断是否过关:用一个链表win由每关的初始化函数传给main函数。Win链表主要记录屏幕上的哪些点是目的地,并记录目的地的位置。Main函数每执行一次操作后就判断屏幕上的目的地是不是都有箱子了。