Poslao: 13 Sep 2012 12:12
|
offline
- Pridružio: 05 Maj 2010
- Poruke: 112
|
Pravim igru Sokoban u cilju savladavanja Graphics klasa koje sam zapostavio...
Trenutno Sokoban "čikica" može da se kreće po form prostoru gde hoće, ali mene zanima kako da mu ograničim da na neke delove forme ne može ići, recimo da ne može da se kreće po ovim sivim pločicama na slici?
Kontao sam da tu zabranu mogu jedino da ograničim po pozicijama, recimo da preko linije X=10 ne može da se kreće, tj da uđe ispod linije 10...
Trenutni kod je ovaj:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Sokoban
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackgroundImage = Image.FromFile(@"C:\Users\Srdjan\Documents\Visual Studio 2010\Projects\Sokoban\slike\gems02.jpg");
this.BackgroundImageLayout = ImageLayout.Center;
}
Graphics g;
int x=120;
int y=280;
string key = "";
Image i;
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
key = "gore";
timer1.Start();
}
else if (e.KeyCode == Keys.Down)
{
timer1.Start();
key = "dole";
}
else if(e.KeyCode == Keys.Left)
{
timer1.Start();
key = "levo";
}
else if (e.KeyCode == Keys.Right)
{
timer1.Start();
key = "desno";
}
if (x >= 411 && y >= 425)
{
timer1.Stop();
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
{
timer1.Stop();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Interval = 100;
if (key == "gore")
{
y -= 40;
this.Refresh();
}
else if (key == "dole")
{
y += 40;
this.Refresh();
}
else if (key == "levo")
{
x -= 40;
this.Refresh();
}
else if (key == "desno")
{
x += 40;
this.Refresh();
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
SolidBrush sb = new SolidBrush(Color.Red);
Pen p = new Pen(Color.Brown, 5);
g = this.CreateGraphics();
i = Image.FromFile(@"C:\Users\Srdjan\Documents\Visual Studio 2010\Projects\Sokoban\slike\cikica.png");
g.DrawImage(i,x,y,40,40);
}
}
}
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 13 Sep 2012 15:09
|
offline
- Peki_92
- Elitni građanin
- Pridružio: 26 Okt 2008
- Poruke: 1560
- Gde živiš: Sremski Mihaljevci
|
pa napisi prosto ako je pozicija cikice udarila" u zid onda nema kretanja.
|
|
|
|
Poslao: 13 Sep 2012 15:34
|
offline
- Pridružio: 05 Maj 2010
- Poruke: 112
|
Napisano: 13 Sep 2012 15:20
Peki_92 ::pa napisi prosto ako je pozicija cikice udarila" u zid onda nema kretanja.
Pa tu i jeste problem, to "udarila u zid" mogu samo pomocu pozicije da kazem i ogranicim sa timer1.Stop(); , ali kada se timer jednom zaustavi ne znam kako da ga ponovo ukljucim kada se vrati u 'dozvoljeni' prostor?
Mislim da mi treba nesto ovako -> if(timer1.Stopped() == true) { timer.Start(); }
P.S: Je l' postoji neki 'koordinator' za formu u Visual Studiu, trebam pola sata da ubadam odredjenu poziciju na formi..
Dopuna: 13 Sep 2012 15:34
Jao znam :O samo vratim poziciju... Job Done... tema moze pod lock
|
|
|
|
Poslao: 13 Sep 2012 18:27
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Zašto ne bi podelio igru s nama... da je malo probamo i prokomentarišemo?
|
|
|
|
Poslao: 13 Sep 2012 19:08
|
offline
- Pridružio: 05 Maj 2010
- Poruke: 112
|
Srki_82 ::Zašto ne bi podelio igru s nama... da je malo probamo i prokomentarišemo?
haha polako čoveče, nije još ni pola završeno... Sada kreiram ove kutijice :O
|
|
|
|
Poslao: 14 Sep 2012 10:22
|
offline
- Peki_92
- Elitni građanin
- Pridružio: 26 Okt 2008
- Poruke: 1560
- Gde živiš: Sremski Mihaljevci
|
eto reseno. Nema lock. Da je vidimo prvo.
|
|
|
|
Poslao: 15 Sep 2012 16:32
|
offline
- Pridružio: 05 Maj 2010
- Poruke: 112
|
haha tek sad vidim ovo, igra će malo kasniti jer radim nekom liku sajt
|
|
|
|
Poslao: 15 Sep 2012 16:41
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Da budem iskren, na osnovu tvog koda rekao bih da igra nikad neće biti gotova, a ne da će kasniti.
|
|
|
|
Poslao: 15 Sep 2012 20:47
|
offline
- Pridružio: 05 Maj 2010
- Poruke: 112
|
Srki_82 ::Da budem iskren, na osnovu tvog koda rekao bih da igra nikad neće biti gotova, a ne da će kasniti.
Pazi, ovo sam pre svega krenuo radi vežbanja Graphics klasa koje sam zapostavio, radio sam 2 godine u ADO.NET-u, u game developmentu rekao bih ima najviše mozganja što mi se sviđa i zbog tih razloga sam krenuo na ovaj kraj C#-a, ovaj kod gore sam samostalno radio bez ikakve pomoći interneta, sem ovo na ovom forumu, ali sam opet sam skontao gde je bio problem(glup problem), sigurno da je kod botovski jer sam na svaki pokret radio refresh forme i forma pri svakom key eventu treperi, ali eto ne znam iskreno kako da zaobiđem form refresh...
Uglavnom radim sada dosta ozbiljniju stvar u PHP-u, kada završim bacam se na ovo, završiću do kraja ove nedelje to sa PHP-om...
|
|
|
|
|