Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 1 / 2
Регистрация: 25.06.2015
Сообщений: 130

Не отталкиваюстья объекты

06.01.2016, 20:39. Показов 965. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заново написал прогу, получилось так что объекты не могут оттолкнуться от стены или же от дург друга.

Вот сам код:
import pygame

window = pygame.display.set_mode((400, 400))
pygame.display.set_caption("LAKETYCH Пришествие Кур")
screen = pygame.Surface((400, 400))
class Sprite:
def __init__(self, xpos, ypos, filename):
self.x=xpos
self.y=ypos
self.bitmap=pygame.image.load(filename)
self.bitmap.set_colorkey((0,0,0))
def render(self):
screen.blit(self.bitmap,(self.x,self.y))

def Intersect (x1, x2, y1, y2):
if (x1 > x2-40) and (x1 < x2+40) and (y1 > y2-40) and (y1 < y2+40):
return 1
else:
return 0

#ПТИЦА
hero = Sprite(200,350, "hero.png")
hero.up = True

#КОРАБЕЛЬ
zet = Sprite(200,10, "target.jpg")
zet.up =False


done = True
while done:
for e in pygame.event.get():
if e.type == pygame.QUIT:
done = False

screen.fill((255, 255, 255))

#Описание движение корабля
if hero.up == True:
hero.y -= 1
if hero.y == 0:
hero.up = False
else:
zet.y += 1
if zet.y == 350:
zet.up = True


#Описание движения птицы
if zet.up == True:
zet.y -= 1
if zet.y == 0:
zet.up = False
else:
zet.y += 1
if zet.y == 350:
zet.up = True

if Intersect(zet.x, hero.x, zet.y, hero.y) == True:
hero.up = False
zet.up = True

hero.render()
zet.render()
window.blit(screen, (0, 0))
pygame.display.flip()
pygame.time.delay(6)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2016, 20:39
Ответы с готовыми решениями:

Выберите объекты разметки экрана, внутри которых можно располагать другие объекты
Выберите объекты разметки экрана, внутри которых можно располагать другие объекты RadioGroup CheckBox LinearLayout RelativeLayout ...

Как уничтожать динамические объекты и вообще объекты, если это необходимо сделать в их процедурах?
Создать отдельную процедуру CloseObject(Object: TObject) и вызывать ее в конце процедуры или так тоже нельзя? А то бесят эти access...

Встроенные объекты Java Script. Объекты Array, Date
Создать массив, содержащий названия элементов, находящихся в системном блоке компьютера. Добавить к нему массив, содержащий названия ...

4
 Аватар для akzo
71 / 67 / 6
Регистрация: 08.08.2013
Сообщений: 286
Записей в блоге: 8
06.01.2016, 21:12
Без отступов туговато.

Добавлено через 1 минуту
Вставляй свой код между тегами "[p ython]"
0
2 / 1 / 2
Регистрация: 25.06.2015
Сообщений: 130
06.01.2016, 21:56  [ТС]
Цитата Сообщение от akzo Посмотреть сообщение
Без отступов туговато.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import pygame
 
window = pygame.display.set_mode((400, 400))
pygame.display.set_caption("LAKETYCH Пришествие Кур")
screen = pygame.Surface((400, 400))
class Sprite:
    def __init__(self, xpos, ypos, filename):
        self.x=xpos
        self.y=ypos
        self.bitmap=pygame.image.load(filename)
        self.bitmap.set_colorkey((0,0,0))
    def render(self):
        screen.blit(self.bitmap,(self.x,self.y))
 
def Intersect (x1, x2, y1, y2):
    if (x1 > x2-40) and (x1 < x2+40) and (y1 > y2-40) and (y1 < y2+40):
        return 1
    else:
        return 0
 
#КОРАБЕЛЬ
hero = Sprite(175,350, "hero.png")
hero.up = True
 
#ПТИЦА
zet = Sprite(175,10, "target.jpg")
zet.up =False
 
 
done = True
while done:
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            done = False
 
    screen.fill((255, 255, 255))
    
#Описание движение корабля
    if hero.up == True:
        hero.y -= 1
        if hero.y == 0:
            hero.up = False
    else:
        zet.y += 1
        if zet.y == 350:
            zet.up = True
 
            
#Описание движения птицы
    if zet.up == True:
        zet.y -= 1
        if zet.y == 0:
            zet.up = False
    else:
        zet.y += 1
        if zet.y == 350:
            zet.up = True
 
    if Intersect(zet.x, hero.x, zet.y, hero.y) == True:
        hero.up = False
        zet.up = True
 
    hero.render()
    zet.render()
    window.blit(screen, (0, 0))
    pygame.display.flip()
    pygame.time.delay(6)
Добавлено через 1 минуту
И снова здарству люди на форуме)
0
 Аватар для akzo
71 / 67 / 6
Регистрация: 08.08.2013
Сообщений: 286
Записей в блоге: 8
06.01.2016, 22:07
Что именно происходит? Чет мне кажется надо в определенном месте if на while заменить, но я так пальцем в небо сейчас ткнул)), надо либо скриншоты добавить, либо подробно описать, что происходит и как работает твой алгоритм.
0
2 / 1 / 2
Регистрация: 25.06.2015
Сообщений: 130
06.01.2016, 22:22  [ТС]
Цитата Сообщение от akzo Посмотреть сообщение
Что именно происходит
Они должны были отталкиваться от стены(края заданной области)
Цитата Сообщение от Blizzardgo Посмотреть сообщение
def Intersect (x1, x2, y1, y2):
* * if (x1 > x2-40) and (x1 < x2+40) and (y1 > y2-40) and (y1 < y2+40):
* * * * return 1
* * else:
* * * * return 0
А после этой команды они должны были отталкиваться друг от друга, но что-то не получается)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2016, 22:22
Помогаю со студенческими работами здесь

Удалить все объекты и создать объекты - потомки
Как сделать клоны объекта в другом объекте? Использую метод Instantiate Есть метод public Transform Elem; //элемент на...

Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты?
Вопрос прост: как при выходе из функции сохранить объекты, которые были созданы в данной функции (указатели объектов положены в массив)?

Объекты, массивы объектов, указатели на объекты
file:///C:/Users/%D0%BA%D0%BE%D0%BC%D0%BF/Desktop/JJf8aZkkUhw.jpg

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты...

Переменные, объекты и ссылки на объекты
Начал изучение Python3 и в книге Прохоренок по PyQT5 говорится, что все переменные это на самом деле ссылки на объекты классов. В книге...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru