inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

saga가 작동을 잘 하지 않는 경우?

미해결

[리뉴얼] React로 NodeBird SNS 만들기

이상하게 saga가 잘 작동하지 않는 경우가 있습니다 디버깅해보려고 해도 콘솔조차 찍히지 않습니다 Request 액션을 보내도 saga에서 감지조차 못하는 경우가 있어요 분명 코드는 똑같이 짰는데 말이죠 ㅠㅠ logout을 감지하지 못합니다 감지하지 못하는 건지 일부러 안 넘어가는건지.. 액션 콘솔을 찍어봤을 땐 REQUEST는 가는데 이후에 NEXT REDUX WRAPPER인가 이게 나오면서 다음으로 넘어가지 않습니다. 무엇이 잘못됐을까요?ㅠㅠ

  • react
  • express
  • redux
  • nodejs
  • Next.js
우아한 올빼미 댓글 6 좋아요 0 조회수 366

구글 로그인 누르고 아이디 선택까지 헸는데...

미해결

하울의 안드로이드 인스타그램 클론 만들기

구글 로그인 누르고 아이디 선택까지 헸는데 그 이후에 메인화면으로 넘어가지않고 로그인창이 그대로 뜨네요 뭐가 문제일까요...

  • android
  • kotlin
  • 클론코딩
김창엽 댓글 2 좋아요 2 조회수 239

PHP MySQLi 트랜잭션 처리에 대한 질문입니다.

해결됨

PHP 7+ 프로그래밍

안녕하세요. PHP 7 버전 문법 학습도 이제 거의 끝을 달리고 있습니다. 현재 JAVA 관련 또는 PHP 5 버전을 사용한 레거시 프로젝트의 유지보수 업무를 담당하고 있었기에 PHP 7 강의를 통해 최신 문법을 학습하고 기존 프로젝트를 리팩토링 할 수 있게 된 점에 대해 매우 보람찬 하루를 보내고 있습니다. 하지만 몇가지 궁금한 사항이 생겨 질문드립니다. 해당 강의 트랜잭션 처리 내용에서 두 가지 함수, mysqli_autocommit($connection, false); // Auto commit 설정 해제 mysqli_commit($connection); // 수동으로 commit 를 배울 수 있었는데요. 예를 들어, 쇼핑몰 웹 사이트에 약 50명 정도의 클라이언트가 접속해 있고, 한명의 클라이언트가 상품을 주문할 때 주문정보 입력에 대하여모든 로직이 처리되기 전까지 Auto commit 설정을 비활성화 하고, 문제없이 모든 작업이 수행됬을 때 마지막에 수동으로 commit을 해주는 방식으로 트랜잭션 처리를 진행한다면, 여기서 동시성 문제 가 있을 것 같다는 생각이 들었습니다. mysqli_autocommit() 함수가 웹 사이트에 연결되어 있는 DB 전반적인 Auto commit 설정을 비활성화 한다면 (실제 DB 전체 Auto commit 설정을 변경하는 것인지, 아니면 기능 단위로 동작하는 것인지도 궁금합니다.) A 클라이언트는 주문정보를 입력(별도의 Table에 주문 정보 저장 -> 주문 이력 저장 두 개의 작업이 수행)하고, B 클라이언트는 게시글을 작성할 때 B 클라이언트의 작업이 먼저 끝나게 되어 A 클라이언트의 작업이 의도한 것처럼 동작하지 않는 상황이 올수도 있을까요? 만약, 그렇다면 어떻게 처리를 할 수 있는지 궁금합니다. (예시 1) A 클라이언트는 주문 정보 입력과 주문 이력이 모두 수행 된 후 commit이 되어야 하는데, B 클라이언트 작업이 종료되는 시점에서 mysqli_commit()이 실행되어 A 클라이언트의 주문 정보 입력이 중간에 commit 되어 버리는 상황 (예시 1) A 클라이언트는 주문 정보 입력과 주문 이력이 모두 수행 된 후 commit이 되어야 하는데, B 클라이언트 작업이 종료되는 시점에서 에러가 발생하여 rollback이 실행되어 A 클라이언트의 주문 정보 도 rollback이 되는 상황... 또한, SQL Query를 다루는 PHP 구문이 한 소스파일에 있는 것이 아니라 여러 함수의 결합으로 동작을 할 때 트랜잭션 처리하는 방법도 궁금합니다. 긴 글 읽어주셔서 감사합니다.

  • php
Henu 댓글 2 좋아요 1 조회수 552

질문있습니다!

해결됨

데브옵스(DevOps)를 위한 쿠버네티스 마스터

강의 91프로 정도 듣고 이해가 안가서 다시 정주행중입니다. 다름이 아니라 여태 수업에서 Yaml파일이나 명령어 위주로 많이 쓰고 golang을 쓴 적 잘 못봣는데(http-go 내부 코드 제외하고) 배울 가치가 있을까요? 혹시 쓴다면 어디에 많이 쓰이나요? 궁금해서 질문 드립니다.

  • kubernetes
  • docker
HaniBrown 댓글 2 좋아요 0 조회수 308

helloController vs memberController

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

먼저, 다른 질문에 답변 주셔서 감사드립니다. 이번에 말씀드릴 것은, 강의 자료 PDF 28쪽 상단의 그림에서, 맨 왼쪽 항목이 "helloController"라 적혀 있는데, 혹시 이것이 "memberContoller"여야 맞지 않습니까? 제가 아직 수강하지 않은, [컴포넌트 스캔과 자동 의존관계 설정] 이후 강의들에 어떤 연결내용이 나올지 모르겠지만 그게 아니라면 예제 코드에서 helloController와 memberService의 연결은 보이지 않아서 말입니다. 감사합니다.

  • spring-boot
  • spring
  • MVC
  • java
최성규 댓글 2 좋아요 2 조회수 256

질문이 있습니다.

미해결

홍정모의 따라하며 배우는 C언어

안녕하세요 해당본문 함수 매개변수에 대한 질문이 있습니다 void print_binary(char* data, int bytes); 에서 char* data는 main의 struct items_flag의 주소를 받아주고 print_binary 함수에서 for(int i=0; i<bytes; ++i) char_to_binary(data[bytes -1 -i]); 에서 bytes가 1 임으로 data[0]이 됩니다 함수 호출시 void char_to_binary(unsigned char uc) 에서 unsigned char* uc 또는 unsigned char uc[] 가 되면 에러가 나는 이유가 뭔지 알고싶습니다 data[bytes -1 -i] 는 결국 배열을 매개변수로 지정한거 아닌가요?

  • c
이동욱 댓글 1 좋아요 0 조회수 283

@ModelAttribute

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요! // @PostMapping(value = "/items/edit") @PostMapping ( value = " /items/{itemId}/edit " ) public String updateItem ( @ModelAttribute ( "form" ) BookForm form ) { Book book = new Book (); book. setId ( form . getId ()); book. setName ( form . getName ()); 1. @ModelAttribute를 안붙여도 되는데 강사님은 왜 붙이신건지 알고 싶습니다!! 2. url에 itemId가 form으로 넘어오는 상황인데 이때 url에서 itemId를 빼는 것이 더 올바른 건가요? 아니면 강사님 처럼 사용은 하지 않아도 관례상 넣어줘야 하나요?

  • spring
  • JPA
  • 웹앱
  • spring-boot
  • java
lbd4946@gmail.com 댓글 3 좋아요 0 조회수 512

reducers의 COMMET_REMOVE_SUCCESS

해결됨

[리뉴얼] React로 NodeBird SNS 만들기

제가 집에서 강의외의 COMMET_REMOVE_SUCCESS부분을 작성하다가 문제가 생겨서 질문 남깁니다. 우선 back 부분을 잘 작동합니다. DB에서 데이터를 지우고 그걸 화면에 반영하는 SUCCESS부분을 작성하는데 문제가 있습니다. mainPosts 안의 특정 포스트를 찾아 그 안의 특정 댓글을 제거해야 해서 저는 COMMET_REMOVE_SUCCESS reducers 부분을 이렇게 작성했습니다. draft . mainPosts = [... state . mainPosts ]; const post = draft . mainPosts . find (( v ) => v . id === action . postId ); post . Comments = post . Comments . filter ( ( v ) => v . id !== action . data . CommentId ); UNLIKE_POST_SUCCESS 를 아래 처럼 작성하셔서 비슷한 방법으로 작성을 하였습니다. const post = draft . mainPosts . find (( v ) => v . id === action . data . PostId ); post . Likers = post . Likers . filter (( v ) => v . id !== action . data . UserId ); 하지만 Cannot assign to read only property 'Comments' of object '#<Object>' 이라는 오류를 받았습니다. 제가 생각하기에는 같은 방법으로 코드를 작성한거 같아 Likers는 이 오류가 뜨지 않는 이유가 궁금합니다. 여러 방식으로 이 이벤트를 완성하려고 해봤는데... 하루 종일 완성이 안되어서 질문 남깁니다.

  • react
  • nodejs
  • redux
  • express
  • Next.js
ambacc244 댓글 5 좋아요 0 조회수 411

안녕하세요 초보적인 질문일것 같은데..

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

rest 방식으로 회원 등록 api를 만들었는데 , 그럼 예를 들어 1편에서 했던 MemberController에서 회원 등록을 하는것은 필요 없는 과정인가요? 앞으로 rest api 방식으로 해서 html이랑 연결시키면 되는건가요?

  • spring
  • java
  • JPA
  • spring-boot
pak7380 댓글 2 좋아요 1 조회수 342

data가 바뀌는데 html 태그도 어떻게 바뀌는지 궁금합니다

해결됨

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

splice 메서드로 배열 데이터를 삭제를 하는데 이걸 감지해서 어떻게 html 태그도 바뀌는지 궁금합니다. 전체적인 vue의 특성(?)을 아직 제가 이해를 못한것같아요

  • es6
  • vuex
  • javascript
  • vuejs
도리강 댓글 1 좋아요 1 조회수 165

H2 데이터 베이스 관련 질문 드립니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

현업에서는 Spring과 h2 데이터 베이스 조합을 가장 많이 사용하나요?? h2 데이터 베이스 외에 다른 데이터 베이스를 사용해도 강의를 따라가기에 별 문제가 없나요..? 내용 관련된 질문이 아니라서 죄송합니다ㅠㅠ

  • MVC
  • java
  • spring-boot
  • spring
남남 댓글 1 좋아요 0 조회수 830

import 문의 - 폴더위치 및 파일명, 함수명

미해결

남박사의 파이썬으로 실전 웹사이트 만들기

안녕하세요 강사님. 현재 파일구조는 위와 같습니다. 각 파일별 import 규칙이 다른데, 관련하여 문의 드립니다. run.py - from main import app / 하위폴더인 main 폴더를 찾고, init의 변수명. init.py - from .common import login_required / 현재폴더의 common 파일을 찾고 거기서 함수명. from .filter import format_datetime / 현재폴더의 filter 파일을 찾고 거기서 함수명. from . import board / 여기서는 현재폴더의 파일명. from . import member / 여기서는 현재폴더의 파일명. board.py - from main import * / 현재폴더명의 모든것. 질문은 아래와 같습니다. 1. init.py - from .common import login_required ==> from . import common 으로 표기해도 되나요? 2. init.py - from . import board ==> from .board import * 으로 표기해도 되나요? 3. board.py - from main import * ==> from . import __init__ 으로 표기해도 되나요? 4. run.py - from main import app ==> from .main import app 으로 표기해도 되나요? 어떤 경우는 현재폴더의 파일명/함수명, 현재폴더/파일명, 현재폴더명/*, 하위폴더명/하위폴더의__init__의 변수명, 등등, from/import의 규칙 및 구조가 궁금해서 문의드립니다. 감사합니다.

  • python
MIKE.aeon 댓글 1 좋아요 1 조회수 299

Maven 라이브러리 질문

해결됨

실전! Querydsl

안녕하세요! 강사님께서 출판하신 JPA책과 같이 보면서 복습하고 있습니다. Jpa 책 73페이지에 보면 hibernate-entitymanager 핵심 라이브러리를 pom.xml에 등록해서 사용하셨는데 현 강의에서는 spring-data-jpa -> hibernate-core만 있고 엔티티매니저는 없는데 버전이 올라가면서 core만 있으면 되는건지 Maven Repository에서도 못찾아 질문 올립니다. 감사합니다.

  • JPA
  • java
터틀맨 댓글 2 좋아요 0 조회수 365

코딩시간 질문

미해결

자바스크립트 비기너: 튼튼한 기본 만들기

혹시 foreach문으로는 어떻게 적용될 수 있나요? 도무지 for문 말고는 답이 나오질 않아서요ㅠㅠ // 배열 값을 담을 변수를 생성 var arr = [] // for문을 이용하여 빈 check 함수에 1~1,000,000 배열을 생성 var check = function (){ for ( var i = 1 ; i <= 1000000 ; i ++){ arr . push ( i ); //arr에 i의 값을 배열로 넣기 } } // check함수가 실행되는 시간 반환 var start = Date . now (); check (); var end = Date . now (); console . log ( "총 실행시간은 " + ( end - start ) + "입니다." ); }

  • javascript
  • oop
이고은 댓글 1 좋아요 0 조회수 179

어느 부분이 오류인지 잘 모르겠습니다.

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

안녕하세요. 강의 감사합니다. 실습 중 동일하게 코딩을 했는데 오류가나서 질문드립니다. 아래는 제가 작성한 코드입니다. gun = 10 def checkpoint ( soldiers ): global gun gun = gun - soldiers print ( "[함수 내] 남은 총 : {0} " .format(gun)) def checkpoint_ret ( gun , soldiers ): gun = gun - soldiers print ( "[함수 내] 남은 총 : {0} " .format(gun)) return gun print ( "전체 총 : {0} " .format(gun)) gun = checkpoint_ret(gun, 2 ) print ( "남은 총 : {0} " .format(gun)) 오류가 어느 부분에서 났는지 질문드립니다.

  • python
안녕구름아 댓글 2 좋아요 0 조회수 276

실행 시 html 구문만 나와요.

미해결

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌

안녕하세요. 맛보기 servlet를 실행했는데 브라우저에 아래 처럼 나옵니다. 무엇이 잘못된 걸까요?? Served at: /testWebPjt1<html><head></head><body><p>Hello Servlet!!</p></body></html>

  • java
  • jsp
형욱박 댓글 2 좋아요 4 조회수 448

게임 화면이 늦게 열려요

미해결

파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)

한번 봐주시면 감사하겠습니다 # 1. 모든 공을 없애면 게임 종료 (성공) # 2. 캐릭터는 공에 닿으면 게임 종료 (실패) # 3. 시간 제한 99초 초과 시 게임 종료 (실패) 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("Game Name") # 게임 이름 # 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, "balloon.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_remove = -1 # Font 정의 game_font = pygame.font.Font(None, 40) total_time = 100 start_ticks = pygame.time.get_ticks() # 시작 시간 정의 # 게임 종료 메시지 # TimeOut(시간 초과, 실패) # Mission Complete(성공) # Game Over (캐릭터가 공에 맞음, 실패) game_result = "Game Over" running = True while running: dt = clock.tick(30) # 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 # 해당 공 없애기 위한 값 설정 # 가장 작은 크기의 공이 아니라면 다음 단계의 공으로 나눠주기 if ball_img_idx < 3: # 현재 공 크기 정보를 가지고 옴 ball_width = ball_rect.size[0] ball_height = ball_rect.size[1] # 나눠진 공 정보 small_ball_rect = ball_images[ball_img_idx + 1].get_rect() small_ball_width = small_ball_rect.size[0] small_ball_height = small_ball_rect.size[1] # 왼쪽으로 튕겨나가는 작은 공 balls.append({ "pos_x" : ball_pos_x + (ball_width / 2) - (small_ball_width / 2), # 공의 x 좌표 "pos_y" : ball_pos_y + (ball_height / 2) - (small_ball_height / 2), # 공의 y 좌표 "img_idx" : ball_img_idx + 1, # 공의 이미지 인덱스 "to_x" : -3, # x축 이동방향, -3이면 왼쪽으로, 3이면 오른쪽으로 "to_y" : -6, # y출 이동방향, "init_spd_y" : ball_speed_y[ball_img_idx + 1]}) # y 최초 속도 # 오른쪽으로 튕겨나가는 작은 공 balls.append({ "pos_x" : ball_pos_x + (ball_width / 2) - (small_ball_width / 2), # 공의 x 좌표 "pos_y" : ball_pos_y + (ball_height / 2) - (small_ball_height / 2), # 공의 y 좌표 "img_idx" : ball_img_idx + 1, # 공의 이미지 인덱스 "to_x" : 3, # x축 이동방향, -3이면 왼쪽으로, 3이면 오른쪽으로 "to_y" : -6, # y출 이동방향, "init_spd_y" : ball_speed_y[ball_img_idx + 1]}) # y 최초 속도 break else: # 계속 게임을 진행 continue # 안쪽 for 문 조건이 맞지 않으면 continue. 바깥 for 문 계속 수행 break # 안쪽 for 문에서 break를 만나면 여기로 진입 가능. 2중 for 문을 한번에 탈출 #for 바깥조건: # 바깥동작 # for 안쪽조건: # 안쪽동장 # if 충돌하면: # break # else: # continue # 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 # 모든 공을 없앤 경우 게임 종료 (성공) if len(balls) == 0: game_result = "Mission Complete" running = False # 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)) # 경과 시간 계산 elapsed_time = (pygame.time.get_ticks() - start_ticks) / 1000 # ms -> s timer = game_font.render("Time : {}".format(int(total_time - elapsed_time)), True, (255, 255, 255)) screen.blit(timer, (10, 10)) # 시간 초과했다면 if total_time - elapsed_time <= 0: game_result = "Time Over" running = False pygame.display.update() # 게임화면을 다시 그리기! # 게임 오버 메시지 msg = game_font.render(game_result, True, (255, 255, 0)) # 노란색 msg_rect = msg.get_rect(center=(int(screen_width / 2), int(screen_height / 2))) screen.blit(msg, msg_rect) pygame.display.update() # 2초 대기 pygame.time.delay(2000) pygame.quit()

  • pygame
  • GUI
  • python
0109ju 댓글 1 좋아요 0 조회수 283

익스플로러에서는 안돌아가나요?

미해결

애플 웹사이트 인터랙션 클론!

익스플로러에서는 안돌아가나요? 만약안돌아간다면 어느부분에서 문제가 되는 것 일까요?ㅠㅠ

  • 웹 디자인
  • javascript
  • 인터랙티브-웹
  • svg
  • HTML/CSS
  • 클론코딩
박찬호 댓글 1 좋아요 0 조회수 208

강의 순서 질문 드립니다!

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 입문자 인데 '실전!스프링 부트와 jpa 활용1-웹 애플리케이션 개발'로 시작 하라는 말씀이신가요?스프링 입문이 처음으로 듣는건지 순서인지 이해가 안가서요....

  • spring
  • MVC
  • spring-boot
  • java
osk2090 댓글 1 좋아요 0 조회수 2988

인기 태그

인프런 TOP Writers

주간 인기글