我正在为HS的最后一年项目制作平台游戏.然而......我使用的碰撞检测系统基本上是关于检查字符的特定部分是否与另一个块相交.
碰撞似乎工作得很好,除了它会导致一些错误,例如玩家在从侧面撞击时卡住或减速或在使用上键和<或>键时被抛出.
我的问题是; 如何改进碰撞代码以避免这种故障并发生"滑溜"碰撞?
这是我想要实现的那种碰撞效果:
(https://i.imgur.com/KB1M3bt.mp4)

(https://i.imgur.com/I44fmPc.mp4)

这里是边界看起来的预览
这里是游戏中实际外观的预览(点击查看更好的质量)
我用于碰撞检测的代码:(tempObject是玩家与之交叉的块)
if(getBoundsTop().intersects(tempObject.getBoundsBottom())){
y = tempObject.getY() + height;
velY = 0;
System.out.println("Top collision");
}
if(getBoundsBottom().intersects(tempObject.getBoundsTop())){
y = tempObject.getY() - height;
velY = 0;
falling = false;
jumping = false;
//isOnBlock = true;
} else {
falling = true;
//isOnBlock = false;
}
if(getBoundsRight().intersects(tempObject.getBoundsLeft())){
x = tempObject.getX() - this.width;
}
if(getBoundsLeft().intersects(tempObject.getBoundsRight())){
x = tempObject.getX() + this.width;
}
Run Code Online (Sandbox Code Playgroud)
这是绑定的方法:
public Rectangle getBounds() { return new Rectangle( (int)x, (int)y, …Run Code Online (Sandbox Code Playgroud) 我一直试图让自己更具挑战性,但我找不到实现这一目标的方法.所以我想知道它是否可以分隔没有空格的单词 betweenThemLikeThisJustInASingleString
这是我的代码:
def translate_morse(string):
morse_a = {
'a':'.-','b':'-...','c':'-.-.','d':'-..','e':'.','f':'..-.','g':'--.','h':'....','i':'..','j':'.---','k':'-.-','l':'.-..',
'm':'--','n':'-.','o':'---','p':'.--.','q':'--.-','r':'.-.','s':'...','t':'-','u':'..-','v':'...-','w':'.--','x':'-..-',
'y':'-.--','z':'--..',1:'.----',2:'..---',3:'...--',4:'....-',5:'.....',6:'-....',7:'--...',8:'---..',9:'----.',0:'-----'}
translated = ""
for i in string.split(' '):
for key, value in morse_a.iteritems():
if i == value:
translated += key
print translated
print """
###################################
# #
# Morse Alphabet Translator #
# Author: Blackwolf #
# Date: 2016-29-05 #
# #
###################################
# #
# USAGE: #
# After each morse letter you #
# will need to seperate (space) #
# each letter #
###################################
"""
finished …Run Code Online (Sandbox Code Playgroud) 我创建了一个按钮,当用户点击它时,当前的类应该替换为新的,反之亦然.但是addClass或removeClass都没有显示任何效果.我没有在控制台日志中看到任何错误或警告消息.
JQuery代码:
$('.vote_btn').click(function(){
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':$(this).data('commentid')},
success: function(data){
if(data == 'up'){
$(this).removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
$(this).removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
HTML代码:
<span id="<?=$comment['id']?>" class="fa fa-thumbs-o-up vote_btn" data-commentid="<?=$comment['id']?>" data-postid="<?=$getpost['post_id']?>" data-who="<?=$comment['commenter_id']?>"></span>
Run Code Online (Sandbox Code Playgroud) 我试图创建一个函数,读取文件中的每一行,并将其与反向(回文)版本进行比较i.e > (heheh = heheh) & (law = wal).因此,当我尝试这样做时,条件失败,函数返回一个空列表.
码
def palindrome_lst():
lst = []
with open("words.txt", "r") as f:
for line in f:
if line == line[::-1]:
lst.append(line)
return lst
print palindrome_lst()
Run Code Online (Sandbox Code Playgroud)