apc.lua/se

From Moondust Wiki
Revision as of 16:12, 21 July 2020 by Olhi (talk | contribs) (Olhi moved page Apc.lua/sv to Apc.lua/se: Match up with TLD/ISO 3166 code)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Attention: This page contains dead links!

apc.lua (advanced player collisions)

Detta bibliotek lägger till några nya blocktyper till SMBX, tillsammans med avancerade kollisionsdetektorer för spelare.

Biblioteket kräver Colliders och Vectors biblioteken för att fungera. För att installera, packa upp apc.lua och stoppa den i LunaScriptsLib mappen.

Ladda ner den senaste versionen.

apc.lua kan åkallas med:

local apc = API.load("apc")

Värden

Värden att tillträda:

Namn Typ Beskrivning
apc.debug boolean Om den är satt till true så kommer de primitiva kollisionsobjekten skapade med detta bibliotek att vara synliga.
ropeBlocks tabell Innehåller ID:n av alla rep-typ block i nivån (nil om det inte finns några).
bouncySpikes tabell Innehåller ID:n av alla studsiga spik block i nivån (nil om det inte finns några).
p1colliders tabell Innehåller en kollisionsbox på varje sida av spelare 1. De kan åkallas kollektivt eller en åt gången genom att lägga till .top, .left, .right eller .bottom till slutet.

Exempel: p1colliders.top

p2colliders tabell Innehåller en kollisionsbox på varje sida av spelare 2. De kan åkallas kollektivt eller en åt gången genom att lägga till .top, .left, .right eller .bottom till slutet.

Exempel: p2colliders.top

Block funktioner

De här är funktioner som ändrar beteendet av block. Notera att varje funktion bara kan användas en gångar, men de accepterar tabeller som deras argument. Dessa funktioner måsta kallas i onLoop(), men för att motverka lagg så är det rekommenderat att bara köra dem på första loopen av nivån. (Se exemplen i nästa sektion.)

apc.rope ID:n
Den här funktionen får de valda blocken att bete sig som "rep-typ" block. Ett "rep-typ" block beter sig som ett molnblock, men du kan gå igenom det om du trycker NER. Det här funkar bara om det används på moln-typ block. ropeBlocks tabell

ID:n av block ska vara av denna typ. Använd moln-typ block endast.

apc.bouncySpike ids
Den här funktioner får ett block att bete sig som ett spikblock som pekar uppåt, men att snurrhoppa på det studsar spelaren uppåt istället för att skada dem. Blocket kan ej skada spelaren från början, annars funkar inte den här funktionen. Det är inte rekommenderat att placera blocket i ett rörande lager, eftersom det inte kommer att funka korrekt. bouncySpikes tabell

ID:n av block måste vara av denna typ. Placera ej i ett lager som rör sig.

Användningsexempel

local apc = API.load("apc")

function onLoop()
  if not oneTimeStuff then
    oneTimeStuff = true
    apc.rope{8}
    apc.bouncySpike{1}
  end
end

Detta får block-8 att bli ett rep-typ block, och block-1 att bli ett block man can snurrhoppa på.

local apc = API.load("apc")

function onLoop()
  for k,v in pairs(Block.get()) do
    if (colliders.collide(p1colliders.top, v)) or (colliders.collide(p1colliders.left, v)) or (colliders.collide(p1colliders.right, v)) then
      if not (colliders.collide(p1colliders.bottom, v)) then
        v:remove(true)
      end
    end
  end
end

Detta förstör alla block en spelare rör vid, förutom de som de står på.