ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SFML/ 키보드
    활동 기록 😵‍💫/SFML 테트리스 2023. 2. 5. 18:23

    #include <Keyboard.hpp>

    키보드 액세스 

    sf::Keyboard 

    메소드 isKeyPressed -> key눌렸는지 떼어졌는지 체크 (객체생성 X)

    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
    {
    character.move(1,0) //leftkey가 눌리면 캐릭터 이동 
    }

    이걸 기반으로 도형을 키보드로 움직이는 코드를 짜고자 했다 

    #include <SFML/Window.hpp>
    #include <SFML/Graphics.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace sf;
    
    int main()
    {
    
    	CircleShape character(50);  // 원형을 만들기위해 Graphics 헤더파일을 넣고 RenderWindow로 바꿨다
    	character.setFillColor(Color::White);
    
    	//window 화면 크기, 캡션이름 설정
    	RenderWindow cherry(VideoMode(504, 504), "https://cherrycode.tistory.com/"); 
    	cherry.setFramerateLimit(60); // 프레임 비율 설정 
    
    	//SFML 메인루프 !! 윈도우 닫힐때까지 반복
    	while (cherry.isOpen())
    	{
    		Event event;
    
    		//이벤트처리 
    		while (cherry.pollEvent(event))
    		{
    			if (Keyboard::isKeyPressed(Keyboard::Left)) {
    				character.move(-1, 0); // (1,0)은 오른쪽으로 (0,1)은 아래로 이동한다 사분면으로 생각해야될거같다? 
                   //cherry.close(); 이 문장을 넣으면 윈도우가 열리자마다 종료되어서 지웠다
    			}
    
    		}
    
    	
    	//window 배경화면 
    	cherry.clear(Color::Black);
    		//사각형 그리기 (그리고 싶은것이 있으면 .display(); 앞에 draw로 그린다! (이전에는 텍스트로 글을 썼다)
    	cherry.draw(character);
    
    		//프레임을 스크린에 출력
    		cherry.display();
    }
    	
    	return 0;
    }

    if (Keyboard::isKeyPressed(Keyboard::Right)) {
    character.move(1, 0);
    }
    if (Keyboard::isKeyPressed(Keyboard::Down)) {
    character.move(0, 1);
    }
    if (Keyboard::isKeyPressed(Keyboard::Up)) {
    character.move(0, -1);
    }

     

    까지 추가한 결과 !!!!!

    직접 코드 수정한게 넘넘 기쁘다 ✧*.◟(ˊᗨˋ)◞.*✧

    character.setPosition(x, y); 으로 설정해서 좀더 이동을 하려했는데 그건 KeyPressed라서 안되는것 같다 

    isKeyPressed로 사용하려면 다르게 해야되는거 같은데(아무튼 둘다 안됐음)

     

    character.move() 안의 숫자를 크게 하면 더 큰거리를 이동해서 속도가 빨라지는것 같다 

     

     

    프로젝트를 다시보고 구현할 것 정리했을 때 

    1. 게임화면 2. 자동플레이 3. 점수와 이름 4. 부가 효과 

Diseñada por Tistory.