수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

xml소켓통신시 각기 다른 플래시의 엔터프레임과 속도 맞추기

루다

2023.04.01

xml소켓통신을 이용하여 as2.0 으로 온라인게임을 만드려고 합니다.
횡스크롤 아케이드? 방식인데 캐릭터가 좌우로 빠른 속도로 이동합니다.( 프레임당 speed 1씩 증가하여 최대 20픽셀씩. fps 24.)
코드를대충 적으면,

socket 데이터 받으면(key){
mc.rightKey = key;
}

enterframe{
if(Key.isDown(오른쪽)){
mc.rightKey = true;//오른쪽 키입력 변수 true 변경
}else{
mc.rightKey = false;
}

socket.send(mc.rightKey)//소켓에 오른쪽 키입력 변수 전달

if(rightKey){
mc.speed +1 증가(최대20까지)
}
mc._x += speed;
}

이런식으로, 키입력 변수를 매프레임 체크하여 키가 입력되었으면 입력되었다는것을 소켓에 보내어, 접속되어 있는 다른 플래시에서 보여지는 무비클립에게 키가 입력되었다는것을 전달합니다. 각 플래시의 프레임에서는 키입력 변수가 true일 경우에 스피드를 증가하여 이동하는 식입니다.

테스트를 해본결과 각 플래시에서 매 프레임 체크동안 변수가 즉시즉시 변경이 안되는지, 위치값이 다르게 이동됩니다.
예상에 소켓에 변수 보내어 변수가 변경될동안 엔터프레임이 돌아서, 몇번더 스피드가 증가하는것 같습니다.

즉,소켓통신 속도와 엔터프레임 속도가 맞을 수 있는지, 그보다 제가 생각한자체가틀린건지 궁금합니다.
위치값이나, 기타 게임에 필요한 속성정보를 모두 소켓에 보낼필요 없이, 그저 키입력값만 넘기면, 동일하게 작동할거라 생각했는데, 통신속도 탓인지, 위치가 자꾸 달라지네요.

혹시 온라인게임 구현하실때 다른 기초방식(동시 표현? 동기화?)이 있는지 가르침 부탁드립니다.

더 나아가자면, as3.0 에는 바이너리 소켓이 가능하다던데, 바이너리로 된다면 무엇이 이로운지도 도움주시기 바랍니다.

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • LO

    바쁘신 와중에 신경써주신 답변 정말 감사드립니다.

  • 냐하

    모든 게임으 상태를 비트로 변환해서 하나의 상태가 1비트로 표현할수있게하는것이 xml로 전송하고 서버에서 해석하는시간보다 빠릅니다. 게임의 특성상 정적인것이아닌 동적이기때문에 정적인것에 알맞는 xml보다는 후자가 권장하는방식이에요.

  • 샤이

    보통 속도를 요구하는 경우에 서버는 udp로 구현합니다. 여러사람이 서버에 접속이되어 서로 다른 유져들의 상황을 체크해야될상황이 동싱에 일어나게되는데 어느 한유저가 네트워크가 불안정할경우 전체적으로 랙이라 불리는 기다리는 현상이 생깁니다. 동기화를 해줘야되기때문인데 udp를 쓸경우 랙이 발생한 클라이언트는 넘어갈수있기때문에 엄격한 체크가 필요하지 않은 부분은 udp를쓰고 점수같은것들과같은 민감한것들은 tcp를 씁니다.겸해서 쓸경우도 있지요. 하지만 플래

  • 제철

    저도 전에 실시간 온라인게임 맨들어봤는데.. as2.0으로 하시다보면 아마 좌절하실겁니다....
    느린 스크립트 수행속도 때문에...

  • 주리

    1. 첫번째 바이너리 소켓은 보안에 강합니다. 서버에서 리소스을 자원 바이너리(byteArray)로 가지고 와서 swf, mp3, jpg파일로 재구성을 해서 사용이 가능합니다.
    그래서 별도로 컴서버를 사용하지 않고도 웹브라우저캐쉬에 남지 않게 할 수 있습니다. 결과적으로 바이너리 소켓 통신으로 asset(아이템)이나 결재(AS3.0 암호화 알고리즘 오픈소스 존재)를 할때 아주 유용한 기술중에 하나입니다.

    2. 저도 님과 같이 비슷한 경우로 아바타

  • 꽃은별

    덧글 감사드립니다. 이동방향에 따른 애니메이션이나, 프레임이동, 적과 충돌여부등 캐릭터(오브젝트)의 모든속성, 정보를 모두 보내고 받는플래시에서는 엔터프레임마다 그 정보대로 오브젝트를 갱신하는 식으로 해야하나 보네요. 결국 함수로 체크한것들을 모든 상황별마다 속성값으로 저장해놓고 그걸 보내야겠네요. 혹시 다른 방법은 없을까요? 온라인 게임이 대부분 이렇게 이쪽의 데이터 값을 전부 보내면 저쪽은 받아서 보여주는 식인가요? 저는 간단하게 키입력이 이뤄진걸

  • 미쿡

    키값을 전달하지말고
    움직일 무비클립의 위치값을 전달해보세요
    받는플래시에서는 그위치값으로 이동시켜주면될것같습니다

번호 제 목 글쓴이 날짜
2697149 익스플로러에서 이미지로딩이 느려지는건지..깨져서 나옵니다. (4) 든솔 2025-06-05
2697122 호환성질문 (5) 미즈 2025-06-05
2697066 웹에서 다른이름으로 저장 할때 파일 이름 저장하는 방법은? 코이 2025-06-04
2697043 position:absolute; 로 하면 사라져 버리는 이유 ㅠㅠ (3) 풍란 2025-06-04
2697016 테이블 thead tbody 질문 아란 2025-06-04
2696989 contact us 페이지는 dl로 작성하는게 좋을까요? (4) 파라 2025-06-03
2696964 img 태그 질문드려요 (9) 연블루 2025-06-03
2696907 [질문] 올플래시 메뉴 고정할수 있는[수정] (4) 맨삶이 2025-06-03
2696875 책구입 후 따라하다가 ShortCode Ultimate 오류 가지등 2025-06-02
2696844 css 마우스 오버시 display:block되는 영역 질문드립니다 ㅠㅠ (2) 갅쥐누뉨 2025-06-02
2696816 엉엉엉...영상이 올라타네요 (5) 다은 2025-06-02
2696792 Doctype 문의 떠나간그녀 2025-06-02
2696683 컴파일된 클립 질문 드립니다. 흰추위 2025-06-01
2696656 C질문요 (4) 블랙캣 2025-05-31
2696504 플래시 위에 div 올리기 (5) 큰꽃늘 2025-05-30
2696458 제가 만든 소스 한번 봐주시고 수정 할 꺼 있으면 말해주세요. (실행은 되지만 깜빡거리네요) 이플 2025-05-29
2696434 퍼센트 레이아웃 질문인데요.. 나츠 2025-05-29
2696372 %=open_main%, %=open_sub% 가 뭘까요? (9) 행복녀 2025-05-29
2696347 콘솔 프로그램 질문 상큼한캔디 2025-05-28
2696320 c언어 scanf 함수를 이요해 문자열 입력 받을 시 질문 있습니다. 슬아라 2025-05-28
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com