Форум сайта python.su
я уже с недельку долблюсь с этими спрайтами…
объясните мне кто нибудь пожалуйста как вывести на экран спрайт и чтобы при нажатии на кнопку “d”
этот спрайт двигался в право.
если вспомнили про гугл то я нашёл кучу статей про это…
но там нифига ничо не понятно и пол кода отсутствует (пишут “на диске полный код. купить диск надо”)
у меня даже вывести на экран спрайт не выходит!
помогите
Офлайн
Опять ты за свое… Tkinter тебя не устраивает???
Офлайн
4kptну ты же говорил что если я хочу делать игры то ткинтер не поможет…
Tkinter тебя не устраивает???
Офлайн
Пойми, не разобравшись с самым простым графическим инерфейсмо (коим является Tkinter), лезть в игровую индустрию бесполезно…
Но смотри сам, я отвалил…
Отредактировано 4kpt (Ноя. 11, 2012 13:46:25)
Офлайн
В 14 лет юношеский максимализм это нормально, но пользы не приносит. Хочется всего и сразу, попытки осадить мальца не принесли результата. Дальше пускай сам сношает мозг себе.
Офлайн
https://bitbucket.org/r1chardj0n3s/pygame-tutorial
https://bitbucket.org/thesheep/pygame-tutorial
http://www.petercollingridge.co.uk/pygame-physics-simulation
http://rene.f0o.com/mywiki/LectureThree
если ты про “диски” с http://inventwithpython.com/ , то в торрентах всё есть
и читай, толку если тебе дадут пример как это сделать - ноль
Отредактировано slav0nic (Ноя. 12, 2012 14:47:49)
Офлайн
а я вот нашёл в такой код из двух файлов и вобщем понял его:
первый файл main.py:
#! /usr/bin/python # -*- coding: utf-8 -*- import pygame import directions class Game(): x = 100 y = 100 speed = 3 keymap = { pygame.K_LEFT : directions.LEFT, pygame.K_UP : directions.UP, pygame.K_RIGHT : directions.RIGHT, pygame.K_DOWN : directions.DOWN } def __init__(self): #Initial window settings pygame.init() pygame.display.set_mode((640, 480)) pygame.display.set_caption('I\'m super cool Python programmer') self.run() def run(self): while True: self.track_input(pygame.event.get()) pygame.display.get_surface().fill(pygame.Color(0, 0, 0, 0)) block = pygame.Surface((10, 10)) block.fill(pygame.Color(255, 255, 255, 0)) pygame.display.get_surface().blit(block, (self.x, self.y)); pygame.display.flip() def track_input(self, events): for event in events: #Exit if event.type == pygame.QUIT: exit(0) if event.type == pygame.KEYDOWN and event.key in self.keymap.keys() and self.keymap[event.key] in directions.DIRECTIONS: self.move(self.keymap[event.key]) def move(self, direction): movement = { directions.UP : [self.x, self.y-self.speed], directions.RIGHT : [self.x+self.speed, self.y], directions.DOWN : [self.x, self.y+self.speed], directions.LEFT : [self.x-self.speed, self.y] } self.x, self.y = movement[direction] if __name__ == "__main__": Game()
#! /usr/bin/python # -*- coding: utf-8 -*- if __name__ == "__main__": exit(0) UP = 0 RIGHT = 1 DOWN = 2 LEFT = 3 DIRECTIONS = [UP, RIGHT, DOWN, LEFT] VERTICAL = [UP, DOWN] HORIZONTAL = [LEFT, RIGHT]
Офлайн
Какуюто фигню ты нашёл ))
Если ещё нужно то вот простой код - двигает 1.jpeg по экрану
import pygame pygame.init() display = pygame.display.set_mode((640, 480)) # создаём "окно" # загружаем спрайт convert_alpha - необязательно но его рекомендуют использовать всегда spriteImg = pygame.image.load(u'1.jpeg').convert_alpha() # создаёт rect изображения которое грубоговоря определят размеры и положение спрайта spriteRect = spriteImg.get_rect() spriteRect.center = (320, 240) # задаём положение спрайта run = 1 while run: display.fill((255, 255, 255)) # закрашивает окно белым display.blit(spriteImg, spriteRect) # проэцирует спрайт на окно pygame.display.flip() # это магия for event in pygame.event.get(): # получем события - нажатия лавиш, движение мыши и т.д. if event.type == pygame.QUIT: run = 0 if event.type == pygame.KEYDOWN: if event.key == pygame.K_1: run = 0 if event.key == pygame.K_UP: spriteRect = spriteRect.move(0, -1) elif event.key == pygame.K_DOWN: spriteRect = spriteRect.move(0, 1) if event.key == pygame.K_LEFT: spriteRect = spriteRect.move(-1, 0) elif event.key == pygame.K_RIGHT: spriteRect = spriteRect.move(1, 0)
Отредактировано Frog-king (Дек. 6, 2012 11:24:00)
Офлайн