-
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. 부가 효과
'활동 기록 😵💫 > SFML 테트리스' 카테고리의 다른 글
SFML /프로젝트 시작 ! 1. 시작화면 만들기 (2) 2023.02.06 SFML / Texture Sprite(이미지) (3) 2023.02.05 SFML / 윈도우 관리, 이벤트 튜토리얼 (3) 2023.02.05 SFML / 기본윈도우 (1) 2023.02.04 SFML/ 사용자 데이터 스트림 (5) 2023.02.04