Posts: 5,151
Threads: 396
Joined: Sep 2016
Jan-22-2019, 06:50 PM
(This post was last modified: Jan-22-2019, 06:50 PM by metulburr.)
If your test run fine then pygame works. You are just having an issue with livewire's API, not pygame.
Quote:The window appears, but no background image.
In pygame to display anything, you have to 1) blit it and 2) make sure the screen is updated. Since i have no idea where this is in their code, i cannot say exactly how they do that.
in my opinion, you should probably just learn pygame instead. Livewire is just a wrapper to pygame. If you end up getting into it, you would have to relearn pygame's API anyways to do more complex tasks. Also Pygame's API is very well known, documented, and discussed in all places. Ive seen kids 8 years old and up use pygame effectively. Livewire is not the same. There are tons of pygame wrappers. For some reason people think they need to make their own wrapper and publish them for beginners to use to make it easier on them. However it makes it harder because you find hardly anyone who uses it and poorly documented (as you have found out).
Based on their website it appears there is even a cost
livewires.org.uk/helping/ Wrote:The cost for 2018 is £252, which is 90% of the YP fee. Pygame is free. The docs are free. The tutorials and help learning it is free. The software is free. In fact you could even close source your game. Pygame is LGPL specifically so you can use it in close-sourced projects. ( source from the horses mouth)
Recommended Tutorials:
Posts: 12
Threads: 2
Joined: Jan 2019
(Jan-22-2019, 06:48 PM)metulburr Wrote: If your test run fine then pygame works. You are just having an issue with livewire's API, not pygame. I don't think that is true. I've run the exact same code (including the livewires source from the book, which is free -- and customized) on my Ubuntu desktop and it runs properly. I see the window and the background image.
There's something wrong with pygame on Mac, which runs Mojave, pygame 1.9.4, and python 2.7.15. There is evidently some kind of issue with pygame on Mojave for some folks.
(Jan-22-2019, 06:48 PM)metulburr Wrote: in my opinion, you should probably just learn pygame instead. Livewire is just a wrapper to pygame. If you end up getting into it, you would have to relearn pygame's API anyways to do more complex tasks...Pygame is free. The docs are free. The help is free. The software is free. Pygame is LGPL specifically so you can use it in close-sourced projects I agree that learning pygame directly is probably the way to go, but also believe there is some kind of problem with my installation.
Posts: 5,151
Threads: 396
Joined: Sep 2016
(Jan-22-2019, 06:54 PM)sneakyimp Wrote: I don't think that is true. I've run the exact same code (including the livewires source from the book, which is free -- and customized) on my Ubuntu desktop and it runs properly. I see the window and the background image. In that case yes you are right.
If you have majave you can try some thigng based on here:
https://github.com/pygame/pygame/issues/555
1) miniconda appears to work on majave pygame/python if you just want to get it running
2) one person states that python3.7.0 with pygame 1.9.4 does not encounter this problem
Recommended Tutorials:
Posts: 12
Threads: 2
Joined: Jan 2019
(Jan-22-2019, 07:11 PM)metulburr Wrote: If you have majave you can try some thigng based on here:
https://github.com/pygame/pygame/issues/555 Oh dang that github thread looks totally chaotic. I'm starting to think that graphics and/or game programming in Python doesn't sound like a very productive study path for python if I'd like to improve my skills. I'm guessing my time might be better spent looking into data science or AI applications.
(Jan-22-2019, 07:11 PM)metulburr Wrote: 1) miniconda appears to work on majave pygame/python if you just want to get it running
2) one person states that python3.7.0 with pygame 1.9.4 does not encounter this problem 1) Having tried pip, python 2 and 3, homebrew, pygame (and over half a dozen subsidiary libraries), etc. I'm not sure investing time in miniconda is worth it just to get this outdated livewires/pygame thing working. I'm having my doubts about pygame now.
2) As I posted earlier in this thread, I tried python3 and it installed pygame just fine, but the version of livewires i have doesn't work with python 3.
I'm thinking I might just walk away from this book and its outdated livewires and finicky pygame and just head down a different learning path.
Posts: 5,151
Threads: 396
Joined: Sep 2016
(Jan-22-2019, 08:44 PM)sneakyimp Wrote: I'm thinking I might just walk away from this book and its outdated livewires and finicky pygame and just head down a different learning path. Unfortunately mac and pygame always has problems. You are not the first.
Recommended Tutorials:
Posts: 544
Threads: 15
Joined: Oct 2016
Quote: I'm having my doubts about pygame now.
Please don't compare livewires to pygame. Pygame has it own faults.
Pygame example.
import pygame
class Scene:
def __init__(self, title, width, height):
# basic pygame setup
pygame.display.set_caption(title)
self.rect = pygame.Rect(0, 0, width, height)
self.surface = pygame.display.set_mode(self.rect.size)
self.clock = pygame.time.Clock()
# your code
image_name = "/Users/yamo/trash/python/ch11/wall.jpg"
# convert the image to match pygame format
self.wall_image = pygame.image.load(image_name).convert()
def mainloop(self):
self.running = True
while self.running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.running = False
# draw code here
# background
self.surface.blit(self.wall_image, (0,0))
pygame.display.flip()
# don't max out cpu. limit framerate.
self.clock.tick(30)
if __name__ == '__main__':
pygame.init()
scene = Scene('Example', 640, 480)
scene.mainloop()
pygame.quit()
99 percent of computer problems exists between chair and keyboard.
Posts: 12
Threads: 2
Joined: Jan 2019
Jan-22-2019, 11:37 PM
(This post was last modified: Jan-22-2019, 11:39 PM by sneakyimp.)
(Jan-22-2019, 09:47 PM)Windspar Wrote: Please don't compare livewires to pygame. Pygame has it own faults.
Thank you so much for that generous bit of code. Just like my code, it works on my Ubuntu machine just fine but does not work on my laptop running OSX Mojave, python 2.7.15, and pygame 1.9.4. Just like my code, this opens a window but the background image doesn't show up. Some things I'd like to reiterate:
1) Clearly I am not the only person having trouble with with PyGame and Mojave.
2) The livewires code works just fine on my Ubuntu machine. As does your code. The flaw must therefore lie in the implementation of pygame.
3) As I've mentioned here a couple of times now, the customized livewires code that came with my book is incompatible with python 3. Upgrading to python 3 on my Mac might remedy some pygame problems, but that would render the last 2 chapters in my book moot.
4) My enthusiasm to embrace pygame is hampered by the thought that it doesn't work on the latest version OSX unless you also upgrade to python 3 or bundle python 3 with your installer. OSX distributes python 2.7.
Is there big demand for games written in python or for pygame skills? The word "pygame" doesn't even appear on los angeles craigslist.
Posts: 5,151
Threads: 396
Joined: Sep 2016
Jan-23-2019, 12:20 AM
(This post was last modified: Jan-23-2019, 12:20 AM by metulburr.)
(Jan-22-2019, 11:37 PM)sneakyimp Wrote: Is there big demand for games written in python or for pygame skills? The word "pygame" doesn't even appear on los angeles craigslist. This logic doesnt make any sense. First of all why would you search software on Craigslist? Secondly, if you replace pygame with the most known programming language your first result is rental apartments that include A/ C++ (air conditioning). This has no merit in whether to weigh software's value.
(Jan-22-2019, 11:37 PM)sneakyimp Wrote: 4) My enthusiasm to embrace pygame is hampered by the thought that it doesn't work on the latest version OSX unless you also upgrade to python 3 or bundle python 3 with your installer. OSX distributes python 2.7. I know its frustrating. A lot of people have problems. You might continue to have them if you are not willing to try things such as using python3.x. Problems with pygame is not the only reason i will never buy an Apple product  .
(Jan-22-2019, 11:37 PM)sneakyimp Wrote: Upgrading to python 3 on my Mac might remedy some pygame problems, but that would render the last 2 chapters in my book moot. That is not completely true. There are minor differences in the majority of tutorials that are 2.x/3.x. Most tutorials can be ported to python3.x quite easily as long as you know the differences. You can search out the differences even on our website. Pygame does work for both python2.x and python3.x. I cant say the same about livewires.
Python 2.x Syntax: 'bbb' for byte in strings
Python 3.x Syntax: b'bbb'
Python 2.x Syntax: 1.0/10 = 0.10000000000000001
Python 3.x Syntax: 1.0/10 = 0.1
Python 2.x Syntax: urllib.quote_plus()
Python 3.x Syntax: urllib.parse.quote_plus()
Python 2.x Syntax: String module functions
Python 3.x Syntax: String object methods
Python 2.x Syntax: urllib.URLopener
Python 3.x Syntax: urllib.request.URLopener
Python 2.x Syntax: intern()
Python 3.x Syntax: sys.intern()
Python 2.x Syntax: urllib.unquote_plus()
Python 3.x Syntax: urllib.parse.unquote_plus()
Python 2.x Syntax: __getattr__ run by built-ins
Python 3.x Syntax: Redefine __X__ methods in wrapper classes
Python 2.x Syntax: sys.exc_type, exc_value
Python 3.x Syntax: sys.exc_info()[0], [1]
Python 2.x Syntax: X.next
Python 3.x Syntax: X.__next__,called by next(X)
Python 2.x Syntax: gen.throw(ValueError, "bad value")
Python 3.x Syntax: gen.throw(ValueError("bad value"))
Python 2.x Syntax: Unbound methods
Python 3.x Syntax: Functions (staticmethod to call via instance)
Python 2.x Syntax: SimpleDialog
Python 3.x Syntax: tkinter.simpledialog
Python 2.x Syntax: whichdb
Python 3.x Syntax: dbm
Python 2.x Syntax: apply(f, ps, ks)
Python 3.x Syntax: f(*ps, **ks)
Python 2.x Syntax: tkFileDialog
Python 3.x Syntax: tkinter.filedialog
Python 2.x Syntax: basestring()
Python 3.x Syntax: str()
Python 2.x Syntax: D.keys, etc. as lists
Python 3.x Syntax: list(D.keys()) (dictionary views)
Python 2.x Syntax: dbm
Python 3.x Syntax: dbm.ndbm
Python 2.x Syntax: urllib.urlcleanup()
Python 3.x Syntax: urllib.request.urlcleanup()
Python 2.x Syntax: file
Python 3.x Syntax: open(and io module classes)
Python 2.x Syntax: httplib
Python 3.x Syntax: http.client
Python 2.x Syntax: input
Python 3.x Syntax: eval(input())
Python 2.x Syntax: exec open(filename)
Python 3.x Syntax: exec(open(filename).read())
Python 2.x Syntax: BaseHTTPServer
Python 3.x Syntax: http.server
Python 2.x Syntax: cStringIO.StringIO()
Python 3.x Syntax: io.StringIO
Python 2.x Syntax: urllib.pathname2url()
Python 3.x Syntax: urllib.request.pathname2url()
Python 2.x Syntax: SimpleXMLRPCServer
Python 3.x Syntax: xmlrpc.server
Python 2.x Syntax: map(), range, etc. as lists
Python 3.x Syntax: list(map()), list(range()) (built-ins)
Python 2.x Syntax: itertools.izip()
Python 3.x Syntax: zip()
Python 2.x Syntax: itertools.ifilterfalse()
Python 3.x Syntax: itertools.filterfalse()
Python 2.x Syntax: urllib2.HTTPCookieProcessor
Python 3.x Syntax: urllib.request.HTTPCookieProcessor
Python 2.x Syntax: os.popen2, os.popen3, os.popen4
Python 3.x Syntax: subprocess.Popen()
Python 2.x Syntax: unichr()
Python 3.x Syntax: chr()
Python 2.x Syntax: urllib2.HTTPPasswordMgr
Python 3.x Syntax: urllib.request.HTTPPasswordMgr
Python 2.x Syntax: __builtin__
Python 3.x Syntax: builtins
Python 2.x Syntax: X.__setslice__
Python 3.x Syntax: X.__setitem__ passed a slice object
Python 2.x Syntax: urllib.getproxies()
Python 3.x Syntax: urllib.request.getproxies()
Python 2.x Syntax: X.__cmp__(y)
Python 3.x Syntax: __lt__, __gt__, __eq__, etc.
Python 2.x Syntax: urllib.quote()
Python 3.x Syntax: urllib.parse.quote()
Python 2.x Syntax: urllib2.FileHandler
Python 3.x Syntax: urllib.request.FileHandler
Python 2.x Syntax: raise TypeError, msg, tb
Python 3.x Syntax: raise TypeError.with_traceback(tb)
Python 2.x Syntax: long()
Python 3.x Syntax: int()
Python 2.x Syntax: String-based exceptions
Python 3.x Syntax: Class-based exceptions (also required in 2.6)
Python 2.x Syntax: Dialog
Python 3.x Syntax: tkinter.dialog
Python 2.x Syntax: class MyException
Python 3.x Syntax: class MyException(Exception)
Python 2.x Syntax: anydbm
Python 3.x Syntax: dbm
Python 2.x Syntax: -t, -tt command-line switches
Python 3.x Syntax: inconsistant tabs/spaces use is always an error
Python 2.x Syntax: dummy_thread
Python 3.x Syntax: _dummy_thread
Python 2.x Syntax: SimpleHTTPServer
Python 3.x Syntax: http.server
Python 2.x Syntax: 'X'
Python 3.x Syntax: repr(X)
Python 2.x Syntax: urllib2.HTTPDigestAuthHandler
Python 3.x Syntax: urllib.request.HTTPDigestAuthHandler
Python 2.x Syntax: X=D.keys(); X.sort()
Python 3.x Syntax: sorted(D) (or list(D.keys()))
Python 2.x Syntax: map(None, ...)
Python 3.x Syntax: zip(or manuel code to pad results)
Python 2.x Syntax: except E, V:
Python 3.x Syntax: except E as X:
Python 2.x Syntax: urllib2.ProxyDigestAuthHandler
Python 3.x Syntax: urllib.request.ProxyDigestAuthHandler
Python 2.x Syntax: sort comparison functions
Python 3.x Syntax: Use key=transform or reverse=True
Python 2.x Syntax: reduce()
Python 3.x Syntax: functools.reduce()
Python 2.x Syntax: 10/1 = 10
Python 3.x Syntax: 10/1 = 10.0
Python 2.x Syntax: type(obj) == types.DictType
Python 3.x Syntax: isinstance(obj, dict)
Python 2.x Syntax: print >> F, x, y
Python 3.x Syntax: print(x, y, file=F)
Python 2.x Syntax: X.__hex__, X.__oct__
Python 3.x Syntax: X.__index__
Python 2.x Syntax: urllib2.OpenerDirector
Python 3.x Syntax: urllib.request.OpenerDirector
Python 2.x Syntax: itertools.imap()
Python 3.x Syntax: map()
Python 2.x Syntax: urllib2.ProxyBasicAuthHandler
Python 3.x Syntax: urllib.request.ProxyBasicAuthHandler
Python 2.x Syntax: cPickle
Python 3.x Syntax: pickle
Python 2.x Syntax: CGIHTTPServer
Python 3.x Syntax: http.server
Python 2.x Syntax: reload(M)
Python 3.x Syntax: imp.reload(M) (or exec)
Python 2.x Syntax: exceptions module
Python 3.x Syntax: built-in scope, library manual
Python 2.x Syntax: itertools.ifilter()
Python 3.x Syntax: filter()
Python 2.x Syntax: urllib2.CacheFTPHandler
Python 3.x Syntax: urllib.request.CacheFTPHandler
Python 2.x Syntax: urllib2.HTTPBasicAuthHandler
Python 3.x Syntax: urllib.request.HTTPBasicAuthHandler
Python 2.x Syntax: file.xreadlines
Python 3.x Syntax: for line in file: (or X=iter(file))
Python 2.x Syntax: urllib2.urlopen()
Python 3.x Syntax: urllib.request.urlopen()
Python 2.x Syntax: Queue
Python 3.x Syntax: queue
Python 2.x Syntax: Tkinter
Python 3.x Syntax: tkinter
Python 2.x Syntax: urllib2.HTTPPasswordMgrWithDefaultRealm
Python 3.x Syntax: urllib.request.HTTPPasswordMgrWithDefaultRealm
Python 2.x Syntax: urllib2.Request
Python 3.x Syntax: urllib.request.Request
Python 2.x Syntax: from ... *, within a function
Python 3.x Syntax: May only appear at the top level of a file
Python 2.x Syntax: tkSimpleDialog
Python 3.x Syntax: tkinter.simpledialog
Python 2.x Syntax: gdbm
Python 3.x Syntax: dbm.gnu
Python 2.x Syntax: urllib2.HTTPRedirectHandler
Python 3.x Syntax: urllib.request.HTTPRedirectHandler
Python 2.x Syntax: urllib2.AbstractBasicAuthHandler
Python 3.x Syntax: urllib.request.AbstractBasicAuthHandler
Python 2.x Syntax: DocXMLRPCServer
Python 3.x Syntax: xmlrpc.server
Python 2.x Syntax: print x, y,
Python 3.x Syntax: print(x, y, end=' ')
Python 2.x Syntax: urllib2.ProxyHandler
Python 3.x Syntax: urllib.request.ProxyHandler
Python 2.x Syntax: cookielib
Python 3.x Syntax: http.cookiejar
Python 2.x Syntax: X.__getslice__
Python 3.x Syntax: X.__getitem__ passed a slice object
Python 2.x Syntax: Cookie
Python 3.x Syntax: http.cookies
Python 2.x Syntax: types.ListType
Python 3.x Syntax: list(types is for nonbuilt-in names only)
Python 2.x Syntax: def f((a, b)):
Python 3.x Syntax: def f(x): (a, b) = x
Python 2.x Syntax: execfile(filename)
Python 3.x Syntax: exec(open(filename).read())
Python 2.x Syntax: Dictionary <, >, <=, >=
Python 3.x Syntax: compare sorted(D.items()) (or loop code)
Python 2.x Syntax: _winreg
Python 3.x Syntax: winreg
Python 2.x Syntax: urlparse
Python 3.x Syntax: urllib.parse
Python 2.x Syntax: urllib2.AbstractDigestAuthHandler
Python 3.x Syntax: urllib.request.AbstractDigestAuthHandler
Python 2.x Syntax: thread
Python 3.x Syntax: _thread
Python 2.x Syntax: X.__nonzero__
Python 3.x Syntax: X.__bool__
Python 2.x Syntax: import mod, in same package
Python 3.x Syntax: from . import mod, package=relative form
Python 2.x Syntax: X <> Y
Python 3.x Syntax: x != Y
Python 2.x Syntax: SocketServer
Python 3.x Syntax: socketserver
Python 2.x Syntax: urllib.urlopen()
Python 3.x Syntax: urllib.request.urlopen()
Python 2.x Syntax: tkMessageBox
Python 3.x Syntax: tkinter.messagebox
Python 2.x Syntax: raw_input(K)
Python 3.x Syntax: input(K)
Python 2.x Syntax: copy_reg
Python 3.x Syntax: copyreg
Python 2.x Syntax: urllib.FancyURLopener
Python 3.x Syntax: urllib.request.FancyURLopener
Python 2.x Syntax: ScrolledText
Python 3.x Syntax: tkinter.scolledtext
Python 2.x Syntax: urllib2.install_opener()
Python 3.x Syntax: urllib.request.install_opener()
Python 2.x Syntax: dumbdbm
Python 3.x Syntax: dbm.dumb
Python 2.x Syntax: D.has_key(K)
Python 3.x Syntax: K in D (or D.get(key) != None)
Python 2.x Syntax: reload()
Python 3.x Syntax: imp.reload()
Python 2.x Syntax: urllib2.HTTPHandler
Python 3.x Syntax: urllib.request.HTTPHandler
Python 2.x Syntax: ConfigParser
Python 3.x Syntax: configparser
Python 2.x Syntax: raise "ahhhh!"
Python 3.x Syntax: raise Exception("ahhhh!")
Python 2.x Syntax: repr
Python 3.x Syntax: reprlib
Python 2.x Syntax: __metaclass__ = M
Python 3.x Syntax: class C(metaclass=M):
Python 2.x Syntax: tkFont
Python 3.x Syntax: tkinter.font
Python 2.x Syntax: urllib2.build_opener()
Python 3.x Syntax: urllib.request.build_opener()
Python 2.x Syntax: HTMLParser
Python 3.x Syntax: html.parser
Python 2.x Syntax: markupbase
Python 3.x Syntax: _markupbase
Python 2.x Syntax: FileDialog
Python 3.x Syntax: tkinter.FileDialog
Python 2.x Syntax: htmlentitydefs
Python 3.x Syntax: html.entities
Python 2.x Syntax: urllib.unquote()
Python 3.x Syntax: urllib.parse.unquote()
Python 2.x Syntax: Tix
Python 3.x Syntax: tkinter.tix
Python 2.x Syntax: urllib2.URLError
Python 3.x Syntax: urllib.error.URLError
Python 2.x Syntax: urllib2.FTPHandler
Python 3.x Syntax: urllib.request.FTPHandler
Python 2.x Syntax: function.func_code
Python 3.x Syntax: function.__code__
Python 2.x Syntax: print x, y
Python 3.x Syntax: print(x, y)
Python 2.x Syntax: urllib2.HTTPSHandler
Python 3.x Syntax: urllib.request.HTTPSHandler
Python 2.x Syntax: robotparser
Python 3.x Syntax: urllib.robotparser
Python 2.x Syntax: UserString
Python 3.x Syntax: collections.UserString
Python 2.x Syntax: xrange()
Python 3.x Syntax: range()
Python 2.x Syntax: Tkdnd
Python 3.x Syntax: tkinter.dnd
Python 2.x Syntax: urllib2.UnknownHandler
Python 3.x Syntax: urllib.request.UnknownHandler
Python 2.x Syntax: UserList
Python 3.x Syntax: collections.UserList
Python 2.x Syntax: urllib2.HTTPDefaultErrorHandler
Python 3.x Syntax: urllib.request.HTTPDefaultErrorHandler
Python 2.x Syntax: urllib2.BaseHandler
Python 3.x Syntax: urllib.request.BaseHandler
Python 2.x Syntax: Mixed type comparisons, sorts
Python 3.x Syntax: Nonnumeric mixted type comparisons are errors
Python 2.x Syntax: urllib.ContentTooShortError
Python 3.x Syntax: urllib.error.ContentTooShortError
Python 2.x Syntax: 1/10 = 0
Python 3.x Syntax: 1/10 = 0.1
Python 2.x Syntax: urllib2.HTTPError
Python 3.x Syntax: urllib.error.HTTPError
Python 2.x Syntax: cmp(x, y)
Python 3.x Syntax: (x > y) - (x < y)
Python 2.x Syntax: urllib.url2pathname()
Python 3.x Syntax: urllib.request.url2pathname()
Python 2.x Syntax: tkCommonDialog
Python 3.x Syntax: tkinter.commondialog
Python 2.x Syntax: commands
Python 3.x Syntax: subprocess
Python 2.x Syntax: urllib.urlencode()
Python 3.x Syntax: urllib.parse.urlencode()
Python 2.x Syntax: tkColorChooser
Python 3.x Syntax: tkinter.colorchooser
Python 2.x Syntax: u'ccc'
Python 3.x Syntax: 'ccc'
Python 2.x Syntax: Tkconstants
Python 3.x Syntax: tkinter.constants
Python 2.x Syntax: urllib.urlretrieve()
Python 3.x Syntax: urllib.request.urlretrieve() most of which is not going to be applicable to a basic tutorial.
As a side note. Python2.x is planning on being retired at the end of this year. Some linux distros (arch and gentoo) started using python3.x back in 2013 as the default python. Python2.x was suppose to end completely in 2015, but was extended to 2020 only for security/bugfixes. After 2020 it is likely that there will not even be security updates or bugfixes for python2.x forcing everyone to abandon it due to security alone. Even on our website; we will remove the toplink versions as python2.x will be archived. For example, if you were to post this issue a year from now....the proper answer would be to update to python3.x and to stop using a python2.x tutorial. I dont know if this is the problem or not.....but if i was a developer on pygame i would not worry about pygame working with python2.x on the latest mac release because of its soon to be death. I would be more focused on updating it to the latest python minor release and making sure it works for the majority.
Recommended Tutorials:
Posts: 12
Threads: 2
Joined: Jan 2019
(Jan-23-2019, 12:20 AM)metulburr Wrote: This logic doesnt make any sense. First of all why would you search software on Craigslist? Secondly, if you replace pygame with the most known programming language your first result is rental apartments that include A/C++ (air conditioning). This has no merit in whether to weigh software's value. Yes of course there are some unrelated posts, but my point is that there is not a single result on los angeles craigslist for pygame. Not one.. Compare that to a search for PHP, Javascript, or react. It's not definitive or anything, just might be tricky to find pygame work if searching on craigslist -- at least in Los Angeles.
(Jan-23-2019, 12:20 AM)metulburr Wrote: Problems with pygame is not the only reason i will never buy an Apple product... The laptop is my wife's old one, refurbed with an SSD drive. I would not buy a macbook either. I did not mean to suggest pygame must work on OSX and I have no special affinity for OSX. On the contrary. I've only recently started working with it to broaden my skillset. I was just thinking that the prospect of chasing down a solution to display issues sounds like thankless and frustrating work. I'd much rather be coding.
As for my book, all its code examples assume livewires is in use. Perhaps online pygame tutorials would be better. Let's just say that it's challenge enough to slog thru the book. It's more of a slog if I must learn not just the code in the book (which won't work) but also learn to translate that code into unadulterated pygame. I think I'd be better off dumping the book. I personally don't give a hoot about livewires and have no affinity for python 2.
Quote:Python 2.x Syntax: 'bbb' for byte in strings...
Dang So many differences! I really appreciate that list.
I certainly agree that livewires and python 2 don't look especially interesting/productive as avenues of study. I think I'd be wise to focus on learning skills specific to the job market rather than chasing the "fun"  work of developing games. I'm especially interested in the supposedly lucrative fields of AI, Machine learning, security, and data science. I've finished 10 of 12 chapters in this book and haven't seen any DB interaction, network requests, or website hosting information. Sort of wondering where energy is best invested.
Posts: 544
Threads: 15
Joined: Oct 2016
Maybe this link will help.
Mac pip install
99 percent of computer problems exists between chair and keyboard.
|