일반적인 C64 게임에서 정확히 화면을 구성하는 것은 무엇입니까?


10

나는 BASIC을지나 C64 게임 개발의 기본 사항을 알아 내려고 노력하고 있으며 매우 기본적인 것이지만 중요한 점에 대한 조언을 사용할 수 있습니다.

Katakis / Denaris를 살펴보십시오 .

카타 키스

화면에는 최소한 9 가지가 있습니다.

  1. 글꼴이 다른 점수 막대
  2. 배 자체
  3. 선박에 부착 된 위성, 분리 가능
  4. 보조 무기 발사체
  5. 기본 무기 발사체
  6. 움직이는 물체 (적군 함선 일 수 있음)
  7. 선박의 이미지, 생명 수 및 채울 수있는 3 개의 섹션이있는 상태 표시 줄
  8. 기본 무기 충전 바는 끝까지 채울 수 있습니다
  9. 백그라운드에서 스크롤하는 스타 필드
  10. (화면에 번호가 매겨지지 않음) 배경의 일부인 바위 나 금속 벽과 같은 단단한 물체

C64는 가로 스캔 라인 당 8 개의 스프라이트 만 지원하므로 화면 중앙의 모든 것이 스프라이트 일 수 있다고 생각하지 않습니까? 충돌이 필요한 것은 스프라이트 (스프라이트로 하드웨어 충돌 감지를 얻을 수 있기 때문에) 인 것으로 가정하지만, 8 개의 스프라이트 한계에 빠르게 도달합니다. 또한 내 무기, 발사체, 위성 및 총알 6 개가 이미 8 개의 스프라이트로 연속 발사 될 수 있습니다.

또한 이와 같은 게임에서 어떤 그래픽 모드를 사용합니까? 프로그래밍 핸드북에는 화면 메모리를 직접 수정하는 비트 맵 모드가 나와 있습니다. 이것이 내가 일반적으로 작업해야하는 모드입니까? 스프라이트가 아닌 요소를 모두 구성하여 화면에 표시하려면 어떻게해야합니까?

점수 및 상태 표시 줄의 많은 것들이 정적이므로 ( "Area : 01"또는 "frame") 레벨이 시작될 때 한 번만 채울 것입니다. 화면 메모리를 검은 색으로 채운 다음 매 프레임마다 새로운 점수를 그려 업데이트해야하는 것 (점수, 하단의 충전 막대)이 업데이트됩니까?

아니면 모든 프레임에 전체 화면을 그려야합니까?

답변:


13

c64에서는 스프라이트를 "멀티 플렉스"할 수 있습니다. 그들이 그려지면, 당신은 그것들을 새로운 장소로 옮기고 재사용합니다. 중간에있는 대부분의 오브젝트는 아마도 다중화 된 스프라이트 일 것입니다. c64에서는 8 개의 스프라이트가 동일한 수평 스캔 라인을 차지하지 않는 한 사용하기가 매우 쉽습니다. 또한 필요한 경우 글꼴 그래픽을 사용하여 소프트웨어 스프라이트를 실제로 만들 수 있습니다 (이 경우 발사체가 가장 적음).

2, 3, 6. 스프라이트 일 가능성이 높습니다.

4, 5, 9. 문자 그래픽 (8x8 픽셀) 소프트웨어 "스프라이트"일 가능성이 높습니다

게임은 비트 맵 모드를 사용하지 않으며, 너무 많은 메모리 이동이 필요합니다 (일부 VIC 칩 트릭을 수행하지 않는 한). 사용 된 모드는 문자 그래픽 모드입니다.

당신이 그리는 것은 달려 있습니다. 이 경우 충분히 살펴보면 특정 크기 (x * y 픽셀) 패턴 별이 반복되므로 기본적으로 해당 글꼴의 문자 메모리를 업데이트하여 스타 필드의 스크롤을 에뮬레이트합니다.

시작할 때 채점 한 점수 / 상태를 확인한 다음 필요할 때 업데이트하십시오.

스프라이트와 각 프레임의 위치를 ​​업데이트해야합니다. 발사체도 업데이트합니다. 또한 x * y 픽셀 스타 필드 패턴을 업데이트합니다.


5
Katakis 비디오를보다 자세히 살펴 보았습니다. 이러한 객체 중 일부는 실제로 글꼴 그래픽입니다. 실제로 사용 된 색상을 보면 알 수 있습니다. 또한 starfield는 실제로 X * Y 픽셀이 아니지만 약간 다르게 만들어졌지만 여전히 글꼴 그래픽입니다. 하드웨어 스크롤 레지스터는 소프트웨어 속임수 외에 그래픽을 8 픽셀 만 이동하기 때문에 8 픽셀마다 스크롤 된 글꼴 그래픽을 업데이트해야합니다. 또한 하드웨어 스프라이트 충돌을 사용하고 싶지 않습니다. 스프라이트가 2 개 이상있는 경우 스프라이트가 실제로 충돌하는 것을 구별 할 수 없습니다. 간단한 수학만으로도 충돌이 발생합니다.
그냥 오래된 c64 괴짜

2

얼마 전에 독일 C64 잡지에서 기사를 읽었습니다. 글 머리 기호는 누군가 이미 지적한대로 스프라이트 역할을하는 문자입니다. 배와 적은 스프라이트입니다.

레벨은 또한 문자로 구성되어 있지만 꼬임이 있습니다. 레벨이 너무 커서 메모리가 소중하기 때문에 Trenz는 문자를 모듈로 그룹화하기 위해 자신의 도구 세트를 작성했습니다.

더 큰 모듈을 사용하고 구성 할 수 있습니다. 또한 그는 특정 패치 모듈을 사용하여 모듈의 교차점을 훌륭하고 깨끗하게 만들었습니다.

레벨이 char by char 대신 빌딩 블록으로 설명되는 압축의 모든 종류.

또한 Katakis의 일부 레벨에는 시차 배경이 있습니다.

그것은 배경을 채우는 패턴을 가지고 있으며, 주로 2x2 또는 3x3 문자로 만들어지고 스크롤 방향에 대해 애니메이션을 적용합니다 (비트 시프 팅). 예를 들어 레벨이 왼쪽으로 2 픽셀 스크롤되고 배경 패턴이 오른쪽으로 1 픽셀 스크롤되므로 느린 속도로 스크롤되는 것처럼 보입니다.

희망이 도움이

실제로 하나의 모듈을 볼 수있는 또 다른 것은 https://archive.org/details/64er_1989_10/page/n27 24 페이지로 스크롤하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.