2013-05-22 2 views
1

좋아요. 파이 게임으로 2D 스크롤러 게임을 만들고 있지만 충돌을 언제 고려해야 하는지를 제어하고 싶습니다. 예를 들어, 내 플레이어가 충돌하여 죽은 후에 화면 중앙에서 곧바로 다시 소리를 들으면 문제를 일으키는 다른 충돌 개체가 가까이에있어 즉시 플레이어를 죽이는 것이 문제입니다. 내가 원하는 것은 플레이어가 충돌에 가려져서 안전 장치로 먼저 이동 한 다음 광고 정상을 계속 진행할 수있는 작은 시간대입니다. 나는 어쩌면 더미 스프라이트 그룹에 respawns를 놓고 시간이 지남에 따라 그것을 충돌을 가진 다른 그룹에 추가하고 추가하는 것을 생각하고 있었다. 나는 정말로 모른다.파이 게임 : 충돌을 무시하는 방법

답변

0

플레이어가 죽으면, 내가 상처받을 수있는 프레임 수를 변수로 설정합니다. 충돌 감지를 수행 할 때 플레이어가 무적의 프레임이 있는지 확인하고 프레임이 남아 있지 않을 때만 충돌을 처리 할 수 ​​있습니다.

def kill_player(player): 
    # handle moving the player after death, anything else you need to do 
    # set player invulnerability to 30 frames 
    player_invulnerable_frames = 30 

if environment_rect.collides(player_rect) and player_invulnerable_frames = 0: 
    # perform collision response stuff here 
게임 루프에서

, 또는 현재 하즈 제로보다 큰

while(running): 
    # your game loop stuff 
    if player_invulnerable_frames > 0: 
     player_invulnerable_frames -= 1 
+0

감사의 경우 어쩌면 업데이트 기능, 당신은 상처를 입힐 프레임의 수를 줄일 수 있습니다, 논리했다. 내 메인() 안의 모든 것을 그저 하나의 플레이어로 배치했고, 모든 충돌은 메인 안에 있습니다. 플레이어의 모든 인스턴스가 무적의 가치를 지니도록 노력 했으므로 플레이어가 내 주()의 spriteGroup 내에있는 동안 그 값이 무엇인지 알기 위해 호출 할 수 없었습니다. 어쨌든, 고맙습니다! – Aikman007

+0

우수! 솔루션이 효과가 있다면 대답을 승인 된 것으로 표시 할 수 있습니까? – Haz