首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使分数上升1,每次pset和sprite相撞

如何使分数上升1,每次pset和sprite相撞
EN

Stack Overflow用户
提问于 2022-01-15 18:08:57
回答 1查看 39关注 0票数 1

所以我对编程很陌生,目前正在试用pico-8的编码。

我开始了一场比赛,雪碧应该从顶端掉下来,当我和我的pset (点)相撞时,我希望我的分数能上升1。到目前为止,我遇到了两种不同的结果。第一种情况是,分数一直在以疯狂的速度上升,而每当我的分数超过精灵的左上方像素y和x时,分数就会上升。我不知道如何修正它,我真的想知道它到底出了什么问题。

代码语言:javascript
复制
(Tab 1)
col=11
    sx=40
    sy=20
    x=64
    y=64
    score=0

function _init()
cls()   
    
    
end

function _update()
    
cls()   
    
    movement()

    border()
    
    point()
    
    sprite1() 
    
    if (x == sx) then score +=1 end
    if (y == sy) then score +=1 end


end
  
  

(Tab 2)
function _draw()

print("score:",0,0)

print(score,25,0)


end

(Tab 3)
-- movement

function point()
pset(x,y,col)

end


function movement()


if btn(⬅️) then x -= 1 end
if btn(➡️) then x += 1 end 
if btn(⬆️) then y -= 1 end 
if btn(⬇️) then y += 1 end
end 



-- sprite1
s1=1

function sprite1()
spr(s1,sx,sy)

end

(Tab 4)
-- border

function border()

if x>=127 then y=60 end
if x<=0 then y=60 end
if y>=127 then x=60 end
if y<=0 then x=60 end

if x>=127 then x=60 end
if x<=0 then x=60 end
if y>=127 then y=60 end
if y<=0 then y=60 end
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 10:53:46

你有两个问题。主要是这两条线:

代码语言:javascript
复制
    if (x == sx) then score +=1 end
    if (y == sy) then score +=1 end

这不会增加分数“当像素接触sx,和sy”。相反,当像素与目标位于同一条水平线或垂直线上时,它将增加分数。

你想要的是一个同时检查两者的条件。为了做到这一点,您可以使用and。用这一行替换这两行:

代码语言:javascript
复制
if (x == sx and y == sy) then score += 1

您所遇到的第二个问题是,此检查被评估为(每个帧)。因此,像素与目标重合的每一个帧,分数都会增加。考虑到游戏每秒30帧,得分增长非常快。

您需要的是一个额外的变量,以检查是否已经存在“触摸”。

您可以在表1中将其初始化为false:

代码语言:javascript
复制
touch = false

然后在前一个if上使用它。我们想要的是:

当像素接触到目标时,

  • 会增加分数,但前提是它没有在前一帧上触摸它。除此之外,我们希望在之后将touch设置为true,这样下一帧就不会激活分数。当像素不触及目标时,必须将触摸重置为true

因此,将前面提到的行替换为以下内容:

代码语言:javascript
复制
if x == sx and y == sy then
  if(not touch) score+=1
  touch = true
else
  touch = false
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70724066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档