【TIC-80】가상의 게임기의 게임을 FantasyConsole에 이식한다(그 4)
이런 느낌이군요.
하나의 영역을 빛내는 경우는 해당 위치의 참조 타일 ID를 바꿨습니다.
갈색 타일에서 노란색 타일로 바꾸는 이미지군요.
단지 피버 모드로 모든 타일을 바꾸는 것은 무거울까 생각 (HHEM),
팔레트의 색 데이터를 쓰면 좋을까 생각 "TIC-80 wiki"를 들여다 보면
팔레트의 교환(이라기보다 컬러 인덱스의 참조처만 변경?)의
함수가 소개되고 있는 것 같다.
오 이것을 사용하면 일정 간격으로 팔레트 교체 ⇔ 실행 취소 할 수 있습니까?
단지, 현재 빛나고 있는지 어떤가? 라는 플래그? (상태?)는 어떤 데이터에 가질 수 있습니까?
타당하다. 지정색은 모두 바뀐다는 것은 필드가 아닌 것 같은‥.
아, 색을 바꾼다고 하는 조작(함수)에 갖게 하면 좋을까, Lua는 그것이 편하게 할 수 있다,
같은 소개를 읽은 기억이.
그런 코드를 참조하면서 구현
(ON-OFF 플래그의 것이 있는지 찾았습니다만, 조사 방법이 나빴던지
카운터 샘플이 대부분이었습니다)
palette_toggle.lua
do
SEA_COL=13
LAND_COL=4
SHINE_COL=14
end
-- common function from TIC-80 wiki
function pal(c0,c1)
if(c0==nil and c1==nil)then for i=0,15 do poke4(0x3FF0*2+i,i)end
else poke4(0x3FF0*2+c0,c1)end
end
pal_toggle=function(offcol,oncol)
local ofc,onc=offcol or LAND_COL,oncol or SHINE_COL
local onflag=false
local f
f=function()
onflag=not onflag
if onflag then pal(ofc,onc)
else pal() end
end
return f
end
function test()
landshine=pal_toggle()
seashine=pal_toggle(SEA_COL)
end
test()
function TIC()
map()
if btnp(0,1,30) then landshine() end
if btnp(1,1,30) then seashine() end
end
대체로 예상대로입니까.
다만 pal() 이 전색 리셋이므로, 양쪽 ON시에 한쪽을 해제하면 다른 한쪽도 해제되네요.
‥‥, 괜찮습니까?
(게임 중에는 landshine() 만 일정 간격으로 부른다)
그러고 보면, 영역이 연결되어 있는지, 의 판정 함수를 재귀로 호출하는 것 같은 것을
할 때 이미 확인했는지라는 정보를 기록 할 때도 함수에 갖게하는 것이
자연스럽게 쓸 수 있을까?
느끼는‥하지만 느끼는 것만으로 실장 방법은 모르기 때문에 앞으로의 과제로 합니다.
Reference
이 문제에 관하여(【TIC-80】가상의 게임기의 게임을 FantasyConsole에 이식한다(그 4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uokagi/items/8df5e9ff324b0ceeae37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)