1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| #! /usr/bin/env python
#-*- coding: utf-8 -*-
import wx
from random import sample
class AireDeJeu(wx.Window):
def __init__(self, parent):
wx.Window.__init__(self, parent, -1, size=(150, 150))
self.IsObject = False
self.background = wx.Bitmap("backgrnd.png", wx.BITMAP_TYPE_PNG)
self.object = wx.Bitmap("objet.png", wx.BITMAP_TYPE_PNG)
self.Bind(wx.EVT_PAINT, self.OnPaint)
def OnPaint(self, event):
dc = wx.PaintDC(self)
dc.Clear()
dc.DrawBitmap(self.background, 0, 0, False)
if self.IsObject:
posX, posY = sample(range(118), 2)
dc.DrawBitmap(self.object, posX, posY, True)
def ObjectOrNot(self, IsObject):
self.IsObject = IsObject
self.Refresh()
class FrameTest(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, title=u"Test aire de jeu")
panel = wx.Panel(self, -1)
sizer0 = wx.BoxSizer(wx.VERTICAL)
sizer1 = wx.BoxSizer(wx.HORIZONTAL)
self.aire = AireDeJeu(panel)
sizer0.Add(self.aire, 0, wx.ALIGN_CENTER|wx.ALL, 10)
self.btPoser = wx.Button(panel, -1, "Poser un objet")
self.btRetirer = wx.Button(panel, -1, "retirer l'objet")
self.btRetirer.Enable(False)
btQuitter = wx.Button(panel, -1, "Quitter")
sizer1.Add(self.btPoser, 1, wx.ALL, 3)
sizer1.Add(self.btRetirer, 1, wx.ALL, 3)
sizer1.Add(btQuitter, 1, wx.ALL, 3)
sizer0.Add(sizer1, 0, wx.ALL, 5)
panel.SetSizer(sizer0)
panel.Fit()
self.Fit()
self.Bind(wx.EVT_BUTTON, self.Poser, self.btPoser)
self.Bind(wx.EVT_BUTTON, self.Retirer, self.btRetirer)
self.Bind(wx.EVT_BUTTON, self.Quitter, btQuitter)
self.Bind(wx.EVT_CLOSE, self.Quitter)
def Poser(self, event):
self.btPoser.Enable(False)
self.aire.ObjectOrNot(True)
self.btRetirer.Enable(True)
def Retirer(self, event):
self.btRetirer.Enable(False)
self.aire.ObjectOrNot(False)
self.btPoser.Enable(True)
def Quitter(self, event):
self.Destroy()
class MyApp(wx.App):
def OnInit(self):
f = FrameTest()
f.Show(True)
self.SetTopWindow(f)
return True
app = MyApp()
app.MainLoop() |
Partager