Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Vector Drawing?  (Read 497 times)
0 Members and 1 Guest are viewing this topic.
Offline westloar

Junior Devvie





« Posted 2013-01-28 09:49:32 »

I have imported the following Vec2 class into my project:

http://www.johnloomis.org/ece538/notes/java1/Vec2.java.html

I'm currently playing with the use of vectors as I am new to them.

I can't seem to get the vector to draw using the Vec2.draw() method unless it is left in it's constructed default position (0,0).

This is my code:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
public class Avatar extends Sprite
{
    protected int hitPoints;
    protected int attackTime = 100; //ms
    protected int strength;
    protected boolean isAttack = false;
    Vec2 normal = new Vec2(posX, posY);

    public Avatar (int x, int y, int w, int h, int s, int hp, int str){
    super(w/2, h/2, w, h, s);
    hitPoints = hp;
    strength = str;
    }
    public void moveLeft()
    {posX-=step;}

    public void moveRight()
    {posX+=step;}

    public void moveUp()
    {posY-=step;}

    public void moveDown()
    {posY+=step;}

    public void attack(){
        if(isAttack)
        {isAttack = false;}
        else
        isAttack = true;
        System.out.println(normal.length());
    }

    public void isHit(int str){
        hitPoints-=str;
        if(hitPoints<= 0){
            this.dead();
        }//endif
    }

    public void dead(){
        //called when player hp <=0
    }
@Override
public void drawSprite(Graphics g){
   
        if(isAttack){
        g.setColor(Color.blue);
        g.fillOval(posX - 10, posY - 10, 30, 30);
        g.setColor(Color.black);
       
       }
        if(isActive()){
        g.setColor(Color.orange);
        g.fillOval(posX, posY, 10, 10);
        g.setColor(Color.black);
        }
         normal.draw(g);
}

}


I have checked its length with a print line and it returns two every time but does not draw to the canvas, I called its draw() method last to ensure it is drawn last (on top), but that doesn't seem to make a difference.

Any help would be much appreciated Smiley
Offline DazKins
« Reply #1 - Posted 2013-01-28 17:17:56 »

For starters i should point out that a normal vector actually represents a direction not a point (however looking over your code i don't think you meant what I'm on about here).

Secondly, I cannot see any thing wrong with the implementation of the drawing except i think the issue is where you position the vector

1  
Vec2 normal = new Vec2(posX, posY);


This piece of code is outside the constructor when it should really be inside it like this

1  
2  
3  
4  
5  
6  
public Avatar (int x, int y, int w, int h, int s, int hp, int str){
    super(w/2, h/2, w, h, s);
    hitPoints = hp;
    strength = str;
    normal = new Vec2(posX, posY);
}

DazKins

Check out my Dev Blog: http://dazkins.tumblr.com
Offline kulpae

Senior Newbie


Exp: 9 years



« Reply #2 - Posted 2013-01-29 00:35:49 »

I'm not sure, but there seems to be some weird example specific code inside of Vec2.java:

try to replace this in the draw method:
1  
2  
3  
4  
5  
public void draw(Graphics g)
{
    int [] iv = convert();
    g.fillOval(iv[0]-4,iv[1]-4,9,9);
}


with this:

1  
2  
3  
4  
public void draw(Graphics g)
{
    g.fillOval(v[0]-4,v[1]-4,9,9);
}


don't know what your coordinate system looks like, so can't say if that'll help...
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (30 views)
2014-12-15 09:26:44

Mr.CodeIt (23 views)
2014-12-14 19:50:38

BurntPizza (50 views)
2014-12-09 22:41:13

BurntPizza (84 views)
2014-12-08 04:46:31

JscottyBieshaar (45 views)
2014-12-05 12:39:02

SHC (59 views)
2014-12-03 16:27:13

CopyableCougar4 (57 views)
2014-11-29 21:32:03

toopeicgaming1999 (123 views)
2014-11-26 15:22:04

toopeicgaming1999 (114 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!