界面和游戏逻辑第八周进展

由于human出牌的时候,牌总是和right玩家的胡同一时间出来,为了更有时序感,考虑的时候修改了结构,只新开一个线程,把click事件和问胡分开,由此结构也更简单和清楚,也由此少了100多行代码,切实感受到了先做规划的重要,但是也确实是刚开始的时候不懂的用线程,只能是摸索中前进。

c#中,要在一个类中的函数中使用另一个类的变量和方法等。

调整出牌显示时序。

谁开始的初始化有问题,已改正。

三方面联合初步调试,开始着手加入动画

用private ManualResetEvent human_movedone = new ManualResetEvent(false);来控制线程而不再用thread.sleep.

time控件只能在主线程中使用,要实现ai玩家的出牌,故用System.Timers.Timer类。

为了避免出现同时有多条线程在执行timer里的内容,应该在timer_tick开始时timer_stop,结束的时候timer_start.

ManulResetEvent和AutoResetEvent:ManulResetEvent的waitone后不会重置,需要手动用reset,而AutoResetEvent自动重置。

pictureBox_human_move.BringToFront();控件显示优先级提高,pictureBox_human_move.SendToBack()放最下面的层,显示优先级降低。

基本完成四个玩家的出牌动画。

由于显示的图片过多,打开程序和最小化-还原的时候出现闪烁,设置双缓存也不能明显改善,故尽量把开始时候显示的图片压缩,让它需要显示的时候再显示而不是不需要显示的时候显示card back。

碰的时候牌回收,原来自己的回合不能杠,已改。摸的牌放在picturebox14,出完牌再整理。

时间: 2024-07-31 07:34:07

界面和游戏逻辑第八周进展的相关文章

Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局

Android实训案例(八)--单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局 阿法狗让围棋突然就被热议了,鸿洋大神也顺势出了篇五子棋单机游戏的视频,我看到了就像膜拜膜拜,就学习了一下,写篇博客梳理一下自己的思路,加深一下印象 视频链接:http://www.imooc.com/learn/641 一.棋盘 我们一看就知道,我们必须自定义View,这里我们定义一个GameView来做游戏主类,第一步,先测量,我们这里不难知道,五子棋他的棋盘是一个正方形,所以我们需要去测

游戏开发手记:游戏逻辑模块组织及数据同步

这周工作主要分两部分,一是服务器这边的基础模块搭建,二是服务器与客户端通信模式以及数据同步等方案的协定和验证.总体来说进展不错. 服务器采用actor模式来构建,目前暂时把服务器上运行着的actor叫做service,每个service维护一个请求队列.一个goroutine不断取出请求并进行处理.一组负责处理消息的逻辑模块.游戏服务器里的每个玩家都是一个service,不隶属玩家的功能模块也作为service运行(如排行榜.聊天.公会),还有其他全局模块也作为独立的service运行(如玩家i

android开发学习之路——连连看之游戏逻辑(五)

GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖,程序需要GameService组件包含如下方法.   ·start():初始化游戏状态,开始游戏的方法.     ·Piece[][] getPieces():返回表示游戏状态的Piece[][]数组.     ·boolean hasPieces():判断Pieces[][]数组中是否还剩Piec

2018-2019-1 20165228 《信息安全系统设计基础》第八周学习总结

2018-2019-1 20165228 <信息安全系统设计基础>第八周学习总结 教材学习内容总结 并发编程 并发:逻辑控制流在时间上重叠 并发程序:使用应用级并发的应用程序称为并发程序. 三种基本的构造并发程序的方法: 进程,用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制. I/O多路复用,应用程序在一个进程的上下文中显式的调度控制流.逻辑流被模型化为状态机. 线程,运行在一个单一进程上下文中的逻辑流.由内核进行调度,共享同一个虚拟地址空间. 基于进程的并发编程 构造并发程序

linux学习第八周总结

linux学习第八周总结 本周学习了两个服务,DNS和ansible 由于这些服务很复杂,我也只能是到达刚了解或者是刚刚入门的程度,所以只说一些简单基本的东西,简单总结. 一.DNS服务 1.简介 域名系统(英文:DomainNameSystem,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53.当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符. 记录类型 主条目:域名服务

传奇源码分析-客户端(游戏逻辑处理源分析四)

现在假设玩家开始操作游戏:传奇的客户端源代码工程WindHorn一.CWHApp派生CWHWindow和CWHDXGraphicWindow.二.CWHDefProcess派生出CloginProcess.CcharacterProcess.CgameProcess客户端WinMain调用CWHDXGraphicWindow g_xMainWnd;创建一个窗口.客户端CWHDXGraphicWindow在自己的Create函数中调用了CWHWindow的Create来创建窗口,然后再调用自己的C

传奇源码分析-客户端(游戏逻辑处理源分析五 服务器端响应)

器执行流程:(玩家走动) GameSrv服务器ProcessUserHuman线程处理玩家消息:遍历UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_pxPlayerObject->Operate()调用.判断玩家if (!m_fIsDead),如果已死,则发送_MSG_FAIL消息.我们在前面看到过,该消息是被优先处理的.否则则调用WalkTo,并发送_MSG_GOOD消息给客户端.Walk

传奇源码分析-客户端(游戏逻辑处理源分析三)

6. 接收怪物,商人,其它玩家的消息:ProcessUserHuman:(其它玩家-服务器处理)CPlayerObject->SearchViewRange();CPlayerObject->Operate();遍历UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_pxPlayerObject->Operate()调用.根据分发消息(RM_TURN)向客户端发送SM_TURN消息.

学习进度之第七八周

第七.八周 所花时间(包括上课):910分钟 代码量(行):412行 博客量(篇):3篇 了解到的知识点(请填写具体的知识点): 1.敏捷软件的开发过程.需要有产品负责人,队长,每天还有站立会议,索引卡,燃尽图,最后要有回顾会议. 2.用android studio开发安卓应用,比eclipse加载ADT插件来开发更方便,以及怎样用android studio创建安卓应用程序. 3.android studio开发安卓程序时,可以先直接把控件在design界面拖过去,然后可以在text界面中进行