CSクラスでは、greenfootというプログラムを使って単純なゲームを作った。あなたが慣れているなら、このゲームはゲーム「Frogger」に非常に似ていました。私は今自分で練習しており、ゲームを似たものにしたいと思っています。私の新しいゲームは、PacManに幾分近くなるだろう。私がスクリーンの上に到達する必要のあるロケット船を制御する前に作ったゲーム。一方、私はランダムに選択されたサイズと速度の壁の矩形のバウンスのためにしました。しかし、私は新しいゲームのためにもっと興味深いものにしたいと思っています。私は最初に準拠したときにランダムな方向を作り出し、壁をバウンスしてその方向に進み、その周りにバウンスする有名なスクリーンセーバーによく似た、これらのオブジェクトのループが必要です。ここに最初の試合のための私のコードですが、これは何ですか? 最終的に私の質問は、どのようにランダムな方向のループを書くのですか?オブジェクトのランダムな方向ループを探す
答えて
public boolean canMoveRight()
{
if (getX() + 1 < getWorld().getWidth())
return true;
else
return false;
}
public boolean canMoveLeft()
{
if (getX() - 1 > 0)
return true;
else
return false;
}
public void moveRight()
{
setLocation(getX() + speed, getY());
}
public void moveLeft()
{
setLocation (getX() - speed, getY() );
}
public void act()
{
if (right==true)
{
if (canMoveRight())
{
moveRight();
}
else
{
right = false;
}
}
else
{
if(canMoveLeft())
moveLeft();
else
right = true;
}
}
方向を定義列挙 例えば Up、RightUp、Right ... LeftUp。
ランダムを使用して1つを選択します。 方向はdX、dXの位置の変化に変換されます。つまり、移動ステップが1ピクセルの場合、UpLeftは-1、-1(原点の左上) です。ループ内に単純にdxをXに追加し、dyをYに追加します。これらの線に沿って
何かが、私は推測する、働くだろう:
Random random = new Random();
int direction = random.nextInt(1); // gives 0 or 1 randomly
if (direction == 0) {
// move left
} else {
// move right
}
単にif(新しいjava.util.Random()。nextBoolean()) 'または' if(Math.random()> = 0.5) 'ではないでしょうか? – IchBinKeinBaum
@IchBinKeinBaumうん、いいね。しかし、New2.javaはJavaに新しいので、Greenfootを使用しています。効率的な1ライナーではなく、コードが多かれ少なかれ自明です。 – maksimov
あなたはこれが好きな何かを探していますか?
int horz = ((Math.random() * 10) % 10) + 1; //I just choose 10 at random
int vert = ((Math.random() *10) % 10) + 1;
//You can use another random number to choose to negate either horz or vert if you want
//You can also use random numbers to define the start location.
public boolean canMoveHorz()
{
if ((getX() + horz < getWorld().getWidth() && horz > 0) || (getX() + horz > 0 && horz < 0))
return true;
else
return false;
}
public boolean canMoveVert()
{
if ((getY() + vert > 0 && vert < 0) || (getY() + vert < getWorld().getHeight() && vert > 0))
return true;
else
return false;
}
public void act() {
if(!canMoveHorz()) {
horz *= -1;
}
if(!canMoveVert()) {
vert *= -1;
}
setLocation(getX() + horz, getY() + vert);
}
これはいくつかの微調整が必要ですが、オブジェクトの速度(縦と横)を決める2つの乱数を選択することです。次に、オブジェクトが世界の端に到達するまでオブジェクトをその方向に移動させます。オブジェクトの速度が反転するとオブジェクトは反対方向に移動します。これは、バウンスの角度を決めるためにヒットの角度を何もしないので、壁からの真のバウンスと同じではありませんが、これはあなたを始めることができるはずです。より現実的なバウンスが必要な場合は、いくつかの幾何学的計算を行う必要があります。
はい!これは正解です。ありがとうございます。私は変更が必要なものを変更し、それが動作すると確信しています。ありがとうございました! –
@ New2.java問題はありません。 – twain249
- 1. オブジェクト指向のJMeterの例を探す
- 2. ランダムなピクセルとランダムな方向のページスクロールを行う方法
- 3. ランダムな方向ja 2D lua
- 4. three.jsで多くの方向を指すランダムなオブジェクトを作成する方法
- 5. JSゲーム - ランダムな方向の撮影
- 6. Pygame Pacmanゴースト、ランダムな変更の方向
- 7. データセットをループする - オブジェクト指向のアプローチ
- 8. ユニットテストの方向を探す部分的なレンダリングを行うコントローラエクステンション
- 9. Three.js - オブジェクトを回転させて1点を探して別の方向に向ける方法
- 10. 横方向の最初の探索と無向グラフの比較
- 11. 同様のプロパティを探してオブジェクトをループする
- 12. ランダムなオブジェクトを使ってランダムな敵をスワップする方法は?
- 13. 角度からの適切な水平方向と垂直方向の速度を探す - アンドロイド
- 14. Postgresの - 横方向の両側にランダムな値で参加
- 15. pygame:ゲーム開始時のボールのランダムな方向
- 16. C++のループでランダム化されたオブジェクトを生成する
- 17. スクロールするスクロールのようなカスタムジェスチャーの方向を探しています
- 18. 緯度/経度、日時の影の方向を探す
- 19. NHiberneateの双方向リレーションの例を探しています
- 20. Java - オブジェクトのランダムな配置
- 21. 双方向データバインディング無限ループ
- 22. Three.JS - 球を形成するランダムな方向の点を周回する粒子
- 23. javascriptでランダムにループする方法は?
- 24. N個のランダムなオブジェクトを削除する最速の方法
- 25. ランダム効果を有する一方向ANOVAの事後検定
- 26. ランダムなオブジェクトを作成せずにランダムな値を取得
- 27. オブジェクトをランダムな回数作成する
- 28. ランダムActivityNotFoundException意向起動
- 29. THREE.js trigを使用した点の周りのランダムな多方向の軌道
- 30. KnockoutJS foreachループでの双方向バインディング
それはうまく機能していますか?何が問題ですか? – talnicolas
はい、これは私の最初のゲームのために働いています。しかし、私は、左から始めて毎回右に行くのではなく、ランダムな新しいループが必要です。 –
これはちょっと関係ないかもしれませんが、これはポケモン様式のゲームプレイに近いと思います。タイルの衝突フラグを設定する方がよいでしょう。ダイナミックエリアが可能になります。 –