预览模式: 普通 | 列表

使用python和pygame进行游戏开发(3)

理解事件

在Hello World程序中,我们仅仅处理了QUIT事件,处理QUIT事件是必要的,除非你想有一个关不掉的Pygame窗口!Pygame还会创建如鼠标移动和键盘按下等事件来通知你。不管你的程序当前在做什么,事件随时都会产生。例如,当玩家按下游戏手柄上的开火按键时,你的代码正在往屏幕上画一个坦克这种情况。在你准备处理事件之前,Python将事件存储在一个队列当中。你可以将事件队列想像为一队等待进入一个建筑物的人们,每个人都承载着与一个事件相关的特定信息,。当玩家按下开火按钮时,带有该按钮被按下信息的joystick事件抵达,与此类似,当玩家释放开火按钮时,带有该按钮被释放信息的joystick事件抵达。

查看更多...

Tags: pygame

分类:python | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 86

QQ增值服务充值系统--QQZTC

QQ增值服务充值系统--QQZTC,是一款充QQ会员及Q钻等QQ增值服务的软件,使用此软件充业务享受腾讯的最低折扣价格(目前是8折)。该软件的客户端使用python语言制作。当前版本为2.1版。目前软件诚招代理销售商中,想要加盟的从速!
购买或加盟请到这里:http://shop.paipai.com/397987442.


Tags: qqztc

分类:软件 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 792

wxPython in Action(173)(全文完)

18.7 本章小结

1、拖放和剪贴板事件是非常相似的,两者都使用了wx.DataObject来作为数据格式的媒介。除了可以创建自定义的格式以外,还存在着默认的数据对象,包括文本,文件和位图。在剪贴板的使用中,全局对象wx.TheClipboard管理数据的传送并代表底层系统的剪贴板。

2、对于拖放操作,拖动源和拖动到的目标一起工作来管理数据传送。拖动源事件被阻塞直到拖动到的目标作出该拖动操作是否有效的判断。

查看更多...

Tags: wxpython

分类:python | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1958

wxPython in Action(172)

18.6 创建一个多线程的wxPython应用程序

在大多数的GUI应用程序中,在应用程序的后台中长期执行一个处理过程而不干涉用户与应用程序的其它部分的交互是有好处的。允许后台处理的机制通常是产生一个线程并在该线程中长期执行一个处理过程。对于wxPython的多线程,在这一节我们有两点需要特别说明。

最重要的一点是,GUI的操作必须发生在主线程或应用程序的主循环所处的地方中。在一个单独的线程中执行GUI操作对于无法预知的程序崩溃和调试来说是一个好的办法。基于技术方面的原因,如许多Unix的GUI库不是线程安全性的,以及在微软Windows下UI对象的创建问题,wxPython没有设计它自己的发生在多线程中的事件,所以我们建议你也不要尝试。

查看更多...

Tags: wxpython

分类:python | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1520

wxPython in Action(171)

18.5 使用wx.Timer来设置定时事件

有时你需要让你的应用程序产生基于时间段的事件。要得到这个功能,你可以使用类wx.Timer。

18.5.1 产生EVT_TIMER事件

查看更多...

Tags: wxpython

分类:python | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1404

wxPython in Action(170)

18.4.2 得到自定义对象

要得到该对象,需要执行相同的基本步骤。对于从剪贴板获取,先创建相同格式的一个自定义数据对象,然后得到数据并对得到的数据进行逆pickle操作(pickle有加工的意思)。

data_object = wx.CustomDataObject("MyNiftyFormat") 

查看更多...

Tags: wxpython

分类:python | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 1175

wxPython in Action(169)

18.3.2 实战释放

例18.3中的代码显示了如何创建一个框架(窗口)用以接受文件的释放。你可以通过从资源管理器或查找窗口拖动一个文件到该框架(窗口)上来测试例子代码,并观查显示在窗口中的关于文件的信息。图18.3是运行后的结果。

图18.3

查看更多...

Tags: wxpython

分类:python | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1253

wxPython in Action(168)

18.3 拖放到的目标

实现拖放到的目标的步骤基本上借鉴了实现拖放源的步骤。其中最大的区别是,实现拖放源,你可以直接使用类wx.DropSource,而对于目标,你首先必须写你的自定义的wx.DropTarget的子类。一旦你有了你的目标类,你将需要创建它的一个实例,并通过使用wx.Window的SetDropTarget(target)方法将该实例与任一
wx.Window的实例关联起来。设置了目标后,wx.Window的实例(不论它是一个窗口,一个按钮,一个文本域或其它的控件)就变成了一个有效的释放目标。为了在你的释放目标上接受数据,你也必须创建一个所需要类型的wx.DataObject对象,并使用释放目标方法SetDataObject(data)将wx.DataObject对象与释放目标关联起来。在实际释放操作前,你需要预先定义数据对象,以便该释放目标能够正确地处理格式。要从目标获取该数据对象,有一个方法GetDataObject()。下面的样板代码使得释放目标能够接受文本(仅能接受文本)。这是因为数据对象已经被设置为wx.TextDataObject的一个实例。

查看更多...

Tags: wxpython

分类:python | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1212