Thread: Re: [Pgu-devel] Help getting started
Status: Beta
Brought to you by:
philhassey
From: <mat...@be...> - 2007-07-21 18:25:10
|
Thanks=2E =20 I've now got things partially working=2E I can display a dialog, but not = in a way that I can close it! I've taken the ColorDialog from example 7 and combined with the code from example 10 as shown below=2E The ColorDialog displays correctly on top of= my screen content, and the game blocks in the event loop shown below=2E The controls in the dialog work correctly except for the dialog close control (the red button top right) - clicking on this does nothing=2E I wondered if I needed to "open" the dialog instead of "add"ing it so I tried commenting out the c=2Eadd line and adding an app=2Eopen (as shown h= ashed out below)=2E This didn't make any difference though except that after a while I hit an exception of some sort=2E=2E=2E Can anyone offer any further suggestions please=3F <main game loop> =2E=2E=2E #open modal dialog app =3D gui=2EApp() app=2Econnect(gui=2EQUIT,app=2Equit,None) dialog =3D ColorDialog('#000000') c =3D gui=2EContainer(align=3D-1,valign=3D-1) c=2Eadd(dialog,0,0) app=2Einit(c) #app=2Eopen(dialog,0,0) =5Fquit =3D 0 while not =5Fquit: for e in pygame=2Eevent=2Eget(): if e=2Etype is QUIT: =5Fquit =3D 1 if e=2Etype is KEYDOWN and e=2Ekey =3D=3D K=5FESCAPE: =5Fquit = =3D 1 app=2Eevent(e) app=2Epaint(screen) pygame=2Edisplay=2Eflip() pygame=2Etime=2Ewait(10) From: Jasper Stolte [mailto:jasperstolte@gmail=2Ecom]=20 Sent: 16 July 2007 12:36 To: matandhelen Cc: pgu-devel@lists=2Esourceforge=2Enet Subject: Re: [Pgu-devel] Help getting started Hi, =20 >From your description I'm not really sure if it is the same problem I had earlier, but it very well could be=2E So here's what had me stumped for ho= urs in a similar situation: If we have a class myDialog, which inherits from gui=2EDialog, rather than doing something like (pseudocode) this: =20 dialog =3D myDialog() dialog=2Econtainer =3D theContainer dialog=2Eopen() =20 I needed to do something like this: =20 dialog =3D myDialog() theContainer=2Eopen(dialog, x, y) Hopefully this can get you started from example 10=2E Also it's been a whi= le since I did this, so things might've changed since then=2E =20 Regards, Jasper =20 =20 On 7/16/07, matandhelen <matandhelen@beeb=2Enet> wrote:=20 Hi, I have a game written using pygame, and I would love to add a UI using PGU= =2E It looks like it should do exactly what I want, but despite being a softwa= re engineer by trade, I just cannot get it to work (and I've been at it for a= couple of days now!)=2E All I want to do is add a really basic new game dialog when the game finishes=2E I've got a pygame screen full of content, and all I want to d= o is pop up a small modal dialog in the middle of it when the game ends, collec= t some values like number of players, and have an ok button that closes the dialog and relaunches the game=2E I've tried running, reading and adapting all of the examples=2E They run = fine if I don't change them, but as soon as I try to adapt them go wrong=2E I'= ve tried starting from example 10, but I can't work out how to: - launch a modal dialog (the colour picker doesn't "block")=20 - launch the dialog other than by connecting from another widget - do the necessary GUI initialisation without having a widget on the scree= n all the time=2E I would include some sample code but I haven't really got any - I don't ev= en know where to start: do I create an app or a dialog or both=3F How do I g= et the dialog to display, and how do I get it to display within an exisiting pygame screen=3F How do I open it in a way that blocks=3F I'm sure if I = knew=20 what I was doing it would only be a few lines of code=2E=2E=2E Can anyone help me=3F If I can get this working then I will be able to release my game for everyone to enjoy! Cheers -------------------------------------------------------------------------=20= This SF=2Enet email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML=2E No limits=2E Just data=2E Click to get it now=2E http://sourceforge=2Enet/powerbar/db2/ =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F= =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F Pgu-devel mailing list Pgu-devel@lists=2Esourceforge=2Enet https://lists=2Esourceforge=2Enet/lists/listinfo/pgu-devel -------------------------------------------------------------------- mail2web LIVE =96 Free email based on Microsoft=AE Exchange technology - http://link=2Email2web=2Ecom/LIVE |
From: Jasper S. <jas...@gm...> - 2007-07-23 20:12:18
|
Hi, Unfortunately this code cant be compiled as is, so I cant test what I'm about to write. Hope it can help anyway. What happens if you take out the c.add() command, and put in a c.open() command? Then it should work, right? Maybe you need to do some extra cleanup, since it might be that the window actually does close, but is still on the screen since PGU has nothing else to paint over it. Try and see if the colordialog close method is invoked, and work from there. Regards, Jasper On 7/21/07, mat...@be... <mat...@be...> wrote: > > Thanks. > > I've now got things partially working. I can display a dialog, but not i= n > a way that I can close it! > > I've taken the ColorDialog from example 7 and combined with the code from > example 10 as shown below. The ColorDialog displays correctly on top of > my > screen content, and the game blocks in the event loop shown below. The > controls in the dialog work correctly except for the dialog close control > (the red button top right) - clicking on this does nothing. > > I wondered if I needed to "open" the dialog instead of "add"ing it so I > tried commenting out the c.add line and adding an app.open (as shown > hashed > out below). This didn't make any difference though except that after a > while I hit an exception of some sort... > > Can anyone offer any further suggestions please? > > <main game loop> > ... > > #open modal dialog > > app =3D gui.App() > app.connect(gui.QUIT,app.quit,None) > dialog =3D ColorDialog('#000000') > > c =3D gui.Container(align=3D-1,valign=3D-1) > c.add(dialog,0,0) > > app.init(c) > #app.open(dialog,0,0) > _quit =3D 0 > while not _quit: > for e in pygame.event.get(): > if e.type is QUIT: _quit =3D 1 > if e.type is KEYDOWN and e.key =3D=3D K_ESCAPE: _quit =3D 1 > app.event(e) > app.paint(screen) > pygame.display.flip() > pygame.time.wait(10) > > > From: Jasper Stolte [mailto:jas...@gm...] > Sent: 16 July 2007 12:36 > To: matandhelen > Cc: pgu...@li... > Subject: Re: [Pgu-devel] Help getting started > > > Hi, > > From your description I'm not really sure if it is the same problem I had > earlier, but it very well could be. So here's what had me stumped for > hours > in a similar situation: If we have a class myDialog, which inherits from > gui.Dialog, rather than doing something like (pseudocode) this: > > dialog =3D myDialog() > dialog.container =3D theContainer > dialog.open() > > I needed to do something like this: > > dialog =3D myDialog() > theContainer.open(dialog, x, y) > > Hopefully this can get you started from example 10. Also it's been a whil= e > since I did this, so things might've changed since then. > > Regards, > > Jasper > > > On 7/16/07, matandhelen <mat...@be...> wrote: > > Hi, > > I have a game written using pygame, and I would love to add a UI using > PGU. > It looks like it should do exactly what I want, but despite being a > software > > engineer by trade, I just cannot get it to work (and I've been at it for = a > couple of days now!). > > All I want to do is add a really basic new game dialog when the game > finishes. I've got a pygame screen full of content, and all I want to do > is > > pop up a small modal dialog in the middle of it when the game ends, > collect > some values like number of players, and have an ok button that closes the > dialog and relaunches the game. > > I've tried running, reading and adapting all of the examples. They run > fine > > if I don't change them, but as soon as I try to adapt them go wrong. I'v= e > tried starting from example 10, but I can't work out how to: > - launch a modal dialog (the colour picker doesn't "block") > - launch the dialog other than by connecting from another widget > - do the necessary GUI initialisation without having a widget on the > screen > all the time. > > I would include some sample code but I haven't really got any - I don't > even > > know where to start: do I create an app or a dialog or both? How do I ge= t > the dialog to display, and how do I get it to display within an exisiting > pygame screen? How do I open it in a way that blocks? I'm sure if I kne= w > what I was doing it would only be a few lines of code... > > Can anyone help me? If I can get this working then I will be able to > release my game for everyone to enjoy! > > Cheers > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Pgu-devel mailing list > Pgu...@li... > https://lists.sourceforge.net/lists/listinfo/pgu-devel > > > > > > -------------------------------------------------------------------- > mail2web LIVE =96 Free email based on Microsoft(r) Exchange technology - > http://link.mail2web.com/LIVE > > > |
From: Matthew M. <mat...@go...> - 2007-07-25 18:39:06
|
Okay, so I think I am very nearly there ... (Many thanks for your help) I've changed to using "open" rather than "add". I've got round the fact tha= t it was then crashing (I had defined a timer event that was clashing with a mouse event). And you were right, the only reason the dialog didn't seem to be closing was because I wasn't overwriting the screen contents with anything. However, the reason that I am not overwriting with anything is because I am not breaking out of my event loop when the dialog is closed. Should some sort of event be generated when the dialog is closed that I can pick up in my event loop? I don't believe an event is generated at the moment (I've traced all events being received), but clearly there must be some way of detecting when the dialog is closed? On 7/23/07, Jasper Stolte <jas...@gm...> wrote: > > Hi, > > Unfortunately this code cant be compiled as is, so I cant test what I'm > about to write. Hope it can help anyway. What happens if you take out the > c.add() command, and put in a c.open() command? Then it should work, > right? > > Maybe you need to do some extra cleanup, since it might be that the windo= w > actually does close, but is still on the screen since PGU has nothing els= e > to paint over it. Try and see if the colordialog close method is invoked, > and work from there. > > Regards, > Jasper > > > On 7/21/07, mat...@be... <mat...@be... > wrote: > > > > Thanks. > > > > I've now got things partially working. I can display a dialog, but not > > in > > a way that I can close it! > > > > I've taken the ColorDialog from example 7 and combined with the code > > from > > example 10 as shown below. The ColorDialog displays correctly on top o= f > > my > > screen content, and the game blocks in the event loop shown below. The > > controls in the dialog work correctly except for the dialog close > > control > > (the red button top right) - clicking on this does nothing. > > > > I wondered if I needed to "open" the dialog instead of "add"ing it so I > > tried commenting out the c.add line and adding an app.open (as shown > > hashed > > out below). This didn't make any difference though except that after a > > while I hit an exception of some sort... > > > > Can anyone offer any further suggestions please? > > > > <main game loop> > > ... > > > > #open modal dialog > > > > app =3D gui.App() > > app.connect(gui.QUIT,app.quit,None) > > dialog =3D ColorDialog('#000000') > > > > c =3D gui.Container(align=3D-1,valign=3D-1) > > c.add(dialog,0,0) > > > > app.init(c) > > #app.open(dialog,0,0) > > _quit =3D 0 > > while not _quit: > > for e in pygame.event.get(): > > if e.type is QUIT: _quit =3D 1 > > if e.type is KEYDOWN and e.key =3D=3D K_ESCAPE: _quit =3D 1 > > app.event(e) > > app.paint(screen) > > pygame.display.flip() > > pygame.time.wait(10) > > > > > > From: Jasper Stolte [mailto: jas...@gm...] > > Sent: 16 July 2007 12:36 > > To: matandhelen > > Cc: pgu...@li... > > Subject: Re: [Pgu-devel] Help getting started > > > > > > Hi, > > > > From your description I'm not really sure if it is the same problem I > > had > > earlier, but it very well could be. So here's what had me stumped for > > hours > > in a similar situation: If we have a class myDialog, which inherits fro= m > > > > gui.Dialog, rather than doing something like (pseudocode) this: > > > > dialog =3D myDialog() > > dialog.container =3D theContainer > > dialog.open() > > > > I needed to do something like this: > > > > dialog =3D myDialog() > > theContainer.open (dialog, x, y) > > > > Hopefully this can get you started from example 10. Also it's been a > > while > > since I did this, so things might've changed since then. > > > > Regards, > > > > Jasper > > > > > > On 7/16/07, matandhelen < mat...@be...> wrote: > > > > Hi, > > > > I have a game written using pygame, and I would love to add a UI using > > PGU. > > It looks like it should do exactly what I want, but despite being a > > software > > > > engineer by trade, I just cannot get it to work (and I've been at it fo= r > > a > > couple of days now!). > > > > All I want to do is add a really basic new game dialog when the game > > finishes. I've got a pygame screen full of content, and all I want to > > do is > > > > pop up a small modal dialog in the middle of it when the game ends, > > collect > > some values like number of players, and have an ok button that closes > > the > > dialog and relaunches the game. > > > > I've tried running, reading and adapting all of the examples. They run > > fine > > > > if I don't change them, but as soon as I try to adapt them go > > wrong. I've > > tried starting from example 10, but I can't work out how to: > > - launch a modal dialog (the colour picker doesn't "block") > > - launch the dialog other than by connecting from another widget > > - do the necessary GUI initialisation without having a widget on the > > screen > > all the time. > > > > I would include some sample code but I haven't really got any - I don't > > even > > > > know where to start: do I create an app or a dialog or both? How do I > > get > > the dialog to display, and how do I get it to display within an > > exisiting > > pygame screen? How do I open it in a way that blocks? I'm sure if I > > knew > > what I was doing it would only be a few lines of code... > > > > Can anyone help me? If I can get this working then I will be able to > > release my game for everyone to enjoy! > > > > Cheers > > > > > > > > -----------------------------------------------------------------------= -- > > > > This SF.net email is sponsored by DB2 Express > > Download DB2 Express C - the FREE version of DB2 express and take > > control of your XML. No limits. Just data. Click to get it now. > > http://sourceforge.net/powerbar/db2/ > > _______________________________________________ > > Pgu-devel mailing list > > Pgu...@li... > > https://lists.sourceforge.net/lists/listinfo/pgu-devel > > > > > > > > > > > > -------------------------------------------------------------------- > > mail2web LIVE =96 Free email based on Microsoft(r) Exchange technology = - > > http://link.mail2web.com/LIVE > > > > > > > |
From: Jasper S. <jas...@gm...> - 2007-07-26 18:14:14
|
Great, you'll have it working soon enough! Indeed, if you don't set the _quit variable somewhere the loop never breaks. There are several options there. Since it looks like you made _quit a global variable, you could simply put _quit =3D 1 in the close() function of the dialog. Alternatively= , you could construct a quit event in the close() and send it. Then it'll automatically get picked up by the event loop which will set _quit. There are more complicated ways like periodically checking whether the dialog is still opened, but this seems less efficient than just using the close function options. Regards, Jasper On 7/25/07, Matthew Meredith <mat...@go...> wrote: > > Okay, so I think I am very nearly there ... (Many thanks for your help) > > I've changed to using "open" rather than "add". I've got round the fact > that it was then crashing (I had defined a timer event that was clashing > with a mouse event). And you were right, the only reason the dialog didn'= t > seem to be closing was because I wasn't overwriting the screen contents w= ith > anything. > > However, the reason that I am not overwriting with anything is because I > am not breaking out of my event loop when the dialog is closed. Should so= me > sort of event be generated when the dialog is closed that I can pick up i= n > my event loop? I don't believe an event is generated at the moment (I've > traced all events being received), but clearly there must be some way of > detecting when the dialog is closed? > > > On 7/23/07, Jasper Stolte <jas...@gm...> wrote: > > > > Hi, > > > > Unfortunately this code cant be compiled as is, so I cant test what I'm > > about to write. Hope it can help anyway. What happens if you take out t= he > > c.add() command, and put in a c.open() command? Then it should work, > > right? > > > > Maybe you need to do some extra cleanup, since it might be that the > > window actually does close, but is still on the screen since PGU has no= thing > > else to paint over it. Try and see if the colordialog close method is > > invoked, and work from there. > > > > Regards, > > Jasper > > > > > > On 7/21/07, mat...@be... < mat...@be... > wrote: > > > > > > Thanks. > > > > > > I've now got things partially working. I can display a dialog, but > > > not in > > > a way that I can close it! > > > > > > I've taken the ColorDialog from example 7 and combined with the code > > > from > > > example 10 as shown below. The ColorDialog displays correctly on top > > > of my > > > screen content, and the game blocks in the event loop shown > > > below. The > > > controls in the dialog work correctly except for the dialog close > > > control > > > (the red button top right) - clicking on this does nothing. > > > > > > I wondered if I needed to "open" the dialog instead of "add"ing it so > > > I > > > tried commenting out the c.add line and adding an app.open (as shown > > > hashed > > > out below). This didn't make any difference though except that after > > > a > > > while I hit an exception of some sort... > > > > > > Can anyone offer any further suggestions please? > > > > > > <main game loop> > > > ... > > > > > > #open modal dialog > > > > > > app =3D gui.App() > > > app.connect(gui.QUIT,app.quit,None) > > > dialog =3D ColorDialog('#000000') > > > > > > c =3D gui.Container(align=3D-1,valign=3D-1) > > > c.add(dialog,0,0) > > > > > > app.init(c) > > > #app.open(dialog,0,0) > > > _quit =3D 0 > > > while not _quit: > > > for e in pygame.event.get(): > > > if e.type is QUIT: _quit =3D 1 > > > if e.type is KEYDOWN and e.key =3D=3D K_ESCAPE: _quit =3D= 1 > > > app.event(e) > > > app.paint(screen) > > > pygame.display.flip() > > > pygame.time.wait(10) > > > > > > > > > From: Jasper Stolte [mailto: jas...@gm...] > > > Sent: 16 July 2007 12:36 > > > To: matandhelen > > > Cc: pgu...@li... > > > Subject: Re: [Pgu-devel] Help getting started > > > > > > > > > Hi, > > > > > > From your description I'm not really sure if it is the same problem I > > > had > > > earlier, but it very well could be. So here's what had me stumped for > > > hours > > > in a similar situation: If we have a class myDialog, which inherits > > > from > > > gui.Dialog, rather than doing something like (pseudocode) this: > > > > > > dialog =3D myDialog() > > > dialog.container =3D theContainer > > > dialog.open () > > > > > > I needed to do something like this: > > > > > > dialog =3D myDialog() > > > theContainer.open (dialog, x, y) > > > > > > Hopefully this can get you started from example 10. Also it's been a > > > while > > > since I did this, so things might've changed since then. > > > > > > Regards, > > > > > > Jasper > > > > > > > > > On 7/16/07, matandhelen < mat...@be...> wrote: > > > > > > Hi, > > > > > > I have a game written using pygame, and I would love to add a UI usin= g > > > PGU. > > > It looks like it should do exactly what I want, but despite being a > > > software > > > > > > engineer by trade, I just cannot get it to work (and I've been at it > > > for a > > > couple of days now!). > > > > > > All I want to do is add a really basic new game dialog when the game > > > finishes. I've got a pygame screen full of content, and all I want t= o > > > do is > > > > > > pop up a small modal dialog in the middle of it when the game ends, > > > collect > > > some values like number of players, and have an ok button that closes > > > the > > > dialog and relaunches the game. > > > > > > I've tried running, reading and adapting all of the examples. They > > > run fine > > > > > > if I don't change them, but as soon as I try to adapt them go > > > wrong. I've > > > tried starting from example 10, but I can't work out how to: > > > - launch a modal dialog (the colour picker doesn't "block") > > > - launch the dialog other than by connecting from another widget > > > - do the necessary GUI initialisation without having a widget on the > > > screen > > > all the time. > > > > > > I would include some sample code but I haven't really got any - I > > > don't even > > > > > > know where to start: do I create an app or a dialog or both? How do = I > > > get > > > the dialog to display, and how do I get it to display within an > > > exisiting > > > pygame screen? How do I open it in a way that blocks? I'm sure if I > > > knew > > > what I was doing it would only be a few lines of code... > > > > > > Can anyone help me? If I can get this working then I will be able to > > > release my game for everyone to enjoy! > > > > > > Cheers > > > > > > > > > > > > ---------------------------------------------------------------------= ---- > > > > > > This SF.net email is sponsored by DB2 Express > > > Download DB2 Express C - the FREE version of DB2 express and take > > > control of your XML. No limits. Just data. Click to get it now. > > > http://sourceforge.net/powerbar/db2/ > > > _______________________________________________ > > > Pgu-devel mailing list > > > Pgu...@li... > > > https://lists.sourceforge.net/lists/listinfo/pgu-devel > > > > > > > > > > > > > > > > > > -------------------------------------------------------------------- > > > mail2web LIVE =96 Free email based on Microsoft(r) Exchange technolog= y - > > > http://link.mail2web.com/LIVE > > > > > > > > > > > > |