小编Cub*_*key的帖子

在调用方法或函数中在哪里检查空值?

是否应该在调用函数之前或在函数本身内检查 null?

null

4
推荐指数
1
解决办法
1987
查看次数

使用增量时间时,如何保持跳跃高度不变?

我正在使用delta时间,所以我可以使我的程序帧速率独立.但是我无法获得相同的跳跃高度,角色总是在较低的帧速率下跳得更高.

变量:

const float gravity = 0.0000000014f;
const float jumpVel = 0.00000046f;
const float terminalVel = 0.05f;
bool readyToJump = false;
float verticalVel = 0.00f;
Run Code Online (Sandbox Code Playgroud)

逻辑代码:

if(input.isKeyDown(sf::Keyboard::Space)){
    if(readyToJump){
        verticalVel = -jumpVel * delta;
        readyToJump = false;
    }
}

verticalVel += gravity * delta;
y += verticalVel * delta;
Run Code Online (Sandbox Code Playgroud)

我确定增量时间是正确的,因为角色水平移动很好.

无论帧速率如何,我如何让我的角色跳跃?

c++ time gravity delta

4
推荐指数
1
解决办法
2405
查看次数

使用Sprite Kit,我怎样才能让对象跳转?

我正在制作一个带有精灵套件的游戏,现在我想知道最好的方法是让对象'跳'.所以它将以几个像素垂直启动.这是我想要跳转的对象的代码:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"bal.png"];
sprite.position = CGPointMake(self.frame.size.width/4 + arc4random() % ((int)self.frame.size.width/2), (self.frame.size.height/2 + arc4random() % ((int)self.frame.size.height/2)));
sprite.color = [self randomColor];
sprite.colorBlendFactor = 1.0;
sprite.xScale = 0.2;
sprite.yScale = 0.2;
[self addChild:sprite];
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
self.physicsWorld.gravity = CGVectorMake(0.0f, -4.0f);
Run Code Online (Sandbox Code Playgroud)

sprite-kit skphysicsbody

4
推荐指数
1
解决办法
4080
查看次数

Vuejs禁用了选定的下拉选项?

我有一个数组selected,其中包含一组选定的选项.我想使用该数组为disabled这些选项添加属性.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title> Vue-js Control </title>
    </head>
    <body>
        <div id="demo">
            <select v-model="selected" multiple>
              <option v-for="option in options" v-bind:value="option.value">
                {{ option.text }}
              </option>
            </select>
            <span>Selected: {{ selected }}</span>
        </div>

    <script type="text/javascript" src='http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.16/vue.min.js'></script>
    <script type="text/javascript">
    new Vue({
        el: '#demo',
        data: {
            selected: ['A','B','D'],
            options: [
              { text: 'One', value: 'A' },
              { text: 'Two', value: 'B' },
              { text: 'Three', value: 'C' },
              { text: 'Four', value: 'D' },
              { text: 'Five', value: …
Run Code Online (Sandbox Code Playgroud)

jquery vue.js

4
推荐指数
1
解决办法
1万
查看次数

C#XNA 2D平台跳跃逻辑

我正在研究2D平台游戏作为学习实验,目前在跳跃逻辑方面遇到了一些麻烦.我知道重力应该应用于玩家,这会影响跳跃和下降过程.这是我目前如何实施它.

isJumpingbool我只是想知道玩家是应该上升还是下降,以及他们目前是否处于跳跃状态,所以他们不会再跳.

spriteJumpPosition 是我用来限制玩家跳跃高度的值(默认值为0,上限为10,下面是硬编码).

void UpdateGravity()
    {
        // Check if player is currently jumping
        if (isJumping == true)
        {
            if (spriteJumpPosition < 10)
            {
                spritePosition.Y += (float)gravity;
                spriteJumpPosition += gravity;
            }
            else if ( spriteJumpPosition >= 10 )
            {
                isJumping = false;
                spritePosition.Y -= (float)gravity;
                spriteJumpPosition -= gravity;
            }
        }
        else if ( isJumping == false )
        {
            if (spriteJumpPosition > 0)
            {
                spriteJumpPosition -= (int)gravity;
                spritePosition.Y -= (float)gravity;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,当前的行为是玩家向下移动一点(可能2-3帧)然后开始上升,isJumping = false并且永远不会停止.我在这做错了什么?这只是完全错误的方法吗?

c# xna 2d

3
推荐指数
1
解决办法
8071
查看次数

Git Add:路径规范与任何文件都不匹配

我正在尝试将新文件添加到我的工作目录中,然后通过执行以下操作来注册它们:

git add filename.php
Run Code Online (Sandbox Code Playgroud)

昨天我刚刚仔细检查了远程 gitlab 位置,昨天的所有新文件都已包含在内。

但是,现在每当我添加新文件时,我都会收到此错误:

pathspec filename.php didn't match any files
Run Code Online (Sandbox Code Playgroud)

如果我这样做git status,则确认新文件没有被注册。

ls- 新文件未显示,尽管它们实际上位于特定文件夹中。

我没有gitignore对此事进行任何更改或任何其他设置,并且我已经仔细检查我是否位于正确的文件夹和正确的分支上。

git git-bash

3
推荐指数
1
解决办法
7383
查看次数

试图在分数增量为500的情况下提高我的游戏速度,但是我的if语句太多了.

在我的代码中,每当变量得分比第一次高500时,变速就需要增加.所以,当得分为500时:speed++.得分为1000时:speed++再次,依此类推.

这是我的代码:

import java.awt.*;

public class Enemy {
    static int x = -100;
    static int y = -100;
    Player player;
    private int enemy_xspeed = 0;
    private int enemy_yspeed = 0;
    private int speed = 0;

    public Enemy(Player player) {
        this.player = player;
    }

    public void update(){
        if(Player.getX() < x){
            enemy_xspeed = -2 - speed;
        }
        if(Player.getX() > x){
            enemy_xspeed = 2 + speed;
        }
        if(Player.getY() > y){
            enemy_yspeed = 2 + speed;
        }
        if(Player.getY() < y){ …
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
406
查看次数

为什么Java在我的return语句后跳转

我正在尝试构建一个递归函数,如下所示:

private static int partition(int[] array, int low, int high, int pivot_index){

  // just irrelevant code

  System.out.println("Somehow this point has been reached 1");
  if(low < high){
    System.out.println("Somehow this point has been reached 2");
    //some more code
    partition(array,low,high,pivot_index);
  }else{
    System.out.println("Somehow this point has been reached 3");
    //some more code
    return high;
  }
 System.out.println("Somehow this point has been reached 0");
 return -1;    

}//partition
Run Code Online (Sandbox Code Playgroud)

令我吃惊的是,在运行我的程序并调用此函数后,编译器将打印:

point 1 reached; point 2 reached; point 1 reached; point 3 reached. point 0 reached.
Run Code Online (Sandbox Code Playgroud)

哪个返回-1会导致程序的整个逻辑崩溃.我确信我在这里遗漏了一些东西但是我的程序在 …

java recursion

3
推荐指数
1
解决办法
279
查看次数

在O(1)时间内组合两个已排序的迭代器

我在接受采访时被问到以下问题:

将两个迭代器组合在它们的排序内容上,这样得到的迭代器应该在O(1)时间内以排序顺序迭代这两个迭代器的组合(这些迭代器迭代一个String).

我写了下面的代码,但我确信它在O(1)时间内没有执行.您对匹配面试问题设置的约束有什么建议?

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class iteratorCombine {

// assumption1: elements are hardcoded
// assumption2: both iterators have equal number of elements
public static void main(String[] args) {

    iteratorCombine testObj = new iteratorCombine();
    Set<String> firstSet = new TreeSet<String>();
    Set<String> secondSet = new TreeSet<String>();
    Set<String> combinedSet;
    firstSet = testObj.storeElements1(firstSet);
    secondSet = testObj.storeElements2(secondSet);

    Iterator<String> it1 = firstSet.iterator();
    Iterator<String> it2 = secondSet.iterator();

    combinedSet = testObj.combine(it1, it2);

    // output
    Iterator<String> itComb = combinedSet.iterator();
    while(itComb.hasNext()){
        System.out.println(itComb.next());
    }

}

public Set<String> …
Run Code Online (Sandbox Code Playgroud)

java iterator

3
推荐指数
1
解决办法
1266
查看次数

如何创建简单的系统范围的python库?

我看到有一些内置包可以从任何脚本中导入,例如:

from datetime import date

today = date.today()
print today
Run Code Online (Sandbox Code Playgroud)

如何创建一个简单的程序包并将其添加到系统库中,以便像datetime上面的示例一样导入它?

python

3
推荐指数
2
解决办法
2552
查看次数

标签 统计

java ×3

2d ×1

c# ×1

c++ ×1

delta ×1

git ×1

git-bash ×1

gravity ×1

iterator ×1

jquery ×1

null ×1

python ×1

recursion ×1

skphysicsbody ×1

sprite-kit ×1

time ×1

vue.js ×1

xna ×1