Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 10, 2012 10:26:10

pellon
Зарегистрирован: 2012-10-29
Сообщения: 98
Репутация: +  -1  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

я уже с недельку долблюсь с этими спрайтами…
объясните мне кто нибудь пожалуйста как вывести на экран спрайт и чтобы при нажатии на кнопку “d”
этот спрайт двигался в право.
если вспомнили про гугл то я нашёл кучу статей про это…
но там нифига ничо не понятно и пол кода отсутствует (пишут “на диске полный код. купить диск надо”)
у меня даже вывести на экран спрайт не выходит!
помогите

Офлайн

#2 Ноя. 10, 2012 16:15:37

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

Опять ты за свое… Tkinter тебя не устраивает???



Офлайн

#3 Ноя. 11, 2012 11:10:45

pellon
Зарегистрирован: 2012-10-29
Сообщения: 98
Репутация: +  -1  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

4kpt
Tkinter тебя не устраивает???
ну ты же говорил что если я хочу делать игры то ткинтер не поможет…

Офлайн

#4 Ноя. 11, 2012 12:54:46

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

Пойми, не разобравшись с самым простым графическим инерфейсмо (коим является Tkinter), лезть в игровую индустрию бесполезно…

Но смотри сам, я отвалил…



Отредактировано 4kpt (Ноя. 11, 2012 13:46:25)

Офлайн

#5 Ноя. 12, 2012 12:32:38

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

В 14 лет юношеский максимализм это нормально, но пользы не приносит. Хочется всего и сразу, попытки осадить мальца не принесли результата. Дальше пускай сам сношает мозг себе.



Офлайн

#6 Ноя. 12, 2012 14:47:12

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

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)

Офлайн

#7 Ноя. 12, 2012 18:04:13

pellon
Зарегистрирован: 2012-10-29
Сообщения: 98
Репутация: +  -1  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

а я вот нашёл в такой код из двух файлов и вобщем понял его:

первый файл 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()

второй файл directions.py:

#! /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]

задача такая:
сделать такой же исходник только в одном файле и без словаря как нибудь
подскажите

Офлайн

#8 Дек. 5, 2012 09:18:03

Frog-king
Зарегистрирован: 2012-11-30
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

дурацкие спрайты в pygame!

Какуюто фигню ты нашёл ))
Если ещё нужно то вот простой код - двигает 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version