묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)
똑같이 따라 쳤는데 오류가 생겨요
나도코딩님처럼 똑같이 쳤는데 NameError: name 'ball_to_remove' is not defined 이런 오류가 떠여 도와주세요 ㅠㅠ import os import pygame ######################################################### # 기본 초기화 (반드시 해야 하는 것들) pygame.init() # 초기화 (반드시 필요) # 화면 크기 설정 screen_width = 640 # 가로 크기 screen_height = 480 # 세로 크기 screen = pygame.display.set_mode((screen_width, screen_height)) # 화면 타이틀 설정 pygame.display.set_caption("서준이의 게임2") #게임 이름 # FPS clock = pygame.time.Clock() ######################################################### # 1. 사용자 게임 초기화 (배경 화면, 게임 이미지, 좌표, 속도, 폰트 등) current_path = os.path.dirname(__file__) # 현재 파일의 위치 반환 image_path = os.path.join(current_path, "images") # images 폴더 위치 반환 # 배경 만들기 background = pygame.image.load(os.path.join(image_path, "background.png")) # 스테이지 만들기 stage = pygame.image.load(os.path.join(image_path, "stage.png")) stage_size = stage.get_rect().size stage_height = stage_size[1] # 스테이지의 높이 위에 캐릭터를 두기 위해 사용 # 캐릭터 만들기 character = pygame.image.load(os.path.join(image_path, "character.png")) character_size = character.get_rect().size character_width = character_size[0] character_height = character_size[1] character_x_pos =(screen_width /2) - (character_width /2) character_y_pos = screen_height - character_height - stage_height # 캐릭터 이동 방향 character_to_x = 0 # 캐릭터 이동 속도 character_speed = 5 # 무기 만들기 weapon = pygame.image.load(os.path.join(image_path, "weapon.png")) weapon_size = weapon.get_rect().size weapon_width = weapon_size[0] # 무기는 한 번에 여러 발 발사 가능 weapons = [] # 무기 이동 속도 weapon_speed = 10 # 공 만들기 (4개 크기에 대해 따로 처리) ball_images = [ pygame.image.load(os.path.join(image_path, "balloon1.png")), pygame.image.load(os.path.join(image_path, "balloon2.png")), pygame.image.load(os.path.join(image_path, "balloon3.png")), pygame.image.load(os.path.join(image_path, "balloon4.png"))] # 공 크기에 따른 최초 스피드 ball_speed_y = [-18, -15, -12, -9] # index 0, 1, 2, 3 에 해당하는 값 # 공들 balls= [] # 최초 발생하는 큰 공 추가 balls.append({ "pos_x" : 50, # 공의 x 좌표 "pos_y" : 50, # 공의 y 좌표 "img_idx" : 0, # 공의 이미지 인덱스 "to_x": 3, # x축 이동방향, -3 이면 왼쪽으로, 3 이면 오른쪽으로 "to_y": -6, # y축 이동방향, "init_spd_y": ball_speed_y[0]})# y 최초 속도 # 사라질 무기, 공 정보 저장 변수 weapon_to_remove = -1 ball_to_remvoe = -1 running = True while running: dt = clock.tick(60) # 2. 이벤트 처리 (키보드, 마우스 등) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: # 캐릭터를 왼쪽으로 character_to_x -= character_speed elif event.key == pygame.K_RIGHT: # 캐릭터를 오른쪽으로 character_to_x += character_speed elif event.key == pygame.K_SPACE: # 무기 발사 weapon_x_pos = character_x_pos + (character_width / 2) - (weapon_width / 2) weapon_y_pos = character_y_pos weapons.append([weapon_x_pos, weapon_y_pos]) if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: character_to_x = 0 # 3. 게임 캐릭터 위치 정의 character_x_pos += character_to_x if character_x_pos < 0: character_x_pos = 0 elif character_x_pos > screen_width - character_width: character_x_pos = screen_width - character_width # 무기 위치 조정 # 100, 200 -> 180, 160, 140, ... # 500, 200 -> 180, 160, 140, ... weapons = [ [w[0], w[1] - weapon_speed] for w in weapons] # 무기 위치를 위로 # 천장에 닿은 무기 없애기 weapons = [ [w[0], w[1]] for w in weapons if w[1] > 0] # 공 위치 정의 for ball_idx, ball_val in enumerate(balls): ball_pos_x = ball_val["pos_x"] ball_pos_y = ball_val["pos_y"] ball_img_idx = ball_val["img_idx"] ball_size = ball_images[ball_img_idx].get_rect().size ball_width = ball_size[0] ball_height = ball_size[1] # 가로벽에 닿았을 때 공 이동 위치 변경 (튕겨 나오는 효과) if ball_pos_x < 0 or ball_pos_x > screen_width - ball_width: ball_val["to_x"] = ball_val["to_x"] * -1 # 세로 위치 # 스테이지에 튕겨서 올라가는 처리 if ball_pos_y >= screen_height - stage_height - ball_height: ball_val["to_y"] = ball_val["init_spd_y"] else: # 그 외의 모든 경우에는 속도를 증가 ball_val["to_y"] += 0.5 ball_val["pos_x"] += ball_val["to_x"] ball_val["pos_y"] += ball_val["to_y"] # 4. 충돌 처리 # 캐릭터 rect 정보 업데이트 character_rect = character.get_rect() character_rect.left = character_x_pos character_rect.top = character_y_pos for ball_idx, ball_val in enumerate(balls): ball_pos_x = ball_val["pos_x"] ball_pos_y = ball_val["pos_y"] ball_img_idx = ball_val["img_idx"] # 공 rect 정보 업데이트 ball_rect = ball_images[ball_img_idx].get_rect() ball_rect.left = ball_pos_x ball_rect.top = ball_pos_y # 공과 캐릭터 충돌 처리 if character_rect.colliderect(ball_rect): running = False break # 공과 무기들 충돌 처리 for weapon_idx, weapon_val in enumerate(weapons): weapon_pos_x = weapon_val[0] weapon_pos_y = weapon_val[1] # 무기 rect 정보 업데이트 weapon_rect = weapon.get_rect() weapon_rect.left = weapon_pos_x weapon_rect.top = weapon_pos_y # 충돌 체크 if weapon_rect.colliderect(ball_rect): weapon_to_remove = weapon_idx # 해당 무기 없애기 위한 값 설정 ball_to_remove = ball_idx # 해당 공 없애기 위한 값 설정 break # 충돌된 공 or 무기 없애기 if ball_to_remove > -1: del balls[ball_to_remove] ball_to_remove = -1 if weapon_to_remove > -1: del weapons[weapon_to_remove] weapon_to_remove = -1 # 5. 화면에 그리기 screen.blit(background, (0, 0)) for weapon_x_pos, weapon_y_pos in weapons: screen.blit(weapon, (weapon_x_pos, weapon_y_pos)) for idx,val in enumerate(balls): ball_pos_x = val["pos_x"] ball_pos_y = val["pos_y"] ball_img_idx = val["img_idx"] screen.blit(ball_images[ball_img_idx], (ball_pos_x, ball_pos_y)) screen.blit(stage, (0, screen_height - stage_height)) screen.blit(character, (character_x_pos, character_y_pos)) pygame.display.update() pygame.quit()
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
mappeby 질문있습니다.
mappeby = "team" 에서 규칙이 외래키를 가지고 있는 연관관계 주인에서 (member)에서 외래키를 가지고 있는 필드명 을(team)을 mappeby 뒤에 적어주면 되는것인가요???
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
delete, patch에 대해서
안녕하세요 영한님 좋은 강의 해주셔서 감사합니다! 만약, 사이트 내에 member가 탈퇴했을 때 실제 db에서 member를 지우지는 말고 member 테이블의 delete_type 칼럼을 1로 바꿔주세요 라는 요구사항이 들어왔다면 이 경우에는 요청 api를 URI : members/{id} METHOD : DELETE 로 하는게 맞을까요? 아니면 URI : members/{id} METHOD : PATCH 로 해야 하는게 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 에러
안녕하세요. 빌드시 에러가 나는데 내용은 다음과 같습니다. testcase를 작성한게 없는데 test에서 에러가 난다니.. 우선은 test를 제외하고 build하니 빌드가 되긴 했는데 왜 그런지 이유를 모르겠습니다.. > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///D:/★spring%20공부/study/hello-spring-again/hello-spring-again/build/reports/tests/test/index.html
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
TypeORM내용도 해당 강좌에 포함되었으면 합니다!
기존 자바,스프링 개발 하다가 해당 강의 약 절반정도 진행 하였는데 TypeORM에 대한 내용은 빠진 것 같아서, 해당 내용도 강좌에 포함되었으면 합니다~! 실무에서는 주로 Nest.JS를 어떤 조합으로 사용하는지도 궁금합니다. :]
-
미해결R로 하는 네트워크 분석
Gephi 가중치 관련 질문
가중치를 한줄씩 추가해서 만드는 방식이라면 가중치는 항상 정수만 가능한가요? 가중치를 실수형태로 부여해야하는 상황입니다. 그것이 불가능하다면 gephi 말고 사용가능한 다른 툴이 있나요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Dockerfile 작성 시 캐싱에 관련해서 질문있습니다.
강의 잘 듣고 있습니다! 이번 강의 3:30 쯤에서 말씀하신 내용인데, 이전에도 다뤘지만 캐싱되는 방식이 애매하여 질문드립니다. 1. `COPY package.json ./` 과정이 생략된 경우 - 빌드 할 때마다 의존성 설치가 이뤄지는 것은 이해가 갑니다. 2. `COPY package.json ./` 과정이 추가된 후 `npm install` 을 실행한 후, `COPY ./ ./` 를 실행하는 경우 - 제 생각에는 npm install을 실행하는 시점에서 컨테이너의 working directory 에는 package.json 하나만 있는데 파일에 변경이 없으니 캐싱된 데이터(node_modules, package-lock.json)를 가져와서 복사해서 넣어준다. - 여기까지 수행하면 의존성이 설치된 상태이니, 나머지 모든 파일들을 복사해서 넣어준다. 다만 여기에는 package.json 이 겹치는 파일이나, 내용에 차이가 없기 때문에 문제가 발생하지 않는다. 위 작성한 내용 중 제가 잘못 이해한 부분이 있다면 지적해주시면 감사하겠습니다. 항상 감사합니다 :-) + 추가로 든 의문인데, 캐싱된 데이터는 이전에 생성했던 컨테이너에서 가져오는 걸까요?
-
미해결
스프링부트 배포
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 김영한선생님 코스에 따라 열심히 공부하고있는 학생입니다. 수업내용은 너무 재밌고 유익한데 배포에 대해서는 아직까지 들은게 없더라고요 ㅠ 친구들한테도 보여주고 싶어서 배포 하고 제가 따라 만들어높은 프런트엔드하고 같이 쓰고 싶은데 그거에 대한 자료들이 있을까요?? 인터넷에 찾아 봤더니 로컬 호스트로 밖에 안하시더라거요. 서버 배포하는데 결제가 들어가도 괜찮습니다.
-
미해결웹 게임을 만들며 배우는 React
constructor를 지우니까 에러가 뜨네요
삭제된 글입니다
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
workbench 연동이 안 됩니다.
hostname username password 다 작성 했는데 cannot connect to database server 알림창이 뜹니다. 혹시 강의에서 mysql workbench 위주로 설명 하나요?
-
미해결
제 질문만 답변이 없어서 다시 올립니다._ C언어 강의 1. 13 비주얼 스튜디오 코드 기본 사용 중, 컴파일, gcc, main.c 에 관한 질문입니다.
선생님! 세밀하고 친절한 강의에 진심으로 감사드립니다. 저는 왕 초보입니다. C언어 강의 1. 13 비주얼 스튜디오 코드 기본적 사용 방법에 대한 강의를 따라 가던 중 컴파일 gcc main.c 를 입력하면 저는 강의 내용과는 다르게 아래와 같이 나옵니다. 여러번 다시 따라 해봤으나 동일하게 나옵니다. 무엇이 문제인지 도움 부탁드립니다. PS C:\Users\kredi\Documents\my_c_files> gcc main.c C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16' collect2.exe: error: ld returned 1 exit status PS C:\Users\kredi\Documents\my_c_files>
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 V5 방식을 현재 강사님 SPRING DATA JPA를 듣고 변환해보려고 하는데요~
강사님 jpa활용2 수강을 마치고 강사님의 데이터 JPA 페이징 부분들 듣고있는데요~ 현재 JPA활용2편 에 페이징 V5 부분 (DTO 직접조회) 를 SPRING DATA JPA로 페이징 해보려합니다 결과 이렇게 V5의 MAP을 이용한 성능최적화를 Spring data jpa 방식으로 바꿔보았습니다. 이렇게해서 결과는 잘나옵니다만 이렇게하는것이 옳은 것 인지 확신이안가 질문남깁니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Error??
- 이렇게 빨간줄이 생겨서 ctrl+클릭을하면 controller로 갈 수가 없네요구글링하면 해결방법이 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://thymeleaf.org" lang="">하면 빨간줄만 없어지고 해결은 안되네요 방법이 없을까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Model과 @ModelAttribute에 대해 헷갈립니다
안녕하세요! 너무 좋은 강의를 수강중입니다 ㅎㅎ 다름이 아니라, MVC1까지만 수강한 상태에서 혼동이 생겨 질문합니다. @RequestMapping("/response-view-v2") public String responseViewV2(Model model){ model.addAttribute("data","hello!"); return "response/hello"; } Http 응답에서, view를 리턴하는 과정에서 질문이 생겼습니다. 이전의 controller method들의 경우, argument부분에 premitive type이 오면 @RequestParam이 생략된 것으로 인식되고, 객체가 있는 경우 @ModelAttribute가 생략된것으로 인식된다고 하셨습니다. 그래서 MessageBody를 직접 가져오는 경우에서도, @ResponseBody를 생략하는 경우 @ModelAttribute가 생략된것으로 인식이 될 수 있으니 조심해야한다는 말이 있었습니다. 1. 그런데 위의 코드의 경우, Model model이 들어오는데, 그럼 이것은 @ModelAttribute가 생략된 것으로 보는 것인가요?? 2. 그런데 @ModelAttribute가 Method argument로 오는 경우에는, model로부터 argument를 받아와야 한다는 것을 명시하는 것으로 알고 있습니다.여기서 말하는 model이 위의 코드의 Argument로 오는org.springframework.ui.Model과 같은 것인가요? 3. 제가 찾아본 내용에의하면, @ModelAttribute가 method argument에 있는 경우, argument는 model로부터 얻어와야 하기 때문에, 만약 그것이 model에 존재하지 않았다면 먼저 인스턴스화하여 model에 추가하고, model에 존재한 때 부터는, argument의 필드를 매칭 네임에 따라 요청 parameters로부터 받아와야 한다고 했습니다. 그런데 이 경우, 만약 Model model부분이 @ModelAttribute가 생략된 것으로 본다면, 어떻게 생각해야 할 지를 모르겠습니다. method argument에 Model이 온 경우에는 특별하게 @ModelAttribute가 생략된 것으로 보지 않아도 되는 걸까요? 단순히, 렌더링할 때 Model에서 데이터를 가져와햐 하기 때문에, @ModelAttribute를 사용하는게 아닌 org.springframework.ui.Model 자체를 가져와서 , 뷰 렌더링에 필요한 데이터를 model에 세팅해 놓기 위함이라고 생각한다면 @ModelAttribute가 생략된 것으로 보지 않는게 나을 것만 같은데, 왜 그런것이 가능하게 해 두는 것인지도 잘 모르겠습니다.
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
강의 내용 따라오시다가 css-loader 에서 빌드시에 에러 뜨시는분들
에러 문구를 자세히 보시게 되면 웹팩 버전 5점대 미만에서는 작동을 하지 않는다고 하니 package.json 파일의 webpack 버전을 5점대로 바꿔준뒤에 npm install 로 설치해준뒤 다시 빌드해보시길 바랍니다 강사님은 4점대로 진행하라하셨는데 우선 에러를 해결하고 내용을 진행하고 싶으신 분들을 이렇게 진행하세용
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
주문조회 V3.1을 현재듣고있는 스프링데이터 JPA 식으로 바꿔보고싶습니다
삭제된 글입니다
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
배치사이즈 채널 너비 높이
파이토치는 채널수 * 너비 * 높이라고 말씀해주셨는데,,, ToTensor로 변환했을때만 채널수 * 너비 * 높이 로 표현하는 거고 그전까지는 일반적인 방법 (너비 높이 채널)로 표현하는건가요?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
질문 부탁드려요
안녕하세요 npm start 하면 Access denied for user 'root'@'localhost' (using password: YES) 이 오류가 떠서 검색해봤더니 로그인 오류 같아서 Database의 mysql로 들어가 update user set password=password('비밀번호') where user ='root'; 입력했더니 View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them 이 오류가 떠서 set password for 'root'@'localhost' = password('비밀번호'); flush privileges; 입력했더니 결과는 처음 오류랑 같습니다 도움 부탁드립니다 감사합니다
-
미해결스프링 핵심 원리 - 기본편
Test 관련 부분 질문 드립니다.
항상 좋은 강의 잘 보고있습니다! 다름이 아니구 Test에서 AppConfig를 선언 할 때 다른 클래스들은 바로 선언하고 객체를 생성했지만 Test는 BeforeEach로 선언하고 객체를 생성하는 이유에 대해서 질문드립니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
빈 이름 설정 관련 질문
안녕하세요 김영한님 항상 좋은 강의 강의 너무 잘 듣고 있습니다! 스프링 빈이 등록될 때 빈 이름은 기본적으로 클래스 명을 따라가되 맨 앞글자만 소문자로 바뀌는거 아닌가요? @Component("helloBean") static class HelloBean { public String hello(String data) { return "Hello " + data; } } 해당 내용을 다음과 같이 수정해서 @Component static class HelloBean { public String hello(String data) { return "Hello " + data; } } 타임리프에 @helloBean 으로 적용하면 NoSuchBeanDefinitionException이 발생하네요 ㅠㅠ...