Учебник - журнал Linux Format. Код вот:Что за учебник?
И какая графическая библиотека?
Да и желательно код в студию.
from pygame import *
import random
ballpic = image.load('ball.png')
done = false
ballx = 0
bally = 0
ballxmove = 1
ballymove = 1
init()
screen = display.set_mode((640,480))
display.set_caption('Ball game')
while done == false:
screen.fill(0)
screen.blit(ballpic, (ballx, bally))
display.update()
time.delay(1)
ballx = ballx + ballxmove
bally = bally + ballymove
if ballx > 600:
ballxmove = -1
if ballx < 0:
ballxmove = 1
if bally > 440:
ballymove = -1
if bally < 0:
ballymove = 1
for e in event.get():
if e.type == KEYUP:
if e.key == K_ESCAPE:
done = True
#!/usr/bin/python
from pygame import *
import random
ballpic = image.load('ball.png')
done = "false"
ballx = 0
bally = 0
ballxmove = 1
ballymove = 1
init()
screen = display.set_mode((640,480))
display.set_caption('Ball game')
while done == "false":
screen.fill(0)
screen.blit(ballpic, (ballx, bally))
display.update()
time.delay(1)
ballx = ballx + ballxmove
bally = bally + ballymove
if ballx > 600:
ballxmove = -1
if ballx < 0:
ballxmove = 1
if bally > 440:
ballymove = -1
if bally < 0:
ballymove = 1
for e in event.get():
if e.type == KEYUP:
if e.key == K_ESCAPE:
done = "True"
Рисунок есть. Ваша программа заработала, вот только принципиальных отличий от своего кода я не нашёл. А в чём ошибка моя была? И ещё вопрос: pygame умеет анимационные gif открывать?Может нет рисунка? у меня в другом месте ошибка...
Все проверил, рисунок нарисовал... Исправленный код (может не все правильно, но работает):
Рисунок есть. Ваша программа заработала, вот только принципиальных отличий от своего кода я не нашёл. А в чём ошибка моя была? И ещё вопрос: pygame умеет анимационные gif открывать?
Мда, отличия... А я голову ломал сидел, а там оказывается кавычки надо поставить... Спасибо за помощь.На счет гифа - без понятия. Про pygame только сейчас узнал.
Вот и отличия: done = "false" и while done == "false": Кавычки добавил.
А как будет выглядеть код, если имеется 2 рисунка, один из них выведен на экран, и при нажатии на кнопку один рисунок заменяется другим? (Более точно - имеется картинка png человечка, и картинка gif его ходьбы, при нажатии на кнопку вправо, человечек должен начать идти (т.е. рисунок png заменяется рисунком gif))?Поправил код: теперь работает выход из программы.
Ок. Ну наверно там основная строка такого типа должна быть:Пока не получается сделать, думаю завтра будет готово. Самому интересно что получится .
if <нажата_кнопка>:
1pic = 2pic
Ёжползёж, тоесть так не получится: Если KEYDOWN, то.... Ну ведь делают же как-то люди, я говорю, надо просто учебники почитать, я когда до вышеупомянутого Звездолёта доберусь, напишу этот код.Я тут глянул доки - не все так просто. В pygame есть только KEYDOWN (кнопка нажата) и KEYUP (кнопка отпущена), т.е. не получится сделать так: кнопку зажал - картинка поехала . Так получается 1 нажатие - перемещение на 1 пиксел (или больше).
Хотя может есть другие способы...
Ёжползёж, ну а если так: Если KEYDOWN, то....
Да я просто попробовал в программе с шариком заменить KEYUP на KEYDOWN и теперь, когда я удерживаю Escape программа закрывается... Про шар летающий - LF №103 с.62, про звездолёт не помню, Вот ссылка внешняя на довольно интересную игру.Это не то...
Мой совет: почитайте документацию.
А какой номер журнала?
Да я просто попробовал в программе с шариком заменить KEYUP на KEYDOWN и теперь, когда я удерживаю Escape программа закрывается... Про шар летающий - LF №103 с.62, про звездолёт не помню, Вот ссылка внешняя на довольно интересную игру.
Все просто. В программе уже есть состояние, которое меняется по действиям с кнопкой и проверяется в основном цикле - done.Я тут глянул доки - не все так просто. В pygame есть только KEYDOWN (кнопка нажата) и KEYUP (кнопка отпущена), т.е. не получится сделать так: кнопку зажал - картинка поехала . Так получается 1 нажатие - перемещение на 1 пиксел (или больше).
Хотя может есть другие способы...
import pygame
pygame.init()
pygame.mixer.Sound('1.wav').play()
[maxi@localhost test_wav]$ python
Python 2.6.2 (r262:71600, Jan 25 2010, 18:46:45)
[GCC 4.4.2 20091222 (Red Hat 4.4.2-20)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
>>> pygame.init()
(6, 0)
>>> pygame.mixer.Sound('1.wav').play()
<Channel object at 0xb77eb180>
>>> exit()
[maxi@localhost test_wav]$
python test_wav.py
Решил написать простенькую прогу, последовательно проигрывающую wav файлы.
С помощью модуля pygame все делается просто:
Если все это выполнять в питоновской консоли, т.е.:Код:import pygame pygame.init() pygame.mixer.Sound('1.wav').play()
- все работает. Файл воспроизводится.Код:[maxi@localhost test_wav]$ python Python 2.6.2 (r262:71600, Jan 25 2010, 18:46:45) [GCC 4.4.2 20091222 (Red Hat 4.4.2-20)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pygame >>> pygame.init() (6, 0) >>> pygame.mixer.Sound('1.wav').play() <Channel object at 0xb77eb180> >>> exit() [maxi@localhost test_wav]$
Если же поместить этот код в файл (например test_wav.py), и выполнить
- ничего не происходит , хотя функции возвращают нормальные значения.Код:python test_wav.py
В чем соль?