我正在写一个有趣的游戏,玩家可以跳跃并射击激光的精灵.它最多可以有三名玩家.我的班级Sprite对于所有三个玩家来说都是一样的,每个玩家都有不同的控制布局,具体取决于玩家#在构造中给出的.Sprite使用a KeyListener来起作用.
为了让我有多个玩家同时做事(比如拍摄激光或跳跃),我需要让每个创建的Sprite对象都在一个单独的线程上.我知道我可以Sprite在implements Runnable类上使用,但是这只运行Sprite新线程上的方法中的代码.这不起作用,因为run()它Sprite和其他类似的东西不会出现在新线程上.
我认为我应该使用"帮助器"类,keyPressed()然后在其implements Runnable方法中创建新的Sprite对象.然而,这似乎是一种混乱的方法.有没有办法让我run()在一个全新的线程上创建所有新对象(Sprites和所有这些都包含在这个线程中)?
码:
public class Sprite() implements KeyListener { //I want this class on a brand new thread
int x;
int y;
int width;
int height;
Image spriteImage;
//code/methods for stuff
//key listeners:
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method …Run Code Online (Sandbox Code Playgroud) 我在 中有一个宏定义MyClass.h,如下所示:
#define _BufferSize_ 64
Run Code Online (Sandbox Code Playgroud)
我将 include 指令放置在MyClass.h以下内部main.cpp:
#include "MyClass.h"
Run Code Online (Sandbox Code Playgroud)
这是否意味着我可以_BufferSize_在main.cppand中使用MyClass.h?另外,这是好的做法吗?
我正在翻译一些代码,并使用这种完全未使用的专用语言,该代码指出如果传入了四个以上的参数(因为第5个参数是可选的),则对该参数的值做些事情,如下所示:
if (ParamCount > 4) {
if (ID == 0) {
ID = 0x700;
if (mtrx > 0) {ID = 0x11AA0FF0; }
}
BaseID = ID;
} else {
BaseID = ID;
}
Run Code Online (Sandbox Code Playgroud)
我将如何用C ++ 98编写出来?我试图将这些代码转换为类时,创建了一个包含这些参数的构造函数,但是当参数是可选的时,您必须为其设置一个值,例如0,以至于我想。
我有一个这样定义的类:
class sco
{
private:
public:
vector<uint8_t> data;
sco(vector<uint8_t> data);
~sco();
};
Run Code Online (Sandbox Code Playgroud)
构造函数在哪里:
sco::sco(vector<uint8_t> data) {
this->data = data;
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个这样声明的函数:
void send(unsigned& id, char* data, char len);
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要将sco成员的数据传递给它,但是类型和指针的区别使我感到困惑。如果我有一个newSco成员,其中包含一些数据,将这个send函数调用为send(someId, (char*)&(newSco.data.begin()), newSco.data.size() );吗?请注意,函数send是针对微控制器的,它采用char类型,因此我无法更改它,也不能更改uint8_t,因为这是来自串行通信的类型。我已经浪费了超过三天的时间,试图将类型转换为相互的东西,只是为了将其反向,因为它破坏了一切。我放弃了,我将不再尝试操纵类型,因为我只是没有时间,即使是不好的做法也只需要它来工作。我以为uint8_t和char大小相同,所以没关系。