推箱子小游戏代码(C# 做一个小游戏 推箱子 构思)
本文目录
C# 做一个小游戏 推箱子 构思
首先先做个箱子的类。。。 类中要有箱子移动的方法 然后要有个小人儿的类 类中要有推箱子AND GAMEOVER的方法 之后就是布局了,如果简单点就是随即生成了,复杂点就算一下这个游戏是不是有可能过关 然后掉方法就OK了吧。。。只是构思哦。。。。不对的地方还望一起研究呵呵还要怎么详细饿?不会想要代码吧嘿嘿我只写了个五子棋的..不过还被我格掉了....大哥不要学我撒....小人儿是为了跟小人区别下嘛....
本人需要用JAVA编写一个推箱子的小游戏 源代码有了 但是缺少做推箱子这小游戏的图片
package com.txz1;import java.awt.Color;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Txz { public static void main(String args) { JFrame frame = new JFrame("������1.0");//���� frame.setBounds(100, 20, 20 * 48 + 16, 14 * 48 + 38);//���ý���λ�úʹ�С JPanel panel = new JPanel();//��壬�൱������ panel.setBackground(Color.red);//������ɫ frame.setContentPane(panel); panel.setLayout(null);//�Զ��壬���λ�� //������� ImageIcon boxImg = new ImageIcon("box2.PNG"); JLabel box = new JLabel(boxImg);//��ǩ���൱������ panel.add(box); box.setBounds(5 * 48, 3 * 48, 48, 48); //��ӹ��� ImageIcon workerImg = new ImageIcon("workerDown2.png"); JLabel worker = new JLabel(workerImg); panel.add(worker); worker.setBounds(8 * 48, 8 * 48, 48, 48); //����ϰ��� ImageIcon goalImg = new ImageIcon("goal2.png"); JLabel goal = new JLabel(goalImg); panel.add(goal); goal.setBounds(7 * 48, 6 * 48, 48, 48); //���Χǽ ImageIcon wallImg = new ImageIcon("wall2.PNG"); JLabel; for (int i = 0; i 《 walls.length; i++) { walls = new JLabel(wallImg); } int index = 0;//������������ͳ��Χǽ���� for (int i = 0; i 《 20; i++) { panel.add(walls); walls.setBounds(i * 48, 0, 48, 48); index++; panel.add(walls); walls.setBounds(i * 48, 13 * 48, 48, 48); index++; } for (int i = 0; i 《 12; i++) { panel.add(walls); walls.setBounds(0, (i + 1) * 48, 48, 48); index++; panel.add(walls); walls.setBounds(19 * 48, (i + 1) * 48, 48, 48); index++; } for (int i = 0, j = 0; i 《 5; i++, j += 2) { panel.add(walls); walls.setBounds((i + 2) * 48, j * 48, 48, 48); index++; } for (int i = 0, j = 10; i 《 5; i++, j--) { panel.add(walls); walls.setBounds((i + 12) * 48, j * 48, 48, 48); index++; } //����Ϊ�ɼ�� frame.setVisible(true); }}
Java推箱子怎么写啊
这是我之前写的一篇java实现推箱子算法的文章,简单的给你看一下:
《推箱子游戏》是一款益智游戏,游戏目标是搬运工自己来找出到某个位置的最短路径,然后自己走过去。
地图是这个游戏中非常重要的一部分,关于地图的存储,因为有一部分元素是可以重叠放置的,所以用了一个类似二进制的存储方式,就是4种物件分别有是否存在状态,使得用一个数字可以表示多个物件。
1、是否存在目的地
2、是否存在箱子
3、是否存在人
4、是否存在墙壁
这样就解决了地图存储问题。使用short就存下了。
一、在不移动箱子的情况下其实无论人在哪里对于map来说是没有影响的,所以填充可移动区域可以让需要存储地图的数量有一个大的下降。例如之前那副地图:
8888888
8103018
8002008
8320238
8012108
8403008
8888888
经过变换之后就成了:
8888888
8103018
8002008
8320238
8452108
8443008
8888888
这样就把存储量缩小了四分之三。至于怎样填充,相信对图论有一点了解的都可以随便想出方案,我这里用的是BFS。
话不多说,实现代码如下:
二、关于箱子的移动方式,直接用整幅地图的BFS搜索会比较靠谱。因为可以确定箱子的位置和在不移动箱子情况下人能到的位置,所以箱子可移动的位置也就能确定了,再加上之前存储的所有箱子的位置,这样就能计算出箱子每动作一次地图能更新的情况,一次BFS就是每个箱子往不同可移动位置进行一次移动。
三、结束搜索分为三种情况:
所有目的地被填充完毕-------计算完成退出程序。
有箱子被推到角落并且不是在目的地--------说明不是正确的路线,搜索不再往下走。
当前地图在以前已经被达成过--------说明是重复路线,搜索不再往下走。
四、关于地图的存储,用的是hashSet,并重写了equals和hashCode的实现,用来自动判断地图是否重复。(以此保证不重复)
最后完成地图显示问题,每个节点存储自己父亲节点的地址,当节点发现自己已经完成之后根据地址向上查找直到树顶,望采纳,谢谢。
用vb做一个小游戏 希望每一步有详细解释
做个贪吃蛇,flppybird,纵向像素赛车,推箱子,水果机这些都不难,运用到一些特殊游戏算法,贪吃蛇:创建pictureBox控件数组,然后加身子就loadpicture1(picture1.UBound+1)在声明一个动态数2d数组,每个身子都有一个X,Y值每移动一次贪吃蛇,头部先走一步后面的身子就向前一个身子的位置X,Y移动flppybird:运用到加速度,重力物理学,以及柱子的碰撞检测纵向赛车:随机下来几个pictureBox,如果有方块的纵坐标超过了一定量,那就再从顶部开始下滑(呈现赛车相对几个障碍物向上走的视觉效应)推箱子:这个实现起来不容易,要把每一次箱子的位置映像成2D数组,然后根据2d数组坐标判断对的箱子,箱子和箱子,箱子和墙,箱子和目标,hero和箱子的几种关系要搞清,谁是主动,谁是被动,谁碰到谁再碰到谁就不能再碰哈哈水果机:相对没什么技术含量,计数器累加再弄一个小球在屏幕上转圈滚动,滚动到事先生成的随机数等于累加的数字时,停止小球的滚动,停在了那里就用计数变量mod加分类别,最终该得多少分,输出在text里面。。
本文相关文章:
老版推箱子游戏(2003年左右出的单机游戏有点像塞尔达传说 里面有类似于推箱子的情节最后好像是杀一天恶龙)
2024年7月13日 09:06
推箱子游戏300怎样过关?密室逃脱7的第十四关的那个小游戏推箱子怎么过
2024年4月16日 01:45
更多文章:
金字塔大逃亡1.39(金字塔大逃亡v1.39一开始怎么开门)
2024年3月27日 03:21
李凤娘到底有何过人之处,为何说她是宋光宗的“噩梦”?手工刺绣绣娘都有什么级别,怎么考级
2024年1月21日 10:35
因为我不知道下辈子是否还能遇见你是什么歌(“我不知道下辈子是否还会遇见你 所以我今生才会那么努力 把最好的给你 ;的歌名是什么)
2024年3月25日 09:33
qq飞车音乐中比较火的歌都有哪些?qq飞车经典歌曲都有哪些要歌名哦~!
2024年5月6日 13:55
亚特兰蒂斯正在苏醒(亚特兰蒂斯正在苏醒什么梗 亚特兰蒂斯正在苏醒是什么梗)
2024年3月16日 21:00
《暗黑破坏神2》奶牛关有什么来历?在《暗黑破坏神2》中,有人说奶牛关是发家致富的好地方,你怎么看
2023年12月31日 11:05
求几个好玩的耐玩的N72游戏?nokia n72支持哪些好游戏啊
2024年8月3日 02:45