sprawdzenie czy gracz stoi w danym punkcie na mapie pygame

0

Jak zrobić że jak wejde na dany punkt x,y na mapie bp napisz się 1 na chacie (wiem jak napisać ale nie wiem jak sprawdzić czy jest na danym punkcie
:})

1

Współrzędne są liczone od lewego górnego rogu okna. Nie wiem czym wchodzisz, ale jeżeli gracz jest obiektem Rect, to możesz pobrać z niego takie atrybuty:

x,y
top, left, bottom, right
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery
size, width, height
w,h

Robisz drugi temat o pygame, więc dodam. Jak chcesz pomocy, to wrzuć swój kod.

0

@szafran98:
import pygame
import sys
import random

drewno = 0

pygame.init()

#tworzenie okna
okno = pygame.display.set_mode((1920, 1080))

#nazwa
pygame.display.set_caption("Survival RPG")

#grafiky
icon = pygame.image.load("assets/ikona.png")
gracz = pygame.image.load("sur/postac.png")
krzak = pygame.image.load("sur/kamień.png")
drzewo = pygame.image.load("sur/drzewa.png")
drzewo11 = pygame.image.load("sur/drzewo1.png")
tlo = pygame.image.load('sur/mapa sur.png')

#ikna gry
pygame.display.set_icon(icon)

graczX = random.randint(200,1600)
graczY = random.randint(200,900)
speadX = 0
speadY = 0

krzakX = 340
krzakY = 110

drzewoX = 540
drzewoY = 110

drzewo1X = 800
drzewo1Y = 110

x1 = random.randint(200,1700)
y1 = random.randint(200,860)
x2 = random.randint(200,1700)
y2 = random.randint(200,860)
x3 = random.randint(200,1700)
y3 = random.randint(200,860)
x4 = random.randint(200,1700)
y4 = random.randint(200,860)
x5 = random.randint(200,1700)
y5 = random.randint(200,860)
x6 = random.randint(200,1700)
y6 = random.randint(200,860)
y7 = random.randint(200,1700)
x7 = random.randint(200,860)
x8 = random.randint(200,1700)
y8 = random.randint(200,860)
x9 = random.randint(200,1700)
y9 = random.randint(100,860)
x10 = random.randint(200,1700)
y10 = random.randint(200,860)
x11 = random.randint(200,1700)
y11 = random.randint(200,860)
x12 = random.randint(200,1700)
y12 = random.randint(200,860)
x13 = random.randint(200,1700)
y13 = random.randint(200,860)
x14 = random.randint(200,1700)
y14 = random.randint(200,860)
x15 = random.randint(200,1700)
y15 = random.randint(200,860)
x16 = random.randint(200,1700)
y16 = random.randint(200,860)
x17 = random.randint(200,1700)
y17 = random.randint(200,860)
x18 = random.randint(200,1700)
y18 = random.randint(200,860)
x19 = random.randint(200,1700)
y19 = random.randint(200,860)
x20 = random.randint(200,1700)
y20 = random.randint(200,860)
x21 = random.randint(200,1700)
y21 = random.randint(200,860)
x22 = random.randint(200,1700)
y22 = random.randint(200,860)
x23 = random.randint(200,1700)
y23 = random.randint(200,860)
x24 = random.randint(200,1700)
y24 = random.randint(200,860)
x25 = random.randint(200,1700)
y25 = random.randint(200,860)

def gracz1(x, y):

okno.blit(gracz, (x, y))

xd1 = random.randint(100,1700)
yd1 = random.randint(100,860)
xd2 = random.randint(100,1700)
yd2 = random.randint(100,860)
xd3 = random.randint(100,1700)
yd3 = random.randint(100,860)
xd4 = random.randint(100,1700)
yd4 = random.randint(100,860)
xd5 = random.randint(100,1700)
yd5 = random.randint(100,860)
xd6 = random.randint(100,1700)
yd6 = random.randint(100,860)
yd7 = random.randint(100,1700)
xd7 = random.randint(100,860)
xd8 = random.randint(100,1700)
yd8 = random.randint(100,860)
xd9 = random.randint(100,1700)
yd9 = random.randint(100,860)
xd10 = random.randint(100,1700)
yd10 = random.randint(100,860)
xd11 = random.randint(100,1700)
yd11 = random.randint(100,860)
xd12 = random.randint(100,1700)
yd12 = random.randint(100,860)
xd13 = random.randint(100,1700)
yd13 = random.randint(100,860)
xd14 = random.randint(100,1700)
yd14 = random.randint(100,860)
xd15 = random.randint(100,1700)
yd15 = random.randint(100,860)
xd16 = random.randint(100,1700)
yd16 = random.randint(100,860)
xd17 = random.randint(100,1700)
yd17 = random.randint(100,860)

def krzak1(x, y):
okno.blit(krzak, (x1, y1))
okno.blit(krzak, (x2, y2))
okno.blit(krzak, (x3, y3))
okno.blit(krzak, (x4, y4))
okno.blit(krzak, (x5, y5))
okno.blit(krzak, (x6, y6))
okno.blit(krzak, (x7, y7))
okno.blit(krzak, (x8, y8))
okno.blit(krzak, (x9, y9))
okno.blit(krzak, (x10, y10))
okno.blit(krzak, (x11, y11))
okno.blit(krzak, (x12, y12))
okno.blit(krzak, (x13, y13))
okno.blit(krzak, (x14, y14))
okno.blit(krzak, (x15, y15))
okno.blit(krzak, (x16, y16))
okno.blit(krzak, (x17, y17))
okno.blit(krzak, (x18, y18))
okno.blit(krzak, (x19, y19))
okno.blit(krzak, (x20, y20))
okno.blit(krzak, (x21, y21))
okno.blit(krzak, (x22, y22))
okno.blit(krzak, (x23, y23))
okno.blit(krzak, (x24, y24))
okno.blit(krzak, (x24, y25))

nx1 = random.randint(200,1700)
ny1 = random.randint(200,860)
nx2 = random.randint(200,1700)
ny2 = random.randint(200,860)
nx3 = random.randint(200,1700)
ny3 = random.randint(200,860)
nx4 = random.randint(200,1700)
ny4 = random.randint(200,860)
nx5 = random.randint(200,1700)
ny5 = random.randint(200,860)
nx6 = random.randint(200,1700)
ny6 = random.randint(200,860)
ny7 = random.randint(200,1700)
nx7 = random.randint(200,860)
nx8 = random.randint(200,1700)
ny8 = random.randint(200,860)
nx9 = random.randint(200,1700)
ny9 = random.randint(100,860)
nx10 = random.randint(200,1700)
ny10 = random.randint(200,860)
nx11 = random.randint(200,1700)
ny11 = random.randint(200,860)
nx12 = random.randint(200,1700)
ny12 = random.randint(200,860)
nx13 = random.randint(200,1700)
ny13 = random.randint(200,860)
nx14 = random.randint(200,1700)
ny14 = random.randint(200,860)
nx15 = random.randint(200,1700)
ny15 = random.randint(200,860)
nx16 = random.randint(200,1700)
ny16 = random.randint(200,860)

def drzewo2(x, y):
okno.blit(drzewo11, (nx1, ny1))
okno.blit(drzewo11, (nx2, ny2))
okno.blit(drzewo11, (nx3, ny3))
okno.blit(drzewo11, (nx4, ny4))
okno.blit(drzewo11, (nx5, ny5))
okno.blit(drzewo11, (nx6, ny6))
okno.blit(drzewo11, (nx7, ny7))
okno.blit(drzewo11, (nx8, ny8))
okno.blit(drzewo11, (nx9, ny9))
okno.blit(drzewo11, (nx10, ny10))
okno.blit(drzewo11, (nx11, ny11))
okno.blit(drzewo11, (nx12, ny12))
okno.blit(drzewo11, (nx13, ny13))
okno.blit(drzewo11, (nx14, ny14))
okno.blit(drzewo11, (nx15, ny15))
okno.blit(drzewo11, (nx16, ny16))

def drzewo1(x, y):
okno.blit(drzewo, (xd1, yd1))
okno.blit(drzewo, (xd2, yd2))
okno.blit(drzewo, (xd3, yd3))
okno.blit(drzewo, (xd4, yd4))
okno.blit(drzewo, (xd5, yd5))
okno.blit(drzewo, (xd6, yd6))
okno.blit(drzewo, (xd7, yd7))
okno.blit(drzewo, (xd8, yd8))
okno.blit(drzewo, (xd9, yd9))
okno.blit(drzewo, (xd10, yd10))
okno.blit(drzewo, (xd11, yd11))
okno.blit(drzewo, (xd12, yd12))
okno.blit(drzewo, (xd13, yd13))
okno.blit(drzewo, (xd14, yd14))
okno.blit(drzewo, (xd15, yd15))
okno.blit(drzewo, (xd16, yd16))
okno.blit(drzewo, (xd17, yd17))

while True:

okno.blit(tlo, (0, 0))

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        sys.exit(0)
    if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
        sys.exit(0)

    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            speadX = -1
        if event.key == pygame.K_RIGHT:
            speadX = 1
        if event.key == pygame.K_UP:
            speadY = -1
        if event.key == pygame.K_DOWN:
            speadY = 1
    if event.type == pygame.KEYUP:
        if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
            speadX = 0
        if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
            speadY = 0

graczX +=  speadX
graczY +=  speadY

zycia = 0

if  graczX <= 100:
    zycia =+ 1
    graczX = 120
    print(zycia)
elif  graczX >= 1700:
    zycia =+ 1
    graczX = 1680
    print(zycia)
if  graczY <= 20:
    zycia =+ 1
    graczY = 40
    print(zycia)
elif  graczY > 910:
    zycia =+ 1
    graczY =+ 840
    print(zycia)

if zycia == 1:
    quit(okno)

gracz1(graczX, graczY)

krzak1(krzakX, krzakY)

drzewo1(drzewoX, drzewoY)

drzewo2(drzewo1X, drzewo1Y)

pygame.display.update()
0

@szafran98: Wysłałem ale nie wiem czy to widzisz bo coś bot że coś zle napisałem i nie wiem
czy został wysłany

0

@szafran98: jak chcesz moge dac pliki do gry grafiki/mapa bo nie odpalisz gry

0

@kamilwr2k17: ok i dzięki za pomoc

1

Tak to wygląda mniej więcej, a na obecną chwilę raczej mniej, bo twój gracz ma tylko dwie współrzędne, więc de facto przedstawia linie, a nie figurę płaską.
screenshot-20210405201322.png

W drugim temacie pisałeś o animacji, ale patrząc na kod, który wkleiłeś, to na twoim miejscu na obecną chwilę dałbym sobie spokój, bo tylko się zniechęcisz. Najpierw musisz ogarnąć solidnie podstawy.

Ja od siebie polecam tą playliste https://www.youtube.com/watch[...]BGfZo4-lp3jAExUCewBfMx3UZFkh5)

0

@szafran98: a jest jakaś możliwość bez zmiany kodu wykryć kolizje

0

Bez zmiany nie. Przecież musisz napisać jak mają być rozpoznawane kolizje. Wszystko rozchodzi się o współrzędne na ekranie. Musisz oglądnąć jakiś tutorial albo poduczyć się czystego Pythona bez Pygame, a potem z pomocą dokumentacji wszystko stanie się jasne.

3
kamilwr2k17 napisał(a):

@szafran98: a jest jakaś możliwość bez zmiany kodu wykryć kolizje

Zmiana kodu jest konieczna nie tylko do wykrywania kolizji. Powinieneś swoje obiekty, albo chociaż ich współrzędne wprowadzić do list oraz rysować i obsługiwać je z wykorzystaniem pętli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0