c#推箱子

问题描述

intx1=pictureBox2.Location.X;inty1=pictureBox2.Location.Y;intindex=0;if(e.KeyCode==Keys.Up)index=1;if(e.KeyCode==Keys.Down)index=2;if(e.KeyCode==Keys.Left)index=3;if(e.KeyCode==Keys.Right)index=4;switch(index){case1:intx2=pictureBox4.Location.X;inty2=pictureBox4.Location.Y;if(x1==x2&&y1-y2==37){pictureBox2.Top-=40;pictureBox4.Top-=40;}elsepictureBox2.Top-=40;pictureBox2.Location=break;case2:intx4=pictureBox6.Location.X;inty4=pictureBox6.Location.Y;if(x1==x4&&y4-y1==37){pictureBox2.Top+=40;pictureBox6.Top+=40;}elsepictureBox2.Top+=40;break;case3:intx6=pictureBox3.Location.X;inty6=pictureBox2.Location.Y;if(y1==y6&&x1-x6==36){pictureBox3.Left-=40;pictureBox2.Left-=40;}elsepictureBox2.Left-=40;break;case4:intx8=pictureBox5.Location.X;inty8=pictureBox5.Location.Y;if(y1==y8&&x8-x1==37){pictureBox2.Left+=40;pictureBox5.Left+=40;}elsepictureBox2.Left+=40;break;}代码如上,想实现人动,箱子也动。但运行时,只有当开始时人的位置在哪个箱子旁边,那个箱子才能动,否则箱子就不能动。小弟是新手,那位大哥帮帮忙!!!!!

解决方案

解决方案二:
人和箱子改變位置后,相應人的坐標要跟著變.
解决方案三:
說明你程序中人的位置坐標沒有及時更新.
解决方案四:
现在想实现游戏重新开始。pictureBox2.Location()=newPoint(197,164);即把控件位置移到原来位置,但提示:不能以方法的方式使用不可调用的“system.Windows.Forms.Control.Location”怎么办呢???
解决方案五:
pictureBox2.Location=newPoint(197,164);
解决方案六:
这解决了,但游戏重新开始还是不会做啊。跪求教下!!!!!!!能否留个联系方式,慢慢询问呢。

时间: 2024-10-03 17:46:46

c#推箱子的相关文章

C语言实现的推箱子游戏

/* 这是彭搏同学的推箱子游戏,大家试试玩,谁有更好的Idea?*/ #include"stdio.h" #include"bios.h" #define LEFT 75 #define RIGHT 77 #define UPPER 72 #define DOWN 80 #define ESC 27 struct Boxss /*定义箱子结构体,其中包含坐标属性*/ { int x,y; }; union keyboard /*定义读取键盘码的共用体类型*/ { u

用C#开发智能手机软件:推箱子(七)

在上篇文章"使用 C# 开发智能手机软件:推箱子(六)"中,我对Common/Pub.cs 源程序文件进行了介绍.在这篇文章中介绍 Common/Step.cs 源程序文件. 以下是引用片段: 1namespace Skyiv.Ben.PushBox.Common 2{ 3 enum Direction { None, East, South, West, North } // 方向: 无 东 南 西 北 4 public enum Action { None, Create, Edi

用C#开发智能手机软件:推箱子(六)

在上篇文章"使用 C# 开发智能手机软件:推箱子(五)"中,我对经过改进后的 Common/FindPath.cs 源程序文件进行了介绍.在这篇文章中,介绍 Common/Pub.cs 源程序文件. 以下是引用片段: 1 using System; 2 using System.Drawing; 3 using System.Text; 4 using System.IO; 5 using System.Reflection; 6 7 namespace Skyiv.Ben.PushB

用C#开发智能手机软件:推箱子(五)

在上篇文章"使用 C# 开发智能手机软件:推箱子(四)"中,我对Common/FindPath.cs 源程序文件进行了介绍.在这篇文章中介绍经过改进后的 Common/FindPath.cs 源程序文件.也就是说,已经实现了"使用 C# 开发智能手机软件:推箱子(四)"的第二个评论中的想法,将地图 ushort[,] map 改为 byte[,] map 了.下面就是改进后的 FindPath 类: 以下是引用片段: 1 using System; 2 using

用C#开发智能手机软件:推箱子(四)

在上篇文章"使用 C# 开发智能手机软件:推箱子(三)"中,我对推箱子程序作了总体介绍.在这篇文章中,介绍 Common/FindPath.cs 源程序文件. 以下是引用片段: using System; using System.Drawing; using System.Collections.Generic; namespace Skyiv.Ben.PushBox.Common { /// /// 寻找最短路线 /// static class FindPath { static

用C#开发智能手机软件:推箱子(三)

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第三篇.在这篇文章中,介绍 Common/Block.cs 源程序文件. 以下是引用片段: 1 namespace Skyiv.Ben.PushBox.Common 2 { 3 /// 4 /// 基本单元格: 地 槽 墙 砖 箱子 工人 5 /// 6 static class Block 7 { 8 public const byte Land = 0; // 地 9 public const byte Slot = 1; //

用C#开发智能手机软件:推箱子(二)

在上篇文章"使用 C# 开发智能手机软件:推箱子(一)"中,我对推箱子程序作了总体介绍.这次,我先介绍 Common/Fcl.cs 源程序文件. 以下是引用片段: 1 using System; 2 using System.IO; 3 using System.Drawing; 4 5 namespace Skyiv.Ben.PushBox.Common 6 { 7 /// 8 /// 这里是 .NET Framework 支持,而 .NET Compact Framework 不支

教你用C#开发智能手机软件:推箱子(一)

最近,使用 C# 开发了一款智能手机软件:推箱子.先介绍一下这款软件的特点: 1.可以在智能手机上运行,也可以在计算机上运行. 2.退出程序时可保护现场,下次再运行自动恢复到原来的状态. 3.玩家通关后可以使用"录像"功能保存通关步骤,以便将来"回放". 4.可以自由设计关卡,批量进行数据导出和导入. 如下图的"解决方案资源管理器"所示,该程序的源程序主要分布在"Window"和"Common"两个文件夹中

java推箱子报空指针错误

问题描述 主函数:packagecom.tjitcast.ui;importjavax.swing.JFrame;publicclassGameMain{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFrameframe=newJFrame("推箱子v0.5");frame.setBounds(300,200,400,250);frame.add(newImagePan

JavaScript写一个小乌龟推箱子游戏

推箱子游戏是老游戏了, 网上有各种各样的版本, 说下推箱子游戏的简单实现,以及我找到的一些参考视频和实例: 推箱子游戏的在线DEMO : 打开 如下是效果图: 这个拖箱子游戏做了移动端的适配, 我使用了zepto的touch模块, 通过手指滑动屏幕就可以控制乌龟走不同的方向: 因为推箱子这个游戏比较简单, 直接用了过程式的方式写代码, 模块也就是两个View 和 Model, 剩下就是用户的事件Controller, 用户每一次按下键盘的方向键都会改变数据模型的数据,然后重新生成游戏的静态htm