Art

I'm not an artist or anything but I made this for my game http://prntscr.com/yz3h1 (DON'T STEAL IT) I wonder what you think about it. I'm thinking about doing my own pixel art.
Looks good. A lovely choice of colors. Maybe the hair looks a bit as if it were a cap though (my guess is that this is due to a lack of texture on the hair)...
Anyway, have you tried doing animations yet? That seems like the hard part... What type of game is it?
Last edited on
He's a cross-eyed lil bugger.
A harvest moon type game. I always had a soft spot for them. Yea, I just finished the sprite. I also just wrote the code to use animation in the game.

Just tested my animation system. It works to some extent but fails. I guess I'm just tired. Let me catch some rest.
Last edited on
Mario is going to be pissed when he realises that you stole his dungarees.
Yea I just realized I did.
Sorry to veer off topic put my character direction system works, but I cant move anywhere but diagonally. I don't understand why it doesn't work, as I directly copied it from my Kyden project. (I added some position 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
62
63
64
65
66
void Player::Input(SDL_Event event)
{
	switch(event.type)
	{
		case SDL_KEYDOWN:
			switch(event.key.keysym.sym)
			{
				// Start of move controls
				case SDLK_LEFT:
					Xvel = -Vel;
					Position = LEFT;
				break;

				case SDLK_RIGHT:
					Xvel = Vel;
					Position = RIGHT;
				break;

				case SDLK_UP:
					Yvel = -Vel;
					Position = UP;
				break;

				case SDLK_DOWN:
					Yvel = Vel;
					Position = DOWN;
				break;

				// End of movement controls
				case SDLK_DELETE:
					if(Health != 0)
					{
						Health = Health - 5;
					}

					else
					{
						Alive = false;
					}
				break;
			break;
			}
		break;

		case SDL_KEYUP:
			switch(event.key.keysym.sym)
			{
				case SDLK_UP:
					if(Yvel < 0){Yvel = 0;}
				break;

				case SDLK_DOWN:
					if(Yvel > 0){Yvel = 0;}
				break;

				case SDLK_LEFT:
					if(Xvel < 0){Xvel = 0;}
				break;

				case SDLK_RIGHT:
					if(Xvel > 0){Xvel = 0;}
				break;
			}
		break;
	}
}
Last edited on
If it goes on the same diagonal whatever arrow you press, you probably wrote
1
2
x+=xVel;
y+=xVel;
or something like that.
Last edited on
thats good fredbill, im afraid you are an artist, or you have artistic ability.

some guy who writes for the guardian newspaper(uk)is arguing that computer games can never be art they can only be design, I don't agree but some art assholes will think that our opinions won't matter because we don't get art considered to be un-accessible to normal folk (like most turner prize, damien hurst or either of the Tates)

I think your an artist anyway for what that means to you.
I think I'm really good on paper, not to brag or anything. I just really never did pixel art. Thanks.
Hamsterdam this is my update code:
1
2
X += Xvel;
Y += Yvel;
Last edited on
Matter of fact, the whole Player.cpp

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include "Player.h"

void Player::Init(int strtX, int strtY, int ID, int strtHealth, int strtMaxHealth, int strtGender, std::string strtName)
{
	X = strtX;
	Y = strtY;
	Health    = strtHealth;
	MaxHealth = strtMaxHealth;
	Gender = strtGender;
	Name = strtName;

	// Load the character spritesheet
	Graphic = Draw::LoadGFX("Graphics/Farmer/Farmer.png");

	Frame = 0;
	Position = DOWN;

	// Set Animation rects
	AnimDown[2].x = 0;
	AnimDown[2].y = 0;
	AnimDown[2].w = PWIDTH;
	AnimDown[2].h = PHEIGHT;

	AnimDown[0].x = PWIDTH;
	AnimDown[0].y = 0;
	AnimDown[0].w = PWIDTH;
	AnimDown[0].h = PHEIGHT;

	AnimDown[1].x = PWIDTH * 2;
	AnimDown[1].y = 0;
	AnimDown[1].w = PWIDTH;
	AnimDown[1].h = PHEIGHT;

	AnimLeft[2].x = 0;
	AnimLeft[2].y = PHEIGHT;
	AnimLeft[2].w = PWIDTH;
	AnimLeft[2].h = PHEIGHT;

	AnimLeft[0].x = PWIDTH;
	AnimLeft[0].y = PHEIGHT;
	AnimLeft[0].w = PWIDTH;
	AnimLeft[0].h = PHEIGHT;

	AnimLeft[1].x = PWIDTH * 2;
	AnimLeft[1].y = PHEIGHT;
	AnimLeft[1].w = PWIDTH;
	AnimLeft[1].h = PHEIGHT;

	AnimRight[2].x = 0;
	AnimRight[2].y = PHEIGHT * 2;
	AnimRight[2].w = PWIDTH;
	AnimRight[2].h = PHEIGHT;

	AnimRight[0].x = PWIDTH;
	AnimRight[0].y = PHEIGHT * 2;
	AnimRight[0].w = PWIDTH;
	AnimRight[0].h = PHEIGHT;

	AnimRight[1].x = PWIDTH * 2;
	AnimRight[1].y = PHEIGHT * 2;
	AnimRight[1].w = PWIDTH;
	AnimRight[1].h = PHEIGHT;

	AnimUp[2].x = 0;
	AnimUp[2].y = PHEIGHT * 3;
	AnimUp[2].w = PWIDTH;
	AnimUp[2].h = PHEIGHT;

	AnimUp[0].x = PWIDTH;
	AnimUp[0].y = PHEIGHT * 3;
	AnimUp[0].w = PWIDTH;
	AnimUp[0].h = PHEIGHT;

	AnimUp[1].x = PWIDTH * 2;
	AnimUp[1].y = PHEIGHT * 3;
	AnimUp[1].w = PWIDTH;
	AnimUp[1].h = PHEIGHT;

	Vel = 2;
}

void Player::Input(SDL_Event event)
{
	switch(event.type)
	{
		case SDL_KEYDOWN:
			switch(event.key.keysym.sym)
			{
				// Start of move controls
				case SDLK_LEFT:
					Xvel = -Vel;
					Position = LEFT;
				break;

				case SDLK_RIGHT:
					Xvel = Vel;
					Position = RIGHT;
				break;

				case SDLK_UP:
					Yvel = -Vel;
					Position = UP;
				break;

				case SDLK_DOWN:
					Yvel = Vel;
					Position = DOWN;
				break;

				// End of movement controls
				case SDLK_DELETE:
					if(Health != 0)
					{
						Health = Health - 5;
					}

					else
					{
						Alive = false;
					}
				break;
			break;
			}
		break;

		case SDL_KEYUP:
			switch(event.key.keysym.sym)
			{
				case SDLK_UP:
					if(Yvel < 0){Yvel = 0;}
				break;

				case SDLK_DOWN:
					if(Yvel > 0){Yvel = 0;}
				break;

				case SDLK_LEFT:
					if(Xvel < 0){Xvel = 0;}
				break;

				case SDLK_RIGHT:
					if(Xvel > 0){Xvel = 0;}
				break;
			}
		break;
	}
}

void Player::Script()
{

}

void Player::Update()
{
	if(Health <= 0 || Alive == false)
	{
		X += Xvel;
		Y += Yvel;
		if(Health >= 0)
		{
			Alive = false;
		}
	}
}

void Player::Render(SDL_Surface* Destin)
{
	if(Health >= 0 || Alive == false)
	{
		if(Position == UP)
		{
			Draw::DrawGFX(Graphic, AnimUp[Frame].x, AnimUp[Frame].y, AnimUp[Frame].w, AnimUp[Frame].h, Destin, X, Y);
		}

		if(Position == DOWN)
		{
			Draw::DrawGFX(Graphic, AnimDown[Frame].x, AnimDown[Frame].y, AnimDown[Frame].w, AnimDown[Frame].h, Destin,X, Y);
		}
		
		if(Position == LEFT)
		{
			Draw::DrawGFX(Graphic, AnimLeft[Frame].x, AnimLeft[Frame].y, AnimLeft[Frame].w, AnimLeft[Frame].h, Destin,X, Y);
		}
		
		if(Position == RIGHT)
		{
			Draw::DrawGFX(Graphic, AnimRight[Frame].x, AnimRight[Frame].y, AnimRight[Frame].w, AnimRight[Frame].h, Destin,X, Y);
		}
	}
}

void Player::Cleanup()
{
	SDL_FreeSurface(Graphic);
	Mix_FreeChunk(Sound);
}
Last edited on
Ill just make a new topic
Topic archived. No new replies allowed.