このサイトのイライラ棒ゲームについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
NGT

このサイトのイライラ棒ゲームについて

#1

投稿記事 by NGT » 9年前

[1] 質問文
 [1.1] 自分が今行いたい事は何か
   このサイトのイライラ棒ゲームを完成させてアンドロイドアプリの制作の流れをつかみたい
 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
     障害物をつくる2にてBarricade.javaの変更までは進行
     package com.example.irairavar;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;

public class Barricade extends Task {

public enum eType { // 障害物のタイプ
OUT, // あたるとアウトなタイプ
GOAL // あたるとゴールなタイプ
}

protected PointF _center = new PointF(0, 0); // 図形の中心点
protected PointF _pt[]; // 図形の頂点
protected Paint _paint = new Paint(); // ペイント
protected eType _type; // タイプ(当たるとアウトな壁、ゴールの壁、等)
protected float _rotaSpeed = 0; // 回転スピード

// コンストラクタ。 type=タイプ、 n=頂点の数、 conf=設定情報
public Barricade(int n, BConf conf) {
if (conf != null) {
_rotaSpeed = conf.speed; // 回転スピード
_type = conf.type; // 物体のタイプ
}
switch (_type) {
case OUT: // 接触してアウトな物
_paint.setColor(Color.RED); // 赤に
break;
case GOAL: // 接触してゴールな物
_paint.setColor(Color.GREEN); // 緑に
break;
}
_pt = new PointF[n]; // 頂点配列を作る
for (int i = 0; i < n; i++) {
_pt = new PointF(); // 頂点を作る
}
}

// 更新する
public boolean onUpdate() {
if( _rotaSpeed != 0 ){ //回転するなら
DiagramCalcr.RotateDiagram( _pt, _center, _rotaSpeed ); //頂点リスト(_pt)を_centerを中心に回転する
}
return true;
}

//接触しているかを問う。円cirが線分vecと接触していれば接触した物体のタイプを返す。接触していなければNOを返す
public Def.eHitCode isHit( final Circle cir, Vec vec ){
if( DiagramCalcr.isHit( _pt, cir, vec ) == true ){//頂点群_ptが示す各辺と円cirが接触していればベクトルをvecに入れてtrueを返す
switch(_type){
case OUT://アウトな線なら
return Def.eHitCode.OUT;
case GOAL://ゴールな線なら
return Def.eHitCode.GOAL;
}
}
return Def.eHitCode.NO; //何も接触していない
}


// 描画する
public void onDraw(Canvas c) {
if (_pt.length < 1) { // 頂点が1未満なんて図形はありえない
return;
}
Path path = new Path();
path.moveTo(_pt[0].x, _pt[0].y); // パスの初期位置をセット
for (int i = 0; i < _pt.length; i++) {
path.lineTo(_pt.x, _pt.y); // 頂点の位置へラインを引いていく
}
c.drawPath(path, _paint); // 引いたラインを描画する
}
}

 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
     //接触しているかを問う。円cirが線分vecと接触していれば接触した物体のタイプを返す。接触していなければNOを返す
public Def.eHitCode isHit( final Circle cir, Vec vec ){
if( DiagramCalcr.isHit( _pt, cir, vec ) == true ){//頂点群_ptが示す各辺と円cirが接触していればベクトルをvecに入れてtrueを返す
switch(_type){
case OUT://アウトな線なら
return Def.eHitCode.OUT;
case GOAL://ゴールな線なら
return Def.eHitCode.GOAL;
}
}
return Def.eHitCode.NO; //何も接触していない
}
   この部分のif分のisHitがDiagramColorで未定義といわれる

   (以下DiagramColor)
package com.example.irairavar;

import android.graphics.PointF;

public class DiagramCalcr {

//centerを中心に角度ang、頂点群ptを回転する
public static void RotateDiagram(PointF pt[], final PointF center, final float ang){
}

//rotaPtを中心に角度ang、origPtを回転する
public static void RotatePt(PointF rotaPt, final PointF origPt, final float ang){
}

//頂点群ptの線分とcirが接触していたらその接触しているベクトルをverに格納して返す
public static boolean Collision( PointF pt[], final Circle cir, Vec vec ){
return false;
}

//線分lineと円cirが当たっていればtrueを返す
public static boolean CollisionLC(Line line,Circle cir){
return false;
}


}
 [1.4] 今何がわからないのか、知りたいのか
サイトではこの文なので定義する必要はないはずだがなぜエラーが起きたのか
[2] 環境  
 [2.1] OS : Windows, Linux等々
      Windows
 [2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
eclipse

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: このサイトのイライラ棒ゲームについて

#2

投稿記事 by みけCAT » 9年前

ソースコードを提示する際は、BBCodeを有効にした(無効にしない)状態でBBCodeのcodeタグで囲んでいただけると、見やすくてありがたいです。
NGT さんが書きました:      //接触しているかを問う。円cirが線分vecと接触していれば接触した物体のタイプを返す。接触していなければNOを返す
public Def.eHitCode isHit( final Circle cir, Vec vec ){
if( DiagramCalcr.isHit( _pt, cir, vec ) == true ){//頂点群_ptが示す各辺と円cirが接触していればベクトルをvecに入れてtrueを返す

(中略)

   この部分のif分のisHitがDiagramColorで未定義といわれる

   (以下DiagramColor)
package com.example.irairavar;

import android.graphics.PointF;

public class DiagramCalcr {
とりあえず、DiagramCalcrかDiagramColorのどっちかに統一するべきではないでしょうか?
NGT さんが書きました:サイトではこの文なので定義する必要はないはずだがなぜエラーが起きたのか
定義されていないから定義されていないというエラーが出たのでしょう。
Webサイトの情報は常に正しいとは限りません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る