【TIC-80】초승달 폭발을 재현하고 싶었다
칠해 남은 듯한 것은 있습니다만, 일단 상정대로?
작성 이유
특정 게임 을 「 TIC-80 」라고 하는 FantasyConsole 에 이식하려고 하고 있습니다만,
문득 이전에 읽은 「 미사일 명령 로 초승달형의 폭풍이 표시되는 경우가 있지만, 그것은 화면 처리의 문제로 의도한 것이 아니었다」같은 기사를 생각해 냈습니다.
그 때는 「헤-그렇구나ー」 정도로 생각하고 있었습니다만, 「TIC-80」으로 그것을 재현할 수 있는 것은? 라고 생각한 것이 계기입니다.
(다시 한 번 그 기사를 읽고 싶습니다만, 찾는 방법이 나빴던지 찾지 못했습니다.
아시는 분이 계시면 가르쳐 주시면 다행입니다. )
그리기 처리
폭풍을 나타내는 원이 커지고 그 후 작아진다는 것을 가장 가벼운 처리로 실현한다면,
라는 것입니까?
「TIC-80」에는 「circb(x, y, r, c)」중심 좌표 x, y, 반경 r, 색 c 의 원을 폭 1 도트로 묘화, 라고 한다
API가 있기 때문에 그것을 사용. 위의 처리 만 설명.
missile.lua
MIN_X,MAX_X=40,200
MIN_Y,MAX_Y=40,100
BGCOLOR,BOMBCOLOR=0,15
ran,min=math.random,math.min
function bomb(br,x,y)
local mcnt,cnt=br*2,br*2
return function()
if cnt<1 then return end
cnt=cnt-1
r=min(cnt,mcnt-cnt)
circb(x,y,r,cnt>mcnt//2 and BOMBCOLOR or BGCOLOR) end end
function testinit()
t=0
bombr=15
bmaket=8
updatet=5
maxb=100
bombs={}
cls(BGCOLOR)
end
testinit()
function TIC()
if t%bmaket==0 then
table.insert(bombs,bomb(bombr,ran(MIN_X,MAX_X),ran(MIN_Y,MAX_Y)))
if #bombs>maxb then
table.remove(bombs,1) end end
if t%updatet==0 then
for i,f in ipairs(bombs) do f() end end
t=t+1
end
(폭 40자, 높이 17자의 TIC-80의 에디터로 쓰고 있기 때문에 최근에는 TIC()나 init() 이외의
end 이전에는 개행하지 않는 스타일을 사용. MoonScript 라든지 Lisp 같은 들여쓰기 스타일? )
스타일 이외에도 여러가지 문제가 있다고 생각합니다만‥.
자신은 Lua 밖에 알지 않기 때문에 이런 코드가 되었습니다만 다른 언어라고 어떤 쓰는 법에
되는지 궁금합니다. (TIC-80은 javascript도 사용할 수 있으므로 누구인가!(웃음)
processing 라든지 더 깨끗하게 표시됩니까?
요약
여기부터는 자신의 상상입니다만, 의도한 것은 아니었지만
재미 있었기 때문에 떠났다.
같은 느낌이었던 것이 아닐까 생각합니다 (파트 2의 취소 기술처럼).
마크로스로 유명(?)한 초승달형 폭발이지만, 미사일 커맨드의 발매가
1980년. 마크로스 방송 개시가 1982년.
초승달 형 폭풍이 미사일 명령에서 영감을 받았다는 설도
상당히 신빙성이 있다고 생각하네요.
(지금, 조금 조사하면 마크로스의 배리어 제어?가 트랙볼? 오)
Reference
이 문제에 관하여(【TIC-80】초승달 폭발을 재현하고 싶었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uokagi/items/3b20c0c020d899bea2cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)