【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년.
    초승달 형 폭풍이 미사일 명령에서 영감을 받았다는 설도
    상당히 신빙성이 있다고 생각하네요.
    (지금, 조금 조사하면 마크로스의 배리어 제어?가 트랙볼? 오)

    좋은 웹페이지 즐겨찾기